[计算机类试卷]国家二级C语言机试(C语言程序设计)模拟试卷13及答案与解析.doc
《[计算机类试卷]国家二级C语言机试(C语言程序设计)模拟试卷13及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级C语言机试(C语言程序设计)模拟试卷13及答案与解析.doc(25页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级 C语言机试( C语言程序设计)模拟试卷 13及答案与解析 一、选择题 1 有以下程序段 char name20; int nurn; scanf(“name s nurn d“,name,&nurn); 当执行上述程序段,并从键盘输入: name Lili nurn 1001后, name的值为 ( A) name Lili ( B) Lili nurn ( C) name Lili nurn 1001 ( D) Lili 2 s1和 s2已正确定义并分别指向两个字符串。若要求:当 s1所指串大于 s2所指串时,执行语句 S;则以下选项中正确的是 ( A) if(s1 s2)S; (
2、 B) if(strcmp(s1, s2)S; ( C) if(strcmp(s2, s1) 0)S; ( D) if(strcp(s1, s2) 0)S: 3 把以下四个表达式用作 if语句的控制表达式时,有一个选项与其他三个选项含义不同,这个选项是 ( A) k 2 ( B) k 2=1 ( C) (k 2)! 0 ( D) !k 2 1 4 以下是 if语句的基本形式: if(表达式 )语句 其中 “表达式 ” ( A)必须是逻辑表达式 ( B)必须是关系表达式 ( C)必须是逻辑表达或关系表达 ( D)可以是任意合法的表达式 5 有以下程序 main() int a 0, b 0, c
3、 0, d 0; if(a 1)b 1; c 2; else d 3; printf(“ d, d, d, d n“,a,b,c, d); 程序输出 ( A) 0,0,0,3 ( B) 1,1,2,0 ( C)编译有错 ( D) 0,1,2,0 6 有以下程序 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) 2 ( B) 0 ( C) 1 ( D) 3 7 若变量已正确定义,在 if(W)printf(“ d n“,k);中,以下不可替代 W的是
4、 ( A) ch getchar() ( B) a=b+c ( C) a b c ( D) a 8 有以下程序段 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 10 b 50 c 30 ( B) a 10 b 30 c 10 ( C) a 10 b 50 c 10 ( D) a 50 b 30 c 50 9 设有定义: int a 1, b 2, c 3;以下语句中执行效果与其它三个不同的是 ( A) if(a b)c a; a b; b c;
5、 ( B) if(a b)c a, a b, b c; ( C) if(a b)c a, a b, b c; ( D) if(a b)c a; a b; b c; 10 if语句的基本形式是: if(表达式 )语句,以下关于 “表达式 ”值的叙述中正确的是 ( A)必须是整数值 ( B)必须是正数 ( C)可以是任意合法的数值 ( D)必须是逻辑值 11 有如下嵌套的 if语句 if(a b) if(a c)k a; else k c; else if(b c)k b; else k c; 以下选项中与上述 if语句等价的语句是 ( A) k (a b)?(bc)?b: c; ( B) k (
6、a c)?b: c; ( C) k (a c) ?a: c; ( D) k (a b)?(a c)?a: c): (b c)?b: c); 12 有以下计算公式 若程序前面已经在命令行中包含 math.h文件,不能够正确计算上述公式的程序段是 ( A) y sqrt(x); if(x 0)y sqrt( x); ( B) if(x 0)y sqrt(x); else y sqrt( x); ( C) if(x 0)y sqrt(x); if(x 0)y sqrt( x); ( D) y sqrt(x 0?x: -x); 13 有以下程序 #include main()int x; scanf(
7、“ d“, x); if(x 3); else if(x!10)printf(“ d n“, x); 程序运行时,输入的值在哪个范围才会有输出结果 ( A)不等于 10的整数 ( B)大于 3或等于 10的整数 ( C)小于 3的整数 ( D)大于 3且不等 10的整数 14 有以下程序 main() int a 1, b 2, c 3, d 0; if(a=1 &b =2) if(b! 2c ! 3) printf(“ d, d, d n“, a, b, c); else printf(“ d, d, d n“, a, b, c); else printf(“ d, d, d n“, a,
8、b, c); 程序运行后的输出结果是 ( A) 1,3, 2 ( B) 1, 2, 3 ( C) 1, 3, 3 ( D) 3, 2, 1 15 下列条件语句中,输出结果与其他语句不同的是 ( A) if(a=0)printf(“ d n“, x); else printf(“ d n“, y); ( B) if(a=0)printf(“ d n“, y); else printf(“ d n“, x); ( C) if(a! 0)printf(“ d n“, x); else printf(“ d n“, y); ( D) if(a)printf(“ d n“, x); else print
9、f(“ d n“, y); 16 若有以下程序 #include 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,4 ( C) 5,1,2, 1 ( D) 1,2,3,4 17 若有以下程序 #inelude 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
10、3; else; if(d=4)r 4; printf(“ d n“, r); 则程序的输出结果是 ( A) 10 ( B) 6 ( C) 7 ( D) 3 18 若有 以下程序 #inelude main() int a 1, b 2, c 3, d 4; if(a 2)&(b 1)c 2; if(c=3)(d 1)a 5; pfintf(“ 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 19 若有以下程序 main() int a
11、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 20 以下叙述中正确的是 ( A) if语句只能嵌套一层 ( B)不能在 else子句中再嵌套 if语句 ( C) if子句和 else子句中可以是任意的合法的 C语句 ( D)改变 if-else语句的缩进格式,会改变程序的执行流程 21 以下选项中与 if(a=1)a b; else a;语句功 能不同的 swit
12、ch语句是 ( 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) switch(a=1) case 1: a b; break; case 0: a; 22 若以下选项中变量全部为整型变量,且己正确定义并赋值,则语法正确的switch语句是 ( A) switch(a b) case 1: case 3: y a b; break; case 0: case
13、 4: 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 case 10: x a b; default: y a b; 23 有以下程序 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:
14、 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 24 若有定义: 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(int)x); case 1: printf(“* n“); case 2: printf(“*
15、 n“); ( C) switch(x)case 1 0: printf(“* n“); case 2 0: printf(“* n“); ( D) switch(a b)case 1: printf(“* n“); case c: printf(“* n“); 25 下列叙述中正确的是 ( A)在 switch语句中必须使用 default ( B) break语句必须与 switch语句中的 case配对使用 ( C)在 switch语句中,不一定使用 break语句 ( D) break语句只能用于 switch语句 26 有以下程序 main() int k 5, n 0; do sw
16、itch(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(k 0&n 5) 运行以后的输出结果是 ( A) 0235 ( B) 235 ( C) 02356 ( D) 2356 27 以下选项中与 if(a=1)a b; else a;语句功能不同的 switch语句是 ( A) switch(a=1)case 0: a b; break; case 1: a; ( B) switch(a)case 1: a b; break;
17、 default: a; ( C) switch(a)default: a; break; case 1: a b; ( D) switch(a=1)case 1: a b; break; case 0: a; 28 有以下程序 #include 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; printf(“a d, b d n“, a, b); 程序运行后的输出结果是 ( A) a 1, b 1 ( B) a
18、 1, b 0 ( C) a 2, b 1 ( D) a 2, b 2 29 若以下选项中的变量 a, b, y均已正确定义并赋值,则语法正确的 switch语句是 ( A) switch(a*a b*b)default: break; case 3: y a b; break; case 2: y ab; break; ( B) switch(a b)case1: case3: y a b; break; case0: case4: y a b; ( C) switch(a 9)case a: y a b; case b: y a b; ( D) switch a*b case 10: y
19、a b; default: y a b; 30 在嵌套使用 if语句时, C语言规定 else总是 ( A)和之前与其具有相同缩进位置的 if配对 ( B)和之前与其最近的 if配对 ( C)和之前与其最近的且不带 else的 if配对 ( D)和之前的第一个 if配对 31 以下程序段中,与语句: k a b?(b c?1: 0): 0;功能相同的是 ( A) if(a b)(b c)k 1; else k 0; ( B) if(a b)k 0; else if(b c)k 1; ( C) if(a b) (b c)k 1; else k 0; ( D) if(a b)k 1; else i
20、f(b c)k 1; else k 0; 32 关于 “while(条件表达式 )循环体 ”,以下叙述正确的是 ( A)循环体的执行次数总是比条件表达式的执行次数多一次 ( B)条件表达式的执行次数与循环体的执行次数一样 ( C)条件表达式的执行次数 总是比循环体的执行次数多一次 ( D)条件表达式的执行次数与循环体的执行次数无关 33 有以下程序 #include main0 int y 10; while(y-); printf(“y d n“, y); 程序执行后的输出结果是 ( A) y 0 ( B) y 1 ( C) y 1 ( D) while构成无限循环 34 有以下程序 mai
21、n() int k 5; while(-k) printf(“ d“, k 3); printf(“ n“); 执行后的输出结果是 ( A) 2 ( B) 4 ( C) 1 ( D)死循环 35 有以下程序 main0 int y 10; while(y-); printf(“y d n“, y); 程序执行后的输出结果是 ( A) y 0 ( B) y 1 ( C) y 1 ( D) while构成无限循环 36 有以下程序 #include void main() int s; scanf(“ d“, s); while(s 0) switch(s) case 1: printf(“ d“
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 语言 语言程序设计 模拟 13 答案 解析 DOC
