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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

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