[计算机类试卷]国家二级C语言(C语言程序设计)机试模拟试卷6及答案与解析.doc
《[计算机类试卷]国家二级C语言(C语言程序设计)机试模拟试卷6及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级C语言(C语言程序设计)机试模拟试卷6及答案与解析.doc(17页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级 C语言( C语言程序设计)机试模拟试卷 6及答案与解析 一、选择题 1 以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。 #include stdio_h #define N10 void fun(int xN) int i=0; while(i N)scanf(“ d“, _); 在程序中下划线处应填入的是 ( A) x+i ( B) xi+1 ( C) x+(i+) ( D) x+i 2 有以下程序 main()int a=3; a+=a-=a*a; printf(“ d n“, a); 程序的输出结果是 ( A) 9 ( B) 3 ( C) -12 ( D) 0 3
2、 若有定义语句: char s10=“1234567 0 0“;,则 strlen(s)的值是 ( A) 7 ( B) 8 ( C) 9 ( D) 10 4 有以下程序 main()int a=2, c=5; printf(“a= d, b= d n“, a, c); 程序的输出结果是 ( A) a= 2, b= 5 ( B) a= d, b= d ( C) a=2, b=5 ( D) a= d, b= d 5 设变量均已正确定义,若要通过 scanf(“ d c d c“, &a1, &c1, &a2,&c2);语句为变量 a1和 a2赋数值 10和 20,为变量 c1和 c2赋字符 X和
3、Y。以下所示的输入形式中正确的是 (注: 代表空格字符 ) ( A) 10X20Y ( B) 10X20Y ( C) 10X20Y ( D) 10X20Y 6 设有定义: double a, b, c;若要求通过输入分别给 a、 b、 c输入 1、 2、 3,输入形式如下 (注:此处 代表一个空格 )1 02 03 0则能进行正确输入的语句是 ( A) scanf(“ 1f 1f 1f, 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
4、5 1f“, &a, &b, &c); 7 有以下程序 #include main()int a1, a2; char c1, c2; scanf(“ d c d c“, &a1, &c1, &a2, &c2); printf(“ d, c, d, c“, a1, c1, a2, c2); 若想通过 键盘输入,使得 a1的值为 12, a2的值为 34, c1的值为字符 a, c2的值为字符 b,程序输出结果是: 12, a, 34, b则正确的输入格式是 (以下 代表空格,代表回车 ) ( A) 12a34b ( B) 12, a, 34, b ( C) 12a34b ( D) 12a34b
5、 8 若在定义语句: int a, b, c, *p=&c;接着执行以下选项中的语句,则能正确执行的语句是 ( A) scanf(“ d d d“, a, b, c); ( B) scanf(“ d“, a, b, c); ( C) scanf(“ d“, p); ( D) scanf(“ d“, &p); 9 把以下四个表达式用作 if语句的控制表达式时,有一个选项与其他三个选项含义不同,这个选项是 ( A) k 2 ( B) k 2=1 ( C) (k 2)!=0 ( D) !k 2=1 10 若变量已正确定义,在 if(W)printf(“ d n“, k);中,以下不可替代 W的是 (
6、 A) ch=getchar() ( B) a=b+c ( C) a b+c ( D) a+ 11 有如下嵌套的 if语句 if(a b) iffa 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: (a c)?b: c; ( C) k=(a c)?a: c; ( D) k=(a b)?(a c)?a: c): (b c)?b: c); 12 下列条件语句中,输出结果与其他语句不同的是 ( A) if(a=0)printf(“ d n“, x); el
7、se printf(“ d n“, y); ( B) if(a=0)printf(“ d n“, y); else printff“ d n“, x); ( C) if(a!=0)printf(“ d n“, x); else printf(“ d n“, y); ( D) if(a)printf(“ d n“, x); else printf(“ d n“, y); 13 若有以下程序 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(
8、“ d n“, r); 则程序的输出结果是 ( A) 7 ( B) 10 ( C) 6 ( D) 3 14 有以下程序 main()int x=1, y=0, a=0, b=0; switch(x) case1: switch(y) case0: a+; break; case1: b+; break; case2: a+; b+; break; case3: 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 15 以下选项中与 if(a=
9、1)a=b; else a+;语句功能不同的 switch语句是 ( A) switch(a=1)case0: a=b; break; case1: a+; ( B) switch(a)case1: a=b; break; default: a+; ( C) switch(a)default: a+; break; case1: a=b; ( D) switch(a=1)case1: a=b; break; case0: a+; 16 以下程序段中,与语句: k=a b?(b c?1: 0): 0;功能相同的是 ( A) if(a b)|(b c)k=1; else k=0; ( B) if(
10、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 if(b c)k=1; else k=0; 17 有以下程序 main()int y=10; while(y-); printf(“y= d n“, y); 程序执行后的输出结果是 ( A) y=0 ( B) y=1 ( C) y=-1 ( D) while构成无限循环 18 要求通过 while循环不断读入字符,当读入字 *N时结束循环。若变量已正确定义,以下正确的程序段是 ( A) while(ch=getchar()=N)p
11、rintf(“ c“, ch); ( B) while(ch=getchar()=“N“)printf(“ c“, ch); ( C) while(ch=getchar()!=N)printf(“ c“, ch); ( D) while(ch=getchar()=N)printf(“ c“, ch); 19 关于 do循环体 while(条件表达 式 );以下叙述中正确的是 ( A)循环体的执行次数总是比条件表达式的执行次数多一次 ( B)条件表达式的执行次数总是比循环体的执行次数多一次 ( C)条件表达式的执行次数与循环体的执行次数无关 ( D)条件表达式的执行次数与循环体的执行次数一样 2
12、0 若有以下程序 main()int a=-2, b=0; do+b; while(a+); printf(“ d, d n“, a, b); 则程序的输出结果是 ( A) 0, 2 ( B) 1, 2 ( C) 1, 3 ( D) 2, 3 21 有以下程序段 int i, n; for(i=0; i 8; i+) n=rand() 5; switch(n) case1: case3: printf(“ d n“, n); break; case2: case4: printf(“ d n“, n); continue; case0: exit(0); printf(“ d n“, n);
13、以下关于程序段执行情况的叙述,正确的是 ( A)当产生的随机数 n为 4时结束循环操作 ( B)当产生的随机数 n为 1和 2时不做任何操作 ( C)当产生的随机数 n为 0时结束程序运行 ( D) for循环语句固定执行 8次 22 有以下程序 #include stdio_h main() int i, j; for(i=3; i =1; i-) for(j=1; j =2; j+)printf(“ d“, i+j); printf(“ n“); 程序的运行结果是 ( A) 4 3 2 5 4 3 ( B) 2 3 3 4 4 5 ( C) 4 5 3 4 2 3 ( D) 2 3 3 4
14、 2 3 23 有以下程序 main() int a=1, b=2; for(; a 8; a+) b+=a; a+=2; printf(“ d, d n“, a, b); 程序运行后的输出结果是 ( A) 8, 11 ( B) 10, 14 ( C) 7, 11 ( D) 9, 18 24 以下叙述中正确的是 ( A)对于 “for(表达式 l;表达式 2;表达式 3)循环体 ”首先要计算表达式 2的值,以便决定是否开始循环 ( B)对于 “for(表达式 1;表达式 2;表达式 3)循环体 ”,只在个别情况下才能转换成 while语句 ( C)只要适当地修改代码,就可以将 do-while
15、与 while相互转换 ( D)如果根据算法需要使用无限循环 (即通常 所称的 “死循环 ”),则只能使用 while语句 25 有以下程序 #include stdio h main() int i, j, m=55; for(i=1; i =3: i+) for(j=3; j =ij+)m=m j; printf(“ d n“, m); 程序的运行结果是 ( A) 0 ( B) 1 ( C) 2 ( D) 3 26 以下叙述中正确的是 ( A) continue语句的作用是:使程序的执行流程跳出包含它的所有循环 ( B) break语句只能用在循环体内和 switch语句体内 ( C) 在
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 语言 语言程序设计 模拟 答案 解析 DOC
