计算机二级C语言试题库
1有以下程序
main()
{ int a=1,b=2,m=0,n=0,k;
k=(n=b>a)||(m=aprintf("%d,%d\n",k,m);
}
程序运行后的输出结果是
A)0,0 B)0,1 C)1,0 D)1,1
2在一个C程序中
A)main函数必须出现在所有函数之前 B)main函数可以在任何地方出现
C)main函数必须出现在所有函数之后 D)main函数必须出现在固定位置
3有以下程序
main()
{ int a=5,b=4,c=3,d=2;
if (a>b>c)
printf("%d\n", d);
else if ( (c-1 >= d) == 1)
printf("%d\n", d+1);
else
printf("%d\n", d+2);
}
执行后输出结果是
A)2 B)3 C)4 D)编译时有错,无结果
4有以下程序
main()
{ int i;
for (i=0; i<3; i++)
switch (i)
{ case 1: printf("%d ", i);
case 2: printf("%d ", i);
default : printf("%d ", i);
}
}
执行后输出结果是
5有以下程序
main()
{ int k=4,n=0;
for( ; n{ n++;
if(n%3!=0) continue;
k--; }
printf("%d,%d\n",k,n);
}
程序运行后的输出结果是
A)1,1 B)2,2 C)3,3 D)4,4
6有以下程序
fun(int a, int b)
{ if(a>b) return(a);
else return(b);
}
main()
{ int x=3, y=8, z=6, r;
r=fun(fun(x,y), 2*z);
printf("%d\n", r);
}
程序运行后的输出结果是
A)3 B)6 C)8 D)12
7有以下程序
int *f(int *x, int *y)
{ if (*x < *y)
return x;
else
return y;
}
main()
{ int a=7,b=8,*p,*q, *r;
p=&a; q=&b;
r = f(p,q);
printf("%d,%d,%d\n",*p,*q,*r);
}
执行后输出结果是 
A)7,8,8 B)7,8,7 C)8,7,7 D)8,7,8
8以下能正确地定义整型变量a,b和c并为其赋初值5的语句是 
A)int a=b=c=5; B)int a,b,c=5; 
C)a=5,b=5,c=5; D)a=c=b=5;
9若二维数组a有m列,则在a[i][j]前的元素个数为
A)j*m+i B)i*m+j C)i*m+j-1 D)i*m+j+1
10下面程序段是输出两个字符串中对应相等的字符。请选择填空
char x[]=”programming”;
char y[]=”Fortran”;
int i=0;
while(x[i]!=’\0’&&y[i]!=’\0’)
if(x[i]= =y[i])printf(“%c”,[]);
else i++;
A) x[i++] B)y[++i] C)x[i] D)y[i]
11若使用一维数组名作函数实参,则以下正确的说法是
A)必须在主调函数中说明次数组的大小 计算机二级c语言选择题库
B实参数组类型与形参数组类型可以不匹配
C在被调函数中,不需要考虑形参数组的大小
D实参数组名与形参数组名必须一致
12以下程序的正确运行结果是
#inclued
main()
{int k=4,m=1,p;
p=func(k,m);printf(“%d”,p);
p=func(k,m);printf(“%d\n”,p);
}
func(int a,int b)
{static int m=0,i=2;
i+=m+1;
m=i+a+b;
return(m);
}
A)8,17 B)8,16 C)8,20 D)8,8
13若有说明:int *p,m=5,n;以下正确的程序段是
A) p=&n;scanf(“%d”,&p);
B) p=&n;scanf(“%d”,*p);
C) scanf(“%d”,&n);*p=n;
D) p=&n;*p=m;
14执行以下程序后,a和b的值为
main()
{int a,b,k=4,m=6,*p1=&k,*p2=&m;
a=p1==&m;
b=(-*p1)/(*p2)+7;
printf(“a=%d\n”,a);
printf(“b=%d\n”,b);}
A)-1 ,5 B)1,6 C)0,7 D)4,10
15若要用fopen函数打开一个新的二进制文件,该文件要既能读也能写,则文件方式字符串应是
A)”ab+” B)”wb+” C)”rb+” D”ab”
16根据定义和数据的输入方式,输入语句的正确形式为
已有定义:float f1,f2;
数据的输入方式:4.52
3.5
A)scanf(“%f,%f”,&f1,&f2);
B) scanf(“%f%f”,&f1,&f2);
C) scanf(“%3.2f %2.1f”,&f1,&f2);
D) scanf(“%3.2f%2.1f”,&f1,&f2);
17 分析以下程序运行结果
#include
int func(int n){
if(n==1)
return 1;
else
return(n*func(n-1));
}
void main(){
int x;
x=func(5);
printf(“%d\n”,x);
}
A)100 B)5 C)1 D)120
18 分析以下程序运行结果
#include
void main(){
int y=2,a=1;
while(y--!=-1){
do{
a*=y;a++;
}while(y--);}
printf(“%d,%d\n”,a,y);}
A)1,-2 B)2,1 C)1,0 D)2,-1
19下面程序段的运行结果是
char a[7]=”abcdef”;
charb[4]=”ABC”;
strcpy(a,b);
printf(“%c”,a[5]);
A)空格 B)\0 C)e D)f
20下面是对s的初始化,其中不正确的是
A)char s[5]={“abc”}; B)char s[5]={‘a’,’b’,’c’};
C)char s[5]=””; D)char s[5]=”abcdef”;
21执行语句for(i=1;i++<4; );后变量i的值是
A)3 B)4 C)5 D)不定
22以下程序段
x=-1;
do
{x=x*x;}
while(!x);
A)是死循环 B)循环执行二次
C)循环执行一次 D)有语法错误
23若有以下定义和语句:
inion data
{int i;
char c;
float f;
}a;
int n;
则以下语句正确的是
A)a=5; B)a={2,’a’,1.2}; C)printf(“%d\n”,a); D)n=a;
24下面程序的运行结果是
main()
{
struct cmplx{int x;
int y;
}cnum[2]={1,3,2,7};
printf(“%d\n”,cnum[0].y/cnum[0].x*cunm[1].x);
}
A)0 B)1 C)3 D)6
25以下程序的运行结果是
main()
{int k=4,a=3,b=2,c=1;
printf(“\n%d\n”,k}
A)4 B)3 C)2 D)1
二 填空
1 若有以下定义,则计算表达式y+=y-=m*=以后y的值是_____
int m=5,y=2;
2 若有定义:int b=7;float a=2.5,c=4.7;:则下面表达式的值为_____
a+(int)(b/3*(int)(a+c)/2)%4
3 有 int a=3,b=4,c=5;,则以下表达式的值为_____
!(a+b)+c-1&&b+c/2
4 条件”2或x<-10”的c语言表达式是_____
5 以下程序的功能是判断输入的年份是否是闰年.请在[ ]内填入正确内容
main()
{int y,f;
scanf(“%d”,&y);
if(y%400==0)f=1;
else if([5])f=1;
else[6];
if(f) printf(“%d is”,y);
else printf(“%d is not”,y);
printf(“a leap year\n”);
}
6 下面程序的功能是计算100至1000之间有多少个数其各位数字之和是5。请填空 
#include
main(0
{int i,s,k,count=0;
for(i=100;i<=1000;i++)
{s=0;k=i;
while([7]){s=s+k%10;k=[8];}
if(s!=5)[9];
else count++;
}
printf(“%d”,count);
}
7 下面程序将二维数组a的行和列元素呼唤后存到另一个二维数组b中。请填空
main()
{int a[2][3]={{1,2,3},{4,5,6}};
int b[3][2],I,j;
printf(“array a:\n”);
for(i=0;i<=1;i++)
{for(j=0;[10];j++)
{printf(“%5d”,a[i][j]);
[11];
}
printf(“\n”);
}
printf(“array b:\n”);
for(i=0;[12];i++)
{for(j=0;j<=1;j++)
printf(“%5d”,b[i][j]);

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。