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

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

1、国家二级 C语言机试( C语言程序设计)模拟试卷 32及答案与解析 一、选择题 1 以下是 if语句的基本形式: if(表达式 )语句 其中 “表达式 ” ( A)必须是逻辑表达式 ( B)必须是关系表达式 ( C)必须是逻辑表达或关系表达 ( D)可以是任意合法的表达式 2 有以下程序 main()int a=0, b=0, c=0, d=0; if(a=1)b=1; c=2; else d=3; printf(“ d, d,或 d n“, a, b, c, d), 程序输出 ( A) 0, 0, 0, 3 ( B) 1, 1, 2, 0 ( C)编译有错 ( D) 0, 1, 2, 0 3

2、 有以下程序 main()int x=1, y=0; if(!x)y+; else if(x0) if(x)y+=2; else y+=3; printf(” d 11”, y); 程序运行后的输出结果是 ( A) 2 ( B) 0 ( C) 1 ( D) 3 4 若变量已正确定义,在 if(W)pfintf(” d 11”, k);中 ,以下不可替代 W的是 ( A) ch=getchar(1 ( B) a-b+c ( C) ab)a=b, b=c; c=a; printf(“a= d b= d c= d n“, a, b, c); 程序的输出结果是 ( A) a=10 b=50 c=30

3、( B) a=10 b=30 c=10 ( C) a=10 b=50 c=10 ( D) a=50 b=30 c=50 6 设有定义: int a=1, b=2, c=3;以下语句中执行效果与其它三个不同的是 ( A) if(ab)c=a; a=b; b=c; ( B) if(ab)c=a, a=b, b=c; ( C) if(ab)c=a, a=b, b=c; ( D) if(ab)c=a; a=b; b=c; 7 if语句的基本形式是: if(表达式 )语句,以下关于 “表达式 ”值的叙述中正确的是 ( A)必须是整数值 ( B)必须是正数 ( C)可以是任意合法的数值 ( D) if(a

4、b)c=a; a=b; b=c; 8 有 如下嵌套的 if语句 if(a=0)y=sqrt(x); else y=sqrt(-x); ( C) if(x=0)y=sqrt(x); if(x=07x: -x); 10 有以下程序 #include main()int x; scanf(“ d“, &x); if(x main()int a=1, b=2, c=3, d=4; if(a=2)(b=1)c=2; if(c=3)&(d=-1)a=5; printf(“ d, d, d, d n“, a, b, c, d); 则程序的输出结果是 ( A) 2, 1, 2, -1 ( B) 2, 2, 2

5、, 4 ( C) 5, 1, 2, -1 ( D) 1, 2, 3, 4 14 若有以下程序 #include main()int a=1, b=2, c=3, d=4, r=0; if(a!=1); else r=1; if(b=2)r+=2; else; if(c!=3)r+=3; else; if(d=4)r+=4; printf(“ d n“, r); 则程序的输出结果是 ( A) 10 ( B) 6 ( C) 7 ( D) 3 15 若有以下程序 #include main()int a=1, b=2, c=3, d=4; if(a=2)&(b=1)c=2; if(c=3)(d=-1

6、)a=5; printf(“ d, d, d, d n“, a, b, c, d); 则程序的输出结果是 ( A) 2, 1, 2, -1 ( B) 2, 2, 2, 4 ( C) 1, 2, 3, 4 ( D) 5, 1, 2, -1 16 若有以下程序 main()int a=1, b=2, c=3, d=4, r=0; if(a!=1); else r=1; if(b=2)r+=2; if(c!=3); r+=3; if(d=4)r+=4; printf(“ d n“, r); 则程序的输出结果是 ( A) 7 ( B) 10 ( C) 6 ( D) 3 17 以下叙述中正确的是 ( A

7、) if语句只能嵌套一层 ( B)不能在 else子句中再嵌套 if语句 ( C) if子句和 else子句中可以是任意的合法的 C语句 ( D)改变 if-else语句的缩进格式,会改变程序的执行流程 18 以下选项中与 if(a=1)a=b; else a+;语句功能不同的 switch语句是 ( A) switch(a) case 1: a=b: break; default: a+: ( B) switch(a=1) case 0: a=b; break; case 1: a+; ( C) switch(a) default: a+; break; case 1: a=b; ( D)

8、switch(a=1) case 1: a=b; break; case 0: a+; 19 若以下选项中变量全部为整型变量,且 已正确定义并赋值,则语法正确的switch语句是 ( A) switch(a+b) case 1: case 3: y=a+b; break; case 0: case 4: y=a-b: ( B) switch(a*a+b*b) default: break; case 3: y=a+b; break; case 2: y=a-b; break: 1 ( C) switch(a+9) case c1: y=a-b; case c2: y=a+b; ( D) swi

9、tch a*b case 10: x: a+b; default: y=a-b; 20 有以下程序 main()int x=1, y=0, a=0, b=0; switch(x) case 1: switch(y) case 0: a+; break; case 1: b+; break; case 2: a+; b+; break; case 3: a+; b+; printf(“a= d, b= d n“, a, b); 程 序的运行结果是 ( A) a=2, b=2 ( B) a=1, b=1 ( C) a=1, b=0 ( D) a=2, b=1 21 若有定义: float x=1

10、5; int a=1, b=3, c=2;则正确的 switch语句是 ( A) switch(a+b)case 1: printf(“* n“); case 2+1: printf(“* n“); ( B) switch(int)x); case 1: printf(“* n“); case 2: printf(“* n“); ( C) switch(x)case 1 0: printf(“* n“); case 2 O: printf(“* n“); ( D) switch(a+b)case 1: printf(“* n“); case c: printf(“* n“); 22 下列叙述中

11、正确的是 ( A)在 switch语句中必须使用 default ( B) break语句必须与 switch语句中的 case配对使用 ( C)在 switch语句中,不一定使用 break语句 ( D) break语句只能用于 switch语句 23 有以下程序 main()int k=5, n=0; doswitch(k) case 1: case 3: n+=1; k-; break; default: n=0; k-; case 2: case 4: n+=2; k-; break; printf(“ d“, n); while(k0&nb?(bc?1: 0): 0;功能相同的是 (

12、 A) if(ab)(bc)k=1; else k=0; ( B) if(ab)&(bc)k=1; else k=0; ( D) iffab)k=1; else if(bc)k=1; else k=0; 29 关于 “while(条件表达式 )循环体 ”,以下叙述正确的是 ( A)循环体的执行次数总是比条件表达式的执行次数多一次 ( B)条件表达式的执行次数与循环体的执行次数一样 ( C)条件表达式的执行次数总是比循环体的执行次数多一次 ( D)条件表达式的执行次数与循环体的执行次数无关 30 有以下程序 #include main()int y=10; while(y-); printf(“

13、y= d n“, y); 程序执行后的输出结果是 ( A) y=0 ( B) y=-1 ( C) y=1 ( D) while构成无限循环 31 有以下程序 main()int k=5; while(-k) printf(“ d“, k-=3); printf(“ n“); 执行后的输出结果是 ( A) 2 ( B) 4 ( C) 1 ( D)死循环 32 有以下程序 main()int y=10; while(y-); printf(“y= d n“, y); 程序执行后的输出结果是 ( A) v=0 ( B) y=1 ( C) y=-1 ( D) while构成无限循环 33 有以下程序

14、#include void main() int s; scanf(“ d“, &s); while(s0) switch(s) case 1: printf(“ d“, s+5); case 2: printf(“ d“, s+4); break; case 3: printf(“ d“, s+3); default: printf(“ d“, s+1); break; scanf(“ d“, &s); 运行时,若输入 1 2 3 4 5 0,则输出结果是 ( A) 66656 ( B) 6566456 ( C) 66666 ( D) 6666656 34 有以下程序 #include ma

15、in()int a=7; while(a-); printf(“ d n“, a); 程序运行后的输出结果是 ( A) 0 ( B) 1 ( C) -1 ( D) 7 35 在以下给出的表达式中,与 while(E)中的 (E)不等价的表达式是 ( A) (E0E不是 C语言的合法运算符,如果要表达 a大于或小于 b+c可用 a!b+c或 (ab+c)(ab+c。所以它不是一个合法的 C语言表达式。 【知识模块】 C语言程序设计 5 【正确答案】 C 【试题解析】 本题的程序段首先定义三个整型变量 a, b, c,并且其初始值分别等于 10 50, 30,然后判断 ab是否成立,如果条件成立,

16、则把 b的 值赋给 a,把 c的值赋给 b。由 a和 b的初始值可知,此条件表达式不成立,所以 a和 b的值保持不变。再执行下一条语句,把 a的值赋给 c,所以 c的当前值等于 10,最后由输出语句输出变量 a, b, c的当前值,分别为 10, 50, 10。 【知识模块】 C语言程序设计 6 【正确答案】 A 【试题解析】 在 C语言中,用分号表示一条语句的结束,用 把几条语句放在一块表示一个语句块,其整体表示一个功能。因而在题目给出的四个选项中,选项B、 C)、 D)表示的功能相同,而选项 A表示的是一条 if语句,两条赋值语句。 【知识模块】 C语言程序设计 7 【正确答案】 C 【试

17、题解析】 在 if语句中,表达式可以是任意合法的数值。当其值为非零时,执行 if语句,为 0时执行 else语句。 【知识模块】 C语言程序设计 8 【正确答案】 D 【试题解析】 嵌套的 if else语句的含义是,在变量 a的值小于变量 b的值,同时,变量 a的值小于变量 c的值时,把变量 a的值赋给变量 k。在变量 a的值小于变量 b的值,同时,变量 a的值大于等于变量 c的值时,把变量 c的值赋给变量k。在变量 a的值大于等于变量 b的值,同时,变量 b的 值小于变量 c的值时,把变量 b的值赋给变量 k。在变量 a的值大于等于变量 b的值,同时,变量 b的值大于等于变量 c的值时,把

18、变量 c的值赋给变量 k。 【知识模块】 C语言程序设计 9 【正确答案】 A 【试题解析】 由题意可知计算公式的含义是:当 x大于等于 0时, y值等于 x的算术平方根;当 x小于 0时, y值等于 x的相反数的算术平方根。所以选项 B用一个完整的 if else语句表达了计算公式的含义:选项 C用两个 if语句表达了计算公式的含义;选项 D在求平方根函数的后面用 x0?x: -x条件表达式来表达了计算公式 的含义。选项 A没有用 C语言语句正确的表达计算公式的含义。 【知识模块】 C语言程序设计 10 【正确答案】 D 【试题解析】 题目中,虽然 else和第二个 if不在同一行上,但等价

19、于在同一行上,因此,程序的意思是当 x大于 3且不等于 10时打印出来。 【知识模块】 C语言程序设计 11 【正确答案】 C 【试题解析】 a, b, c, d初始值分别为 1, 2, 3, 0。嵌套的 if语句中,第一个if中,表达式 a=1&b+=2值为 1,执行嵌套的 if分支,此时 “b=3, b!=2”成立,由于 运算符是 ,不管后面一个表达式的值是不是 1,其整个表达式的值总是1, “c-!=3”表达式不执行,最后打印出 a, b, c的值是 1, 3, 3。 【知识模块】 C语言程序设计 12 【正确答案】 A 【试题解析】 选项 B、 C)、 D)这三条语句都是在变量不等于

20、0的情况下,输出x:等于 0的情况下输出 y,而选项 A则正好相反。 【知识模块】 C语言程序设计 13 【正确答案】 B 【试题解析】 代码中有两条并列的 if语句,第一条 if语句执行, (a=2)(b=1)值为1,由于逻辑或表达式, 根据其短路运算规则, a=2, b=2,即 b值不变执行 if分支c=2。并列的 if语句中表达式 (c=3)&(d=-1)为逻辑与表达式, c=3不成立,不考虑 d=-1表达式, d为 5逻辑表达式值为 0,不执行相应 if分支。 【知识模块】 C语言程序设计 14 【正确答案】 C 【试题解析】 程序代码中有四条并列的 if语句,第一条 if表达式 a!

21、=1不成立,执行 else分支, r=1;第二条 if表达式 b=2成立,执行 r+=2, r=3;第三条 if语句 c!=3不成立,执行 else分支,分支为空语句;第四条 if分支 d=4成立,执行该 if分支语句, r+=4, r=7。 【知识模块】 C语言程序设计 15 【正确答案】 D 【试题解析】 代码中有两条并列的 if语句,第一条 if语句,逻辑与表达式(a=2)&(b=1)中, a=2,则执行 b=1,得到该逻辑与表达式值为 1,执行分支语句c=2;第二条 if语句 (c一 3)(d=-1), c=3不成立,执行 d=-1,而后得出整个逻辑与表达式值为 1,执行分支语句 a=

22、5。 【知识模块】 C语言程序设计 16 【正确答案】 B 【试题解析】 程序代 码中有四条并列的 if语句,第一条 if表达式 a!=1不成立,执行 else分支, r=1;第二条 if表达式 b=2成立,执行 r+=2, r=3;第三条 if语句 c!=3不成立,执行语句, r+=3, r=6;第四条 if分支 d=4成立,执行该 if分支语句, r+=4, r=10。 【知识模块】 C语言程序设计 17 【正确答案】 C 【试题解析】 含 else子句的 if语句的格式为 if(表达式 ) 语句 1 else 语句 2 其中 if和 else是 C语言的关键字。 “语句 1”称 为 if

23、子句, “语句 2”称为 else子句,这些子句只允许为一条语句,若需要多条语句时,则应该使用复合语句,对于 if和 else语句的嵌套原则是比较自由的。 【知识模块】 C语言程序设计 18 【正确答案】 B 【试题解析】 本题主要考查 if和 switch结构。 “if(a=1)a=b; else a+; ”代码段的功能是如果 a等于则把 b的值赋值给 a,否则 a+。选项 A使用 switch对 a进行判断,如果是 1则 a=b,跳出 switch,如果是其他值则 a+;选项 B对 a=1的结果进行 switch判断, 如果为 0表示 a不等于 1则 a=b,和题目要求不符合:选项 C和选

24、项 A一样;选项 D和选项 case条件相反,满足题目要求。 【知识模块】 C语言程序设计 19 【正确答案】 B 【试题解析】 本题考查 switch的使用。选项 A中的 case 0和 case 4没有 break语句;选项 B正确;选项 C中的 case后面不是常量,错误;选项 D中 switch后面没有括号。 【知识模块】 C语言程序设计 20 【正确答案】 D 【试题解析】 本题考查的是用 switch语句实现多分支选择结构,首先进入 第一个 switch(x)判断,进入 ease 1中进行嵌套判断,如果 switch(y)也成立, a自加 1,遇到 break,退出嵌套,接着执行

25、case 2, a自加为 2, b自加为 1,遇到 break,结束循环,此时 a=2, b=1。 【知识模块】 C语言程序设计 21 【正确答案】 A 【试题解析】 在 C语言中, switch()后一对圆括号中的可以是整型表达式或字符表达式。 case语句后面的常量表达式的类型必须与 switch后圆括号中的表达式类型相同,各 case语句标号的值应该互不相同,选项 B中 switch后括号表达式出错,选项 C中 case后面的常量类型不正确,选项 D中 case后面出现了变量表达式,所以 D)不正确。 【知识模块】 C语言程序设计 22 【正确答案】 C 【试题解析】 break为 C语

26、言关键字,又称间断语句。 break语句的功能是跳出正在执行的条件语句或循环语句。它可以出现在 switch语句中,也可以出现在循环语句中。 default是关键字,起标号的作用,代表所有 case标号之外的那些标号。 default标号可以出现在语句体中任何标号位置上。在 switch语句体中也可以没有 default标号。 【知识模块】 C语言程序设计 23 【正确答案】 B 【试题解析】 因为变量的初始值分别为 k=5, n=0,所以程序第 1次进入循环时,执行 default语句, “n=0, k=4”,没有 break语句,因此执行 case 2分支语句, n为 2, k为 3,程序

27、进行第 2次循环,执行 “case 3: n=3, k=2”,输出 n值为3,程序进行第 3次循环,执行 case 3这个分支,结果是 “n=5, k=1”,打印出 5;这时因为 n=5不满足 nb并且 bc时,变量 k的值等于 1,其余情况下,变量 k的值都是等于 0。 【知识模块】 C语言程序设计 29 【正确答案】 C 【试题解析】 while语句中表达式是循环条件,语句为循环 体。 while语句中当表达式计算的值为真 (非 0)时,执行循环体语句。因此条件表达式执行的次数总是比循环体多一次。 【知识模块】 C语言程序设计 30 【正确答案】 B 【试题解析】 在 while循环中每次

28、变量 y的值减 1,直到其值等于 0时退出循环,这时 y的再减 1变为 -1。 【知识模块】 C语言程序设计 31 【正确答案】 C 【试题解析】 在程序语句中, k的初始值为 5,进行第 1次 while循环后, k自减1为 4,非 0,执行循环体里的 printf语句。输出 1,此时 k的值变为 1。程序 执行第 2次循环时, k自减 1变为 0,为假,退出 while循环语句。所以程序的最后结果为 1。 【知识模块】 C语言程序设计 32 【正确答案】 C 【试题解析】 while循环语句的循环体为空语句,所以每一次循环程序什么都不做。当循环自变量 y=0时,退出循环结束,变量 y执行自

29、减运算,得 -1,所以打印输出变量 y的值为 -1。 【知识模块】 C语言程序设计 33 【正确答案】 B 【试题解析】 这道试题主要考查了 switch和 break语句,当变量 s的值为 1时,执行 case1、 case 2两条语句,输出 65:当变量 s的值为 2时,执行 case 2语句,输出 6:变量 s的值为 3时,执行 case3、 default两条语句,输出 64;变量 s的值为 4时,执行 default语句,输入 5;变量 s的值为 5时,执行 default语句,输出6;变量 s的值为 0时,程序运行结束。 【知识模块】 C语言程序设计 34 【正确答案】 C 【试题解析】 在 while语句中,先判断 while后面的表达式是否为 0,如果为 0,则退出循环,否则执行循环体。在本题中,当变量 a的值经过几次循环后,其值等于 0时,退出 while循环语句,变量 a再执行自减运算,所以其值等于 -1。 【知识模块】 C语言程序设计 35 【正确答案】 A 【试题解析】 在 while(E)中 p,表达式 E可以是 C语言中任意合法的条件表达式,但不能为空,由它来控制循环体是否执行。在选项 A中表达式 E0E0是一个逻辑表达式。 【知识模块】 C语言程序设计

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

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

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