C 复习资料.docx
《C 复习资料.docx》由会员分享,可在线阅读,更多相关《C 复习资料.docx(34页珍藏版)》请在冰豆网上搜索。
![C 复习资料.docx](https://file1.bdocx.com/fileroot1/2022-11/30/9ea6b149-b3c5-4715-923b-6026d5fd59cf/9ea6b149-b3c5-4715-923b-6026d5fd59cf1.gif)
C复习资料
选择题
B1、以下不是C语言基本数据类型的是。
A.字符型B.
C.整型D.构造类型
A2、以下不是八进制数。
A.1X12B.123
C.1001D.0123
B3、TurboC中,char类型变量所占字节数是。
A.2B.1
C.3D.4
B4、C语言提供的合法的数据类型关键字是。
A.longerB.short
C.integerD.character
A5、C语言中运算对象必须是整型的运算符是。
A.%=B.==
C.+=D.*=
C6、下面关于字符串和字符常量的叙述中错误的是。
A.字符常量由单引号括起来,字符串常量由双引号括起来
B.字符常量只能是单个字符,字符串常量可以含一个或多个字符
C.字符常量占一个字节的内在空间,字符串常量占的内在字节数为字符串中字符数
D.可以将一个字符常量赋予一个字符变量,但不能将一个字符串常量赋予一个字符串变量
D7、以下程序的输出结果是。
main(0
{intm=10,n=3;
printf("%d\n",n=m/n);
}
A.10B.11
C.13D.3
B8、若以下变量均已正确说明为char类型,要给x、y和z输入数据,正确的是。
A.scanf(x,y,z);
B.scanf("%c%c%c",&x,&y,&z);
C.scanf("%C%C%C",x,y,z);
D.scanf("%c%c%c",x,y,z);
C9、以下程序的输出结果是。
charc1,c2;
c1=65;c2=65+32+1;
printf("%c,%c",c1,c2);
A.a,BB.A,B
C.A,bD.a,b
C10、以下程序的输出结果是C。
#include"stdio.h"
#include"math.h"
main()
{inta=3,b=9;
floaty,x=1.2;
y=(a+b)/sqrt(b)*x;
printf("%\n",y);}
A.1.000000B.1.400000
C.4.800000D.1.900000
C11、以下程序段的输出结果是。
【提示:
printf()为右结合的运算】
inty=7;
printf("%d%d%d",++y,--y,y++);
A.878B.877
C.767D.788
A12、表达式“sizeof(unsignedshort)”的值是。
A.2B.4
C.3D.8
C13、下列程序执行后,屏幕上显示的结果是。
#include"stdio.h"
main()
{inta;
floatb;
a=4;b=9.5;
printf("a=%db=%4.2f\n",a,b);}
A.a=%db=%f\nB.a=%db=%f
C.a=4b=9.50D.a=4b=9.5
C14、以下程序段,当输入“3”并回车后,屏幕上显示的内容是。
intch;
ch=getchar();
putchar();
A.2B.1
C.3D.0
B15、下列程序执行后,屏幕上显示。
intj=2,i=1;
j/=i*j;
printf("%d\n",j);
A.2B.1
C.3D.0
A16、设有定义:
int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是 。
A.k++B.k+=1
C.++kD.k+1
A___17、以下程序的输出结果是 ________。
# include
main()
{ printf("%d\n",strlen("IBM\n012\1\\"));
}
A.9B.7
C.11D.10
B18、下列叙述中,不是C语言特点的是。
A.简洁、紧凑,使用方便、灵活,易于学习和掌握
B.C语言是面向对象的程序设计语言
C.C语言允许直接对位、字节和地址进行操作
D.C语言数据类型丰富,生成的目标代码质量高
D19、C语言程序的大小写字母是。
A.都不加区分B.变量不加区分
C.字符串不加区分D.字符串中区分
C20、C语言程序是由组成。
A.子程序B.主程序和子程序
C.函数D.过程
D21、下面属于C语言标识符的是。
A.1abB.@f
C.?
bD._a12
D22、以下选项中,为C语言合法关键字的是。
A.antB.cher
C.withD.default
A23、以下选项中不合法的用户标识符的是。
A.def.cB.file
C.MainD.PRINTF
B24、C语言中,主函数的个数是B个。
A.2个B.1个
C.任意个D.10个
D25、下列关于C语言注释的叙述中错误的是。
A.以“/*”开头并以“*/”结尾的字符串为C语言的注释符
B.注释可以出现在任何位置,用以提示和注释程序的意义
C.程序编译时,不对注释作任何处理
D.程序编译时,需要对注释进行处理
26、以下选项中不合法的用户标识符的是。
A.def.cB.file
C.MainD.PRINTF
27、C语言中,主函数的个数是B个。
A.2个B.1个
C.任意个D.10个
28、下列关于C语言注释的叙述中错误的是D。
A.以“/*”开头并以“*/”结尾的字符串为C语言的注释符
B.注释可以出现在任何位置,用以提示和注释程序的意义
C.程序编译时,不对注释作任何处理
D.程序编译时,需要对注释进行处理
D29、下列不是C语言分隔符的是。
A.回车B.空格
C.制表符D.双引号
C30、下列关于C语言的关键字的叙述中错误的是。
A.关键字是由C语言规定的具有特定意义的字符串,也称保留字
B.用户定义的标识符不应与关键字相同
C.ANSIC标准规定的保留字有32个
D.ANSIC标准规定的保留字有64个
B31、若有以下定义:
floata;intx,y;则正确的switch语句是。
A.switch(a)B.switch(int(a))
{case1.0:
printf("*\n");{case1:
printf("*\n");
case2.0:
printf("**\n");}case2:
printf("**\n");}
C.switch(x+y)D.switch(x+y);
{case1:
printf("*\n");{case1:
printf("*\n");
case1+2:
printf("**\n");}case2:
printf("**\n");}
D32、以下由while构成循环的次数是D。
inti=1;
while(i==1)i++;
A.执行无限次B.语法错
C.一次也不执行D.执行1次
D33、以下程序的输出结果是。
main()
{inti,mul;
for(i=1;i<3;i++)mul*=1;
printf("%d\n",mul);}
A.3B.6
C.1D.不确定
D34、若m的值为100,则以下for循环执行次数是。
for(j=0;j<=m;printf("*"));j++;
A.执行100次B.语法错
C.一次也不执行D.无限次
C35、若要求在if后一对圆括号中的表达式,表示a等于0时的值为真,则能正确表示这一关系的表达式是。
A.a!
=0B.!
a
C.aD.a=0
A36、下列程序段运行后x的值是。
main()
{inta,b,c,x;
a=b=c=0;x=35;
if(!
a)x--;
elseif(b);
if(c)x=3;
printf("%d",x);}
A.34B.0
C.35D.3
B37、以下程序段的执行结果是。
main()
{intx=23;
do
{printf("%d\n",x--);}while(!
x);
printf("%d\n",x);}
A.3221B.23
22
C.不输出任何内容D.陷入死循环
C38、若从键盘输入5□6以下程序的执行结果是。
main()
{intx,y,m;
scanf("%d%d",&x,&y);
m=x;
if(xm*=m;
printf("%d\n",m);}
A.14B.18
C.36D.20
C39、以下程序的输出结果是。
main()
{inti,j,m=0;
for(i=1;i<=10;i+=3)
for(j=2;j<=12;j+=2)m++;
printf("%d\n",m);}
A.10B.12
C.24D.15
C40、下列关于do...while语句和while语句的叙述中,错误的是。
A.do...while语句先执行循环体中的语句,然后再判断表达式
B.while语句是先进行条件判断,满足条件才去执行循环体
C.while语句至少要执行一次循环语句
D.do...while循环至少要执行一次循环语句
D41、下列关于break语句和continue语句的叙述中错误的是。
A.break可以用来退出循环体
B.continue语句用来退出本次循环,提前进入下次循环的判定
C.break语句和continue语句都可以用在while、do...while和for循环体中
D.在循环语句中,break语句不能和if语句连在一起使用
42、下列程序执行后,b的值为。
main()
{inta=1,b=10;
do
{b-=a;a++;}while(b--<0);
printf("%d\n",a);}
A.8B.-2
C43、以下程序段的输出结果是。
main()
{intx=4;
do
{printf("%4d",x-=3);}while(!
(--x));}
A.1-2B.3-2
C.1-3D.不输出
B44、以下程序的输出结果是。
main()
{inty=10;
for(;y>0;y--)
if(y%3==0){printf("%d",--y);continue;}
}
A.743B.852
C.793D.876
D45、下列程序的输出结果是。
main()
{intn=10;
while(n--);
printf("n=%d\n",n);}
A.构成死循环B.n=0
C.n=1D.n=-1
C46、从以下给出的表达式中选出与while(E)语句中的(E)等价的表达式是。
A.(!
E!
=0)B.(E>0)&&(E<0)
C.(E!
=0)D.(E==0)
D47、下列程序的输出结果是。
main()
{intn=10;
while(n--);
printf("n=%d\n",n);}
A.构成死循环B.n=0
C.n=1D.n=-1
C48、从以下给出的表达式中选出与while(E)语句中的(E)等价的表达式是。
A.(!
E!
=0)B.(E>0)&&(E<0)
C.(E!
=0)D.(E==0)
D49、以下程序的执行结果是。
main()
{intx=10,y=20,t=0;
if(x==y)t=x;x=y;y=t;
printf(“%d%d\n”,x,y);
}
A.1020B.100
C.2010D.200
B50、如果从键盘输入9,则以下程序的执行结果是。
main()
{intn;
scanf(“%d”,&n);
if(n++<10)printf("%d\n",n);
elseprintf(“%d\n”,n--);
}
A.9B.10
C.8D.程序有错
A51、设有以下程序段,则运行后的输出结果是。
intx=5,y=8,max;
max=(x>y)?
x:
y;
printf("%d",max);
A.8B.5
C.3D.13
B52、选择结构程序设计的特点是。
A.自上向下逐个执行B.根据判断条件,选择其中一个分支执行
C.反复执行某些程序代码D.以上都是
C53、inta=2;while(a=0)a--;该循环共执行了次。
A.2B.1
C.0D.无限次
C54、以下程序的执行结果是。
#include"stdio.h"
main()
{intx=1,y=0,a=0,b=0;
for(x=1;x<=4;x++)
{switch(x)
{case1:
switch(y)
{case0:
a++;break;
case1:
b++;break;
}
case2:
a++;b++;break;
case3:
a++;b++;
}
}
printf("a=%d,b=%d\n",a,b);
}
A.a=2,b=1B.a=3,b=2
C.a=4,b=3D.a=5,b=4
D55、以下选项中,当x为大于1的奇数时,值为0的表达式 。
A.x%2==1B.x/2
C.x%2!
=0D.x%2==0
C__56、当执行以下程序时,输入1234567890<回车>,则其中while循环体将执行_____次。
#include
main()
{char ch;
while((ch=getchar())=='0') printf("#");
}
A.执行10次B.执行9次
C.执行0次D.无限次
C57、若x为int型变量,则则以下语句的结果是。
for(x=1;x<100;x++)
if(++x%2==0)
if(++x%3==0)
if(++x%5==0)
printf("%d",x);
A.306090B.295989
C.不打印任何内容D.316191
C58、在C语言中,数组元素下标的下限是。
A.1B.视说明语句而定
C.0D.无固定下限
A59、定义一维数组时,[]内的下标表达式应该是。
A.整型常量表达式B.常量表达式
C.表达式D.整型表达式
C60、若有说明语句:
inta[2][3]={0};,则下面正确的叙述是。
A.此语句说明不正确
B.只有a[0][0]可以得到初值0
C.数组中的每个元素可以得到初值0
D.数组中的每个元素可以得到初值,但不一定为0
B61、下列数组定义正确的是。
A.longa[4]={1,2,3,45};B.floatx[][3]={0};
C.ints[3][]={{1},{2},{3}};D.charz[][2]={};
B62、有语句charstr[10],str2[10]={"China"};,则将字符串"China"赋给数组str的正确语句是。
A.str1={"China"};B.strcpy(str1,str2);
C.str1=str2D.strcpy(str2,str1);
C63、以下对一维数组a的正确定义是。
A.inta(10);B.intn,a[n];
C.#defineN10D.intn;scanf("%d",&n);
inta[N];inta[n];
A64、定义以下变量和数组,则下面语句的输出结果是。
intx[][3]={9,8,7,6,5,4,3,2,1};
for(i=0;i<3;i++)printf("%d",x[i][2-i]);
A.753B.741
C.951D.963
B65、以下程序的输出结果是。
main()
{chara[]={'\1','\2','\3','\4','\0'};
printf("%d%d\n",sizeof(a),strlen(a));
}
A.55B.54
C.45D.44
D66、若有以下语句,则下面是正确的描述。
staticcharx[]="12345";
staticchary[]={'1','2','3','4','5'};
A.x数组和y数组的长度相同B.x数组的长度大于y数组的长度
C.x数组等价于y数组D.x数组的长度小于y数组的长度
A67、若有语句longb[3][3]={{1,2},{9,8},{{7}};则b[1][1]的值为。
A.1B.7
C.8D.9
AB68、在数组中,数组名表示。
A.数组第一个元素的首地址B.数组第一个元素的首地址
C.数组所有元素的首地址D.数组最后一个元素的首地址
D69、以下程序运行后的输出结果是。
main()
{intm[][3]={1,2,3,4,5,6,7,8,9};
inti,k=2;
for(i=0;i<3;i++)printf("%d",m[k][i]);
}
A.456B.258
C.369D.789
C70、以下程序的运行结果是。
main()
{inti,j,m,n;
chara[]={'a','b','c','d','e','f','g','h','\0'};
charb[10]={'a','b','c','d','e','f','g','h','\0'};
i=sizeof(a);j=strlen(a);m=sizeof(b);n=strlen(b);
printf("%d,%d,%d,%d\n",i,j,m,n);
}
A.9,9,10,10B.8,9.8,10
C.9,8,10,8D.9,8,9,8
D71、判断字符串是否相等,应当使用。
A.if(s1=s2)B.if(s1==s2)
C.if(strcpy(s1,s2)D.if(strcmp(s1,s2))
A72、在C语言中,二维数组元素在内存中的存放顺序是。
A.按行存放B.按列存放
C.由用户决定D.由编译器确定
C73、以下程序的运行结果是。
main()
{chars[10],c='a';
for(inti=0;i<5;i++)s[i]=