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

上传人:deputyduring120 文档编号:498009 上传时间:2018-11-30 格式:DOC 页数:27 大小:62KB
下载 相关 举报
[计算机类试卷]国家二级C语言机试(循环结构程序设计)模拟试卷2及答案与解析.doc_第1页
第1页 / 共27页
[计算机类试卷]国家二级C语言机试(循环结构程序设计)模拟试卷2及答案与解析.doc_第2页
第2页 / 共27页
[计算机类试卷]国家二级C语言机试(循环结构程序设计)模拟试卷2及答案与解析.doc_第3页
第3页 / 共27页
[计算机类试卷]国家二级C语言机试(循环结构程序设计)模拟试卷2及答案与解析.doc_第4页
第4页 / 共27页
[计算机类试卷]国家二级C语言机试(循环结构程序设计)模拟试卷2及答案与解析.doc_第5页
第5页 / 共27页
点击查看更多>>
资源描述

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)。 【知识模块】 循环结构程序设计

展开阅读全文
相关资源
猜你喜欢
  • ASTM B622-2017 Standard Specification for Seamless Nickel and Nickel-Cobalt Alloy Pipe and Tube《镍和镍钴合金无缝管和管件的标准规格》.pdf ASTM B622-2017 Standard Specification for Seamless Nickel and Nickel-Cobalt Alloy Pipe and Tube《镍和镍钴合金无缝管和管件的标准规格》.pdf
  • ASTM B622-2017a Standard Specification for Seamless Nickel and Nickel-Cobalt Alloy Pipe and Tube《镍和镍钴合金无缝管和管件的标准规格》.pdf ASTM B622-2017a Standard Specification for Seamless Nickel and Nickel-Cobalt Alloy Pipe and Tube《镍和镍钴合金无缝管和管件的标准规格》.pdf
  • ASTM B622-2017b Standard Specification for Seamless Nickel and Nickel-Cobalt Alloy Pipe and Tube《镍和镍钴合金无缝管和管件的标准规格》.pdf ASTM B622-2017b Standard Specification for Seamless Nickel and Nickel-Cobalt Alloy Pipe and Tube《镍和镍钴合金无缝管和管件的标准规格》.pdf
  • ASTM B624-2007 Standard Specification for High-Strength High-Conductivity Copper-Alloy Wire for Electronic Application《电子用高强度高传导率铜合金线的标准规范》.pdf ASTM B624-2007 Standard Specification for High-Strength High-Conductivity Copper-Alloy Wire for Electronic Application《电子用高强度高传导率铜合金线的标准规范》.pdf
  • ASTM B624-2007(2012) Standard Specification for High-Strength High-Conductivity Copper-Alloy Wire for Electronic Application《电子用高强度高传导率铜合金线的标准规格》.pdf ASTM B624-2007(2012) Standard Specification for High-Strength High-Conductivity Copper-Alloy Wire for Electronic Application《电子用高强度高传导率铜合金线的标准规格》.pdf
  • ASTM B624-2007(2017) Standard Specification for High-Strength High-Conductivity Copper-Alloy Wire for Electronic Application《电子设施用高强度 高导电性铜合金线的标准规格》.pdf ASTM B624-2007(2017) Standard Specification for High-Strength High-Conductivity Copper-Alloy Wire for Electronic Application《电子设施用高强度 高导电性铜合金线的标准规格》.pdf
  • ASTM B625-2005 Standard Specification for UNS N08925 UNS N08031 UNS N08932 UNS N08926 UNS N08354 and UNS R20033 Plate Sheet and Strip《UNS N08925、UNS N08031、NS N08932、UNS N08926、UNS.pdf ASTM B625-2005 Standard Specification for UNS N08925 UNS N08031 UNS N08932 UNS N08926 UNS N08354 and UNS R20033 Plate Sheet and Strip《UNS N08925、UNS N08031、NS N08932、UNS N08926、UNS.pdf
  • ASTM B625-2005(2011) Standard Specification for UNS N08925 UNS N08031 UNS N08932 UNS N08926 UNS N08354 and UNS R20033 Plate Sheet and Strip《UNS N08925 UNS N08031 NS N08932 UNS N089.pdf ASTM B625-2005(2011) Standard Specification for UNS N08925 UNS N08031 UNS N08932 UNS N08926 UNS N08354 and UNS R20033 Plate Sheet and Strip《UNS N08925 UNS N08031 NS N08932 UNS N089.pdf
  • ASTM B625-2014 Standard Specification for UNS N08925 UNS N08031 UNS N08932 UNS N08926 UNS N08354 UNS N08830 and UNS R20033 Plate Sheet and Strip《UNS N08925 UNS N08031 UNS N08932 UN.pdf ASTM B625-2014 Standard Specification for UNS N08925 UNS N08031 UNS N08932 UNS N08926 UNS N08354 UNS N08830 and UNS R20033 Plate Sheet and Strip《UNS N08925 UNS N08031 UNS N08932 UN.pdf
  • 相关搜索

    当前位置:首页 > 考试资料 > 职业资格

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