【计算机类职业资格】国家二级C语言机试(C语言程序设计)模拟试卷26及答案解析.doc
《【计算机类职业资格】国家二级C语言机试(C语言程序设计)模拟试卷26及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】国家二级C语言机试(C语言程序设计)模拟试卷26及答案解析.doc(12页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级 C语言机试(C 语言程序设计)模拟试卷 26及答案解析(总分:70.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.要求通过 while循环不断读入字符,当读入字母 N时结束循环。若变量已正确定义,以下正确的程序段是(分数:2.00)A.while(ch=getchar()=N)printf(“c“,ch);B.while(ch=getchar()=“N“)printf(“c“,ch);C.while(ch=getchar()!=N)printf(“c“,ch);D.while(ch=getchar()=N)printf(“c“,ch);2.若有以下程序
2、main()int a=2,b=0; while(a+) +b: printf(“d,dn“,a,b);则程序的输出结果是(分数:2.00)A.0,2B.1,2C.1,3D.2,33.由以下 while构成的循环,循环体执行的次数是 int k=0;while(k=1)k+;(分数:2.00)A.一次也不执行B.执行一次C.无限次D.有语法错,不能执行4.有以下程序 main()int a=2,b=0;while(a+&+b);printf(“d,dn“,a,b);程序运行后输出结果是(分数:2.00)A.0,3B.1,2C.1,3D.0,25.关于 do循环体 while(条件表达式);以下
3、叙述中正确的是(分数:2.00)A.循环体的执行次数总是比条件表达式的执行次数多一次B.条件表达式的执行次数总是比循环体的执行次数多一次C.条件表达式的执行次数与循环体的执行次数无关D.条件表达式的执行次数与循环体的执行次数一样6.以下不构成无限循环的语句或语句组是(分数:2.00)A.n=0;do+n;while(n=0);B.n=0;while(1)n+;C.n=10;while(n);n-;D.for(n=0,i=1;i+)n+=i;7.有以下程序 main() int i=5; do if(i3=1) if(i5=2)printf(“*d“,i); break; i+; while(i
4、!=0); printf(“n“);程序的运行结果是(分数:2.00)A.*3*5B.*5C.*7D.*2*68.若变量已正确定义,有以下程序段 i=0;doprintf(“d,“,i);while(i+);printf(“dn“,i);其输出结果是(分数:2.00)A.0,0B.1,1C.0,1D.程序进入无限循环9.若有以下程序 main()int a=2,b=0; do+b;while(a+); printf(“d,dn“,a,b);则程序的输出结果是(分数:2.00)A.0,2B.1,2C.1,3D.2,310.有以下程序 main()int a=3; doprintf(“d,“,a=
5、2);while(!(-a); printf(“n“);程序运行后的输出结果是(分数:2.00)A.1,B.1,2,C.3,0,D.1,011.若 i和 k都是 int类型变量,有以下 for语句 for(i=0,k=1; k=1; k+)printf(“*n“);下面关于语句执行情况的叙述中正确的是(分数:2.00)A.循环体执行两次B.循环体执行一次C.循环体一次也不能执行D.构成无限循环12.若 k是 int类型变量,且有以下 for语句 1for(k=1;k0;k+)printf(“*n“);下面关于语句执行情况的叙述中正确的是(分数:2.00)A.循环体执行两次B.循环体执行一次C.
6、循环体一次也不执行D.构成无限循环13.有以下程序段 int i,n;for(i=0;i8;i+)n=rand()5; switch(n) case 1: case 3:printf(“dn“,n);break; case 2: case 4:printf(“dn“,n);continue; case 0:exit(0);printf(“dn“,n);以下关于程序段执行情况的叙述,正确的是(分数:2.00)A.当产生的随机数 n为 4时结束循环操作B.当产生的随机数 n为 1和 2时不做任何操作C.当产生的随机数 n为 0时结束程序运行D.for循环语句固定执行 8次14.有以下程序#incl
7、udestdiohmain()int y=9; for(;y0;y-) if(y3=0)printf(“d“,-y);程序的运行结果是(分数:2.00)A.963B.852C.741D.87542115.有以下程序#includestdiohmain() int i,j,m=1; for(i=1;i3;i+) for(j=3;j0;j-) if(i*j3)break; m*=i*j; printf(“m=dn“,m);程序运行后的输出结果是(分数:2.00)A.m=2B.m=4C.m=5D.m=616.有以下程序#includestdioh void main() int c=0,k; for
8、(k=1;k3;k+) switch(k) default:c+=k; case 2:c+;break; case 4:c+=2;break; printf(“dn“,c);(分数:2.00)A.9B.7C.5D.317.有以下程序#includestdiohmain() int i,j; for(i=3;i=1;i-) for(j=1;j=2;j+)printf(“d“,i+j); printf(“n“);程序的运行结果是(分数:2.00)A.4 3 2 5 4 3B.2 3 3 4 4 5C.4 5 3 4 2 3D.2 3 3 4 2 318.设变量己正确定义,则以下能正确计算 f=n!
9、的程序段是(分数:2.00)A.f=0; for(i=1;i=n;i+)f*=i;B.f=1; for(i=1;in;i+) f*=i;C.f=1; for(i=n;i1;i+)f*=i;D.f=1; for(i=n;i=2;i-) f*=i;19.有以下程序 main()int i; for(i=1;i=40;i+) if(i+5=0) if(+i8=0)printf(“d“,i); printf(“n“);执行后的输出结果是(分数:2.00)A.24B.5C.32D.4020.有以下程序#includestdiohvoid main()char b,c;int i; b=a;c=A; fo
10、r(i=0;i6;i+) if(i2)putchar(i+b); else putchar(i+c); printf(“n“);程序运行后的输出结果是(分数:2.00)A.ABCDEFB.aBcDeFC.abcdefD.AbCdEf21.有以下程序 main()int a=1,b=2;for(;a8;a+) b+=a; a+=2;printf(“d,dn“,a,b);程序运行后的输出结果是(分数:2.00)A.8,11B.10,14C.7,11D.9,1822.有以下程序段 int i,n;for(i=0;i8;i+) n=rand()5; switch(n) case 1: case 3:p
11、rintf(“dn“,n);break; case 2: case 4:printf(“dn“,n);continue; case 0:exit(0); printf(“dn“,n);(分数:2.00)A.当产生的随机数 n为 4时结束循环操作B.当产生的随机数 n为 1和 2时不做任何操作C.当产生的随机数 n为 0时结束程序运行D.for循环语句固定执行 8次23.若有以下程序 main()int a=6,b=0,c=0; for(;a;) b+=a; a=+c; printf(“d,d,dn“,a,b,c);则程序的输出结果是(分数:2.00)A.1,14,3B.0,18,3C.0,14
12、,3D.0,14,624.若有以下程序 main()int a=6,b=0,c=0; for(;a&(b=0);) b+=a; a=c+; printf(“d,d,dn“,a,b,c);则程序的输出结果是(分数:2.00)A.6,0,0B.5,6,0C.6,6,1D.5,6,125.以下叙述中正确的是(分数:2.00)A.对于“for(表达式 1;表达式 2;表达式 3)循环体”首先要计算表达式 2的值,以便决定是否开始循环B.对于“for(表达式 1;表达式 2;表达式 3)循环体”,只在个别情况下才能转换成 while语句C.只要适当地修改代码,就可以将 do-while与 while相互
13、转换D.如果根据算法需要使用无限循环(即通常所称的“死循环”),则只能使用 while语句26.若有以下程序#include char*a=“you“: char b=“Welcome you to China!“; main()int i,j=0;char*p; for(i=0;bi!=0;i+) if(*a=bi) p=a; for(j=i;*p!=0;j+) if(*p!=bj)break; p+; if(*p=0)break; printf(“s“,&bi);则程序的输出结果是(分数:2.00)A.you to China!B.to China!C.me you to China!D.
14、China!27.以下程序段中的变量已正确定义 for(i=0;i4:i+,i+) for(k=1;k3;k+); printf(“*“);程序段的输出结果是(分数:2.00)A.*B.*C.*D.*28.有以下程序 main() int i,j; for(i=1;i4;i+) for(j=i;j4;j+) printf(“d*d=d”,i,j,i*j); printf(“n“); (分数:2.00)A.1*1=1 1*2=2 1*3=3 2*1=2 2*2=4 3*1=3B.1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9C.1*1=1 1*2=2 1*3=3 2*2=
15、4 2*3=6 3*3=9D.1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=929.有以下程序 #includestdioh main() int i,j,m=55; for(i=1;i=3;i+) for(j=3;j=i;j+)m=mj; printf(“dn“,m); 程序的运行结果是(分数:2.00)A.0B.1C.2D.330.以下叙述中正确的是(分数:2.00)A.循环发生嵌套时,最多只能两层B.三种循环 for,while,do-while 可以互相嵌套C.循环嵌套时,如果不进行缩进形式书写代码,则会有编译错误D.for语句的圆括号中的表达式不能都省略掉31.
16、有以下程序 main() int i,j,x=0; for(i=0;i2;i+) x+; for(j=0;j=3;j+) if(j2)continue; x+; x+; printf(“x=dn“,x);程序执行后的输出结果是(分数:2.00)A.x=4B.x=6C.x=12D.x=832.有以下程序 #includestdioh main()int x=8; for(;x0;x-) if(x3)printf(“d,“,x-);continue; prinff(“d,“,-x); 程序的运行结果是(分数:2.00)A.8,7,5,2,B.9,7,6,4,C.7,4,2,D.8,5,4,2,33
17、.以下叙述中正确的是(分数:2.00)A.continue语句的作用是:使程序的执行流程跳出包含它的所有循环B.break语句只能用在循环体内和 switch语句体内C.在循环体内使用 break语句和 continue语句的作用相同D.break语句只能用于 switch语句体中34.以下叙述中正确的是(分数:2.00)A.break语句不能用于提前结束 for语句的本层循环B.continue语句使得整个循环终止C.使用 break语句可以使流程跳出 switch语句体D.在 for语句中,continue 与 break的效果是一样的,可以互换35.以下叙述中正确的是(分数:2.00)A
18、.当 break出现在循环体中的 switch语句体内时,其作用是跳出该 switch语句体,并中止循环体的执行B.只能在循环体内和 switch语句体内使用 break语句C.continue语句的作用是:在执行完本次循环体中剩余语句后,中止循环D.在 while语句和 do-while语句中无法使用 continue语句国家二级 C语言机试(C 语言程序设计)模拟试卷 26答案解析(总分:70.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.要求通过 while循环不断读入字符,当读入字母 N时结束循环。若变量已正确定义,以下正确的程序段是(分数:2.00)A.
19、while(ch=getchar()=N)printf(“c“,ch);B.while(ch=getchar()=“N“)printf(“c“,ch);C.while(ch=getchar()!=N)printf(“c“,ch); D.while(ch=getchar()=N)printf(“c“,ch);解析:解析:while 循环的执行过程如下: 计算 while后面圆括号中表达式的值,当值为非 0时,执步骤;当值为 0时,执行步骤: 执行循环体一次: 转去执行步骤; 退出循环。 在选项 C)中,表达式(ch=getchar()!=N表示输入的字符不等于 N,如果这个条件表达式成立,则执行
20、循环体,打印输出输入的字符。如果这个条件表达式不成立,即输入的字符等于 N,则退出循环。2.若有以下程序 main()int a=2,b=0; while(a+) +b: printf(“d,dn“,a,b);则程序的输出结果是(分数:2.00)A.0,2B.1,2 C.1,3D.2,3解析:解析:循环体执行两次,第一次表达式 a+值为2,a 的值为1,执行循环体+b,b 值为 1,第二次表达式 a+值为1,a 的值等于 0,执行+b,b 值为 2,第三次判断条件 a+,表达式值为 0,不执行循环体,但是条件判断以后,a 的值为 1。3.由以下 while构成的循环,循环体执行的次数是 int
21、 k=0;while(k=1)k+;(分数:2.00)A.一次也不执行B.执行一次C.无限次 D.有语法错,不能执行解析:解析:循环条件表达式为赋值表达式 k=1,因此循环执行无限次。4.有以下程序 main()int a=2,b=0;while(a+&+b);printf(“d,dn“,a,b);程序运行后输出结果是(分数:2.00)A.0,3B.1,2 C.1,3D.0,2解析:解析:循环体为空,共执行 2次。第一次变量 a初值为2,b 初值为 0,表达式 a+&+b值为1,同时 a的值为1,b 的值为 1,第二次循环条件判断以后,a 的值为 0,b 的值 2,执行循环体空,第三次判断条件
22、表达式值为 0,不执行循环体,而 a的值为 1,但是表达式 a+的值为 0,因此不计算表达式+b的值,b 的值仍为 2。5.关于 do循环体 while(条件表达式);以下叙述中正确的是(分数:2.00)A.循环体的执行次数总是比条件表达式的执行次数多一次B.条件表达式的执行次数总是比循环体的执行次数多一次C.条件表达式的执行次数与循环体的执行次数无关D.条件表达式的执行次数与循环体的执行次数一样 解析:解析:dowhile 语句先执行语句,后判断表达式的值。故 doVwhile语句又称“直到型”循环结构。由于是先执行后判断,因此 dowhile语句的循环语句至少被执一次,循环条件至少判断一次
23、。6.以下不构成无限循环的语句或语句组是(分数:2.00)A.n=0;do+n;while(n=0); B.n=0;while(1)n+;C.n=10;while(n);n-;D.for(n=0,i=1;i+)n+=i;解析:解析:选项 B)中 while(1)永远为真所以进入死碥环,选项 C)中 whiIe(n=10)同理,选项 D)中 for循环没有循环限定条件也将进入无限循环,只有选项 A)中 while(n=0)循环判定成立,循环将不进入无限循环。7.有以下程序 main() int i=5; do if(i3=1) if(i5=2)printf(“*d“,i); break; i+;
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 国家 二级 语言 语言程序设计 模拟 试卷 26 答案 解析 DOC
