C语言试题库复习题汇总.docx
《C语言试题库复习题汇总.docx》由会员分享,可在线阅读,更多相关《C语言试题库复习题汇总.docx(87页珍藏版)》请在冰豆网上搜索。
C语言试题库复习题汇总
一、选择题(共250个,每题2分)
1、一个c语言程序的执行是从()
A、本程序的main函数开始,到main函数结束
B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
C、本程序的main函数开始,到本程序文件的最后一个函数结束
D、本程序文件的第一个函数开始,到本程序main函数结束
2、一个c语言程序是由()
A、一个主程序和若干子程序组成B、函数组成
C、若干过程组成D、若干子函数组成
3、以下选项中是正确的整型常量是()
A、12.B、-20C、1,000D、456
4、以下选项中正确的实型常量是()
A、0B、3.1415C、0.329*10^2D、.871
5、以下选项中不合法的实型常量是()
A、2.607E-1B、0.8103*12C、-77.77D、456e-2
6、以下选项中不合法的字符串是()
A、’abc’B、”12’12”C、“0”D、””
7、下面正确的字符常量是()
A、”c”B、‘\\’’C、‘w’D、‘’
8、以下选项中不合法的用户标识符是()
A、abc.cB、fileC、MainD、PRINTF
9、C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符()
A、必须为字母B、必须为下划线C、必须为字母或下划线
D、可以是字母、数字和下划线中任意一种字符
10、以下选项中不合法的用户标识符是()
A、_123B、printfC、A$D、Dim
11、c语言中运算对象必须是整型的运算符是()
A、%B、/C、!
D、**
12、可在C程序中用作用户标识符的一组标识符是()
A、ntB、as-b3C、FirD、2c
define-123_bcDO
WORDifnameSIG
13、若变量已正确定义并赋值,符合C语言语法的表达式是()
A、a=a+7;B、a=7+b+c,a++C、int(12.3%4)D、a=a+7=c+b
14、若a,b,c,d都是int类型变量且初值为0,以下选项中不正确的赋值语句是()
A、a=b=c=100;B、d++;C、c+b;D、d=(c=22)-(b++);
15、若x、i、j和k都是int变量,则计算下面表达式后,x的值是()
x=(i=4,j=16,k=32)
A、4B、16C、32D、52
16、假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是()
A、7B、8C、6D、2
17、若有代数表达式a2.b2,则正确的c语言表达式是()
A、a^*b^B、pow(a,2).pow(b,2)C、a*a.b*bD、(a*a)*(b*b)
18、若有代数表达式
,则不正确的c语言表达式是()
A、a/b/c*e*3B、3*a*e/b/cC、3*a*e/b*cD、a*e/c/b*3
19、若有定义:
inta=8,b=5,c;执行语句c=a/b+0.4;后,c的值为()。
A、1.4B、1C、2.0D、2
20、char型数据在内存中的存储形式是()
A、补码B、反码C、原码D、ASCII码
21、设变量a是整型,f是实型,i是双精度,则表达式10+‘a’+i*f值的数据类型为()
A、intB、floatC、doubleD、不确定
22、若有定义:
inta=7;flaotx=2.5,y=4.7;;则表达式x+a%3*(int)(x+y)%2/4的值是()。
A、2.500000B、2.750000C、3.500000D、0.000000
23、若变量a是int类型,并执行了语句:
a=’A’+1.6;则正确的叙述是()。
A、a的值是字符CB、a的值是浮点型
C、不允许字符型和浮点型相加D、a的值是字符’A’的ASCII值加上1
24.、以下选项中合法的字符常量是()。
A、“B”B、’\010’C、68D、D
25、以下选项中不是C语句的是()
A、{inti;i++;printf(“%d\n”,i);}B、;
C、a=5,c=10D、{;}
26、以下合法的C语言赋值语句是()
A、a=b=58B、k=int(a+b)C、a=58,b=58D、--i;
27、以下程序的输出结果是()
A、0B、1C、3D、不确定的值
main()
{intx=10,y=3;
printf(“%d\n”,y=x/y);
}
28、设c语言中,一个int型数据在内存中占2个字节,则unsignedint型数据的取值范围为()
A、0~255B、0~32767C、0~65535D、0~2147483647
29、若变量已正确定义为int类型,要给a、b、c输入数据,以下正确的输入语句是()
A、read(a,b,c);
B、scanf(“%d%d%d”a,b,c);
C、scanf(“%D%D%D”,&a,&b,&c);
D、scanf(“%d%d%d”,&a,&b,&c);
30、若变量已正确定义为float类型,要通过赋值语句scanf(“%f%f%f”,&a,&b,&c)给A赋值10,B赋予22,C,赋予33,以下不正确的输入形式是()
A、10B、10.0,22.0,33.0C、10.0D、1022
2222.033.033
33
31、设有说明:
charw;intx;floaty;doublez;则表达式w*x+z-y值的数据类型为()
A、floatB、charC、intD、double
32、若变量已正确定义,要将a和b中的数进行交换,下面选项中不正确的是()
A、a=a+b,b=a-b,a=a-b;B、t=a,a=b,b=t;C、a=t;t=b;b=a;D、t=b;b=a;a=t;
33、若变量已正确定义,以下程序段的输出结果是()
A、输出格式说明与输出项不匹配,输出无定值
B、5.170000C、5.168000D、5.169000
x=5.16894;
printf(“%f\n”,(int)(x*1000+0.5)/(float)1000);
34、若有以下程序段,c3的值是()
A、0B、1/2C、0.5D、1
intc1=1,c2=2,c3;
c3=c1/c2;
35、若有以下程序段,其输出结果是()
A、0,0,-10B、0,0,5C、-10,3,-10D、3,3,-10
inta=0,b=0,c=0;
c=(a-=a-5),(a=b,b+3);
printf(“%d,%d,%d\n”,a,b,c);
36、若已知变量的类型说明如下:
intk,a,b;unsingedlongw=5;doublex=1.42;则以下不符合c语言的表达式是()
A、x%(-3)B、w+=-2C、k=(a=2,b=3,a+b)D、a+=a-=(b=4)*(a=3)
37、以下程序的输出结果是()
A、a=%2,b=%fB、a=2,b=5C、a=%%d,b=%%dD、a=%d,b=%d
main()
{inta=2,b=3;
printf(“a=%%d,b=%%d\n”,a,b);
}
38、若int类型占两个字节,则以下程序段的输出是()
A、–1,-1B、–1,32767C、–1,32768D、–1,65535
inta=-1;
printf(“%d,%u\n”,a,a);
39、下列运算符中优先级最高的运算符是()
A、!
B、%C、-=D、&&
40、下列运算符中优先级最低运算符是()
A、||B、!
=C、〈=D、+
41、为表示关系x≥y≥z,应使用的C语言表达式是()
A、(x>=y)&&(y>=z)B、(x>=y)AND(y>=z)
C、(x>=y>=z)D、(x>=y)&(y>=z)
42、若有以下定义,则能使值为3的表达式是()intk=7,x=12;
A、x%=k-k%5)B、x%=(k%=5)C、x%=(k-k%5)D、(x%=k)-(k%=5)
43、设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为()。
A、0B、1C、2D、3
44、假定w、x、y、z、m均为int型变量,有如下程序段:
w=1;x=2;y=3;z=4;
m=(ww:
x;
m=(mm:
y;
m=(mm:
z;
则该程序运行后,m的值是()。
A、4B、3C、1D、2
45、以下程序的输出是()
A、0B、1C、2D、3
main()
{inta=2,b=-1,c=2;
if(bif(b<0)c=0;
printf(“%d\n”,c);}
46、设a,b和c都是int型变量,且a=3,b=4,c=5;则以下的表达式中,值为0的表达式是()
A、a&&bB、a<=bC、a||b+c&&b-cD、!
((a
c||1)
47、以下程序的输出是()
A、0B、1C、2D、3
main()
{inta=2,b=-1,c=2;
if(a
if(b<0)c=0;
elsec+=1;
printf(“%d\n”,c);
}
48、以下程序的输出是()
A、1B、2C、3D、4
main()
{intw=4,x=3,y=2,z=1;
printf(“%d\n”,(ww:
zz:
x));
}
49、已知intx=10,y=20,z=30;以下语句执行后x,y,z的值是()
if(x>y)z=x;x=y;y=z;
A、x=10,y=20,z=30B、x=20,y=30,z=30
C、x=20,y=30,z=10D、x=20,y=30,z=20
50、以下程序的运行结果是()
main(){intm=5;
if(m++>5)printf(“%d\n”,m);
elseprintf(“%d\n”,m--);}
A、4B、5C、6D、7
51、若执行以下程序时从键盘上输入3和4,则输出结果是()
A、14B、16C、18D、20
main()
{inta,b,s;
scanf(“%d%d”,&a,&b);
s=a;
if(a
s*=s;
printf(“%d\n”,s);
}
52、运行以下程序,输出()
A、****B、&&&&
C、####&&&&D、有语法错误不能通过编译
main()
{intk=-3;
if(k<=0)printf(“****\n”);
elseprintf(“&&&&\n”);
}
53、以下程序的输出结果是()
main(){intx=2,y=-1,z=2;
if(xif(y<0)z=0;
elsez=z+1;
printf(“%d\n”,z);}
A、3B、2C、1D、0
54、为了避免在嵌套的条件语句if-else中产生二义性,c语言规定:
else子句总是与()配对。
A、上下位置在同一列的ifB、else前面最近的if
C、else之后最近的ifD、同一行上的if
55、以下不正确的语句为()
A、if(x>y);B、if(x==y)&&(x!
=0)x+=y;C、if(xD、if(x!
=y)scanf(“%d”,&x);elsescanf(“%d”,&y);
56、当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是()
if(a
if(aelse
if(aif(belsex=3;
elsex=6;
elsex=7;
A、1B、2C、3D、6
57、以下程序段,intk=10;while(k=0)k=k+1;则下面描述中正确的是()。
A、while循环执行10次B、循环是无限循环
C、循环体语句一次也不执行D、循环体语句执行一次
58.以下程序中,while循环的循环次数是()。
main(){inti=0;
while(i<10)
{if(i<1)break;
i++;}}
A、1B、10C、6D、死循环,不能确定次数
59、以下程序中,while循环的循环次数是()。
main(){inti=0;
while(i<10)
{if(i<1)contimue;
if(i==5)break;
i++;}}
A、1B、10C、6D、死循环,不能确定次数
60、若执行以下程序时从键盘上输入9,则输出结果是()
A、11B、10C、9D、8
main()
{intn;
scanf("%d",&n);
if(n++<10)printf("%d\n",n);
elseprintf("%d\n",n--);
}
61、有以下程序段()
intk=0
while(k==1)k++;
while循环执行的次数是
A、无限次B、有语法错,不能执行C、一次也不执行D、执行1次
62、对于下面①,②两个循环语句,()是正确的描述。
①while
(1);②for(;;);
A、①②都是无限循环B、①是无限循环,②错误
C、①循环一次,②错误D、①②皆错误
63、语句while(!
E);中的表达式!
E等价于()
A、E==0B、E!
=1C、E!
=0D、E==1
64、下面程序段运行结果是()
x=y=0;while(x<15)y++,x=x+(++y);
pirntf(“%d,%d”,y,x);
A、20,7B、6,12C、20,8D、8,20
65、设有以下程序段intx=0,s=0;
while(!
x!
=0)s+=++x;
printf(“%d”,s);则()
A、运行程序段后输出0B、运行程序段后输出1
C、程序段中的控制表达式是非法的D、程序段执行无限次
66、下面程序段的运行结果是()
intn=0;while(n++<=2);printf(“%d”,n);
A、2B、3C、4D、有语法错误
67、下面程序的运行结果是()
#include
main(){intnum=0;
while(num<=2)
{num++;printf(“%d”,num);}}
A、1B、12C、123D、1234
68、c语言中while和do-while循环的主要区别是()
A、do-while的循环体至少无条件执行一次
B、while的循环控制条件比do-while的循环控制条件严格
C、do-while允许从外部转到循环体内
D、do-while的循环体不能是复合语句
69、下面有关for循环的正确描述是()
A、for循环只是能用于循环次数已经确定的情况
B、for循环是先执行循环体语句,后判断表达式
C、在for循环中,不能用break语句跳出循环体
D、for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
70、对for(表达式1;;表达式3)可以理解为()
A、for(表达式1;0;表达式3)B、for(表达式1;表达式1;表达式3
C、for(表达式1;1;表达式3)D、for(表达式1;表达式3;表达式3)
71、若i为整型变量,则以下循环执行次数是()
for(i=2;i==0;)printf(“%d”,i--);
A、无限次B、0次C、1次D、2次
72、下面程序的运行结果是()
#include
main(){inty=10;
do{y--;}while(--y);
printf(“%d\n”,y--);}
A、-1B、1C、8D、0
73、下面程序的运行结果是()
#include
main(){inta=1,b=10;
do{b-=a;a++;}while(b--<0);
printf(“a=%d,b=%d\n”,a,b);}
A、a=3,b=11B、a=2,b=8C、a=1,b=-1D、a=4,b=9
74、下面程序段的运行结果是()
for(y=1;y<10;)y=((x=3*y,x+1),x-1);
printf(“x=%d,y=%d”,x,y);
A、x=27,y=27B、x=12,y=13C、x=15,y=14D、x=y=27
75、下列程序段不是死循环的是()
A、inti=100;while
(1){i=i%100+1;if(i>100)break;}B、for(;;)
C、intk=0;do{++k;}while(k==0);D、ints=36;while(s);--s;
76、以下程序段输出结果是()
A、9B、1C、11D、10
intk,j,s;
for(k=2;k<6;k++,k++)
{s=1;
for(j=k;j<6;j++)s+=j;
}
printf(“%d\n”,s);
77、以下程序段输出结果是()
A、12B、15C、20D、25
inti,j,m=0;
for(i=1;i<=15;i+=4)
for(j=3;j<=19;j+=4)m++;
printf(“%d\n”,m);
78、以下程序段输出结果是()
A、10B、9C、10D、9
9898
8787
76
intn=10;
while(n>7)
{n--;
printf(“%d\n”,n);
}
79、以下程序段输出结果是()
A、1B、30C、1–2D、死循环
intx=3;
do
{printf(“%3d”,x-=2);}
while(!
(--x));
80、以下程序段输出结果是()
A、15B、14C、不确定D、0
main()
{inti,sum;
for(i=1;i<6;i++)sum+=sum;
printf(“%d\n”,sum);
}
81、以下程序的输出结果是()
A、741B、852C、963D、875421
main()
{inty=10;
for(;y>0;y--)
if(y%3==0)
{printf(“%d”,--y);continue;}
}
82、若x是int型变量,以下程序段的输出结果是()
A、**3B、##3C、##3D、**3##4
##4**4**4##5**5
**5##5
for(x=3;x<6;x++)
printf((x%2)?
(“**%d”):
(“##%d\n”),x);
83、以下程序的输出结果是()
A、*#*#*#$B、#*#*#*$C、*#*#$D、#*#*$
main()
{inti;
for(i=1;i<=5;i++)
{if(i%2)printf(“*”);
elsecontinue;
printf(“#”);
}
printf(“$\n”);
}
84、以下叙述不正确的是()
A、do-while语句构成的循环不能用其他语句构成的循环来代替。
B、do-while语句构成的循环只能用break语句退出。
C、用do-while语句构成循环时,只有在while后的表达式为非零时结束循环。
D、用do-while语句构成循环时,只有在while后的表达式为零时结束循环
85、C语言中的简单数据类型有()
A、整型、实型、逻辑型B、整型、实型、字符型
C、整型、字符型、逻辑型D、整型、实型、逻辑型、字符型
86、C语言中,字符(char)型数据在微机内存中的存储形式是()
A、反码B、补码C、EBCDIC码D、ASCII码
87、设有定义语句chara=‘\72’;,则变量a()
A、包含1个字符B、包含2个字符
C、包含3个字符D、包含4个字符
88、C语言中不合法的字符常量是()
A、‘\xff’B、‘\65’C、‘&’D、‘\028’
89、C语言中不合法的字符串常量是()
A、“121”B、‘y=’C、“\n\n”D、“ABCD\x6d”
90、判断char型变量c是否为大写字母的最简单且正确的表达式是:
()
A、‘A’<=c<=‘Z’B、(c>=‘A’)&(c<=‘Z’)
C、(‘A’<=c)AND(‘Z’>=c)D、(c>=‘A’)&&(c<=‘Z’)
91、以下程序的输出结果是()
A、因输出格式不合法,无正确输出B、65,90
C、A,YD、65,89
main()
{charc1=’A’,c2=’Y’;
printf(“%d,%d\n”,c1,c2);
}
92、以下程序段的输出结果是()
A、AB、aC、ZD、z
main()
{charx=’A’;
x=(x>=’A’&&x<=’Z’)?
(x+32):
x;
printf(“%c\n”,x);}
93、以下程序的输出结果是()
A、67,CB、B,CC、C,DD、不确定的值
main()
{charch1,ch2;
ch1=’A’+’5’-‘3’;
ch2=’A’+’5’-‘3’;
printf(“%d,%c\n,”ch1,ch2”);}
94、以下程序的输出结果使()
A、11B、20C、21D、31
func(inta,intb)
{intc;
c=a+b;
returnc;}
main()
{intx=6,y=7,z=8,r;
r=func((x--,y++,x+y),z--);
printf(“%d\n”,r);}
95、以下程序的输出结果是()
A、-1B、0C、1D、2
main()
{inti=2,p;
p=f(i,i+1);
printf(“%d\n”,p);}
intf(inta,