C语言综合习题及参考答案.docx
- 文档编号:30456446
- 上传时间:2023-08-15
- 格式:DOCX
- 页数:37
- 大小:37.84KB
C语言综合习题及参考答案.docx
《C语言综合习题及参考答案.docx》由会员分享,可在线阅读,更多相关《C语言综合习题及参考答案.docx(37页珍藏版)》请在冰豆网上搜索。
C语言综合习题及参考答案
C语言习题集
一、程序设计基本概念
1、以下叙述正确的是:
____。
A)C语言的源程序不必通过编译就可以直接运行。
B)C语言中的每条可执行语句最终都将被转换成二进制的机器指令。
C)C语言源程序经编译形成的二进制代码可以直接运行。
D)C语言的源程序通过编译后直接生成.exe文件。
2、一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述中错误的是__。
A)有0个或多个输入。
B)有0个或多个输出。
C)有穷性。
D)可行性。
3、以下叙述中正确的是_____。
A)C语言比其它语言高级。
B)C语言可以不用编译就能被计算机识别执行。
C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式。
D)C语言出现的,具有其它语言的一切优点。
4、C语言中用于结构化程序设计的3种基本结构是____。
A)顺序结构、选择结构、循环结构
B)if、switch、break
C)for、while、do-while
D)if、for、continue
5、为解决某一特定问题而设计的指令序列称为____。
A)文档 B)语言 C)程序 D)系统
6、用高级程序设计语言编写的程序称为____。
A)目标程序 B)可执行程序 C)源程序 D)伪代码
7、能将高级语言编写的源程序转换成目标程序的是____。
A)编辑程序 B)编译程序 C)驱动程序 D)链接程序
8、下列叙述中,正确一条是____。
A)计算机语言中,只有机器语言属于低级语言。
B)高级语言源程序可以被计算机直接执行。
C)C语言属于高级语言。
D)机器语言是与所用机器无关的。
二、C程序设计初步
1、以下4个用户定义标识符中,全部合法的一组是____。
A)_mainencludesin B)if–maxturbo C)txtREAL3COM D)intk_2_001
2、以下不能定义为用户标识符的是___。
A)ff B)Void C)_3com D)int
3、若以下选项中的变量已正确定义,则正确的赋值语句是___。
A)x1=26.8%3; B)1+2=x2; C)x3=0x12; D)x4=1+2=3;
4、设有定义:
floata=2,b=4,h=3;以下C语言表达式中与代数式
计算结果不相符的是____。
A)(a+b)*h/2 B)(1/2)*(a+b)*h C)(a+b)*h*1/2 D)h/2*(a+b)
5、下面叙述正确的是_____。
A)C程序中注释部分可以出现在程序中任何合适的地方。
B)花括号“{”和“}”只能作为函数体的定界符。
C)构成C程序的基本单位是函数,所有函数名都可以由用户命名。
D)分号是C语句之间的分隔符,不是语句的一部分。
6、下列选项中可以作为C语言中合法整数的是____。
A)10110B B)0386 C)0xffa D)x2a2
7、设有以下定义:
inta=0;doubleb=1.25;charc=’A’;
#defined2
则下面语句中,错误是____。
A)a++; B)b++; C)c++; D)d++;
8、设有如下程序段:
intx=2002,y=2003;
printf(“%d\n”,(x,y));
则以下叙述正确的是____。
A)输出语句中格式说明的个数少于输出项的个数,不能正确输出。
B)运行时产生出错信息。
C)输出值为2002。
D)输出值为2003。
9、要求以下程序功能是计算:
main(){intn;floats;s=1.0;
for(n=10;n>1;n--)s=s+1/n;
printf(“%6.4f\n”,s);}
程序运行后输出结果错误,导致错误结果的程序行是____。
A)s=1.0; B)for(n=10;n>1;n--) C)s=s+1/n; D)printf(“%6.4f\n”,s);
10、在一个C程序中____。
A)main函数必须出现在所有函数之前。
B)main函数可以在任何地方出现。
C)main函数必须出现在所有函数之后。
D)main函数必须出现在固定位置。
11、下列关于C语言用户标识符的叙述中正确的是____。
A)用户标识中可以出现下划线和中划线(减号)。
B)用户标识符中不可以出现中划线,但可以出现下划线。
C)用户标识符中可以出现下划线,但不可以放在用户标识符的开头。
D)用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头。
12、下列关于单目运算符++、--的叙述中正确的是____。
A)它们的运算对象可以是任何变量和常量。
B)它们的运算对象可以是char型变量和int型变量,但不能是float型变量。
C)它们的运算对象可以是int型变量,但不能是double型变量和float型变量。
D)它们的运算对象可以是char型变量、int型变量和float型变量。
13、有以下程序:
main(){inti=10,j=1;printf(“%d,%d\n”,i--,++j);}
执行后输出结果是___。
A)9,2B)10,2 C)9,1 D)10,1
填空题
1、以下sum函数的功能是计算下列级数之和。
,请给函数中的各变量正确赋初值。
doublesum(doublex,intn)
{inti;doublea,b,s;
_________s=1.0;a=1;b=1;
for(i=1;i<=n;i++)
{a=a*x;b=b*i;s=s+a/b;}
returns;}
2、若有语句:
inti=-19,j=i%4;printf(“%d\n”,j);
则输出结果是_____。
(注:
%运算结果的符号与%前面数据的符号相同)
同步练习
1、一个C语言的源程序中,_____。
A)必须有一个主函数 B)可能有多个主函数
C)必须有除主函数外其它函数 D)可以没有主函数
2、C语言程序总是从___开始执行。
A)第一条语句 B)第一个函数 C)主函数 D)子程序
3、对C语言源程序执行过程描述正确是____。
A)从main函数开始执行。
B)从程序中第一个函数开始执行,到最后一个函数结束。
C)从main函数开始执行,到源程序最后一个函数结束。
D)从第一个函数开始,到main函数结束。
4、以下选项中合法的用户标识符是____。
A)longB)_2TestC)3DmaxD)for
5、以下对C语言的描述中正确是_____。
A)C语言源程序中可以有重名的函数。
B)C语言源程序要求每行只能书写一条语句。
C)注释可以出现在C语言源程序中的任何位置。
D)最小的C语言源程序中没有任何内容。
6、在标准C中,不正确的int类型常数是____。
A)32768 B)0 C)037 D)0xAF
7、以下选项中属于C语言的数据类型是____。
A)复数型 B)逻辑型 C)双精度型 D)集合型
8、下列变量中定义合法的是____。
A)shor_a=1-1e-1;B)doubleb=1+5e2.5;C)longdo=0xfdal;D)float2_and=1-e-3;
9、C语言中运算对象必须是整形的运算符是____。
A)%=B)/C)=D)*=
10、设有intx=11;,则表达式(x++*1/3)的值是____。
A)3 B)4 C)11 D)12
11、若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是___。
A)1 B)2 C)2.0 D)12
12、若有以下程序段:
intc1=1,c2=2,c3;c3=1/c2*c1;,则执行后,c3中的值是___。
A)0 B)0.5 C)1 D)2
13、执行下列程序的输出结果是___(小数点后只定1位)。
main(){doubled;floatf;longm;inti;
i=f=m=d=20/3;
printf(“%d%ld%f%f\n”,i,m,f,d);}
A)666.06.0B)6666.76.7C)666.06.7D)666.76.0
14、设有以下的变量定义:
inti=8,k,a,b;
unsignedlongw=5;
doublex=1.42,y=5.2;
则以下符合C语言语法的表达式是____。
A)a+=a-=(b=4)*(a=3)B)x%(-3)C)a=a*3=2D)y=float(i)
15、执行下列程序后的输出结果是___。
main(){doubled=3.2;intx,y;
x=1.2;y=(x+3.8)/5.0;
printf(“%d\n”,d*y);}
A)3B)3.2C)0D)3.07
16、若变量已正确定义并赋值,下面符合C语言语法的表达式是____。
A)a:
=b+1 B)a=b=c+2 C)int18.5%3 D)a=a+7=c+b
17、设x和y均为int型变量,则下列语句:
x+=y;y=x-y;x-=y;的功能是____。
A)把x和y按从大到小排列 B)把x和y按从小到大排列
C)无确定结果 D)交换x和y中的值
18、设x、y、z和k都是int型变量,则执行表达式:
x=(y=4,z=16,k=32)后,x的值为__。
A)4 B)16 C)32 D)52
三、顺序结构
典型考试题
1、以下4个选项中,不能看作一条语句的是___。
A){;} B)a=0,b=0,c=0; C)if(a>0); D)if(b==0)m=a;n=2;
2、有以下程序:
main(){intx=102,y=012;
printf(“%2d,%2d\n”,x,y);}
执行后输出结果是____。
A)10,01 B)02,12 C)102,10 D)02,10
3、有定义语句:
intx,y;,若要通过语句scanf(“%d,%d”,&x,&y);使变量x得到数值11,变量y得到数值12,下面四组输入形式中,正确的是____。
A)11 12<回车> B)11, 12<回车> C)11,12<回车> D)11,<回车> 12<回车>
4、若有以下程序段(n为八进制数)
intm=32767,n=032767;printf(“%d,%o\n”,m,n);
执行后输出结果是____。
A)32767,32767 B)32767,032767 C)32767,77777 D)32767,077777
5、若有以下程序段:
intm=0xabc,n=0xabc;
m-=n;
printf(“%X\n”,m);
执行后输出的结果是____。
A)0X0 B)0x0 C)0 D)0XABC
6、有以下程序段:
intm=0,n=0;charc=’a’;
scanf(“%d%c%d”,&m,&c,&n);
printf(“%d,%c,%d\n”,m,c,n);
若从键盘上输入:
10A10<回车>,则输出结果是____。
A)10,A,10 B)10,a,10 C)10,a,0 D)10,A,0
7、设有定义:
inta,*pa=&a;,以下scanf语句中能正确为变量a读入数据的是____。
A)scanf(“%d”,pa); B)scanf(“%d”,a); C)scanf(“%d”,&pa); D)scanf(“%d”,*pa);
填空题
1、有以下语句段:
intn1=10,n2=20;
printf(“_____”,n1,n2);\nn1=%d\nn2=%d
要求按以下格式输出n1和n2的值,每个输出行从第一列开始,请填空。
n1=10
n2=20
2、若有以下程序:
main(){inti,j;scanf(“i=%d,j=%d”,&i,&j);printf(“i=%d,j=%d\n”,i,j);}
要求给i赋值10,给j赋值20,则应该从键盘输入_i=10,j=20<回车>____。
3、若有以下程序:
main(){inta=4,b=3,c=5,t=0;
if(a
if(a printf(“%d%d%d\n”,a,b,c);} 执行后输出结果是_____。 练习 2、有如下程序: main(){inty=3,x=3,z=1;printf(“%d%d\n”,(++x,y++),z+2);} 运行该程序的输出结果是____。 A)3 4 B)4 2 C)4 3 D)3 3 3、下列程序的运行结果是____。 main(){inta=2,c=5;printf(“a=%d,b=%d\n”,a,c);} A)a=%2,b=%5 B)a=2,b=5 C)a=d,b=d D)A=%d,b=%d 4、以下说法中正确的是____。 A)#define和printf都是C语句。 B)#define是C语句,而printf不是。 C)printf是C语句,但#define不是。 D)#define和printf都不是C语句。 5、以下程序的输出结果是____。 main(){intk=17;printf(“%d,%o,%x\n”,k,k,k);} A)17,21,0x11 B)17,17,17 C)17,0x11,021 D)17,21,11 6、若有说明: long*p,a;则不能通过scanf语句正确给输入项读入数据的程序段是___。 A)*p=&a;scanf(“%ld”,p); B)p=(long*)malloc(4);scanf(“%ld”,p); C)scanf(“%ld”,p=&a);C)scanf(“%ld”,&a); 7、以下叙述正确是____。 A)输入项可以是一个实型常量,如: scanf(“%d”,3.5)。 B)只有格式控制,没有输入项,能正确输入数据到内存,如: scanf(“a=%d,b=%d);。 C)当输入一个实型数据时,格式控制部分可以规定小数点后的位数,例如: scanf(“%4.2f”,&f)。 D)当输入数据时,必须指明变量的地址,例如: scanf(“%f”,&f);。 8、以下程序的输出结果是____。 main(){inta=12,b=12;printf(“%d%d\n”,--a,++b);} A)1010 B)1212 C)1110 D)1113 填空题 1、若想通过以下输入语句使得a=5.0,b=4,c=3,则输入数据的形式应该是_5.0,4,c=3<回车>或5,4,c=3<回车>_。 ……. intb,c;floata; scanf(“%f,%d,c=%d”,&a,&b,&c); …….. 2、有4条语句: x++;、++x;、x=x+1;、x=1+x;,执行后都使变量x中的值增1,写出一条同一功能的赋值语句(不得与列举的相同)__;__。 3、以下程序的输出的结果是___。 main(){inta=177;printf(“%o\n”,a);} 4、以下程序的输出结果是____。 main(){inta=1,b=2;a=a+b;b=a-b;a=a-b;printf(“%d,%d\n”,a,b);} 四、选择结构 典型考题 1、以下程序段中与语句k=a>b? (b>c? 1: 0): 0;功能等价的是____。 A)if((a>b&&(b>c))k=1;elsek=0; B)if((a>b)||(b>c))k=1;elsek=0; C)if(a<=b)k=0;elseif(b<=c)k=1; D)if(a>b)k=1;elseif(b>c)k=1;elsek=0; 2、有以下程序: main(){chark;inti; for(i=1;i<3;i++){ scanf(“%c”,&k);switch(k){case‘0’: printf(“another\n”);case‘1’: printf(“number\n”);}}} 程序运行时,从键盘输入: 01<回车>,程序执行后的输出结果是___。 case穿透 A)another number B)another number another C)another number number D)number number 3、有以下程序: main(){intx=0,y=5,z=3;while(z-->0&&++x<5)y=y-1;printf(“%d,%d,%d\n”,x,y,z);} 程序执行后的输出结果是____。 A)3,2,0 B)3,2,-1 C)4,3,-1 D)5,-2,-5 4、有定义语句: inta=1,b=2,c=3,x;,则以下选项中各程序段执行后,x的值不等于3的是C。 A)if(c elseif(b elsex=3; B)if(a<3)x=3; elseif(a<2)x=2; elsex=1; C)if(a<3)x=3; if(a<2)x=2; if(a<1)x=1; D)if(a
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 综合 习题 参考答案