ImageVerifierCode 换一换
格式:DOC , 页数:27 ,大小:62KB ,
资源ID:498009      下载积分:2000 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
注意:如需开发票,请勿充值!
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.mydoc123.com/d-498009.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文([计算机类试卷]国家二级C语言机试(循环结构程序设计)模拟试卷2及答案与解析.doc)为本站会员(deputyduring120)主动上传,麦多课文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文库(发送邮件至master@mydoc123.com或直接QQ联系客服),我们立即给予删除!

[计算机类试卷]国家二级C语言机试(循环结构程序设计)模拟试卷2及答案与解析.doc

1、国家二级 C语言机试(循环结构程序设计)模拟试卷 2及答案与解析 一、选择题 1 若有以下程序 #include main() int a=-2, b=0; do +b ; while(a+); printf(“%d,%dn“, a, b); 则程序的输出结果是( )。 ( A) 1,3 ( B) 0,2 ( C) 1,2 ( D) 2,3 2 若有以下程序 #include main() int a=6, b=0, c=0; for ( ;a ) b += a; a -= c+; printf(“%d,%d,%dn“, a,b,c); 则程序的输出结果是( )。 ( A) 6,6,1 ( B

2、) 6,0,0 ( C) 5,6,0 ( D) 5,6,1 3 有以下程序 #include main() int i, sum; for( i=1; i main() int a = 3; do printf(“%d,“, a-=2 ); while( ! (-a) ); printf(“n“); 程序运行后的输出结果是( )。 ( A) 1, -2, ( B) 1, ( C) 3,0, ( D) 1,0 5 以下叙述中正确的是( )。 ( A)使用 break语句可以使流程跳出 switch语句体 ( B) break语句不能用于提前结束 for语句的本层循环 ( C) continue语

3、句使得整个循环终止 ( D)在 for语句中, continue与 break的效果是一样的,可以互换 6 以下叙述中正确的是( )。 ( A)三种循环 for,while,do-while可以互相嵌套 ( B)循环发生嵌套时,最多只能两层 ( C)循环嵌套时,如果不进行缩进形式书写代码,则会有编译错误 ( D) for语句的圆括号中的表达式不能都省略掉 7 以下叙述中正确的是( )。 ( A)只要适当地修改代码,就可以将 do-while与 while相互转换 ( B)对于 “for(表达式 1;表达 式 2;表达式 3) 循环体 “首先要计算表达式 2的值,以便决定是否开始循环 ( C)对

4、于 “for(表达式 1;表达式 2;表达式 3) 循环体 “,只在个别情况下才能转换成 while语句 ( D)如果根据算法需要使用无限循环(即通常所称的 “死循环 “) ,则只能使用while语句 8 以下叙述中正确的是( )。 ( A)只能在循环体内和 switch语句体内使用 break语句 ( B)当 break出现在循环体中的 switch语句体内时,其作用是跳出该 switch语句体,并中止循环体的执行 ( C) continue语句的 作用是:在执行完本次循环体中剩余语句后,中止循环 ( D)在 while语句和 do-while语句中无法使用 continue语句 9 若变量

5、已正确定义 for( x=0,y=0; ( y!=99 for( x=3; x main() int a, b; for( a=1,b=1; a=20) break; if(b % 3=1) b=b+3; continue; b=b-5; printf(“%dn“,a); 程序的输出结果是( )。 ( A) 8 ( B) 10 ( C) 9 ( D) 7 13 有以下程序 #include main() int a = -2, b = 0; while (a+ printf(“%d,%dn“, a, b ); 程序运行后输出结果是( )。 ( A) 1,2 ( B) 0,3 ( C) 1,3

6、( D) 0,2 14 有以下程序 #include main() int a=0, b=0; for( ;a main() char c; while(c=getchar() != #) putchar(c); 执行时如输入 abcdefg# , 则输出结果是( )。 ( A) abcdefg ( B) abcdefg# ( C) abcdefg# ( D) # 16 有以下程序 #include main() int a=1,b=1; while(a-) b-; printf(“%d,%dn“, a,b); 程序的运行结果是( )。 ( A) -1,0 ( B) 0,0 ( C) -1,-

7、1 ( D) 1,1 17 有以下程序 #include main() int a=1, b=0; for(;a main() char c; do c=getchar(); putchar(c); while(c != #); printf(“n“); 执行时如输入: abcdefg# , 则输出结果是( )。 ( A) abcdefg# ( B) abcdefg ( C) abcdefg# ( D) # 19 若变量已正确定义,则以下 for循环 for ( x=0,y=0; ( y!=123 ) for( i=1; i main() int x=23; do printf(“%2dn“,

8、 x-); while( !x ); 程序的执行结果是( )。 ( A)输出 23 ( B)输出 321 ( C)不输出任何内容 ( D)陷入无限循环 23 有以下程序 #include main() int i=0, sum=1; do sum += i+ ; while( i main() int i, data; scanf(“%d“, for (i=0; i后,程序输出结果为( )。 ( A) 3,4, ( B) 1,2,3,4, ( C) 0,1,2,3,4,5, ( D) 0,1,2, 25 有如下程序 #include main() int i, data; scanf(“%d“

9、, for (i=0; i data) break; printf(“%d,“, i); printf(“n“); 程序运行时,从键盘输入: 3后 ,程序输出结果为( )。 ( A) 0,1,2,3, ( B) 0,1, ( C) 3,4,5, ( D) 3,4, 26 有如下程序 #include main() char a = 3, b = A; int i; for (i=0; i main() int i; for (i=0; i main() int i = 1; for (printf(“%d“, i); i main() char ch = A; while (ch main()

10、 char ch = M; while (ch != K) ch -; putchar(ch); printf(“n“); 程序运行后的输出结果是( )。 ( A) LK ( B) MN ( C) OP ( D) MM 31 若要实现 total=1+2+3+4+5求和 ,以下程序段错误的是( )。 ( A) int i=1,total=1; while(i main() int i=1,k=0; for( ; i main() int x=0,y=6; do while(-y) x+; while(y-); printf(“%d,%dn“,x,y); 程序的运行结果是( )。 ( A) 5,

11、-1 ( B) 6,0 ( C) 5,0 ( D) 6,-1 35 有以下程序 #include main() char *s=“120119110“; int n0,n1,n2,nn,i; n0=n1=n2=nn=i=0; do switch(si+) default : nn+; case 0 : n0+; case 1 : n1+; case 2 : n2+; while(si); printf(“n0=%d,n1=%d,n2=%d,nn=%dn“,n0,n1,n2,nn); 程序的运行结果是( )。 ( A) n0=3,n1=8,n2=9,nn=1 ( B) n0=2,n1=5,n2=

12、1,nn=1 ( C) n0=2,n1=7,n2=10,nn=1 ( D) n0=4,n1=8,n2=9,nn=1 36 有以下程序 #include main() int a=2,3,5,4,i; for(i=0;i4;i+) switch(i%2) case 0: switch(ai%2) case 0:ai+;break; case 1:ai-; break; case 1:ai=0; for(i=0;i4;i+) printf(“%d “,ai); printf(“n“); 程序运行后的输出结果是( )。 ( A) 3 0 4 0 ( B) 2 0 5 0 ( C) 3 3 4 4 (

13、 D) 0 3 0 4 国家二级 C语言机试(循环结构程序设计)模拟试卷 2答案与解析 一、选择题 1 【正确答案】 A 【试题解析】 考查 do-while循环语句。其执行过程为:先执行 do循环体语句,然后判定圆括号内的表达式,如果 为真则继续执行 do循环体语句,如果为假则结束循环。该程序循环结束条件为表达式 (a+)的值为 0,即 a从 -2自增到 0,循环体循环 3次,所以 b=3,表达式 (a+)执行完毕之后 a=1,所以答案选 A。 【知识模块】 循环结构程序设计 2 【正确答案】 A 【试题解析】 for语句的循环条件是表达式 “a 表达式 2; 表达式 3 ) 循环体语句 “

14、,其执行流程是先计算表达式 1,之后计算表达式 2,根据表达式 2的值来判定是否进行循环,若为真,则执行循环体,循环体执行完毕之后再计算表达式 3的值。该循环的循环条件是( y!=99 “执行循环体 s,则循环条件 “!E“为真,即表达式 E需为假,而 C语言中用非 0表示真, 0表示假,所以 E需要等于 0,答案选 A。 【知识模块】 循环结构程序设计 11 【正确答案】 A 【试题解析】 输出语句 “printf( (x%2 ) ? (“*%d“) :( “#%d“),x);“的意思是如果 x不能 被 2整除,也就是 “x%2“的值为真,则在输出的 x前输出 “*“,若是能被 2整除,则在

15、输出的 x前输出 “#“, for循环中 x从 3循环到 5,所以答案选 A。 【知识模块】 循环结构程序设计 12 【正确答案】 A 【试题解析】 考查 break和 continue的用法。 break语句用于循环体,其作用是跳出当前层循环, continue语句是跳过当前循环层余下未执行的语句,继续执行下一次循环。该程序中的 for语句的循环条件是 a小于等于 100,当 b的值大于等于 20的时候就跳出循环并输出当前 a的值。 b值的变化 逻辑是每次判定 “b%3“的值若为 1,则 b自增 3,否则, b自减 5。其实该程序中,选择语句 “if(b%3=1) “的判定条件一直为真,所以

16、 b的值为 “1+a*3“,易求得满足跳出条件的 a值为 8,答案选 A。 【知识模块】 循环结构程序设计 13 【正确答案】 A 【试题解析】 while循环的循环条件是表达式 “a+ 表达式 2; 表达 式 3 ) 循环体语句 “,其执行流程是先计算表达式 1,之后计算表达式 2,根据表达式 2的值来判定是否进行循环,若为真,则执行循环体,循环体执行完毕之后再计算表达式 3的值。该循环的循环条件是( y!=123 表达式 2; 表达式 3 ) 循环体语句 “,其执行流程是先计算表达式 1,之后计算表达式 2,根据表达式 2的值来判定是否进行循环,若为真 ,则执行循环体,循环体执行完毕之后再

17、计算表达式 3的值。整个循环过程中,表达式的值只会执行一次,而表达式 2、 3以及循环体每次循环都会执行,所以答案选 A。 【知识模块】 循环结构程序设计 29 【正确答案】 A 【试题解析】 字符常量与其 ASCII码值一一对应,在计算的时候,一般是字符数据对应的 ASCII码参与运算,所以该程序的逻辑是,在字符 ch的 ASCII码小于 D的 ASCII码的情况下,输出 ch与 A之间的 ASCII码的差值。其中 A-A=0;B-A=1 易得答案选 A。 【知识模块】 循环结构程序设计 30 【正确答案】 A 【试题解析】 while执行逻辑是如果字符 ch不为 ?K?,则先自减 1,再输

18、出对应的字符,这里的自减 1指的是字符的 ASCII码减 1,其实就是字符由 ?M?变为 ?L?。循环体执行 2次,第 1次输出 ?L?,第 2次输出 ?K?,第 3次循环条件不满足,退出循环,所以答案选 A。 【知识模块】 循环结构程序设计 31 【正确答案】 A 【试题解析】 选项 A)记录的数据是 total = 1+1+2+3+4,和题意不符,答案选A)。 【知识 模块】 循环结构程序设计 32 【正确答案】 A 【试题解析】 break语句用于循环体,可以跳出当前层循环, continue语句的作用则是跳过当前循环层余下未执行的语句,继续执行下一次循环。在该程序中当 i为 2的时候执

19、行语句 “ case 2: k+; continue;“跳过了 i自加语句 “i+=1;“,所以 i值不再变化,程序陷入死循环,答案选 A。 【知识模块】 循环结构程序设计 33 【正确答案】 A 【试题解析】 5!的计算公式是 1*2*3*4*5, do-while语句是先执行 循环体再判定循环条件。选项 B) fac的值恒为 0,选项 C)多计算了数字 6,选项 D)中 fac的值恒为 0,所以答案选 A)。 【知识模块】 循环结构程序设计 34 【正确答案】 A 【试题解析】 考查 do-while和 while循环语句的执行过程。 do-while语句是先执行循环体再判定循环条件,而

20、while语句是先判定循环条件再执行循环体。自减运算符前置时,该变量是先自减 1后再参与其他运算;自减运算符后置时,该变量是先参与运算后再自减 1。由此,当 y=1时,内层循环结束,此时 x=5, y=0。外层循环 的判定条件 “y-“也为假,判定语句执行后 y=-1,所以答案选 A。 【知识模块】 循环结构程序设计 35 【正确答案】 A 【试题解析】 switch语句执行过程中, default语句块最后执行, case或者default只是作为一个入口,如果执行完某一个 case或者 default语句块之后没有遇到 break,则继续往下执行。该程序中的循环是遍历数组 s中的元素:为

21、0时,n0、 n1、 n2均自增 1;为 1时, n1、 n2自增 1;为 2时,只有 n2自增 1;其他情况, nn、 n0、 n1、 n2均自增 1;数组 s中有 2个 ?0?, 5个 ?1?, 1个 ?2?和 1个 ?9?,循环终止的条件是字符串末尾的 ?0?,对应的整数为 0,所以答案选“n0=3,n1=8,n2=9,nn=1“。 【知识模块】 循环结构程序设计 36 【正确答案】 A 【试题解析】 该函数的逻辑是:若数组 a中元素下标为偶数并且该元素也为偶数则该元素自加 1,若元素下标为偶数并且该元素为奇数则该元素自减 1,若该元素下标为奇数则设定该元素为 0,所以结果输出为选项 A)。 【知识模块】 循环结构程序设计

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1