[计算机类试卷]国家二级C语言机试(C语言程序设计)模拟试卷26及答案与解析.doc
《[计算机类试卷]国家二级C语言机试(C语言程序设计)模拟试卷26及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级C语言机试(C语言程序设计)模拟试卷26及答案与解析.doc(24页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级 C语言机试( C语言程序设计)模拟试卷 26及答案与解析 一、选择题 1 要求通过 while循环不断读入字符,当读入字母 N时结束循环。若变量已正确定义,以下正确的程序段是 ( 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 若有以下程序 main()int a= 2, b=0
2、; while(a+) +b: printf(“ d, d n“, a, b); 则程序的输出结果是 ( A) 0, 2 ( B) 1, 2 ( C) 1, 3 ( D) 2, 3 3 由以下 while构成的循环,循环体执行的次数是 int k=0; while(k=1)k+; ( A)一次也不执行 ( B)执行一次 ( C)无限次 ( D)有语法错,不能执行 4 有以下程序 main()int a= 2, b=0; while(a+&+b); printf(“ d, d n“, a, b); 程序运行后输出结果是 ( A) 0, 3 ( B) 1, 2 ( C) 1, 3 ( D) 0,
3、2 5 关于 do循环体 while(条件表达式 );以下叙述中正确的是 ( A)循环体的执行次数总是比条件表达式的执行次数多一次 ( B)条件表达式的执行次数总是比循环体的执行次数多一次 ( C)条件表达式的执行次数与循环体的执行次数无关 ( D)条件表达式的执行次数与循环体的执行次数一样 6 以下不构成 无限循环的语句或语句组是 ( 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 i
4、f(i 3=1) if(i 5=2)printf(“* d“, i); break; i+; while(i!=0); printf(“ n“); 程序的运行结果 是 ( A) *3*5 ( B) *5 ( C) *7 ( D) *2*6 8 若变量已正确定义,有以下程序段 i=0; do printf(“ d, “, i); while(i+); printf(“ d n“, i); 其输出结果是 ( A) 0, 0 ( B) 1, 1 ( C) 0, 1 ( D)程序进入无限循环 9 若有以下程序 main()int a= 2, b=0; do+b; while(a+); printf(“
5、 d, d n“, a, b); 则程序的输出结果是 ( A) 0, 2 ( B) 1, 2 ( C) 1, 3 ( D) 2, 3 10 有以下程序 main()int a=3; doprintf(“ d, “, a =2); while(!(-a); printf(“ n“); 程序运行后的输出结果是 ( A) 1, ( B) 1, 2, ( C) 3, 0, ( D) 1, 0 11 若 i和 k都是 int类型变量,有以下 for语句 for(i=0, k= 1; k=1; k+)printf(“* n“); 下面关于语句执行情况的叙述中正 确的是 ( A)循环体执行两次 ( B)循环
6、体执行一次 ( C)循环体一次也不能执行 ( D)构成无限循环 12 若 k是 int类型变量,且有以下 for语句 1 for(k= 1; k 0; k+)printf(“* n“); 下面关于语句执行情况的叙述中正确的是 ( A)循环体执行两次 ( B)循环体执行一次 ( C)循环体一次也不执行 ( D)构成无限循环 13 有以下程序段 int i, n; for(i=0; i 8; i+) n=rand() 5; switch(n) case 1: case 3: printf(“ d n“, n); break; case 2: case 4: printf(“ d n“, n); c
7、ontinue; case 0: exit(0); printf(“ d n“, n); 以下关于程序段执行情况的叙述,正确的是 ( A)当产生的随机数 n为 4时结束循环操作 ( B)当产生的随机数 n为 1和 2时不做任何操作 ( C)当产生的随机数 n为 0时结束程序运行 ( D) for循环语句固定执行 8次 14 有以下程序 #include stdio h main() int y=9; for(; y 0; y-) if(y 3=0)printf(“ d“, -y); 程序的运行结果是 ( A) 963 ( B) 852 ( C) 741 ( D) 875421 15 有以下程序
8、 #include stdio h main() int i, j, m=1; for(i=1; i 3; i+) for(j=3; j 0; j-) if(i*j 3)break; m*=i*j; printf(“m= d n“, m); 程序运行后的输出结果是 ( A) m=2 ( B) m=4 ( C) m=5 ( D) m=6 16 有以下程序 #include stdio h void main() int c=0, k; for(k=1; k 3; k+) switch(k) default: c+=k; case 2: c+; break; case 4: c+=2; break
9、; printf(“ d n“, c); ( A) 9 ( B) 7 ( C) 5 ( D) 3 17 有以下程序 #include stdio h main() int i, j; for(i=3; i =1; i-) for(j=1; j =2; j+)printf(“ d“, i+j); printf(“ n“); 程序的运行结果是 ( A) 4 3 2 5 4 3 ( B) 2 3 3 4 4 5 ( C) 4 5 3 4 2 3 ( D) 2 3 3 4 2 3 18 设变量己正确定义,则以下能正确计算 f=n!的程序段是 ( A) f=0; for(i=1; i =n; i+)f*
10、=i; ( B) f=1; for(i=1; i n; i+) f*=i; ( C) f=1; for(i=n; i 1; 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(+i 8=0)printf(“ d“, i); printf(“ n“); 执行后的输出结果是 ( A) 24 ( B) 5 ( C) 32 ( D) 40 20 有以下程序 #include stdio h void main() char b, c; int i; b=
11、a; c=A; for(i=0; i 6; i+) if(i 2)putchar(i+b); else putchar(i+c); printf(“ n“); 程序运行后的输出结果是 ( A) ABCDEF ( B) aBcDeF ( C) abcdef ( D) AbCdEf 21 有以下程序 main() int a=1, b=2; for(; a 8; a+) b+=a; a+=2; printf(“ d, d n“, a, b); 程序运行后的输出结果是 ( A) 8, 11 ( B) 10, 14 ( C) 7, 11 ( D) 9, 18 22 有以下程序段 int i, n; f
12、or(i=0; i 8; i+) n=rand() 5; switch(n) case 1: case 3: printf(“ d n“, n); break; case 2: case 4: printf(“ d n“, n); continue; case 0: exit(0); printf(“ d n“, n); ( A)当产生的随机数 n为 4时结束循环操作 ( B)当产生的随机数 n为 1和 2时不做任何操作 ( C)当产生的随机数 n为 0时结束程序运行 ( D) for循环语句固定执行 8次 23 若有以下程序 main()int a=6, b=0, c=0; for(; a;
13、 ) b+=a; a =+c; printf(“ d, d, d n“, a, b, c); 则程序的输出结果是 ( A) 1, 14, 3 ( B) 0, 18, 3 ( C) 0, 14, 3 ( D) 0, 14, 6 24 若有以下程序 main()int a=6, b=0, c=0; for(; a&(b=0); ) b+=a; a =c+; printf(“ d, d, d n“, a, b, c); 则程序的输出结果是 ( A) 6, 0, 0 ( B) 5, 6, 0 ( C) 6, 6, 1 ( D) 5, 6, 1 25 以下叙述中正确的是 ( A)对于 “for(表达式
14、1;表达式 2;表达式 3)循环体 ”首先要计算表达式 2的值,以便决定是否开始循环 ( B)对于 “for(表达式 1;表达式 2;表达式 3)循环体 ”,只在个别情况下才能转换成 while语句 ( C)只要适当地修改代码,就可以将 do-while与 while相互转换 ( 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+)
15、if(*a=bi) p=a; for(j=i; *p!= 0; j+) if(*p!=bj)break; p+; if(*p= 0)break; printf(“ s“, &bi); 则程序的输出结果是 ( A) you to China! ( B) to China! ( C) me you to China! ( D) China! 27 以下程序段中的变量已正确定义 for(i=0; i 4: i+, i+) for(k=1; k 3; k+); printf(“*“); 程序段的输出结果是 ( A) * ( B) * ( C) * ( D) * 28 有以下程序 main() int
16、i, j; for(i=1; i 4; i+) for(j=i; j 4; j+) printf(“ d* d= d”, i, j, i*j); printf(“ n“); ( A) 1*1=1 1*2=2 1*3=3 2*1=2 2*2=4 3*1=3 ( B) 1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 ( C) 1*1=1 1*2=2 1*3=3 2*2=4 2*3=6 3*3=9 ( D) 1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9 29 有以下程序 #include stdio h main() int i,j, m=55; f
17、or(i=1; i =3; i+) for(j=3; j =i; j+)m=m j; printf(“ d n“, m); 程序的运行结果是 ( A) 0 ( B) 1 ( C) 2 ( D) 3 30 以下叙述中正确的是 ( A)循环发生嵌套时,最多只能两层 ( B)三种循环 for, while, do-while可以互相嵌 套 ( C)循环嵌套时,如果不进行缩进形式书写代码,则会有编译错误 ( D) for语句的圆括号中的表达式不能都省略掉 31 有以下程序 main() int i, j, x=0; for(i=0; i 2; i+) x+; for(j=0; j =3; j+) if
18、(j 2)continue; x+; x+; printf(“x= d n“, x); 程序执行后的输出结果是 ( A) x=4 ( B) x=6 ( C) x=12 ( D) x=8 32 有以下程序 #include stdio h main()int x=8; for(; x 0; x-) if(x 3)printf(“ d, “, x-); continue; prinff(“ d, “, -x); 程序的运行结果是 ( A) 8, 7, 5, 2, ( B) 9, 7, 6, 4, ( C) 7, 4, 2, ( D) 8, 5, 4, 2, 33 以下叙述中正确的是 ( A) co
19、ntinue语句的作用是:使程序的执行流程跳出包含它的所有循环 ( B) break语句只能用在循环体内和 switch语句体内 ( C)在循环体内使用 break语句和 continue语句的作用相同 ( D) break语句只能用于 switch语句体中 34 以下叙述中正确的是 ( A) break语句不能用于提前结束 for语句的本层循环 ( B) continue语句使得整个循环终止 ( C)使用 break语句可以使流程跳出 switch语句体 ( D)在 for语句中, continue与 break的效果是一样的,可以互换 35 以下叙述中正确的是 ( A)当 break出现在
20、循环体中的 switch语句体内时,其作用是跳出该 switch语句体,并中止循环体的执行 ( B)只能在循环体内和 switch语句体内使用 break语句 ( C) continue语句的作用是:在执行完本次循环体中剩余语句后,中止循环 ( D)在 while语句和 do-while语句中无法使用 continue语句 国家二级 C语言机试( C语言程序设计)模拟试卷 26答案与解析 一、选择题 1 【正确答案】 C 【试题解析】 while循环的执行过程如下: 计算 while后面圆括号中表达式的值,当值为非 0时,执步骤 ;当值为 0时,执行步骤 : 执行循环体一次: 转去执行步骤 ;
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 语言 语言程序设计 模拟 26 答案 解析 DOC
