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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

[计算机类试卷]国家二级C语言(选择结构、循环结构)机试模拟试卷1及答案与解析.doc

1、国家二级 C语言(选择结构、循环结构)机试模拟试卷 1及答案与解析 一、选择题 1 下列选项中,当 x为大于 1的奇数时,值为 0的表达式是 ( )。 ( A) x 2=0 ( B) x 2 ( C) x 2!=0 ( D) x 2=1 2 若 a是数值类型,则逻辑表达式 (a=1)(a!=1)的值是 ( )。 ( A) 1 ( B) 0 ( C) 2 ( D)不知道 a的值,不能确定 3 当变量 e的值不为 2、 4、 6时,值为 “真 ”的表达式是 ( )。 ( A) (c=2&e=2&c=2&c6)(c!=3)lI(c!=5) 4 有以下程序: #include main() int a

2、=1, b=2, c=3, d=0; if(a=1&b+=2) if(b!=2c一 !=3) prinff(“ d, d, d n”, a, b, c); else prinff(“ d, d, d n”, a, b, c); else prinff(“ d, d, d n”, a, b, c); 程序的运行结果是 ( )。 ( A) 1, 3, 2 ( B) 1, 3, 3 ( C) 1, 2, 3 ( D) 3, 2 1 5 下列关于逻辑运算符两侧运算对象的叙述中正确的是 ( )。 ( A)可以是任意合法的表达式 ( B)只能是整数 0或非 0整数 ( C)可以是结构体类型的数据 ( D)

3、只能是整数 0或 1 6 设有宏定义: #define IsDIV(k, n)(k n=1)?1: 0),且变量 m已正确 定义并赋值,则宏调用: Is DIV(m, 5)& IsDIV(m, 7)为真时所要表达的是 ( )。 ( A)判断 m是否能被 5和 7整除 ( B)判断 m被 5和 7整除是否都余 1 ( C)判断 m被 5或者 7整除是否余 1 ( D)判断 m是否能被 5或者 7整除 7 if语句的基本形式是: if(表达式 )语句,以下关于 “表达式 ”值的叙述中正确的是( )。 ( A)必须是逻辑值 ( B)必须是整数值 ( C)必须是正数 ( D)可以是任意合法的数值 8

4、下列条件语句中,输出结果与其他语句不同的是 ( )。 ( A) if(a!=0)printf(“ d n”, x); else prinff(“ d n”, y); R)if f a=0)prinff(“ d n”, y); else printf(“ d n”, x); ( B) if(a=0)printf(“ d n”, x); else printf(“ d n”, y); ( C) if( ( D) printf(“ d n”, x); else printf(“ d n”, y); 9 有以下程序: #include main() int a=0, b=0, c=0, d=0; if

5、(a=1)b=1; c=2; else d=3; printf(“ d, d, d, d n”, a, b, c, d); 程序的运行结果是 ( )。 ( A) 1, 1, 2, 0 ( B) 0, 0, 0, 3 ( C)编译有错 ( D) 0, 1, 2, 0 10 设有定义: int a=1, b=2, c=3;以下语句中执行效果与其他 3个不同的是( )。 ( A) if(ab)a, a=b, b=e; ( B) if(ab): a, a: b, b=C; ( C) if(ab)a; a=b; b=c; ( D) if(ab)e: a; a: b; b=c; 11 有以下程序: #in

6、clude 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) 3 ( B) 2 ( C) 1 ( D) 0 12 有嵌套的 if语句: if(ac)?b: c); ( B) k=(a main() int x=1, y=2, z=3; if(xy)if(yb?(be?1: 0): 0;功能相同的是 ( )。 ( A) if(ab)(bc)k=1; else k=0: ( B) if(ab)&(bc)k=1; else k=0; (

7、C) if(ab)k=1; else if(bc)k=1; else k=0; 15 有以下程序: main() int x=1, y=0, a=0, b=0; switch(x) ease 1: switch(y) printf(“a= d, b= d n”, a, b); 程序的运行结果是 ( )。 ( A) a=2, b=2 ( B) a=2, b=1 ( C) a=1, b: 1 ( D) a=1, b=0 16 若有定义: float x=1 5; int a=1, b=3, c=2;,则正确的 switch语句是 ( )。 ( A) switch(a+b) case 1: prin

8、ff(“* n”); case 2+1: printf(“* n”); ( B) switch(int)x); case 1: prinff(“* n”); case 2: prinff(“* n”); ( C) switch(x) case 1 0: printf(“* n”); case 2 0: printf(“* n”); ( D) switch(a+b) case 1: prinff(“* n”); case c: prinff(“* n”); 17 下列叙述中正确的是 ( )。 ( A)在 switch语句中不一定使用 break语句 ( B)在 switch语句中必须使用 def

9、ault语句 ( C) break语句必须与 switch语句中的 ease配对使用 ( D) break语句只能用于 switch语句 18 下列选项中与 if(a=1)a=b; else a+;语句功能不同的 switch语句是 ( )。 ( A) switch(a=1) ease 0: a=b; break: case 1: a+; ( B) switch(a) case 1: a=b; break: default: a+: ( C) switch(a) default: a+; break; case 1: a=b: ( D) switch(a=1) case 1: a=b; bre

10、ak; case 0: a+: 19 有以下程序: #include main() int y=10: while(y一一 ); printf(“y= d n”, Y); 程序执行后的输出结果是 ( )。 ( A) y=0 ( B) y=一 1 ( C) y=1 ( D) while构成无限循环 20 有以下程 序: #include main() int k=5; while(一 k) printf(“ d”, k一 =3); printf(“ n”); 执行后的输出结果是 ( )。 ( A) 1 ( B) 2 ( C) 4 ( D)死循环 21 有以下函数: int fun(char*s)

11、 char*t=s: while(*t+); reHm(ts); 该函数的功能足 ( )。 ( A)计算 s所指字符串的长度 ( B)比较两个字符串的大小 ( C)计算 s所指字符串占用内存字节的个数 ( D)将 s所指字符串复制到字符串 t中 22 有以下函数: int aaa(char*s) char*t=s: while(*t+); t一一: return(ts); 以下关于 aalt函数功能叙述正确的是 ( )。 ( A)将串 s复制到串 t ( B)比较两个串的大小 ( C)求字符串 s的长度 ( D)求字符串 s所占字节数 23 在以下给出的表达式中,与 while(E)中的 (E

12、)不等价的表达式是 ( )。 ( A) (E 0F main() int y=9; for(; y0; y一一 ) if(y 3=0) prinff(“ d”,一 y); 程序的运行结果是 ( )。 ( A) 852 ( B) 963 ( C) 741 ( D) 875421 28 有以下程序: #include main() int a=1, b=2; for(; a main() int x=8; for(; x0; x一一 ) if(x 3) printf(“ d, ”, x一一 ); continue; printf(“ d, ”,一 x); 程序的运行结果是 ( )。 ( A) 7,

13、 4, 2, ( B) 8, 7, 5, 2, ( C) 9, 7, 6, 4, ( D) 8, 5, 4, 2, 30 有以下程序: #include main() int b33=0, 1, 2, 0, 1, 2, 0, 1, 2, i, j, t=1; for(i=0; i main() int i; for(i=1; i main() int i, j, m=55; for(i=1; i=2&cb且bc, k值结果为 1,如果 ab且 bb与 bc中只要有一个条件不成立, k的值就为 0,所以选择 B选项。 【知识模块】 选择结构 15 【正确 答案】 B 【试题解析】 case常量表

14、达式只是起语句标号作用,并不使该处进行条件判断。在执行 switch语句时,根据 switch的表达式,找到与之匹配的 case语句,就从此case子句执行下去,不再进行判断,直到碰到 break或函数结束为止。所以执行内层 switch(y)时只执行了 a+,此时 a的值为 1,然后执行外层 case 2语句的a+; b+;, a为 2, b为 1,所以结果为 B选项。 【知识模块】 选择结构 16 【正确答案】 A 【试题解析】 B选项中 switch(int)x);语句中不应该有最后的分号。switch(expr1)中的 expr1不能用浮点类型或 long类型,也不能为一个字符串,所以

15、 C选项错误。 case后面常量表达式的类型必须与 switch后面表达式的类型一致,所以 D选项错误。 【知识模块】 选择结构 17 【正确答案】 A 【试题解析】 defauh语句在 switch语句中可以省略,所以 B选项错误; switch语句中并非每个 case后都需要使用 break语句,所以 C选项错误; break语句还可以用于 for等循环结构中,所以 D选项错误。 【知识 模块】 选择结构 18 【正确答案】 A 【试题解析】 if语句的含义是:如果 a的值为 1,将 b的值赋给 a,否则将 a的值自增 1。是 switch(a=1)中表达式 a=1的结果如果为真,即为 1

16、,则从 easel开始执行,直到遇到 break语句跳出 switch语句,如果 a=1的结果为假,即 0,则从 case0开始执行,所以与题干含义执行操作相反的是选项 A中的语句。 【知识模块】 选择结构 19 【正确答案】 B 【试题解析】 执行 y一直到值为 0,由于 y一是先用再减,所以退出循环时, y的值 为一 1。 【知识模块】 循环结构 20 【正确答案】 A 【试题解析】 一 k先自减再使用,所以第一次判断条件即为 while(4),条件为真执行打印 k的值 k=43,结果为 1,第二次判断条件即为 while(0),条件为假,结束循环,打印回车换行符,所以选择 A选项。 【知

17、识模块】 循环结构 21 【正确答案】 A 【试题解析】 首先 char*s接受一个字符型数组的首地址,并将这个首地址赋给另一个字符型指针 char*t, while(*t+)不断循环直到 *t为 0,再将 t一 1, 这时字符指针 t指向字符串的最后一个字符,又因为 s指向字符数组的首地址,即字符串的首地址,所以 return(ts)便是返回字符数组中字符串的长度。 【知识模块】 循环结构 22 【正确答案】 C 【试题解析】 本题重点考查的知识点是 while循环语句的应用。 aaa ()函数中,首先定义了一个字符指针 t指向形参 s,然后通过一个 while循环让指针 t不断递增,直到

18、t指向字符串结束标识处。当 t指向结束标识处时,由了后缀 +运算符的原因,它还会被再递增 1,所以接下来的 t一语句让它回到束标识处。最后返 回ts, s还是指向字符串第一个字符处,而 t指向了字符串结尾,故返回值为字符串的长度值,因此 C选项正确。 【知识模块】 循环结构 23 【正确答案】 B 【试题解析】 while语句中条件表达式 E的值不为 0即为真,认为满足条件,所以与 B选项中表达式的含义正好丰舀反,选择 B选项。 【知识模块】 循环结构 24 【正确答案】 A 【试题解析】 A选项中 do后面的语句只执行了一次便结束了循环; B选项中条件 while(1)永远成立,所以是死循环

19、; C选项中 n的值为 10,而循环体为空语句 ,所以 while(n)永远为真,进入死循环; D选项中 for语句第二个表达式为空,所以没有判断条件,进入死循环。 【知识模块】 循环结构 25 【正确答案】 A 【试题解析】 第一次首先执行循环体,打印 i的值 0,然后判断 while的条件i+,先用后自增,所以判断时条件为假,跳出循环,但是仍执行了 i的自增操作, i的值为 l,在接下来的打印语句中进行打印。 【知识模块】 循环结构 26 【正确答案】 C 【试题解析】 由于内层循环 for(k=1; k3; k+)后面直接跟了空语句 “; ”,所以在循环内部什么操作也不做,跳出外层循环后

20、执行打印语句,所以打印了一个“*”,选择 C选项。 【知识模块】 循环结构 27 【正确答案】 A 【试题解析】 第 1次 for循环, y的值为 9, y 3的值为 0,满足条件打印一 y,即先减一后打印,所以打印 8;第 2次 for循环, y的值为 7, y 3的值为 1,不执行打印语句;第 3次 for循环, y的值为 6, y 3的值为 0,满足条件打印一 y,即先减一后打印,所以打印 5;第 4次 for循环, y的值为 4,不满足 if条件,不执行打印语句;第 5次 for循环, y的值为 3,满足 if条件,打印输出 2;第 6次 for循环, y的值为 1,不满足条件,不执行

21、打印语句。 【知识模块】 循环结构 28 【正确答案】 D 【试题解析】 第 1次循环, a的值为 1,满足条件,执行 b+=a,与 a+=2,则 b的值变为 3, a的值变为 3。执行 a+, a的值为 4,满足条件进入第 2次循环,执行完循环体后, b的值为 7, a的值为 6。执行 a+, a的值为 7,满足条件进入第3次循环,执行完循环体后, b的值为 14, a的值为 9。执行 a+, a的值变为10,所以选择 D选项。 【知识模块】 循环结构 29 【正确答案】 D 【试题解析】 coutinue语句的作用是跳出循环体中剩余的语句而进行下一次循环。第 1次循环, x的值为 8,循环

22、体中 if条件成立,打印 x的值 8后将 x减 1,再执行 continue语句,跳出本次循环。第 2次判断循环条件时, x的值变为 6,不满足循环体内 if条件,执行打印一 x的操作,即打印 5后跳出循环。第 3次判断循环条件时 x的值为 4,满足循环体内 if条件,执行打印 x一的操作,即打印 4,后将 x值减一,执行 continue语句,跳出本次循环。第 4次判断循环条件时 x的值为 2,满足循环体内 if条件,打印 x一,即打印 2,后将 x减 1,执行 continue语句,跳出本次循环。在进行 for条件表达式中第 3个表达式 x一的操作后, x的值为 0,不满足条件,结束循环。

23、所以打印结果为 8, 5, 4, 2,。 【知识模块】 循环结构 30 【正确答案】 B 【试题解析】 每次内循环只循环一次就结束,第 1次外循环时,t=t+b0b00=1+b00=1+0=1;第 2次外循环时,t=t+b1b11=1+b11=1+1=2;第 3次外循环时,t=t+b2b22=2+b22=2+2=4。 【知识模块】 循环结构 31 【正确答案】 C 【试题解析】 本题的含义是在 1 40的整数范围中,只有当 i的值能被 5整除,且 i+2的值能被 8整除时,打印 i的值,满足这个条件的只有 32,所以选择 C选项。 【知识模块】 循环结构 32 【正确答案】 B 【试题解析】

24、第 1次执行外循环 i的值为 1,满足条件,判断第 1次内循环, j的值为 3,不满足条件,跳出内循环。第 2次执行外循环 i的值为 2,同理也不满足内循环条件,跳出内循环。第 3次执行外循 环 i的值为 3,此时进入内循环判断条件时,条件成立,执行 m=m j, m的值为 l,跳出内循环,跳出外循环,打印 m的值。 【知识模块】 循环结构 33 【正确答案】 B 【试题解析】 continue语句的作用是跳过循环体中剩余的语句而进行下一次循环,所以 A选项错误。 break语句的作用是终止正在执行的 switch流程,跳出switch结构或者强制终止当前循环,从当前执行的循环中跳出,所以 C、 D选项错误。 【知识模块】 循环结构

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