《(中职)C语言程序设计练习题及答案2套.docx》由会员分享,可在线阅读,更多相关《(中职)C语言程序设计练习题及答案2套.docx(32页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、C语言程序设计练习题及答案2套#include void main() int a,b,s;scanf(%d,%d,&a,&b);s=a;if (sb) s=b;s=s*s;printf(%dn;s);IA) 14 B)16 C)18 D)2056、以下程序的执行结果是 D.#include void main() int x=0.y=l,z=0;if (x=z=y)x=3;printf(%d,%dn,x,z);1A) 3,0B)0,0C) 0,1D)3,l57、假定等级和分数有以下对应关系:等级:A分数:85100等级:B分数:6084等级:C分数:60以下对于等级grade输出相应的分数区
2、间,能够完成该功能的程序段是DA) switch (grade)(case ,A:printf(,85-100nH);case B:printf(60-84n);case C:printf(60 以下n); defiault:printf(等级错误!n);)switch (grade)(case A:prinlf(”85-100n);break;case B:pnnlf(60-84n);case C:primf(”60 以下n”);default:printf(等级错误!n);1switch (grade)case A:printf(85-100nH);break;case B:printf(
3、6084n);break;case C:prinlf(60 以下n);default:printf(等级错误!n);D) switch (grade)case A:prinlf(85-1 OOn);break;case B:printf(60-84n);brcak;case C:pnnlf(60 以下 n);break;dcfault:printf(等级错误!n);58、能够完成如下函数计算的程序段是_B.r -1x0L 1A)y=l;if(x!=O)if(x0) y=l;else y=0;C) y=0;if(x=0) if (x0) y=l;B)if(x=0) if(x0) y=l; els
4、e y=0: else y=-l;D)y=-1; if(x0) y=l; else y=0;else y=-l;59、有如下程序#inciude void main() float x=5.0,y;if(x0.0) y=0.0;else if (x 10.0) y= 1.0/x;else y= 1.0;printf(%fn,y);)该程序的输出结果是CA) ().000000B) 0.50000C) 0.200000D) 1.000000 60、以下程序的执行结果是_B.#include void main() int x=l,y=0;switch (x)case 1:switch (y)(c
5、ase O:prin【f(firsin):break:case 1 :printf(,secondn);break;)case 2:printf(thirdn);B) firstB) firstA) firstsecondthirdC) firstD) secondthird61、以下程序的执行结果是A.#include void main() ini a,b,c,d,x; a=c=0; b=l; d=20;if (a) d=d-10; else if(!b)if (!c) x=l5;else x=25; printf(d=%dn,d); )A)d=20B)d=10 C)d=15 D) 256
6、2、有如下程序:#include void main() inta=2,b=-l,c=2; if(ab)if (b0) c=0;else C+; printf(%dn,c); )该程序的输出结果是_C.A)0B) 1C)2D)363、以下程序执行后的输出结果是B.#include void main() int x,y=l,z;if(z=y)0) x=4;else if (y=0) x=5;else x=6; printf(%d,%dn,x,y);IA) 4,1 B) 6,1 C) 5,0 D)出错信息64、有如下程序#include void inain() int x=l,a=0,b=0;
7、 switch(x)case 0: b+;case 1: a+;case 2: a+;b+;)printf(a=%d,b=%dn,a,b);该程序的输出结果是 A.A) a=2,b= 1 B) a=l,b=l C) a=l,b=0 D) a=2,b=265、下面程序的输出结果是 C.#inckide void main() int a=-l,b=l,k;if(+a0) & (b-=0)printf(%d %dn,a,b);elseprintfC%d %dn,b,a);)A)-l 1B)0 1 C) 1 0D)0 066、假定w、x、y、z、m均为int型变量,有如下程序段: w=l;x=2;y
8、=3;z=4;m=(wx)?w:x; m=(my)?m:y; m=(m100) printf(%dnH,a100);else printf(%dna=100);IA) a=100 B) 100C)0D) 168、假设执行下面的程序从键盘上输入9,那么输出结果是.B#include void main()int n;scanf(%d,&n);if (n+10) printf(%dn,n);else printf(%dn,n-);A) 11 B) 10C)9D)869、以下程序输出结果是 D.#include void main() int m=4;if (+m5) printf(%dn,m-);
9、else printf(%dn,-m);A) 7B)6C)5D)470、假设执行下面的程序从键盘上输入5,那么输出结果是.#inciude void main()int x;scanf(%d,&x);if (x+5) printf(%dn,x);else printf(%dn,x-);)A) 7B)6C)5D)471、以下程序段运行结果是一A.in( x= 1 ,y= 1 ,z=-1;x+=y+=z;printf(%dn,xy?y:x);A) 1B)2C)4 D)不确定的值72、有以下程序#include void tnain() int a,b,c=246;a=c/100%9;b=(-!)&
10、(-!);printf(%d,%dn,a,b);I输出结果是A.A) 2,1B)3,2C) 4,3 D) 2,-173、运行下面程序时,假设从键盘输入数据为“123”, 那么输出结果是_C.#includc stdio.hvoid main() int num,i,j,k,place;scanf(%d,&num);if (num99)placc=3;else if(num9)place=2;elseplace= 1;i=num/IOO;j=(num-i* 100)/10;k=(num-i* 100-j*10);switch (place) case 3: printf(%d%d%dn,kj,i
11、);break;case 2: printf(%d%dn,kj);break;case 1: printf(%dn,k);I)A) 123B) 1,2,3 C) 321 D) 3,2,174、执行以下程序后的输出结果是一D.#include void main() int k=4,a=3,b=2,c= 1;printf(%dnka?k:cb?c:a);IA) 4B)3C)2D) 175、以下条件表达式中能完全等价于条件表达式x的是 B_.A) (x=0)B) (x!=0)C) (x=l)D) (x!=l)76、假设运行下面程序时,给变量a输入15,那么输出结果是_A_.#include voi
12、d main() int a,b;scanf(%d,&a);b=a15?a+10:a-10;printf(%dn,b);IA) 5B)25C) 15 D) 1077、运行下面程序后,输出是D.#include void main() in( k=-3;if(k=0) printf(H*n);else printf(#n)A)#B)*C)#*D)有语法错误不能通过编译78、执行下面程序的输出结果是C.#include void main() int a=5,b=0,c=0;if(a=a+b) printf(n*n);else printf(#n);1A)有语法错误不能编译B)能通过编译,但不能通
13、过连接C)输出* D)输出# 79、为了防止嵌套的if-clse语句的二义性,C语言规定else总是与C组成配对关系.A)缩排位置相同的ifB)在其之前未配对的ifC)在其之前尚未配对的最近的ifD)同一行上的if80、设x、y、z、t均为血型变量,那么执行以下语句后,t的值为C.x=y=z=l;t=+x | +y & +z;A)不定值 B)4 C) 1D)081、以下程序段 C.x=-l;do(x=x*x; while (!x);A)是死循环B)循环执行两次C)循环执行一次D)有语法错误82、对下面程序段描述正确的选项是一B.int x=0,s=0;while (!x!=0) s+=+x;p
14、rintf(%d”,s);A)运行程序段后输出0B)运行程序段后输出1C)程序段中的控制表达式是非法的D)程序段循环无数次83、下面程序段的输出结果是C.x=3;do y=x;if (!y) printf(*);continue;printfC#); vhile(x=2);A)#B)#* C)死循环D)输出错误信息84、下面程序的运行结果是一B.#includevoid main() int a= 1 ,b= 10;do b-=a;a+;)while(b0);printf(%d,%dn,a,b);A) 3,11B)2,8 C) 1,-1D) 4,985、下面程序段的运行结果是一B.int n=
15、0;while (n+=2)printf(%dn);A)012 B) 123 C) 234 D)错误信息86、下面程序段的运行结果是_D.int x=O,y=O;while (x15) y+,x+=+y;printf(%d,%d,y,x);A) 20,7B)6,I2 C) 20,8D)8,2087、下面程序的运行结果是一B.#includcvoid main() int s=0,i=l;while (s= 10) s=s+i*i;i+;)printf(%d,-i);)A) 4B)3C)5D)688、函数pi的功能是根据以下近似公式求n值:C (7T*7t)/6= 1 + 1 /(2*2)+1
16、/(3 *3)+.+ 1 /(n*n)请填空,完成求n的功能。#includc void main() double s=0.0; int i,n; scanf(%ld,&n);for(i=l;i3;x-) if(x%3) x-;-x; -x;printf(n%d ,x);A) 6 3B)7 4C)6 2D)7 390、下面程序的运行结果是 D.#inc)ude void main() int a,b; a=-l; b=0; do +a; +a; b+=a; while(a9); printf(,%dn,b);A) 34B)24C) 26 D) 2591、下面程序段的运行结果是 D.for(i
17、=l;i=5;) prinlf(%d,i); i+;A) 12345 B) 1234 C) 15 D)无限循环92、下面程序的输出结果是 B.#include void main() in( n=4;while (n-) printf(%d ,n);IA) 2 0B)3 1C)3 2 1D)2 1 093、以下程序运行后的输出结果是_D.#includc void main() int i=10J=0;doJ while(i2); printf(%dnM,j);)A) 50B)52C)51D)894、以下函数的功能是:求x的y次方,请填空.一C #includevoid main() int
18、i,x,y; double z; scanf(u%d %d”,&x,&y); for(i=l,z=x;iy;i+)z=z*; printf(xAy=%en,z);A) i+ B) x+C) x D) i95、有如下程序#include void main() int x=23; do printf(%d,x-); while(!x);1该程序的执行结果是一BA)321B)23C)不输出任何内容D)陷入死循环96、以下程序段的执行结果是一C一.int i,j,m=0;for(i=l;i=l5;i+=4) for(j=3;j= 19;j+=4) m+;printf(%dn,m);A) 12 B)
19、15C) 20 D) 2597、下面程序的输出结果是 A.#include void main() int i;for(i=l;i6;i+) if (i%2!=0) printfCicontinue;) prinlf(*);) printf(n);)A)#*#*#B)# C)* D) *#*#*98、下面程序的输出结果是一D.#include void main() int x=10,y=10,i;for(i=0;x8;y=+i) printf(%d %d)A) 10 1 92B)9876C) 10990D) 10 109 199、执行以下程序后,输出的结果是 D.#includc void
20、main() int y=10;1、下面程序的输出是D#includevoid main() int k=l 1;printf(,k=%d,k=%o,k=%xn;k,k,k);A) k=l l,k=12,k=l 1B) k=l l,k=13,k=l3C) k=ll,k=O 13,k=0xbD) k= ll,k=l3,k=b2、在以下选项中,不正确的赋值语句是_D.A)+t;B) nl=(n2=(n3=0);C) k=i=j;D) a=b+c= I;3、下面合法的C语言字符常量是 A.A) f B) AC) 65D)A4、表达式:10!=9的值是 D.A) true B)非零值 C) 0 D)
21、1 5、C语言提供的合法的数据类型关键字是 BA) Double B) short C) integer D) Char 6、字符(char)型数据在微机内存中的存储形式是_D_.A)反码 B)补码 C) EBCDIC 码 D) ASCII 码7、C语言程序的基本单位是 C.A)程序行 B)语句 C)函数 D)字符8、设int a=12,那么执行完语句a+=a-二a*a后,a的值是 DA)552 B) 264 C) 144 D) -264 9、执行下面程序中的输出语句后,输出结果是一B_.#includevoid main()int a;printf(%dn,(a=3*5,a*4,a+5);A
22、) 65B)20 C) 15D) 1010、下面程序的输出是 B.#includevoid main()int x=O23;printf(,%dn,-x);1A) 17 B) 18 C) 23 D) 2411、下面程序的输出的是 C.#includedo y-;while (-y);printf(dn,y-);1A)-I B) I C)8D)0100、有如下程序#includevoid main() ini n=9;while(n6) n-;printf(%d,n);)该程序段的输曲结果是 B.A) 987B)876 C) 8765 D) 9876101、有如下程序#includcvoid m
23、ain() int i,sum=0;for(i= I ;i=3;sum+) sum+=i;printf(%dn,sum);该程序的执行结果是 C.A) 6B)3 C)死循环 D)0102、以下循环体的执行次数是一D#includevoid main() int ij;for(i=0,j=1; i=j+1; i+=2, j-)printf(d1A) 3B)2C) 1D)0103、在执行以下程序时,如果从键盘上输入:ABCdcf回车,,那么输出为 B#include void main() char ch;while (ch=gelchar( )!=n) if(ch=A&ch-a & chz) c
24、h=ch-32;printf(%c,ch);)printf(n);1A) ABCdef B) abcDEF C) abc D) DEF104、下面程序的输出结果是一D.main()int i,k=O, a=0, b=0;fbr(i=l;i=4;i+)k+;if (k%2=0) a=a+k; continue;b=b+k;a=a+k;printf(k=%d a=%d b=%dn,k,a,b);A) k=5 a= 10 b=4B) k=3 a=6 b=4C) k=4 a=10b=3D) k=4 a= 10 b=4105、执行下面程序段后,k的值是一D.int i,j,k;for(i=0j=10;i
25、j;i+j-)k=i+j;A) 9B) 11C)8D) 10 106、下面程序是计算n个数的平均值,请填空.B#include void main() int i,n;float x,avg=0.0; scanf(%d&n); for(i=0;in;i+) scanf(%f;&x); avg=avg+; avg=;printf(avg=%fn,avg);)A)iB)xC)xD)iavg/iavg/navg/x avg/n107、以下程序的功能是:从键盘上输入假设干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。 请填空。D#include void main() float
26、x.amax,amin;scanf(%r,&x);amax=x;amin=x;while () if (xamax) amax=x;if () amin=x; scanf(%f,&x);printf(namax=%iAnamin=%in,aniax,amin);A)x0 C)x0 D)x=0 xamin xamin xamin108、阅读以下程序,程序运行后的输出结果是_B.#includevoid main() int x;fbr(x=5;x0;x-)if(x-5) prin(d,”,x); else printf(%d.,x+); A) 4,3,2B)4,3,l, C) 5,4,2 D)
27、5,3,1,109、以下程序段的输出结果是C.int k,n,m;n=10;m=1;k=l;while (k=n) m*=2;k+=4; prinlf(%dn”,m);A) 4B) 16C)8D)32 110、下面程序的输出结果是_B.#includevoid main()int y=9;for(;y0;y-)if(y%3=0) prinlf(%d”,-y); continue;)A) 741B)852 C) 963 D) 875421 111、下面程序的输出结果是一B.#includevoid main()int x=3;do printf(n%d H,x-=2);while(!(-x);)
28、A) 1 B) 1 -2C)3 0 D)是死循环H2、定义如下变量:int n=10;那么以下循环的输出结果是_B.while(n7) n-; printf(%dnM,n);)A) 10B)9C) 10D)99898H3、语句while(!e);中的条件!e等价于A,A) e=0 B)e!=l C) e!=0 D) -e 114、以下表达正确的选项是 B.A)continue语句的作用是结束整个循环的执行B)只能在循环体内和switch语句体内使用break语句C)在循环体内使用break语句或continue语句的作用相同D)从多层循环嵌套中退出时,只能使用got。语句115、在以下选项中,
29、没有构成死循环的程序段是_D_.A) int i=100;B) for(;);while (1) i=i%100+l;if (i100) break;IC) int k=1000:D) int s=36;do +k;) while (k= 1000); while (s) -s;116、下面程序的输出结果是 A.#includevoid main() int i;for(i=l;i=0);A) 4B)5C)3D)2118、假设i为整型变量,那么以下循环语句的循环次数是_B_.for(i=2;i=0;)printf(%d,i-);A)无限次 B) 0次 C) 1次 D) 2次119、C语言中wh
30、ile do-while循环的主要区别是._A_do-while的循环体至少无条件执行一次A) while的循环控制条件比do-while的循环控制条件严格do-while允许从外部转到循环体内B) do-whilc的循环体不能是复合语句120、对于for(表达式1;表达式3)可理解为 BA) for(表达式1;0;表达式3)for(表达式1;1;表达式3)B) for(表达式1;表达式1;表达式3)for(表达式1;表达式3;表达式3)121、合法的数组定义是_D.A) int a6=string;B) int a5=0,1,2,3,4,5(;C) char a= string); D) c
31、har a =0,123,4,5;122、要求下面的程序运行后,显示如下结果:21046152324785132那么程序中的划线处应填入一B.#include void main() inta4Jl4J=;int i,j;for(i=0;i4;i+)for(j=0;j4;j+) printf(%4d,aij); printf(n); A) 1,5,2,3,2,4,7,8,5,3,2B)2,10,4,6, 1,5,2,3,2,4,7,8 (,5,1,3,25,1,3,2,2,4,7,8,1,5,2,3)C) 2,1,2,5,10,5,4,1,4,2,7,3,6,3,8,2123、给出以下定义:c
32、har x =abcdefg;chary那么正确的表达为一C.A)数组x和数组y等价B)数组x和数组y的长度相同C)数组x的长度大于数组y的长度D)数组x的长度小于数组y的长度124、定义如下变量和数组:int i;int X44= 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16);那么下面语句的输出结果是_C.for(i=0;i4;i+) printf(”3d”,x3-iD;A) I 5 9 13B) 1 6 11 16C)4 7 10 13D)4 8 12 16125、下面程序输出的结果是D一.#include void main() int i,j,x=O;
33、static int a6= 1,2,3,4,5,6);for(i=0,j=l ;i5;+i j+) x+=ai*aj;printf(H%dnx);)A)数组a中首尾的对应元素的乘积B)数组a中首尾的对应元素的乘积之和C)数组a中相邻各元素的乘积D)数组a中相邻各元素的乘积之和126、假设希望下面的程序运行后输出45,程序空白处的正确选择是_C.#include void niain() inti,j=10,al = 1,3,5,7,9,11,13,15;for()j+=ai;printf(,%dnj);IA) i=5;il;i- B) i=0;i=l;-i D) i=2;i6;+i127、假
34、设有以下说明:char si =tree),s2=flower;,那么以下对数组元素或数组的输出语句中,正确的选项是_C_.A) printf(%s%s,sl5,s27j);B)printf(%c%c,sl,s2);C) puts(s l);puts(s2); D) puts(s l,s2);128、以下一维数组初始化语句中,正确且与语句float a=0,3,8,0,9;等价的是 DA) float a6=0,3,8,0,9; B) float a4=0,3,8,0,9;C) float a7=0,3,8,0,9; D) float a5=0,3,8,0,9;129、运行下面程序段的输出结果
35、是_A.char sl10=S,e,t,0,u;p,;0,;printf(%s,sl);Set B) Setup C) Set up D)130、以下程序段的输出结果是一B char s =an apple;printf(%dnstrlen(s);D) 10D) 10A) 7B) 8C)9131、假设有说明:char那么下述说法中正确的选项是D.A)c不可引用B)c可引用,但值不确定C) c4不可引用C) c4不可引用D)c4可引用,其值为空字符132、以下初始化语句中,正确且与语句char c =slring;等价的是 C.A) char c132、以下初始化语句中,正确且与语句char c
36、 =slring;等价的是 C.A) char cchar c 1-string1;C) char c7=,sXr;f;nVgr0,);D) char c7=,string;133、假设有说明char那么对元素的非法引用是 C.A)cO B) c9-6 C) c4*21 D) c2*3134、如有说明:charsl5,s2r7;,要给数组si和s2整体赋值,以下语句中正确的选项是CA) sl=getchar(); s2=getchar();B)scanf(%s%s,sl,s2);C) scanf(%c%c;sl,s2);D) gets(s 1 ,s2);135、以下一组初始化语句中,正确的选项
37、是B.A) int a8= ;B) int a9=05.0,4,8;int a5= 95,7,4,0,2;D) int a=7*6;136、以下程序输出的结果是一D.#include void main() char strl J=la2b3c; int i;for(i=0;stri!=0;i+)if(stri=0,&stri=9,) primf(”c”,stri);printf(nn);IA) 123456789 B) Ia2b3c C) abc D) 123137、以下程序输出的结果是C.#include void main() int a =5,4,3,2,l,i,j;long s=0;
38、for(i=0;i5 ;i+)s=s* 10+ai;printf(s=%ldn,s);)A) s= 12345B)s=5 43 2 1C) s=54321D)以上都不对138、以下程序输出的结果是A.#include void main() int a = l,2,3,4,5,ij,s=0;for(i=0;i以下程序执行时输入Language Programmingv回车:,输出结果是 D.#includc void main() char str3O;gets(str);printf(,str=%sn,str);)A) Lcinguage Programming B) Language C)
39、 str=Languagc D) str= Language Programming142、以下一维数组a的正确定义是D.A) int a(10);B) int n=10,an;int n;D) #define SIZE 10scanf(%d,&n);int aSIZE;int an;143、以下对二维数组a进行正确初始化的是_B.A) int a23= 1,2,3,4,5,6 ;B)int a 3=123,4,5,6 ;C) int a2= 1,2,345,6;int a2=1 1,2,(3,4);144、以下关于数组的描述正确的选项是 C.A)数组的大小是固定的,但可以有不同类型的数组元素。B)数组的大小是可变的,但所有数组元素的类型必须相同。C)数组的大小是固定的,所有数组元素的类型必须相同。D)数组的大小是可变的,可以有不同类型的数组元素。145、以下程序的输出结果是B.#include void main() int a44=1,3,5,),2,4,6),3,5,7);printf(