【计算机类职业资格】二级C语言-268 (1)及答案解析.doc
《【计算机类职业资格】二级C语言-268 (1)及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言-268 (1)及答案解析.doc(22页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C 语言-268 (1)及答案解析(总分:105.00,做题时间:90 分钟)一、选择题(总题数:46,分数:105.00)1.以下不能将 s 所指字符串正确复制到 t 所指存储空间的是_。(分数:2.00)A.do*t+ +=*s+ +;while(*s);B.for(i=0;ti=si;i+ +);C.while( *t = * s)t+ +;s+ +D.for(i=0,j=0;ti+ +=sj+ +; );2.设有定义: int k=0; 以下选项的 4 个表达式中与其他 3 个表达式的值不相同的是_。(分数:2.00)A.+ +kB.k+ =1C.k+ +D.k+13.若有定义语
2、句: int year=2009, *p= 以下不能使变量 year 中的值增至 2010 的语句是_。(分数:2.00)A.(*p)+ +;B.*p+ +;C.+ +(*p);D.*p+ =1;4.若有以下程序: #include stdio.h int f(int m) static int n=0; int a=2; n+ +; a+ +; return n+m+a; main( ) int k; for.(k=0; k4; k+ +) printf(“%d,“, f(k); 则程序的输出结果是_。(分数:2.00)A.3,5,7,9,B.4,7,10,13,C.4,5,6,7,D.4,
3、6,8,10,5.有以下程序: #include stdio.h int fun(int a, intB) return a+b; main( ) int x=6, y=7, z=8, r; r = fun (fun(x,y), z- -); printf(“%d/n“, r); 程序运行后的输出结果是_。(分数:2.00)A.21B.15C.20D.316.若有定义:double a=22;int i=0,k=18;,则不符合 C 语言规定的赋值语句是_。(分数:2.00)A.i=(a+k)=(i+k);B.i=a%11;C.a=a+ +,i+ +D.i=! a;7.若变量 x、y 已正确定
4、义并赋值,以下符合 C 语言语法的表达式是_。(分数:2.00)A.x+1=yB.+x,y=x-C.x=x+10=x+yD.double(x)/108.若变量均已正确定义并赋值,以下合法的 C 语言赋值语句是_。(分数:2.00)A.x=y= =5;B.x=n%2.5;C.x+n=i;D.x=5=4+1;9.以下选项中正确的定义语句是_。(分数:2.00)A.double, a, b;B.double a=b=7;C.double a; b;D.double a=7,b=7;10.若有定义语句: int a=3,b=2,c=1; 以下选项中错误的赋值表达式是_。(分数:2.00)A.a=(b=
5、4)=3;B.a=b=c+1;C.a=(b=4)+c;D.a=1+(b=c=4);11.表达式 a+ =a - = a=9 的值是_。(分数:2.00)A.18B.-9C.0D.912.有以下程序: #inelude stdio.h main( ) int a=3; printf(“%d/n“,(a+ =a- =a*a); 程序运行后的输出结果是_。(分数:2.00)A.3B.9C.0D.-1213.有以下程序: #include stdio.h main( ) int a=1,b=0; printf(“%d,“,b=a+b); printf(“%d/n“,a=2*b);(分数:2.00)A.
6、1,2B.1,0C.3,2D.0,014.以下叙述中正确的是_。(分数:2.00)A.a 是实型变量,a=10 在 C 语言中是允许的,因此可以说:实型变量中可以存放整型数B.在赋值表达式中,赋值号的右边可以是变量,也可以是任意表达式C.若有 int a=4,b=9;执行了 a=b 后,a 的值已由原值改变为 b 的值,b 的值变为 0D.若有 int a=4,b=9;执行了 a=b;b=a;之后,a 的值为 9,b 的值为 415.以下叙述中正确的是_。(分数:2.00)A.由 printf 输出的数据都隐含左对齐B.scanf 和 printf 是 C 语言提供的输入和输出语句C.赋值语句
7、是一种执行语句,必须放在函数的可执行部分D.由 printf 输出的数据的实际精度是由格式控制中的域宽和小数的域宽来完全决定的16.若有以下程序: #include stdio.h main( ) int b=10, a=-11; a%=b%=4; printf(“%d%d/n“, a, b); 则程序的输出结果是_。(分数:2.00)A.1 2B.-1 2C.-1 -2D.1 -217.若有以下程序: #include stdio3.h main( ) int a=-11, b=10; a/=b/=-4; printf(“%d%d/n“, a, b); 则程序的输出结果是_。(分数:2.00
8、)A.4 -3B.-1 -2C.5 -2D.5 -318.有以下程序: # include stdio.h main( ) unsigned char a=8, c; c=a3; printf(“%d/n“, c); 程序运行后的输出结果是_。(分数:2.00)A.16B.1C.32D.019.有以下程序: # include stdio.h main( ) unsigned char a=2, b=4, c=5, d; d=a | b; d printf(“%d/n“, d); 程序运行后的输出结果是_。(分数:2.00)A.3B.4C.5D.620.设有以下语句: int a=1,b=2,
9、 c; c=a(b2); 执行后,c 的值为_。(分数:2.00)A.7B.9C.8D.621.若有以下程序段: int r=8; printf(“%d/n“,r1); 则输出结果是_。 A16 B8 C4 D12 (分数:2.00)A.B.C.D.22.有以下程序: #include stdio.h main( ) int a=1, b=2, c=3, x; x=(ab) printf(“%d/n“,x); 程序的运行结果是_。(分数:2.00)A.3B.1C.2D.023.有以下程序: #include stdio.h main( ) int a=2, b; b=a2; printf(“%
10、d/n“, b); 程序运行后的输出结果是_。(分数:2.00)A.2B.4C.6D.824.有以下程序: #include stdio.h main( ) char a=4; printf(“%d/n“,a=a1); 程序的运行结果是_。(分数:2.00)A.16B.8C.40D.425.有以下程序: #include stdio.h main( ) int a=5, b=1, t; t=(a2)|b; printf(“%d/n“,t); 程序运行后的输出结果是_。(分数:2.00)A.1B.11C.6D.2126.若变量已正确定义,则以下语句的输出结果是_。 s=32; s=32; pri
11、ntf(“%d“,s);(分数:2.00)A.-1B.0C.1D.3227.若有以下程序: #include stdio.h main( ) int c; c=105; printf(“%d/n“, c); 则程序的输出结果是_。(分数:2.00)A.5B.15C.10000D.10528.若有以下程序: #nclude stdio.h main( ) int c; c=13|15; printf(“%d/n“,c); 则程序的输出结果是_。(分数:2.00)A.13B.15C.18D.529.有以下程序: #include stdio.h main( ) int i=0; i= i; pri
12、ntf(“%d/n“,i); 程序运行后的输出结果是_。(分数:2.00)A.8B.0C.1D.-130.有以下程序: #include stdio.h main( ) int i=1; i = ii; printf(“%d/n“,i); 程序运行后的输出结果是_。(分数:2.00)A.1B.-1C.0D.731.下面选项中关于位运算的叙述正确的是_。(分数:2.00)A.位运算的对象只能是整型或字符型数据B.位运算符都需要两个操作数C.左移运算的结果总是原操作数的 2 倍D.右移运算时,高位总是补 032.若变量已正确定义并赋值,以下不能构成 C 语句的选项是_。(分数:2.00)A.B+
13、+;B.A=a+b;C.a=a+bD.A?a:b;33.以下叙述中正确的是_。(分数:2.00)A.复合语句在语法上包含多条语句,其中不能定义局部变量B.花括号对只能用来表示函数的开头和结尾,不能用于其他目的C.空语句就是指程序中的空行D.当用 scanf 从键盘输入数据时,每行数据在没按下回车键(Enter 键)前,可以任意修改34.有以下程序: #include stdio.h main( ) char c1, c2, c3, c4, c5, c6; scanf(“%c%c%c%c“, c5=getchar(); c6=getchar(); putchar(c1); putchar(c2)
14、; printf(“%c%c/n“,c5,c6); 程序运行后,若从键盘输入(从第 1 列开始) 123回车 45678回车 则输出结果是_。(分数:2.00)A.1245B.1256C.1278D.126735.若有以下程序: #include stdio.h char f(char x) return x*x+“a“; main( ) char a, b=0; for(a=0; a4; a+ =1) b=f(a); putchar(b); 则程序的输出结果是_。(分数:2.00)A.abcdB.ABEJC.abcjD.ABCD36.若有以下程序: #include stdio.h char
15、 f(char x) return x*x%10+ “0“; main( ) char a; int b=0; for(a=0; a5; a+ =1) b=f(a); putchar(b); 则程序的输出结果是_。(分数:2.00)A.014916B.01234C.01496D.0000037.有以下程序: #include stdio.h main( ) char a,b,c,d; scanf(“%c%c“, c=getchar(); d=getchar(); printf(“%c%c%c%c/n“,a,b,c,d); 当执行程序时,按下列方式输入数据(从第 1 列开始,CR代表回车,注意:
16、回车也是一个字符) 12CR 34CR 则输出结果是_。(分数:2.00)A.1234B.12C.1234D.12338.以下叙述中错误的是_。(分数:2.00)A.gets 函数用于从终端读入字符串B.getchar 函数用于从磁盘文件读入字符C.fputs 函数用于把字符串输出到文件D.fwrite 函数用于以二进制形式输出数据到文件39.要求通过 while 循环不断读入字符,当读入字母 N 时结束循环。若变量已正确定义,以下正确的程序段是_。(分数:2.00)A.while(ch=getchar() =“N“)printf(“%c“,ch);B.while(ch=getchar()!
17、=“N“) printf(“%c“,ch);C.while(ch=getchar()= =“N“)printf(“%c“,ch);D.while(ch=getchar()= =“N“)printf(“%c“,ch);40.以下不能输出字符 A 的语句是(注:字符 A 的 ASCII 码值为 65,字符 a 的 ASCII 码值为 97)_。(分数:4.00)A.printf(“%c/n“, “a“-32);B.printf(“%d/n“, “A“);C.printf(“%c/n“,65);D.printf(“%c/n“, “B“-1);41.已知字符“A“的 ASCII 代码值是 65,字符变
18、量 c1 的值是“A“,c2 的值是“D“,则执行语句 printf(“%d,%d“, c1, c2-2); 的输出结果是_。(分数:2.00)A.65,68B.A,68C.A,BD.65,6642.有以下程序: #inelude stdio.h 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); 程序运行后的输出结果是_。(分数:4
19、.00)A.a=1,b=0B.a=1,b=1C.a=2,b=1D.a=2,b=243.有以下程序: #include stdio.h main( ) int k, j, s; for(k=2; k6; k+ +,k+ + ) s=1; for(j=k; j6; J+ +) s+ =j; printf(“%d/n“,s); 程序运行后的输出结果是_。(分数:4.00)A.6B.10C.24D.4044.有以下程序: #include stdio.h main( ) char c1,c2; c1=“A“+“8“-“4“; c2=“A“+“8“-“5“; printf(“%c,%d/n“,c1,c2
20、); 已知字母 A 的 ASCII 码为 65,程序运行后的输出结果是_。(分数:4.00)A.E,68B.D,69C.E,DD.输出无定值45.有如下程序段: int x=12; double y=3.141593; printf(“%d%8.6f“, x, y); 其输出结果是_。(分数:4.00)A.123.141593B.12 3.141593C.12, 3.141593D.123.141593046.若变量已正确定义为 int 型,要通过语句 scanf(“%d,%d,%d“, 给 a 赋值 1、给 b 赋值 2、给 c 赋值 3,以下输入形式中错误的是(注:代表一个空格符)_。(分
21、数:5.00)A.1,2,3回车B.1,2,3回车C.1,2,3回车D.123回车二级 C 语言-268 (1)答案解析(总分:105.00,做题时间:90 分钟)一、选择题(总题数:46,分数:105.00)1.以下不能将 s 所指字符串正确复制到 t 所指存储空间的是_。(分数:2.00)A.do*t+ +=*s+ +;while(*s); B.for(i=0;ti=si;i+ +);C.while( *t = * s)t+ +;s+ +D.for(i=0,j=0;ti+ +=sj+ +; );解析:解析 do*t+=*s+;while(*s);不能因为当*s=“/0“时,while(*s
22、)跳出循环,这样字符串结束标志“/0”没有复制给*t,造成*t 不完整。注意:*t+=*s+是先执行 t=*s,然后才进行t=t+1,s=s+1。B、C 和 D 都能将“/0”复制过去。2.设有定义: int k=0; 以下选项的 4 个表达式中与其他 3 个表达式的值不相同的是_。(分数:2.00)A.+ +kB.k+ =1C.k+ + D.k+1解析:解析 +k 是先使 k 的值自增 1 后再使用;k+是先取得 k 的值,再将 k 的值自增 1,所以 C 选项中表达式的值为 0,而其他三个表达式的值均为 1,所以选择 C。3.若有定义语句: int year=2009, *p= 以下不能使
23、变量 year 中的值增至 2010 的语句是_。(分数:2.00)A.(*p)+ +;B.*p+ +; C.+ +(*p);D.*p+ =1;解析:解析 由于自加运算符+的运算级别高于间接运算*的运算级别,所以 B 选项的表达式*p+不能使变量 year 中的值增至 2010。因此 B 选项正确。4.若有以下程序: #include stdio.h int f(int m) static int n=0; int a=2; n+ +; a+ +; return n+m+a; main( ) int k; for.(k=0; k4; k+ +) printf(“%d,“, f(k); 则程序的
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 2681 答案 解析 DOC
