[计算机类试卷]国家二级C语言机试(C语言程序设计)模拟试卷1及答案与解析.doc
《[计算机类试卷]国家二级C语言机试(C语言程序设计)模拟试卷1及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级C语言机试(C语言程序设计)模拟试卷1及答案与解析.doc(22页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级 C语言机试( C语言程序设计)模拟试卷 1及答案与解析 一、选择题 1 若 x为 int变量,则以下语句的输出结果是 ( )。 x=1234; printf(“ -06d n“, x); ( A)输出格式描述符不合法 ( B)输出为 001234 ( C)输出为 1234 ( D)输出为 -01234 2 已知定义 k为 double类型变量, k=260 72631: p血 t“ -6 2e n“, k); 则以上语句的输出结果是 ( )。 ( A)输出格式描述的域宽不够,不能输出 ( B)输出为 26 07e+01 ( C)输出为 2 6e+02 ( D)输出为 -2 64e2
2、3 若 m是 int型变量, n是 noat型变量,所用的 scanf调用语句格式为: scanf(“m= d, n= f, “&m, &n); 则为了将数据 10和 66 6分别赋给 m和 n,正确的输入应当是 ( )。 ( A) m=10,n=66 6回车 ( B) 1 0 66 6回车 ( C) 10回车 66 6回车 ( D) in=10回车 n=66 6回车 4 已知字母 c的 ASCII十进制代码为 99,则执行以下语句后的输出结果为 ( )。 char a=c: a-; printf(“ d, c n“, a+2, a+3-0); ( A) d, e ( B) a-运算不合法,故
3、有语法错 ( C) 100, e ( D)格式描述和输出项不匹配,输出无定值 5 两次执行下面的程序,如果从键盘上分别输入 4和 2,则输出结果是 ( )。 main() int x; scanf(“ d n“, &x); ifi(x+ 3)printf(“ d n“, x); else printf(“ d n“, x-); ( A) 7和 5 ( B) 5和 3 ( C) 7和 4 ( D) 6和 4 6 下面程序的输出结果是 ( )。 main() int m1=a, m2=e, m3=e; printf(“ d c n“, m2-m1, m3-b+A); ( A) 2, M ( B)
4、4, D ( C) 2, E ( D)输出结果不确定 7 设 有定义: long x=745321L,则能正确输出变量 x的语句是 ( )。 ( A) printf(“x= d n“, x); ( B) printf(“x= LD n“, x); ( C) printf(“x= d1 n“,x); ( D) printf(“x= 1d n“,x); 8 以下叙述正确的是 ( )。 ( A)当输入数据时,必须指明变量的地址,例如, scanf(“ f“, &a); ( B)只有格式控制,没有输入项,也能正确输入数据到内存。例如, scanf(“m=d, n= d“); ( C)当 输入一个实型数
5、据时,格式控制部分可以规定小数点后的位数,例如,scanf(“ 5 1f“, &a); ( D)输入项可以是一个实型常量,例如, scanf(“ f“, 7 5); 9 已知字母 A的 ASCII码值为 65,则下面程序的输出是 ( )。 main() char c1, c2; c1=A+5-3; c2=A+6-3; printf(“ d, c n“, c1, c2); ( A) 67, D ( B) B, C ( C) C, D ( D)不确定的值 10 在 C语言中的 if语句中,用作判断的表达式为 ( )。 ( A)逻辑表达式 ( B)关系表达式 ( C)任意表达式 ( D)算术表达式
6、11 为了避免嵌套的条件语句 if-else的二义性, C语言规定:与 else配对的是 ( )。 ( A) if同一行上的 if ( B)缩排位置相同的 if ( C)其之前最近的 if ( D)其之后最近的 if 12 有以下程序,输出结果是 ( )。 main() int i=15j=21, n=0; switch(i 3) case 0: n+; break; case 1: n+: switch(j 2) default: n+; case 0: n+; break; pintf(“ d n“, n); ( A) 1 ( B) 2 ( C) 3 ( D) 4 13 设变量 m和 n均
7、已正确定义并赋值,以下 if语句中,在编译时将产生错误信息的是 ( )。 ( A) if(m 0)m-else n+; ( B) if(m+) ( C) if(m n&n!=0) ( D) if(n 0); else m+; 14 阅读以下程序: #include stdio h main() int i; scanf(“ dt“, &i); if(i- 5)printf(“ d“, i); else printf(“ d“, i+); 程序运行 后,如果从键盘上输入 5,则输出结果是 ( )。 ( A) 2 ( B) 3 ( C) 4 ( D) 5 15 以下程序运行后的输出结果是 ( )。
8、 #include stdio h main() int m=1, n=0, i=0, j=0; switch(m) case 1: switch(n) case 0: i+; break; case 1: j+; break; ) case 2: i+ij+; break; printf(“i= d, j= d n“, i, j); ( A) i=2j=1 ( B) i=1, j=0 ( C) i=1, j=1 ( D) i=2, j=2 16 运行下面的程序,输出结果是 ( )。 main() int a=3, b=0, c=0; if(a=b+c) printf(“*“); else p
9、rintf(“#“); ( A)有语法错误,不能通过编译 ( B)输出 # ( C)可以通过编译,但是不能通过连接,因而不能运行 ( D)输出 * 17 两次执行下面的程序,分别从键盘上输入 6和 4,则输出结果是 ( )。 main() int x; scanf(“ d“, &x); if(x+ 5) printf(“ d“, x); else printf(“ d“, x-); ( A) 7 4 ( B) 6 3 ( C) 7 5 ( D) 6 4 18 以下程序运行后的输出结果是 ( )。 #include stdio h main() int i=0, j=0, k=0, x=35;
10、if(i) x-; else if(j); if(k) x=3; else x=4; prinff(“ d n“, x); ( A) 4 ( B) 34 ( C) 3 ( D) 35 19 执行以下程序时,为了使输出结果为: t=4,则给 i和 j输入的值应该满足的条件是 ( )。 #include stdio h main() int s, t, ij; scanf(“&d, &d“, &i, &j); s=1, t=1; if(i 0) s=s+1; if(i j) t=s+t: else if(i=j) t=-5; eles t=2*s: printf(“t= d n“, t); ( A
11、) i j ( B) 0 i j ( C) i j 0 ( D) 0 i j 20 下列关于 switch语句和 break语句的结论中,正确的是 ( )。 ( A)在 switch语句中可以根据需要使用或不使用 break语句 ( B)在 switch语句中必须使用 break语句 ( C) break语句是 switch语句的一部分 ( D)以上三个结论中有两个是正确的 21 若运行下列程序时,输 入以下指定数据,则正确的运行结果是 ( )。 #include stdio h main() int i; while(i=getchar()!= n) switch(i) case0: cas
12、e1: putchar(i+4); case2: putchar(i+4); break; case3: putchar(i+4); default: putchar(i+2); break; pfintf(“ n“); 输入数据 (第一列 ): 2473回车 ( A) 6688766 ( B) 66975 ( C) 66778777 ( D) 668966 22 在 C语言中 ( )。 ( A)不能使用 do-while语句构成的循环 ( B) do-while语句构成的循环必须用 break语句才能退出 ( C) do-while语句构成的循环,当 while语句中的表达式值 为零时结束循
13、环 ( D) do-while语句构成的循环,当 while语句中的表达式值为非零时结束循环 23 以下程序的输出结果是 ( )。 #include stdio h main() int i; for(i=1; i =5; i+) if(i 2) printf(“*“); else continue; printf(“#“); printf(“ n“); ( A) #*#* ( B) *#*# ( C) *#*#*# ( D) *#*#*# 24 请阅读程序: #include math h #include stdio h main() float a, b, c; scanf(“ f f“
14、, &a, &b); c=a b; while(1) if(fabs(c) 1 6) a=b; b=c; c=a b; else break; printf(“ f n“, b); 若运行时从键盘上输入 3 6 2 4回车,则输出结果是 ( )。 ( A) 1 500000 ( B) 1 600000 ( C) 2 000000 ( D) 2 400000 25 下面程序的输出是 ( )。 main() int i=9; for(; i 0; i-) if(i 3=0) printf(“ d“, -i); continue; ( A) 741 ( B) 852 ( C) 963 ( D) 87
15、5421 26 以下程序中, while循环的循环次数是 ( )。 main() int n=0; while(n 10) if(n 1)continue; if(n=5)break; n+; ( A) 1 ( B) 10 ( C) 6 ( D)死循环,不能确定次数 27 已定义 i和 i为 int类型变量,则以下 for语句的循环次数是 ( )。 for(i=0, j=0; i =9&j!=876; i+) scanf(“ d“, &j); ( A)最多执行 9次循环 ( B)循环最多执行 10次 ( C)是无限循环 ( D)循环体一次也不执行 28 下面程序段的执行结果是 ( )。 i=3
16、; do print“ 2d“, i-); while(!i); ( A) 3 ( B) 321 ( C)不打印任何内容 ( D)陷入死循环 29 执行下列程序的输出结果是 ( )。 #include stdio h main() int i, j, x=0, y=0; for(i=0; i 2, i+) for=j=0 j 3; j+) x+; x-=j; y=i+j; printf(“x= d, y= d n“, x, y); ( A) x=0, y=3 ( B) x=0,y=5 ( C) x=1, y=3 ( D) x=1, y=5 30 在 C语言中 do-while语句中结束该循环的
17、条件为 ( )。 ( A) 0 ( B) 1 ( C)非 0 ( D) true 国家二级 C语言机试( C语言程序设计)模拟试卷 1答案与解析 一、选择题 1 【正确答案】 C 【试题解析】 本题主要考查 C语言 prinltf函数中格式控制字符串的使 用,表示格式说明的起始符号, “-”表示输出是否左对齐, “0”表示输出是空位是否填 0。在本题中格式字符串的 “f”将原样输出。若用格式描述 6d输出 x值,则输出占 6格,右对齐,左边用空格填满。若用格式描述 06d,将输出 x值,输出同上,只是左边用 0填满。若用格式描述 -06d,输出为左对齐即左边没有空位置,右边有空位置。 【知识模
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 语言 语言程序设计 模拟 答案 解析 DOC
