C语言程序设计题库附答案.docx
《C语言程序设计题库附答案.docx》由会员分享,可在线阅读,更多相关《C语言程序设计题库附答案.docx(68页珍藏版)》请在冰豆网上搜索。
C语言程序设计题库附答案
一、选择题
1、可以在C语言中使用的一组用户标识符是()。
A、3BsizeofDOB、ab34c1_c2_for
C、_123t2_a1_printfD、void6bhat
2、以下均是字符常量或数值常量的选项是()。
A、0.00f8.9e‘&’B、”A”3.9e-2.51e1
C、’3’0110xff000aD、0xabcd2e350.
3、以下选项中正确的实型常量是()。
A、0B、0.618*10C、567D、3.1415
4、将汇编语言编写的程序翻译为目标程序的是()程序。
A、解释B、编译C、汇编D、目标
5、不属于面向机器的语言是()。
A、符号语言B、机器语言C、汇编语言D、C语言
6、程序段的基本结构中,不包含()。
A、函数结构B、循环结构C、顺序结构D、分支结构
7、下列符号中,不属于转义字符的是()。
A、\\B、\0xaaC、\0D、\t
8、正确的C语言标识符是()。
A、_sum_1B、1_sumC、?
_sumD、sum?
9、增1减1运算只能作用于()。
A、常量B、变量C、表达式D、函数
10、设“inta=2,b=2;”,则++a+b的结果是(),a的结果是(),b的结果是()。
A、2B、3C、4D、5
11、下列运算符中优先级最高级的是()。
A、++B、%C、*D、=
12、设“inta=2;”,则表达式“(a++*1/3)”的值是(),a的值是()。
A、0B、1C、2D、3
13、字符数据在内存中的存储代码采用的是()。
A、反码B、补码C、EBCDIC码D、ASCII码
14、chara;intb;floatc;doubled;
则表达式a*b+d-c值的类型为()。
A、intB、floatC、doubleD、char
15、字符串”\”\123\n\321a”的长度是()。
A、1B、5C、9D、13
16、下列常量中,不属于字符常量的是()。
A、’\1x’B、’0’C、’\’’D、’\n’
17、语句printf("a\bre\'hi\'y\\\bou\n");的输出结果是
A.a\bre\'hi\'y\\\bouB.a\bre\'hi\'y\bou
C.re'hi'youD.abre'hi'y\bou
18、设整型变量k的值为011,下列表达式中值不为1的是()。
A、k%8B、k/8C、++k-8D、k++-8
19、设整型变量m的值为2,则执行printf("%d,",m+++m---m++);
printf("%d\n",m);后的结果是()。
A、-1,2B、0,2C、3,3D、2,3
20、整型变量x、y和z已定义并已赋值,下列表达式正确的是()。
A、x=5++B、5=x++C、x=y=z==xD、x=y+1=z
21、设整型变量m的值为8,则表达式“m-=m+=m*=m/=m”的值是()。
A、8B、1C、0D、-1
22、设有整型变量x、y和z,则下列表达式中不属于逗号表达式的是()。
A、x>y,z=0B、x,y=zC、x++,(y,z)D、x=(y,z)
23、在C语言数据类型转换原则中,以下错误的是()。
A、若+、-、*、/运算的两个数中有一个数为实型,则结果为实型。
B、如果int型与double型数据进行运算,结果是double型。
C、char型与int型进行运算,把字符型数据的ASCII码与整型数据进行运算,结果为整型。
D、char型与int型进行运算,运算结果为char型。
24、设有整型变量x和单精度型变量y,最终运算结果不是单精度型的表达式是()。
A、(int)y+xB、(int)x+y
C、(float)y+xD、(float)x+y
25、若已定义x和y为double类型,则表达式:
x=1,y=x+3/2的值是( )。
A、1 B、 2 C、 2.0 D、 2.5
26、以下叙述正确的是()。
A、在C程序中无论是整数还是浮点数,只要允许的范围内都准确无误地表示。
B、若有“doublea,b;”定义,可以直接执行语句“a=b+3.456;”因为b已正确定义。
C、在C语言中,常量、变量、函数调用都是表达式的一种
D、在main函数中,一旦定义一个变量,系统将自动赋给它初值。
27、以下选项中,不正确的赋值语句是()。
A、i++;B、i+=7;C、x+y=z;D、y=(int)x+4;
28、以下选项中不是C语言语句的是()。
A、{inti=1;i++;}B、;
C、k=5,a=10D、{;;}
29、设整形变量n的值为9,下列表达式中值为1的表达式是()。
A、!
nB、!
n>1C、!
n!
=1D、!
n!
==1
30、不能正确表达数学中逻辑关系“y在x和z之间(xA、(x((x>=y)||(y>=z))
C、!
(!
(x(y31、设整形变量m和n的值均为1,计算表达式“(m=m!
=n)&&(n=m==n)”后,m和n的值是()。
A、1,1B、1,0C、0,1D、0,0
32、设整形变量x的值为8,则表达式“x>5?
x++:
--x”的值是()。
A、9B、8C、7D、1
33、设有整形变量m,n和k的值均为6,则表达式“n=k=++m,m=n!
=k”的值是()。
A、0B、1C、6D、7
34、下列表达式中,值不为4的表达式是()。
A、sizeof(double)B、sizeof(float)
C、sizeof(long)D、sizeof(unsignedlong)
35、能判断整形变量m是偶数的正确表达式是()。
A、m/2B、m%2C、m%2!
=0D、m%2==0
36、设字符型变量ch的值为’A’,整型变量m的值为1,假定执行ch=getchar();m=getchar();时,从键盘输入B<回车>,则变量ch和m的值分别为()。
A、’A’和’1’B、’B’和’1’
C、’B’和‘□’D、’B’和’\n’
(注:
□表示空格)
37、设字符型变量ch的值为’A’,整型变量m的值为’1’,假定执行putchar(m);putchar(‘□‘);putchar(ch);后,则输出结果是()。
A、A1B、1AC、A□1D、1□A
38、设整型变量a和b的值分别为8和9,printf(“%d,%d”,(a++,++b),b--);的输出是()。
A、8,8B、8,7C、9,9D、10,9
39、设有下列程序段,则其正确的输出是()。
intx=011,y=0x11;
printf(“x=%-3dy=%3d”,x,y);
A、□□917□B、x=9□□y=□17
C、x=□□9y=17□D、x=11y=x11
40、运行下列程序的输出是()。
main()
{charch=’B’;
printf(“%c%d”,ch,ch++);
}
A、C65B、B65C、B66D、C66
41、若a、b、c均为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);
42、以下程序,输入ABC<回车>后,执行结果是()。
main()
{charc;
scanf(“%3c”,&c);
printf(“%c\n”,c);
}
A、ABCB、AC、BD、C
43、以下程序()。
main()
{intx=0,y=0,z=0;
if(x=y+z)printf(“******\n”);
elseprintf(“######\n”);
}
A、有语法错误,不能编译通过B、输出******
C、可以通过编译,但不能通过连接,因此不能运行D、输出######
44、以下程序输出结果为()。
main()
{inta=2,b=-1,c=2;
if(a
if(b<0)c=0;
elsec+=1;
printf(“%d\n”,c);
}
A、0B、1C、2D、3
45、以下程序输出结果为()。
main()
{inta=2,b=-1,c=2;
if(a
{if(b<0)c=0;}
elsec+=1;
printf(“%d\n”,c);
}
A、0B、1C、2D、3
46、以下()为不正确的if语句。
A、if(xB、if(x!
=y)scanf(“%d”,&x)elsescanf(“%d”,&y);
C、if(x==y)x+=y;
D、if(x47、若执行以下程序时从键盘输入5,则输出结果为()。
main()
{intx;
scanf(“%d”,&x);
if(x++<5)printf(“%d\n”,x);
elseprintf(“%d\n”,x--);
}
A、7B、6C、5D、4
48、设字符型变量ch已有值,下列语句中错误的是()。
A、scanf(“%c%c”,ch,ch);B、{intch=6;printf(“%d”,ch);}
C、5;D、ch>48&&ch<0x3A;
49、设整形变量x,y,z的值值分别为3,2,1,则下列程序段的输出是()。
if(x>y)x=y;if(x>z)x=z;printf(“%d,%d,%d\n”,x,y,z);
A、1,1,1B、1,2,1
C、1,2,3D、3,2,1
50、执行下列程序段后,变量x的值是()。
inta=8,b=7,c=6,x=1;
if(a>6)if(b>7)if(c>8)x=2;elsex=3;
A、0B、1C、2D、3
51、运行下列程序的结果是()。
main()
{floatx=-28.9,y;
if(x<0)y=-x;else
if(x<0)y=x;elsey=0;
printf(“%f\n”,y);
}
A、-28.9B、28.9C、-28D、28
52、运行下列程序的结果是()。
main()
{inta1=10,a2=-9,a3=0,a4=100,x;
if(a1if(a1if(a2printf(“%d,%d,%d,%d\n”,a1,a2,a3,a4)
}
A、-9,0,10,100B、100,10,0,-9
C、0,-9,10,100D、100,10,-9,0
53、运行下列程序的结果是()。
main()
{inta1=1,a2=1,a3=1,a4=1;
if(a1>0)a3++;
if(a1>a2)a3--;
elseif(a1==a2)a3++;
elsea3--;
printf(“%d,%d,%d,%d\n”,a4,a3,a2,a1);
}
A、1,1,1,1B、1,2,3,4
C、4,3,2,1D、1,3,1,1
54、下列正确的switch语句是()。
A、switch(x)
{case1.0:
printf(“*\n”);
case2.0:
printf(“**\n”);}
B、switch(intx)
{case1:
printf(“*\n”);
case2:
printf(“**\n”);}
C、switch(a+b)
{case1:
printf(“*\n”);
case1+2:
printf(“***\n”);}
D、switch(a+b);
{case1:
printf(“*\n”);
case2:
printf(“*\n”);}
(说明:
switch后面的表达式(由常数、符号常量组成的表达式)必须为整型,也可用字符表达式。
因此,选项A的case后出现实型常量是不对的,选项Bswitch后面的括号中只能出现变量名,而出现类型说明符是不对的,选项C中switch后面的表达式多了一个分号)
55、以下程序段的输出结果是()。
intx=0,y=2,z=3;
switch(x+1)
{case1:
switch(y==2)
{case1:
printf(“*”);break;
case2:
printf(“%”);break;}
case2:
switch(z)
{case1:
printf(“$”);
case2:
printf(“*”);break;
default:
printf(“#”);}
}
A、*#B、*$*C、*%$*#D、*
56、以下语句中,()不可能做到提前退出循环体语句。
A、gotoB、breakC、continueD、return
57、执行下列语句后,整型变量x的值为()。
switch(x=1){case0:
x=10;break;
case1:
switch(x=2){case1:
x=20;break;
case2:
x=30;
}
}
A、30B、20C、10D、1
58、执行下列程序后的输出结果是()。
charx=’9’;
while(x>’7’)
printf(“%c”,x--);
A、99B、98C、987D、87
59、执行下列程序段后的输出结果是()。
intm=8;
while(m>=5)m--,--m,n=m---m;
printf(“%d,%d”,m,n);
A、2,0B、5,-1C、5,0D、5,1
60、设整型变量x的值为1,执行下列程序段后,变量x的值是()。
dox++;while(x++<2);
A、2B、3C、4D、5
61、下列语句的输出结果是()。
for(i=2;i>0;i--)for(j=0;j
A、**B、***C、****D、******
62、执行下列语句后,变量k的值是()。
for(k=0;k<=5;k++)dok++;while(k<5);
A、5B、6C、7D、8
63、下列程序段中,不能使变量m的值等于10的程序段是()。
A、m=0;
while(m++<9);
B、dom=0;
while(m++<10);
C、for(m=8;m<10;m++);
D、m=0;
L:
m++;if(m<10)gotoL;
64、执行下列程序的输出结果是()。
main()
{inti,m,n1=1,n2=1,n3;
for(m=n1+n2,i=1;i<5;i++)
{n3=n1+n2;m=m+n3;n1=n2,n2=n3;}
printf(“%d\n”,m);
}
A、6B、12C、20D、33
65、如果在程序执行时输入:
abc12.3xz和回车键,则输出结果为()。
main()
{charch;
floatx=0;
do{ch=getchar();
if((‘0’<=ch)&&(ch<’9’))x=x*10+ch-48;
}while(ch!
=’\n’);
printf(“%f\n”,x);
}
A、abcB、12.3C、123D、123.0
66、下列叙述正确的是()。
A、continue和break只能用在循环体中
B、continue只能用在循环体中
C、break只能用在循环体中
D、continue只能用在循环体外
67、执行下列程序的输出结果是()。
main()
{intk;
for(k=9;k>0;k--)
if(k/3==0)continue;
elseprintf(“%d”,k);
}
A、875421B、9876543C、987654321D、963
68、下列程序的主要功能是计算并输出1!
+2!
+…+10!
。
缺少的内容是()。
main()
{floaty=1.0,x;
inti,n;
for(n=2;n<11;n++)
{;
for(i=2;i<=n;i++)x=x*i;
y=y+x;
}
printf(“%f\n”,y);
}
A、x=0.0B、x=0C、x=1.0D、x=(float)n
69、下列程序的功能是根据以下公式求π值(直到最后一项小于10-6为止),程序中缺少的是()。
main()
{doubles=0.0,t=1.0;
intn;
for(n=1;t>=1e-6;n++)
{s+=t;;}
printf(“%f\n”,2.0*s);
}
A、t*=n/2*n+1B、t=n*t/(2*n+1)
C、t=t*n/2*n+1D、t=t*n/(2*n-1)
70、设某网站成立第一天有10人点击,以后每天的点击数都是前一天的3倍多10人。
下列程序是计算第11天有多少人点击,其中缺少是()。
main()
{longs=10;
inti;
for()s=3*s+10;
printf(“%ld\n”,s);
}
A、i=1;i<=11;i++B、i=1;i<12;i++
C、i=2;i<12;i++D、i=2;i<=12;i++
71、定义数组时,代表数组长度的不能是()。
A、整型表达式B、符号常量
C、整型常量D、整型常量表达式
72、在选用数组元素的下标时,可能造成程序运行出错的下标是()。
A、正实数B、整型变量C、0D、-1
73、设有语句“inta[]={1,2,3,9,8,7};”,则表达式“a[2]-a[4]”的值是()。
A、-2B、-4C、-5D、-7
74、以下程序运行后,输出结果是()。
main()
{inty=18,i=0,j,a[8];
do
{a[i]=y%2;i++;
y=y/2;
}while(y>=1);
for(j=i-1;j>=0;j--)
printf(“%d”,a[j]);
printf(“\n”);
}
A、10000B、10010C、00110D、10100
75、下列程序的运行结果是()。
main()
{inta[6],i;
for(i=1;i<6;i++)
{a[i]=9*(i-2+4*(i>3))%5;
printf(“%2d”,a[i]);
}
}
A、-40404B、-40403
C、-40443D、-40440
76、设有下列定义语句,则表达式“x[1][1]*x[2][2]”的值是()。
floatx[3][3]={{1.0,2.0,3.0},{4.0,5.0,6.0}};
A、0.0B、4.0C、5.0D、10.0
77、设有定义语句“chars1[4]=”abc”;”,则表达式s1[3]的值()。
A、0.0B、0C、‘0’D、‘c’
注:
printf(“%d”,s1[3]);显示0
printf(“%c”,s1[3]);无显示(ascii值为0)
78、若有下列定义和语句,则运行后的输出结果是()。
chars1[4]=”12”;printf(“%s”,s1);
A、1B、12C、□□12D、12\0
□表示空格
79、设有定义语句“chara[]=”123”,b[]={‘1’,’2’,’3’};”
则正确的说法是()。
A、a[3]是不可知的任意字符B、数组a和b的长度相等
C、b[3]的值为’\0’D、数组a长度大于数组b的长度
(注:
不是a中和b中保存的字符串的长度)
80、下列语句在编译时,出错的语句是()。
main()
{floats[][2]={1,2,3,4};/*第1条语句*/
s[1][0]=10;/*第2条语句*/
s[0][0]=s[0]+s[1]+s[2]+s[3];/*第3条语句*/
printf(“%f\n”,s[1][1]);/*第4条语句*/
}
A、第1条语句B、第2条语句
C、第3条语句D、第4条语句
81、运行下列程序的输出结果是()。
main()
{inti,j,k,n[2];
for(i=0;i<2;i++)n[i]=0;
k=2;
for(i=0;ifor(j=0;jprintf(“%d\n”,n[k]);
}
A、1B、3C、程序出错D、不确定的值
82、运行下列程序的输出结果是()。
#defineN7
main()
{intI,j,temp,a[N]={1,2,3,4,5,6,7};
for(i=0;i{j=N-1-i;
temp=a[i];a[i]=a[j];a[j]=temp;
}
for(i=0;i}
A、1234567B、7654321C、1357D、246
83、运行下列程序的输出结果是()。
main()
{intx=123,a1[6]={100,50,10,5,2,1},a2[6],j;
while(x!
=0)
{a2[0]=a2[1]=a2[2]=a2[3]=a2[4]=a2[5]=0;
for(j=0;j<6;j++)
{a2[j]=x/a1[j];
x=x%a1[j];}
printf(“%d,%d,%d,%d,%d,%d,\n”,a2[0],a2[1],a2[2],a2[3],a2[4],a2[5]);
}
}
A、1,2,3,0,0,0B、0,2,0,4,0,3C、1,0,2,0,1,1D、0,0,0,1,2,3
84、运行下列程序的输出结果是()。
main()
{inta[10],a1[]={1,3,6,9,10},a2[]={2,4,7,8,15},i=0,j=0,k;
for(k=0;k<4;k++)
if(a1[i]