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

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

1、国家二级 C语言机试(语言程序设计)模拟试卷 32及答案与解析 一、选择题 1 合法的 C语言语句是 ( )。 ( A) int x=y=10; ( B) char c=65; ( C) float f=f+1 1; ( D) double x=12 3E2 5; 2 子函数的功能是通过键盘输入给 x所指的整型数组所有元素赋值。在下划线处应填写的是 ( )。 #include #defineN 5 void fun(int xN) int m; for(m=N一 1; m =0; m一一 )scanf( d, _); ( A) x+m ( B) x+m ( C) x+(m+) ( D) xm+

2、1 3 执行以下程序段后, k的值是 ( )。 int k=0, a=1, b=2, c=3; k=a b? b: a; k=k c? C: k; ( A) 1 ( B) 2 ( C) 3 ( D) 0 4 若 char s10=Chinese 0 0;,则 strlen(s)的值是 ( )。 ( A) 7 ( B) 8 ( C) 9 ( D) 10 5 为使以下程序段不陷入死循环,从键盘输入的数据应该是 ( )。 int n, t=1, s=0; scanf( dt, &n); dos=s+; t=t一 2; while(t! =n); ( A)任意自然数 ( B)任意小数 ( C)任意正偶

3、数 ( D)任意负奇数 6 要通过 scanf。 ( d c d c, &a1, &c1, &a2, &c2);语句为变量 a1和 a2赋数值 1和 2,为变量 c1和 c2赋字符 a和 b。以下所示的输入形式中正确的是( )。 ( A) 1口 a2口 b ( B) 1口 a2口 b口 ( C) 1a 2b ( D) 1口 a口 2口 b 7 若 int a, b;通过语句 scarf( d; d, &a, &b);能把整数 3赋给变量 a, 5赋给变量 b的输入数据是 ( )。 ( A) 3, 5 ( B) 35 ( C) 3; 5 ( D) 3 5 8 设有定义: double a, b,

4、 c;若要求通过输入分别给 a、 b、 c输入 2、 3、 4,输入形式如下 2 03 0 4 0则能进行正确输入的语句是 ( )。 ( A) Scanf( 1f 1f 1ft, a, b, c); ( B) Scanf( f f f, &a, &b, &c); ( C) scanf( 1f 1f 1f, &a, &b, &c); ( D) scanf( 5 11f 5 11f 5 11f, &a, &b, &c); 9 关于 Scanf和 printf的叙述中正确的是 ( )。 ( A)在 Scanf函数中的格式控制字符串是为了输入数据用的,不会输出到屏幕上 ( B)在使用 Scanf函数输

5、入整数或实数时,输入数据之间只能用空格来分隔 ( C)在 printf函数中,各个输出项只能是变量 ( D)使用 printf函数无法输出百分号 10 设 s1和 s2分别指向两个字符串。若要求:当 s1所指字符串大于 s2所指字符串时,执行语句 S;则以下选项中正确的是 ( )。 ( A) if(s1 s2)S; ( B) if(strcmp(s1, s2)S; ( C) if(strcmp(s2, s1) 0)S; ( D) if(strcmp(s1, s2) 0)S; 11 关于 if(表达式 )中的 “表达式 ”叙述正确的是 ( )。 ( A)必须是整数表达式 ( B)必须是关系表达式

6、 ( C)必须是逻辑表达或关系表达 ( D)可以是任意合法的表达式 12 以下程序的输出结果是 ( )。 main()int x=1, y=0; if(! x)y+; else if(x=0) if(x)y+=2; else y+=3; printf( d n, y); ( A)一 1 ( B) 0 ( C) 1 ( D) 2 13 以下程序段的输出结果是 ( )。 int a, b, c; a=10; b=50; c=30; if(a b) a=b, b=c; c=a; printf(a= d b= d c= d n, a, b, c); ( A) a=30 b=50 c=10 ( B) a

7、=10 b=30 c=10 ( C) a=10 b=50 c=10 ( D) a=50 b=30 c=50 14 若 int a, b;,则合法的 switch语句是 ( )。 ( A) switch a*b case 10: x=a+b; default: y=a一 b; ( B) switch(a*a+b*b) default: break; case 3: y=a+b; break; case 2: y=a一 b; break; ( C) switch(a+9) case c1: y=a一 b; case c2: y=a+b; ( D) switch(a+b) case1: tcase

8、3: y=a+b; break; case 0: case 4: y=a一 b; 15 若 float x=1 5; int a=1, b=3, c=2;则正确的 switch语句是 ( )。 ( A) switch(a+b)case 1: printf(* n); case 2+1: printf(* n); ( B) switch(a+b)case 1: printf(* n); case c: printf(* n) ( C) switch(x)case 1 0: printf(* n); case 2 0: printf(* n); ( D) switch(int)x); case 1

9、: prinff(* n); case 2: printf(* n); 16 在嵌套 if语句中, else语句总是 ( )。 ( A)和之前的第一个 if配对 ( B)和之前与其最近的 if配对 ( C)和之前与其最近的且不带 else的 if配对 ( D)和之前与其具有相同缩进位置的 if配对 17 关于 “while(条件表达式 )循环体 ”,以下 叙述正确的是 ( )。 ( A)条件表达式的执行次数与循环体的执行次数无关 ( B)条件表达式的执行次数与循环体的执行次数一样 ( C)条件表达式的执行次数总是比循环体的执行次数多一次 ( D)循环体的执行次数总是比条件表达式的执行次数多一次

10、 18 以下程序的输出结果是 ( )。 main()int k=5; while(一一 k) printf( d, k一 =3); printf( n); ( A) 1 ( B) 0 ( C)一 1 ( D) 2 19 以下程序运行时,若输入 1 2 3 4 5 0,输出结果是 ( )。 #include void main() int s; seanf( d, &s); while(s 0) switch(s) case 1: printf( d, s+5); case 2: printf( d, s+4); break; case 3: printf( d, s+3); default:

11、printf( d, s+1); break; seanf( d, &s); ( A) 6666656 ( B) 6566456 ( C) 66666 ( D) 66656 20 不会形成死循环的是 ( )。 ( A) n=0; do+n; while(n =0); ( B) x=0; while(1)x+; ( C) x=10; while(x)x一一; ( D) for(n=0, i=1; i+)n+=i; 21 若 int k,则关于 for(k=一 l; k 0; k+)printf(* n);语句执行情况的叙述中正确的是 ( )。 ( A)循环体不执行 ( B)循环体执行一次 ( C

12、)循环体执行二次 ( D)构成无限循环 22 以下程序的输出结果是 ( )。 #include main() int y=9; for(; y 0; y一一 ) if(y 3=0)printf( d,一一 y); ( A) 7 4 1 ( B) 8 5 2 ( C) 9 6 3 ( D) 4 2 1 23 以下程序的输出结果是 ( )。 for(i=0; i 4; i+, i+) for(k=1; k 3; k+); printf(*); ( A) * ( B) * ( C) * ( D) * 24 有关于 continue和 break的叙述中正确的是 ( )。 ( A)在循环体内使用 br

13、eak语句和 continue语句的作用相同 ( B) break语句只能用在循环体内和 switch语句体内 ( C) continue语句的作用是:使程序的执行流程跳出包含它的所有循环 ( D) break语句只能用于 switch语句体中 25 关于 continue和 break的叙述中正确的是 ( )。 ( A) break语句不能用于提前结束 for语句的本层循环 ( B) continue语句使得整个循环终止 ( C)使用 break语句可以使流程跳出 switch语句体 ( D)在 for语句中, continue与 break的效果是一样的,可以互换 国家二级 C语言机试(语

14、言程序设计)模拟试卷 32答案与解析 一、选择题 1 【正确答案】 B 【试题解析】 本题主要考查变量的定义和赋值, C语言中变量的定义形式为:类型说明符变量名:初始值:选项 A中, x和 y只能单独赋初值;选项 B正确,定义了一个字符变量 c,初值为 65;选项 C错误,初值设置自身不能参与运算;选项 D中字母 E后面的指数必须是整数。 【知识模块】 C语言程序设计 2 【正确答案】 A 【试题解析】 本题用 for循环给数组赋值,与上题类似,选项 B和选项 D不是地址,错误。选项 A和选项 C是地址,但是选项 C的 m值会 +自增,然后 for循环里面又 m一一自减,会导致死循环,不满足要

15、求,选项 A正确。 【知识模块】 C语言程序设计 3 【正确答案】 B 【试题解析】 本题主要考查条件表达式。 k=a b? b: a中 a b为真,因此 k的值为 b,因此结果为 2。 【知识模块】 C语言程序设计 4 【正确答案】 A 【试题解析】 本题考查字符串数组和字符串函数。数组的末尾会有一个结束符,题目中 s有 7个字符,然后跟着结束符 0,因此数组 s的长度为 7。 【知识模块】 C语言程序设计 5 【正确答案】 D 【试题解析】 本程序代码的功能是通过 scanf给变量 n赋值,在 dowhile 循环中, s变量自增, t变量每次减 2, t的初值为 1,循环执行一次后 t的

16、值变成一 1,然后是一 3、一 5、 ,直到 t的值和 n的值相同循环结束。从 t的值的变化可知, t是一个变化的负奇数,因此输入的 n如果是负 奇数,则循环能退出,否则是死循环,程序不会退出。 【知识模块】 C语言程序设计 6 【正确答案】 C 【试题解析】 在使用 scanf函数进行输入数据时,必须严格按照格式输入数据。而按照格式符 d c d c说明,数值型数据和字符数据输入之间不要加入空格间隔,而字符型数据和数值型数据的输入却可以加入任意的空格、回车和跳格。 【知识模块】 C语言程序设计 7 【正确答案】 C 【试题解析】 在用 scanf这个函数输入数据时,必须严格遵守其输入的规则定

17、义。本题此函数定义的规 则是,在两个整数之间加分号输入。 【知识模块】 C语言程序设计 8 【正确答案】 C 【试题解析】 输入函数 scanf不可以用实数指定小数位的宽度。输入 double型数据,格式控制必须用 lf(或 le)。否则,数据不能正确输入。由于输入的是一个字符流, scanf函数从这个字符流中按照格式控制指定的格式解析出相应数据。 【知识模块】 C语言程序设计 9 【正确答案】 A 【试题解析】 scanf函数中的格式控制字符串不会输出,选项 A正确;在使用scanf函数输入整数或实数时, 输入数据之间可以用空格、跳格、回车来分隔,选项 B错误; printf输出项不但可以为

18、变量,还可以为表达式或者常量,选项 C错误;如果要输出 “ ”,可以在格式控制中用 “ ”表示,选项 D错误。 【知识模块】 C语言程序设计 10 【正确答案】 D 【试题解析】 C语言的库函数 strcmp有两个参数分别是需要比较大小的两个字符串 s1和 s2,如果 s1大于 s2则返回值大于 0,如果 s1小于 s2则返回值小于 0,否则 s1和 s2相同返回 0。题目要求 s1大于 s2时执行语句 S,因此 strcmp(s1, s2)的返回值 大于 0时执行 S。 【知识模块】 C语言程序设计 11 【正确答案】 D 【试题解析】 本题考查 if语句, C语言中 if语句中的表达式可以

19、是任意合法的表达式,有多余语句时用 括起来。 【知识模块】 C语言程序设计 12 【正确答案】 B 【试题解析】 如果不满足 if语句的条件,函数将不执行本题中 x=1, if和 else if的条件都不满足,故 y值不改变输出。 【知识模块】 C语言程序设计 13 【正确答案】 C 【试题解析】 本题考查条件表达式,程序段首先定义三个 整型变量 a, b, c,并且其初始值分圳等于 10, 50, 30,然后判断 a b是否成立,如果条件成立,则把b的值赋给 a,把 c的值赋给 b。由 a和 b的初始值可知,此条件表达式不成立,所以 a和 b的值保持不变。再执行下一条语句,把 a的值赋给 c

20、,所以 c的当前值等于 10,最后由输出语句输出变量 a, b, c的当前值,分别为 10, 50, 10。 【知识模块】 C语言程序设计 14 【正确答案】 B 【试题解析】 本题考查 switch分支语句的使用。选项 A中的 switch后的表达式需要 ();选项 B正确;选项 C中的 case后面不是常量,错误;选项 D中缺少default分支,而且 case与后面的表达式缺少空格。 【知识模块】 C语言程序设计 15 【正确答案】 A 【试题解析】 在 C语言中, switch()后一对圆括号中的可以是整型表达式或字符表达式。 case语句后面的常量表达式的类型必须此表达式类型相同,各

21、 case语句表达式的值应该互不相同。注意 case语句是顺序执行的。 【知识模块】 C语言程序设计 16 【正确答案】 C 【试题解析】 本题考查 if语句,在 C语言中 if语句中的 else总是 和之前与其最近的且不带 else的 if配对。 【知识模块】 C语言程序设计 17 【正确答案】 C 【试题解析】 while语句中表达式是循环条件,语句为循环体。 while语句执行时,先计算表达式,当表达式计算的值为真 (非 0)时,执行循环体语句,若表达式为假则不执行循环体。因此条件表达式执行的次数总是比循环体多一次。 【知识模块】 C语言程序设计 18 【正确答案】 A 【试题解析】 本

22、题考查 while条件语句执行过程, k的初始值为 5,进行第 1次while循环后, k自减 1为 4, 非 0,执行循环体里的 printf语句,输出 1,此时 k的值变为 1。程序执行第 2次循环时, k自减 1变为 0,为假,退出循环语句。所以程序的最后结果为 1。 【知识模块】 C语言程序设计 19 【正确答案】 B 【试题解析】 本题考查表达式与 switch分支语句,当变量 s的值为 1时,执行case1、 case2两条语句,分别输出 6和 5;当变量 s的值为 2时,执行 case 2语句,输出 6;变量 s的值为 3时,执行 case3、 default两条语句,分别输出

23、6和4;变量 s的值为 4时,执行 default语句,输出 5;变量 s的值为 5时,执行default语句,输出 6;变量 8的值为 0时。 【知识模块】 C语言程序设计 20 【正确答案】 A 【试题解析】 while循环中要注意死循环。选项 B中 while(1)永远为真所以进入死循环,选项 C中 while(x=10)同理,选项 D中 for循环没有循环限定条件也将进入无限循环,只有选项 A中 while(n =0)循环判定成立,循环将不进入无限循环。 【知识模块】 C语言程序设计 21 【正确答案】 B 【试题解析】 本题考查 for循环的使用。在程序 中, for循环的初始值 k

24、= 1,循环结束条件是 k 0,每次循环 k增加 1,第一次进入循环的时候 k为一 1, k小于0,执行打印,然后 k的值变成 0,下次进入循环 k不小于 0,循环结束,因此循环只能执行一次。 【知识模块】 C语言程序设计 22 【正确答案】 B 【试题解析】 程序中 y的初值为 9,所以在 for循环中,当 y的值为 9、 6或 3时, if语句的条件成立,执行输出语句,输出表达式一一 y的值。因为自减符号在y的前面,所以首先 y自减 1,然后再输出 y的值,故输出结果为 8 5 2。 【知识模块】 C语 言程序设计 23 【正确答案】 D 【试题解析】 本题考查多层 for循环语句,题中第

25、二个(内层) for循环之后又一个分号,意思是每次循环中的操作为空,不执行任何操作。在循环结束后执行printf语句,即只打出一个 *。 【知识模块】 C语言程序设计 24 【正确答案】 B 【试题解析】 C语言中, break只能使用在循环和 switch语句中。 continue语句的作用是结束本次循环,即跳过本次循环体中 continue语句后面的语句,立刻进行下一次的循环条件判断,可以理解为仅结束本次循 环。而 break语句可以使程序流程跳出 switch语句体,也可用 break语句在循环结构中终止循环体。 【知识模块】 C语言程序设计 25 【正确答案】 C 【试题解析】 用 break语句可以使程序流程跳出 switch语句体,终止循环体。而 continue语句的作用是结束本次循环,即跳过本次循环体中 continue语句后面的语句,立刻进行下一次的循环条件判断,可以理解为仅结束本次循环。 【知识模块】 C语言程序设计

展开阅读全文
相关资源
猜你喜欢
相关搜索

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

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