C语言复习60题.docx
《C语言复习60题.docx》由会员分享,可在线阅读,更多相关《C语言复习60题.docx(11页珍藏版)》请在冰豆网上搜索。
C语言复习60题
C语言复习60题
D
10+9*((8+7)%6)+5*4%3*2+3
1+2+(3+4)*((5*6%7/8)-9)*10
正确答案是:
5244-627。
15以下语句是否可以通过编译:
if(1<=n<=10);
A.√B.×正确答案:
A、√。
16以下语句是否表示n属于[1,10]:
if(1<=n<=10);
A.√B.×正确答案:
B、×。
17写出程序的输出结果:
inti,j,k;
i=5;j=10;k=1;
printf("%d",k>i正确答案是:
1。
18写出程序的输出结果:
inti,j,k;
i=2;j=3;
k=i*j==6;
printf("%d\n",k);
正确答案是:
1。
19写出程序的输出结果:
inti,j,k;
i=3;j=2;k=1;
printf("%d",i正确答案是:
1。
20写出程序的输出:
inti=1;
switch(i%3){
case0:
printf("zero");
case1:
printf("one");
case2:
printf("two");
}
正确答案是:
onetwo。
21写出程序的输出:
inta=58;
if(a>50)printf("A");
if(a>40)printf("B");
if(a>30)printf("C");
正确答案是:
ABC。
22while循环的条件满足的时候循环继续,而do-while的条件满足的时候循环就结束了
A.√B.×正确答案:
B、×。
23以下代码片段执行结束后,变量i的值是多少?
inti=10;
while(i>0){
i/=2;
}
正确答案是:
0。
24以下代码片段执行结束后,变量i的值是多少?
inti=1;
do{
i+=5;
}while(i<17);
正确答案是:
21。
25以下哪种运算能从变量x中取得十进制最低位的数字
A.x/10B.x%10C.x*10D.10/x
正确答案:
B、x%10。
26当需要累加一些值的时候,用来记录累加结果的变量应该被初始为:
正确答案是:
0。
27以下哪个循环和其他三条循环不等价(假设循环体都是一样的)?
A.for(i=0;i<10;i++){...}
B.for(i=0;i<10;++i){...}
C.for(i=0;i++<10;){...}
D.for(i=0;i<=9;i++){...}
正确答案:
C、for(i=0;i++<10;){...}。
28以下代码段的输出是什么?
for(inti=10;i>1;i/=2){
printf("%d",i++);
}
正确答案是:
10532。
29以下代码段的输出是:
intsum=0;
for(inti=0;i<10;i++){
if(i%2)continue;
sum+=i;
}
printf("%d\n",sum);
正确答案是:
20。
30以下代码段的输出是:
intsum=0;
for(inti=0;i<10;i++){
if(i%2)break;
sum+=i;
}
printf("%d\n",sum);
正确答案是:
0。
31以下哪个数字占据的空间最大?
A.32768B.‘3‘C.32768.0D.32768.0F
正确答案:
C、32768.0。
32以下哪个字母不能在数字后面表示类型?
A.FB.UC.LD.X
正确答案:
D、X。
33以下哪个数字的值最大?
A.10B.010C.0x10D.10.0正确答案:
C、0x10。
34以下哪种类型不能用在switch-case的判断变量中:
A.charB.shortC.intD.double正确答案:
D、double。
35下列哪些是有效的字符?
A.‘’
B.‘\’‘
C.''
D.'\'
正确答案:
A、‘’。
B、‘\’‘。
C、''。
36以下表达式的结果是:
'1'+3
正确答案是:
52或'4'。
37以下哪个表达式的结果是true?
A.!
(4<5)
B.2>2||4==4&&1<0
C.34==33&&!
false
D.!
false
正确答案:
D、!
false。
38以下哪个表达式,当a和b中只有一个是true的时候结果为true,而如果两个都是false或都是true的时候,结果为false
A.a&&b
B.a||b
C.a!
=b
D.!
a&&!
b
正确答案:
C、a!
=b。
39以下哪个表达式,当a和b都是true或者都是false的时候,表达式的结果为true。
A.a&&b
B.a||b
C.a==b
D.a^b
正确答案:
C、a==b。
40以下哪个表达式与!
(a&&b)是等价的
A.!
a&&!
bB.!
a||!
bC.a&&bD.a||b正确答案:
B、!
a||!
b。
41以下代码执行后,i的值是:
i=3/2,3*2;正确答案是:
1。
42以下哪句不是正确的原型?
A.intf();B.intf(inti);C.intf(int);D.intf(inti){}正确答案:
D、intf(inti){}。
43以下哪个函数的定义是错误的?
A.voidf(){}
B.voidf(inti){returni+1;}
C.voidf(inti){}
D.intf(){return0;}
正确答案:
B、voidf(inti){returni+1;}。
44对于不返回值而且只有一个int类型的参数的函数,以下哪些函数原型是正确的?
A.voidf(intx);B.voidf();C.voidf(int);D.voidf(x);
正确答案:
A、voidf(intx);。
B、voidf();。
C、voidf(int);。
45以下程序的输出是什么?
#include
voidswap(inta,intb);
intmain()
{
inta=5;
intb=6;
swap(a,b);
printf("%d-%d\n",a,b);
return0;
}
voidswap(inta,intb)
{
intt=a;
a=b;
b=t;
}
正确答案是:
5-6。
46若有定义:
inta[2][3];
则以下选项中不越界的正确的访问有:
A.a[2][0]B.a[2][3]C.a[1>2][0]
D.a[0][3]
正确答案:
C、a[1>2][0]。
47以下程序片段的输出结果是:
intm[][3]={1,4,7,2,5,8,3,6,9,};
inti,j,k=2;
for(i=0;i<3;i++){
printf("%d",m[k][i]);
}
A.369
B.不能通过编译
C.789
D.能编译,但是运行时数组下标越界了
正确答案:
A、369。
48假设int类型变量占用4个字节,定义数组
intx[10]={0,2,4};
则x在内存中占据几个字节?
正确答案是:
40。
49若有:
inta[][3]={{0},{1},{2}};
则a[1][2]的值是?
正确答案是:
0。
50对于:
inta[]={5,15,34,54,14,2,52,72};
int*p=&a[5];
则:
p[-2]的值是?
A.编译出错,因为数组下标越界了
B.运行出错,因为数组下标越界了
C.54
D.2
正确答案:
C、54。
51如果:
inta[]={0};
int*p=a;
则以下哪些表达式的结果为真?
A.p==a[0]
B.p==&a[0]
C.*p==a[0]
D.p[0]==a[0]
正确答案:
B、p==&a[0]。
C、*p==a[0]。
D、p[0]==a[0]。
52以下变量定义:
int*p,q;
中,p和q都是指针。
A.√B.×正确答案:
B、×。
53对于:
inta[]={5,15,34,54,14,2,52,72};
int*p=&a[1];
则:
p[2]的值是?
正确答案是:
54。
54对于以下代码段,正确的说法是:
char*p;
while
(1){
p=malloc
(1);
*p=0;
}
A.最终程序会因为没有没有空间了而退出
B.最终程序会因为向0地址写入而退出
C.程序会一直运行下去
D.程序不能被编译
正确答案:
B、最终程序会因为向0地址写入而退出
55对于以下代码段:
inta[]={1,2,3,4,5,};
int*p=a;
int*q=&a[5];
printf("%d",q-p);
当sizeof(int)为4时,以下说法正确的是:
A.因为第三行的错误不能编译B.因为第三行的错误运行时崩溃C.输出5D.输出20
正确答案:
C、输出5。
56使用malloc就可以做出运行时可以随时改变大小的数组
A.√B.×
正确答案:
B、×。