C语言复习题及参考答案处理 1.docx
- 文档编号:4637992
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:18
- 大小:30.27KB
C语言复习题及参考答案处理 1.docx
《C语言复习题及参考答案处理 1.docx》由会员分享,可在线阅读,更多相关《C语言复习题及参考答案处理 1.docx(18页珍藏版)》请在冰豆网上搜索。
C语言复习题及参考答案处理1
C语言复习题
一、单项选择
1、以下叙述正确的是:
__B__。
A)C语言的源程序不必通过编译就可以直接运行。
B)C语言中的每条可执行语句最终都将被转换成二进制的机器指令。
C)C语言源程序经编译形成的二进制代码可以直接运行。
D)C语言中的函数不可以单独进行编译。
2、以下4个用户定义标识符中,全部合法的一组是__A__。
A)_mainencludesin B)if–maxturbo C)txtREAL3COM D)intk_2_001
3、以下不能定义为用户标识符的是_D__。
A)scanf B)Void C)_3com D)int
4、C语言中用于结构化程序设计的3种基本结构是__A__。
A)顺序结构、选择结构、循环结构
B)if、switch、break
C)for、while、do-while
D)if、for、continue
5、为解决某一特定问题而设计的指令序列称为__C__。
A)文档 B)语言 C)程序 D)系统
6、用高级程序设计语言编写的程序称为__C__。
A)目标程序 B)可执行程序 C)源程序 D)伪代码
7、能将高级语言编写的源程序转换成目标程序的是__B__。
A)编辑程序 B)编译程序 C)驱动程序 D)链接程序
8、下列叙述中,正确一条是__C__。
A)计算机语言中,只有机器语言属于低级语言。
B)高级语言源程序可以被计算机直接执行。
C)C语言属于高级语言。
D)机器语言是所用机器无关的。
9、以下符合C语言语法的实型常量是__C__。
A)1.2E0.5 B)3.14159E C).5E-3 D)E15
10、下面叙述正确的是__A___。
A)C程序中注释部分可以出现在程序中任何合适的地方。
B)花括号“{”和“}”只能作为函数体的定界符。
C)构成C程序的基本单位是函数,所有函数名都可以由用户命名。
D)分号是C语句之间的分隔符,不是语句的一部分。
11、设有以下定义:
inta=0;doubleb=1.25;charc=’A’;
#defined2
则下面语句中,错误是__D__。
A)a++; B)b++; C)c++; D)d++;
12、设有如下程序段:
intx=2002,y=2003;
printf(“%d\n”,(x,y));
则以下叙述正确的是__D__。
A)输出语句中格式说明的个数少于输出项的个数,不能正确输出。
B)运行时产生出错信息。
C)输出值为2002。
D)输出值为2003。
13、要求以下程序功能是计算:
main(){intn;floats;s=1.0;
for(n=10;n>1;n--)s=s+1/n;
printf(“%6.4f\n”,s);}
程序运行后输出结果错误,导致错误结果的程序行是__C__。
A)s=1.0; B)for(n=10;n>1;n--) C)s=s+1/n; D)printf(“%6.4f\n”,s);
14、在一个C程序中__B__。
A)main函数必须出现在所有函数之前。
B)main函数可以在任何地方出现。
C)main函数必须出现在所有函数之后。
D)main函数必须出现在固定位置。
15、下列关于C语言用户标识符的叙述中正确的是__B__。
A)用户标识中可以出现下划线和中划线(减号)。
B)用户标识符中不可以出现中划线,但可以出现下划线。
C)用户标识符中可以出现下划线,但不可以放在用户标识符的开头。
D)用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头。
16、有以下程序:
main(){inti=10,j=1;printf(“%d,%d\n”,i--,++j);}
执行后输出结果是__B_。
A)9,2B)10,2 C)9,1 D)10,1
17、、一个C语言的源程序中,___A__。
A)必须有一个主函数 B)可能有多个主函数
C)必须有除主函数外其它函数 D)可以没有主函数
18、C语言程序总是从_C__开始执行。
A)第一条语句 B)第一个函数 C)主函数 D)子程序
19、在C语言中,不正确的shortint类型常数是__A__。
A)32768 B)0 C)037 D)0xAF
20、C语言中运算对象必须是整形的运算符是__A__。
A)%=B)/C)=D)*=
21、设有intx=11;,则表达式(x++*1/3)的值是__A__。
A)3 B)4 C)11 D)12
22、若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是_C__。
A)1 B)2 C)2.0 D)12
23、若变量已正确定义并赋值,下面符合C语言语法的表达式是_B___。
A)a:
=b+1 B)a=b=c+2 C)int18.5%3 D)a=a+7=c+b
24、假定有以下变量定义:
intk=7,x=12;,则值为3的表达式是_D__。
A)x%=(k%=5) B)x%=(k-k%5) C)x%=k-k%5 D)(x%=k)-(k%=5)
25、设x和y均为int型变量,则下列语句:
x+=y;y=x-y;x-=y;的功能是__D__。
A)把x和y按从大到小排列 B)把x和y按从小到大排列
C)无确定结果 D)交换x和y中的值
26、设x、y、z和k都是int型变量,则执行表达式:
x=(y=4,z=16,k=32)后,x的值为_C_。
A)4 B)16 C)32 D)52
27、有以下程序:
main(){intx=102,y=012;
printf(“%2d,%2d\n”,x,y);}
执行后输出结果是__C__。
A)10,01 B)02,12 C)102,10 D)02,10
28、有定义语句:
intx,y;,若要通过语句scanf(“%d,%d”,&x,&y);使变量x得到数值11,变量y得到数值12,下面四组输入形式中,正确的是__C__。
A)11 12<回车> B)11, 12<回车> C)11,12<回车> D)11,<回车> 12<回车>
29、设有定义:
inta,*pa=&a;,以下scanf语句中能正确为变量a读入数据的是_A___。
A)scanf(“%d”,pa); B)scanf(“%d”,a); C)scanf(“%d”,&pa); D)scanf(“%d”,*pa);
30、若有变量a,i已正确定义,且i已正确赋值,合法的语句是_B___。
A)a==1 B)++i C)a=a++=5 D)a=int(i)
31、有如下程序:
main(){inty=3,x=3,z=1;printf(“%d%d\n”,(++x,y++),z+2);}
运行该程序的输出结果是__D__。
A)3 4 B)4 2 C)4 3 D)3 3
32、以下程序的输出结果是__D__。
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
33、以下叙述正确是__D__。
A)输入项可以是一个实型常量,如:
scanf(“%d”,3.5)。
B)只有格式控制,没有输入项,能正确输入数据到内存,如:
scanf(“a=%d,b=%d);。
C)当输入一个实型数据时,格式控制部分可以规定小数点后的位数,例如:
scanf(“%4.2f”,&f)。
D)当输入数据时,必须指明变量的地址,例如:
scanf(“%f”,&f);
34、以下程序段中与语句k=a>b?
(b>c?
1:
0):
0;功能等价的是__A__。
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;
35、有以下程序:
此题应注意短路逻辑
main(){inta=1,b=2,m=0,n=0,k;k=(n=b>a)||(m=a
程序运行后的输出结果是__C__。
A)0,0 B)0,1 C)1,0 D)1,1
36、程序中对fun函数有如下说明C
void*fun();
此说明的含义是
A)fun函数无返回值
B)fun函数的返回值可以是任意的数据类型
C)fun函数的返回值是无值型的指针类型
D)指针fun指向一个函数,该函数无返回值
37、当a=1,b=3,c=5,d=4时,执行下面一段程序后,x的值的为_A_。
if(a
if(c>d)x=1;
elseif(a if(b>d)x=2; elsex=3; elsex=6; elsex=7; A)1 B)2 C)3 D)4 38、当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是_C__。 A)c=b=a; B)(a=c)||(b=c); C)(a=c)&&(b=c); D)a=c=b; 39、能正确表示逻辑关系: “a≥10或a≤0”的C语言表达式是__D_。 A)a>=10ora<=0 B)a>=0|a<=10 C)a>=10&&a<=0 D)a>=10||a<=0 40、设有如下定义: inta=1,b=2,c=3,d=4,m=2,n=2;,则执行表达式: (m=a>b)&&(n=c>d)后,n的值为_B__。 注意短路逻辑 A)1 B)2 C)3 D)0 41、语句: printf(“%d”,(a=2&&(b=-2));的输出结果是_D__。 A)无输出 B)结果不确定 C)-1 D)1 42、设intx=1,y=1;,表达式(! x||y--)的值是__B__。 A)0 B)1 C)2 D)-1 43、有以下程序: main(){inti,s=0;for(i=1;i<10;i+=2)s+=i+1;printf(“%d\n”,s);} 程序执行后的输出结果是__D__。 A)自然数1~9的累加和 A)自然数1~10的累加和 C)自然数1~9中奇数之和 D)自然数1~10中偶数之和 44、有如下程序: main(){ints=0,a=1,n;scanf(“%d”,&n); do{s+=1;a=a-2;}while(a! =n); printf(“%d”,s);} 若要使程序输出值为2,则应该从键盘输入的值是_B__。 A)-1 B)-3 C)-5 D)0 45、以下函数的功能是: 通过键盘输入数据,为数组中的所有元素赋值。 #defineN10 voidarrin(intx[N]){inti=0;while(i 在下划线处应填写的是_C__。 注意x为数组,它是地址 A)x+i B)&x[i+1] C)x+(i++) D)&x[++i] 46、有如下程序: main(){inti,sum;for(i=1;i<=3;sum++)sum+=i;printf(“%d\n”,sum);} 该程序的执行结果是_C__。 A)6 B)3 C)死循环 D)0 47、有如下程序: main(){intn=9;while(n>6){n--;printf(“%d”,n);}} 该程序段的输出结果是_B__。 A)987 B)876 C)8765 D)9876 48、以下程序的输出结果是_D__。 main(){intx=10,y=10,i;for(i=0;x>8;y=++i)printf(“%d%d”,x--,y);} A)10192 B)9876 C)10990 D)101091 49、以下程序的输出结果是_A__。 main(){intn=4;while(n--)printf(“%d”,--n);} A)20 B)31 C)321 D)210 50、当执行以下程序段时,__A__。 x=-1;do{x=x*x;}while(! x); A)循环体将执行1次 B)循环体将执行2次 C)循环体将执行无限次 D)系统提示有语法错误 51、执行语句: for(i=1;i++<4;);后变量i的值是__C__。 A)3 B)4 C)5 D)不定 52、有如下程序段: inta=14,b=15,x; charc=’A’; x=(a&&b)&&(c<’B’); 执行该段程序后,x的值为__D__。 A)true B)false C)0 D)1 53、若程序中定义了以下函数: doublemyadd(doublea,doubleb){return(a+b);} 将其放在调用语句之后,则在调用之前应该对函数进行说明,以下选项中错误的说明是____。 A A)doublemyadd(doublea,b) B)doublemyadd(double,double) C)doublemyadd(doubleb,doublea) D)doublemyadd(doublex,doubley) 54、有以下函数定义: voidfun(intn,doublex){……} 若以下选项中的变量都已经正确定义并赋值,则对函数fun的正确调用语句是_C__。 A)fun(inty,doublem); B)k=fun(10,12.5); C)fun(x,n); D)voidfun(n,x); 55、设有定义: intn=0,*p=&n,**q=&p;下列选项中,正确的赋值语句是_D_。 A)p=1B)*q=2C)q=pD)*p=5 56、有以下程序: #include main(){printf(“%d\n”,NULL);} 程序运行后的输出结果是__A_。 A)0B)1C)-1D)NULL没定义,出错 57、已经定义以下函数: fun(int*p){return*p;} 该函数的返回值是_C__。 A)不确定值B)形参p中存放的值 C)形参p所指存储单元中的值D)形参p的地址值 58、有以下程序段: main(){inta=5,*b,**c;c=&b;b=&a;…} 程序在执行了c=&b;b=&a;语句后,表达式**c的值是__C_。 A)变量a的地址B)变量b中的值 C)变量a中的值D)变量b的地址 59、有如下程序段 int*p,a=10,b=1;p=&a;a=*p+b;执行该程序段后,a的值为_B__。 A)12B)11C)10D)编译出错 60、下列程序的输出结果是_A__。 voidfunc(int*a,intb[]){b[0]=*a+6;} main(){inta,b[5];a=0;b[0]=3;func(&a,b);printf(“%d\n”,b[0]);} A)6B)7C)8D)9 61、有以下程序: inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;b=p[5]; b中的值是_D__。 A)5B)6C)8D)9 62、以下不能正确定义二维数组的选项是_D__。 A)inta[2][2]={{1},{2}}B)inta[][2]={1,2,3,4} C)inta[2][2]={{1},2,3}D)inta[2][]={{1,2},{3,4}} 63、有以下程序: main(){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]);} 程序运行后的输出结果是_C__。 A)456B)258C)369D)789 二、填空题 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); 则输出结果是__-3___。 (注: %运算结果的符号与%前面数据的符号相同) 3、若有定义: inta=10,b=9,c=8;接着顺序执行下列语句后,变量b中的值是__3__。 c=(a-=(b-5));c=(a%11)+(b=3); 4、设有以下变量定义,并已赋确定的值,charw;intx;floaty;doublez; 则表达式: w*x+z-y年求得的数据类型为__double或双精度型。 5、有以下语句段: intn1=10,n2=20; printf(“_____”,n1,n2);\nn1=%d\nn2=%d 要求按以下格式输出n1和n2的值,每个输出行从第一列开始,请填空。 n1=10 n2=20 6、若有以下程序: 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<回车>____。 7、若想通过以下输入语句使得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); …….. 8、有4条语句: x++;、++x;、x=x+1;、x=1+x;,执行后都使变量x中的值增1,写出一条同一功能的赋值语句(不得与列举的相同)__x+=1;__。 9、以下程序的输出的结果是_261__。 main(){inta=177;printf(“%o\n”,a);} 10、以下程序的输出结果是_2,1___。 main(){inta=1,b=2;a=a+b;b=a-b;a=a-b;printf(“%d,%d\n”,a,b);} 11、有以下程序: main(){intn=0,m=1,x=2; if(! n)x-=1; if(m)x-=2; if(x)x-=3; printf(“%d\n”,x);} 执行后输出结果是_-4___。 12、以下程序运行后的输出结果是__3__。 main(){intp=30;printf(“%d\n”,(p/3>0? p/10: p%3));} 13、以下程序运行后的输出结果是__yes__。 main(){inta=1,b=3,c=5; if(c=a+b)printf(“yes\n”); elseprintf(“no\n”); 14、有以下程序: main(){intp,a=5; if(p=a! =0)printf(“%d”,p); elseprintf(“%d\n”,p+2);} 执行后输出结果是_1___。 15、下面程序的功能是: 输出100以内能被3整除且个位数为6的所有整数,请将程序补充完整,使之能完成需要的功能。 i<10或i<=9j%3! =0或j%3或j/3*3! =j main(){inti,j; for(i=0;_____;i++){ j=i*10+6; if(___)continue; printf(“%d”,j);}} 16、下面的if语句与y=(x>=10)? 3*x-11: (x<1)? x: 2*x-1;的功能相同,请补充程序,使之能完成要求的功能。 1、x<102、x>=1 if(_1_) if(_2__)y=2*x-1; elsey=x; elsey=3*x-11; 17、若x为int类型,请以最简单的形式写出与逻辑表达式! x等价的C语言关系表达式__。 x==0 18、表示“整数x的绝对值大于5”时值为“真”的C语言表达式是___。 x>5||x<-5 19、有以下程序: main(){intt=1,i=5;for(;i>=0;i--)t*=i;printf(“%d\n”,t);} 执行后输出的结果是___。 0注意此题的技巧 20、执行以下程序后,输出’#’号的个数是___。 6 #include main(){inti,j;for(i=1;i<5;i++) for(j=2;j<=i;j++)putchar(‘#’);} 21、要使以下程序段输出10个整数,请填入一个整数。 for(i=0;i<=_____;printf(“%d\n”,i+=2));18或19 22、函数pi的功能是根据以下公式求π的近似值。 (π*π)/6=1+1/(2*2)+1/(3*3)+1/(n*n) 请在下面的函数中填空,完成求π的功能。 #include doublepi(longn){ doubles=0.0;longi; for(i=1;i<=n;i++)s=s+____;1.0/(i*i) return(sqrt(6*s));} 23、若输入字符串: abcde<回车>,则以下while循环执行__0__次。 while((ch=getchar())==’e’)printf(“*”); 24、下面程序的功能是: 计算1~10之间奇数之和及偶数之和,请填空。 main(){inta,b,c,i;a=c=0; for(i=0;i<=10;i+=2){a+=i;______;}c=c+i+1; printf(“偶数之和=%d\n”,a); printf(“奇数之和=%d\n”,c);} 25、已知字符’A’的ASCII码值是65,以下语句的输出结果是____。 B66 charch=’B’;printf(“%c%d\n”,ch,ch); 26、有以下程序: #include main(){charch1,ch2;intn1,n2;ch1=getchar();ch2=getchar();n1=ch1-‘0’;n2=n1*10+(ch2-‘0’); printf(“%d\n”,n2);} 程序运行时输入: 12<回车>,执行后输出结果是____。 12 27、以下程序运行后的输出结果是____。 b main(){charm;m=’B’+32;printf(“%c\n”,m);} 28、有以下程序: main(){chara;a=’H’-‘A’+’
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言复习题及参考答案处理 语言 复习题 参考答案 处理