C测试题3.docx
《C测试题3.docx》由会员分享,可在线阅读,更多相关《C测试题3.docx(8页珍藏版)》请在冰豆网上搜索。
C测试题3
一.单项选择题
1.以下定义语句中正确的是(C)
A)chara='A'b='B';B)floata=b=10.0;
C)inta=10,*b=&a;D)float*a,b=&a;
2.下列运算符中,优先级最高的是(A)。
A.->
B.++
C.&&
D.=
3.表达式!
(x>0&&y>0)等价于(A)。
A.!
(x>0)||!
(y>0)
B.!
x>0||!
y>0
C.!
x>0&&!
y>0
D.!
(x>0)&&!
(y>0)
4.有以下程序
main()
{inta=666,b=888;
printf("%d\n",a,b);
}
程序运行后的输出结果是(B)
A)错误信息B)666C)888D)666,888
5.有以下程序
main()
{inti;
for(i=0;i<3;i++)
switch(i)
{
case0:
printf("%d",i);
case2:
printf("%d",i);
default:
printf("%d",i);
}
}
程序运行后的输出结果是(C)
A)022111B)021021C)000122D)012
6.若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是(C)
A)abs(x-y)<10B)x-y>-10&&x-y<10
C)!
(x-y)<-10||!
(y-x)>10D)(x-y)*(x-y)<100
7.数组定义为,inta[11][11];则数组a的元素个数为:
(D)
A.12
B.144
C.100
D.121
8.对于以下的变量定义,不正确的表达式是:
(D)。
structnode{
intj,k;
}x,*p=&x;
A.p->k=2;
B.(*p).k=2;
C.x.k=2
D.x->k=2
9.不正确的赋值或赋初值的方式是(B)。
A.charstr[]=”string”;
B.charstr[10];str=”string”;
C.char*p=”string”;
D.char*p;p=”string”;
10.设程序中不再定义新的变量,写出在函数main中可以使用的所有变量为:
(B)
#include
intz;
intp(intx)
{staticinty;
return(x+y);
}
voidmain()
{inta,b;
printf(“%dn”,p(a));
………
}
A.a,b
B.a,b,z
C.a,b,y,z
D.a,b,x,y,z
11.有以下程序
main()
{inti=0,x=0;
for(;;)
{
if(i==3||i==5)continue;
if(i==6)break;
i++;
s+=i;
};
printf("%d\n",s);
}
程序运行后的输出结果是(D)
A)10B)13C)21D)程序进入死循环
12.有以下程序
main()
{chara,b,c,d;
scanf("%c,%c,%d,%d",&a,&b,&c,&d);
printf("c,%c,%c,%c\n",a,b,c,d);
}
若运行时从键盘上输入:
6,5,65,66<回车>。
则输出结果是(A)
A)6,5,A,BB)6,5,65,66C)6,5,6,5D)6,5,6,6
13.s12和s2已正确定义并分别指向两个字符串。
若要求:
当s1所指串大于s2所指串时,执行语句S;则以下选项中正确的是(D)
A)if(s1>s2)S;B)if(strcmp(s1,s2))S;
C)if(strcmp(s2,s1)>0)S;D)if(strcmp(s1,s2)>0)S;
14.有以下定义和语句
inta[3][2]={1,2,3,4,5,6,},*p[3];
p[0]=a[1];
则*p[0]+1)所代表的数组元素是(C)
A)a[0][1]B)a[1][0]C)a[1][1]D)a[1][2]
15.程序中对fun函数有如下说明
void*fun();
此说明的含义是:
(C)
A)fun了数无返回值
B)fun函数的返回值可以是任意的数据类型
C)fun函数的返回值是无值型的指针类型
D)指针fun指向一个函数,该函数无返回值
16.有以下程序
voidfun(int*a,inti,intj)
{intt;
if(i{t=a;a=a[j];a[j]=t;
i++;j--;
fun(a,i,j);
}
}
main()
{intx[]={2,6,18},i;
fun(x,0,3);
for(i=0;i<4;i++)printf("%2d",x);
printf("\n");
}
程序运行后的输出结果是(C)
A)1268B)8621C)8162D)8612
17.有以下说明和定义语句
structstudent
{intage;charnum[8];};
structstudentstu[3]={{20,"200401"},{21,"200402"},{10\9,"200403"}};structstudent*p=stu;
以下选项中引用结构体变量成员的表达式错误的是(D)
A)(p++)->numB)p->numC)(*p).numD)stu[3].age
18.已定义ch为字符型变量,以下赋值语句中错误的是(A)
A)ch='\';B)ch=62+3;C)ch=NULL;D)ch='\xaa';
19.以下选项中不能正确把cl定义成结构体变量的是(B)
A)typedefstructB)structcolorcl
{intred;{intred;
intgreen;intgreen;
intblue;intblue;
}COLOR;};
COLORcl;
C)structcolorD)struct
{intred;{intred;
intgreen;intgreen;
intblue;intblue;
}cl;}cl;
20.有以下程序
fun(inta,intb)
{if(a>b)return(a);
elsereturn(b);
}
main()
{intx=3,y=8,z=6,r;
r=fun(fun(x,y),2*z);
printf("%d\n",r);
}
程序运行后的输出结果是(D)
A)3B)6C)8D)12
21.有以下程序段
main()
{inta=5,*b,**c;
c=&b;b=&a;
……
}
程序在执行了c=&b;b=&a;语句后,表达式:
**c的值是(C)
A)变量a的地址B)变量b中的值C)变量a中的值D)变量b的地址
22.设有intx=11;则表达式(x++*1/3)的值是(A)
A)3B)4C)11D)12
23.下列程序的输出结果是(C)
A)3B)3.2C)0D)3.07
main()
{doubled=3.2;intx,y;
x=1.2;y=(x+3.8)/5.0;
printf("%d\n",d*y);
}
24.下列变量定义中合法的是(A)
A)short_a=1-.le-1;B)doubleb=1+5e2.5;
C)longdo=0xfdaL;D)float2_and=1-e-3;
25.以下循环体的执行次数是(C)
A)3B)2C)1D)0
main()
{inti,j;
for(i=0,j=1;i<=j+1;i+=2,j--)printf("%d\n",i);
}
26.以下叙述正确的是(D)
A)do-while语句构成的循环不能用其它语句构成的循环来代替。
B)do-while语句构成的循环只能用break语句退出。
C)用do-while语句构成的循环,在while后的表达式为非零时结束循环。
D)用do-while语句构成的循环,在while后的表达式为零时结束循环。
27.下列程序执行后的输出结果是(A)
A)GB)HC)ID)J
main()
{intx='f';printf("%c\n",'A'+(x-'a'+1));}
28.下列程序执行后的输出结果是(A)
继续阅读