【计算机类职业资格】二级C语言-110及答案解析.doc
《【计算机类职业资格】二级C语言-110及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言-110及答案解析.doc(20页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C 语言-110 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:41,分数:100.00)1.以下选项中,当 x 为大于 1 的奇数时,值为 0 的表达式是_。(分数:1.00)A.x%2= =0B.x/2C.x%2!=0D.x%2= =12.以下叙述中正确的是_。(分数:2.00)A.在 C 语言中,逻辑真值和假值分别对应 1 和 0B.关系运算符两边的运算对象可以是 C 语言中任意合法的表达式C.对于浮点变量 x 和 y,表达式:x= =y 是非法的,会出编译错误D.分支结构是根据算术表达式的结果来判断流程走向的3.若变量已正确定义,以下选项中非法的表达式
2、是_。(分数:2.00)A.a! =4|“b“B.“a“=1/2*(x=y=20, x*3)C.“a“%4D.“A“+324.与数学表达式 xyz 对应的 C 语言表达式是_。(分数:2.50)A.(x =y)|(y=x)B.(x=y=z)C.(x=y)!(y=z)D.(x=y) if(a= =1 else printf(“%d,%d,%d/n“,a,b,c); else printf(“%d,%d,%d/n“,a,b,c); 程序运行后的输出结果是_。(分数:2.50)A.1,3,2B.1,3,3C.1,2,3D.3,2,18.若有以下程序: #include stdio.h main( )
3、 int a=1,b=2,c=3,d=4; if(a=2) | (b=1)c=2; if(c= =3) printf(“%d,%d,%d,%d/n“,a,b,c,d); 则程序的输出结果是_。(分数:2.50)A.1,2,3,4B.2,1,2,-1C.5,1,2,-1D.2,2,2,49.若有以下程序: #include stdio.h main( ) int a=1,b=2,c=3,d=4; if(a=2) if(c= =3)|(d=-1) a=5; printf(“%d,%d,%d,%d/n“,a,b,c,d); 则程序的输出结果是_。(分数:2.50)A.2,2,2,4B.2,1,2,-
4、1C.5,1,2,-1D.1,2,3,410.以下关于逻辑运算符两侧运算对象的叙述中正确的是_。(分数:2.50)A.可以是任意合法的表达式B.只能是整数 0 或非 0 整数C.可以是结构体类型的数据D.只能是整数 0 或 111.设有宏定义: #define IsDIV(k,n) (k%n= =1)?1 : 0) 且变量 m 已正确定义并赋值,则宏调用: IsDIV(m,5) if(x0) y=sqrt(-x);B.if(x =0) y=sqrt(x);else y=sqrt(-x);C.y=sqrt(x);if(x0) y=sqrt(-x);D.y=sqrt(x=0? x : -x);15
5、.下列条件语句中,输出结果与其他语句不同的是_。(分数:2.50)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 printf (“%d/n“,y);16.若有以下程序: #include stdio.h main( ) int a=1,b=2
6、,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); 则程序的输出结果是_。(分数:2.50)A.10B.7C.6D.317.若有以下程序: #include stdio.h 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
7、“, r); 则程序的输出结果是_。(分数:2.50)A.3B.7C.6D.1018.以下叙述中正确的是_。(分数:2.50)A.对于逻辑表达式:a+ +|b+ +,设 a 的值为 1,则求解表达式的值后,b 的值会发生改变B.对于逻辑表达式:a+ + switch(x) case 1: switch(y) ease 0: a+ +; break; case 1: b+ +; break; ease 2: a+ +: b+ +: break; case 3: a+ +; b+ +; printf(“a=%d, b=%d/n“, a, b); 程序的运行结果是_。(分数:2.50)A.a=2,b
8、=2B.a=2,b=1C.a=1,b=1D.a=1,b=020.有以下程序段: #include stdio.h int i, n; for(i=0; i8; i+ +) n=rand() % 5; switch (n) case 1: case 3: printf(“%d/n“,n); break; case 2: case 4: printf(“%d/n“, n); continue; case 0: exit(0); printf(“%d/n“,n); 以下关于程序段执行情况的叙述,正确的是_。(分数:2.50)A.for 循环语句固定执行 8 次B.当产生的随机数 n 为 4 时结束循
9、环操作C.当产生的随机数 n 为 1 和 2 时不做任何操作D.当产生的随机数 n 为 0 时结束程序运行21.若有定义:float x=1.5; int a=1,b=3,c=2;则正确的 switch 语句是_。(分数:2.50)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.0: printf(“* */n“
10、);D.switch(a+b)case 1: printf(“*/n“);case c: printf(“* */n“);22.有以下程序: #include stdio.h main( ) int a =2,3,5,4,i; for(i=0;i4;i+ +) switch(i%2) case 0: switch(ai%2) case 0:ai+ +;break; case 1:ai- -; break; case 1:ai=0; for(i=0:i4;i+ +) printf(“%d“,ai); printf(“/n“); 程序运行后的输出结果是_。(分数:2.50)A.0 3 0 4B.2
11、 0 5 0C.3 3 4 4D.3 0 4 023.下列叙述中正确的是_。(分数:2.50)A.在 switch 语句中,不一定使用 break 语句B.在 switch 语句中必须使用 defaultC.break 语句必须与 switch 语句中的 case 配对使用D.break 语句只能用于 switch 语句24.有以下程序: #include stdio.h main( ) int y=10; while(y- -); printf(“y=%d/n“,y); 程序执行后的输出结果是_。(分数:2.50)A.y=0B.y=-1C.y=1D.while 构成无限循研25.有以下程序:
12、 #include stdio.h main( ) int k=5; while(-k) printf(“%d“,k-=3); printf(“/n“); 执行后的输出结果是_。(分数:2.50)A.1B.2C.4D.死循环26.关于“while(条件表达式)循环体”,以下叙述正确的是_。(分数:2.50)A.循环体的执行次数总是比条件表达式的执行次数多一次B.条件表达式的执行次数总是比循环体的执行次数多一次C.条件表达式的执行次数与循环体的执行次数一样D.条件表达式的执行次数与循环体的执行次数无关27.有以下函数: int fun(char * s) char *t=s; while(* t
13、 + +); return(t-s); 该函数的功能是_。(分数:2.50)A.计算 s 所指字符串的长度B.比较两个字符串的大小C.计算 s 所指字符串占用内存字节的个数D.将 s 所指字符串复制到字符串 t 中28.有以下程序: #include stdio.h main( ) int a=7; while(a-); printf(“%d/n“,a); 程序运行后的输出结果是_。(分数:2.50)A.0B.-1C.1D.729.有以下函数: int aaa(char *s) char *t=s; while(*t+ +); t-; return(t-s); 以下关于 aaa 函数功能叙述正
14、确的是_。(分数:2.50)A.将串 s 复制到串 tB.比较两个串的大小C.求字符串 s 的长度D.求字符串 s 所占字节数30.在以下给出的表达式中,与 while(E)中的(E)不等价的表达式是_。(分数:2.50)A.(E0|E0)B.(E=0)C.(!E=0)D.(E!=0)31.有以下程序: #include stdio.h int fun(char s) int n=0; while(*s = “9“ s+ + ; return(n); main( ) char s10=“6“, “1“, “*“, “4“, “*“, “9“, “*“, “0“, “*“; printf(“%d
15、/n“,fun(s); 程序的运行结果是_。(分数:2.50)A.5B.9C.61D.6149032.若有以下程序: #include stdio.h main( ) int a=-2, b=0; while(a+ +) + +b; printf(“%d,%d/n“, a, b); 则程序的输出结果是_。(分数:2.50)A.1,2B.0,2C.1,3D.2,333.由以下 while 构成的循环,循环体执行的次数是_。 int k=0; while(k=1)k+ +;(分数:2.50)A.有语法错误,不能执行B.一次也不执行C.执行一次D.无限次34.关于 do 循环体 while(条件表达
16、式),以下叙述中正确的是_。(分数:2.50)A.条件表达式的执行次数总是比循环体的执行次数多一次B.循环体的执行次数总是比条件表达式的执行次数多一次C.条件表达式的执行次数与循环体的执行次数一样D.条件表达式的执行次数与循环体的执行次数无关35.以下不构成无限循环的语句或语句组的是_。(分数:2.50)A.n=0;do+ +n; while (n =0);B.n=0;while(1)n+ + ;C.n=10;while(n); n-;D.for(n=0, i=1; ;i+ +) n+ =i;36.若变量已正确定义,有以下程序段: i=0; do printf(“%d,“,i); while(
17、i+ +); printf(“%d/n“,i); 其输出结果是_。(分数:2.50)A.0,1B.0,0C.1,1D.程序进入无限循环37.若有以下程序: #include stdio.h main( ) int a=-2,b=0; do + +b; while(a+ +); printf(“%d,%d/n“,a,b); 则程序的输出结果是_。(分数:2.50)A.1,3B.0,2C.1,2D.2,338.若有以下程序: #include stdio.h main( ) int a=3; do printf(“%d,“,a-=2); while(!(-a); printf(“/n“); 则程序
18、运行后的输出结果是_。(分数:2.50)A.1B.1,-2,C.3,0,D.1,039.若有以下程序: #include stdio.h void fun(int *s) static int j=0; do sj + =sj+1; while(+ +j2); main( ) int i,a10=1,2,3,4,5; for(i=1;i3;i+ +) fun(a); for(i=1; i5; i+ + ) printf(“%d“,ai); printf(“/n“); 则程序运行后的输出结果是_。(分数:2.50)A.34756B.5745C.5795D.3574540.以下程序段中的变量已正确
19、定义: for(i=0; i4; i+ +, i+ + ) for(k=1; k3; k+ +); printf(“*“); 程序段的输出结果是_。(分数:2.50)A.* *B.* * * *C.*D.* * * * * * * *41.若有以下程序: #include stdio.h main( ) int y=9; for( ; y0; y-) if(y%3= =0) printf(“%d“, -y); 则程序的运行结果是_。(分数:2.50)A.852B.963C.741D.875421二级 C 语言-110 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:41
20、,分数:100.00)1.以下选项中,当 x 为大于 1 的奇数时,值为 0 的表达式是_。(分数:1.00)A.x%2= =0 B.x/2C.x%2!=0D.x%2= =1解析:解析 算术运算符的优先级高于关系运算符的优先级,所以当 x 为大于 1 的奇数时,A 选项的值为假,即 0。B 选项的值为不定值,但绝对不是 0。C 选项的值为真,即 1。D 选项的值为真,即 1。2.以下叙述中正确的是_。(分数:2.00)A.在 C 语言中,逻辑真值和假值分别对应 1 和 0B.关系运算符两边的运算对象可以是 C 语言中任意合法的表达式 C.对于浮点变量 x 和 y,表达式:x= =y 是非法的,
21、会出编译错误D.分支结构是根据算术表达式的结果来判断流程走向的解析:解析 A 选项中,在 C 语言中,逻辑真值对应非 0;C 选项中,表达式:x=y 是合法的;D 选项中,分支结构的流程走向是根据表达式的值,并不仅仅是算数表达式的值。因此 B 选项正确。3.若变量已正确定义,以下选项中非法的表达式是_。(分数:2.00)A.a! =4|“b“B.“a“=1/2*(x=y=20, x*3) C.“a“%4D.“A“+32解析:解析 A 选项中“a“即表示 a 为字符常量,再给“a“赋值 1/2*(x=y=20,x*3),是不正确的。因此 B选项正确。4.与数学表达式 xyz 对应的 C 语言表达
22、式是_。(分数:2.50)A.(x =y)|(y=x)B.(x=y=z)C.(x=y)!(y=z)D.(x=y) if(a= =1 else printf(“%d,%d,%d/n“,a,b,c); else printf(“%d,%d,%d/n“,a,b,c); 程序运行后的输出结果是_。(分数:2.50)A.1,3,2B.1,3,3 C.1,2,3D.3,2,1解析:解析 在 if 语句中,else 总是和最近的 if 配对,所以进入第一个 if 语句中条件判断时,因为是逻辑与操作需要两边运箅对象的值均为非零值,才为真,所以需要逐个执行判断的结果为 1,进入第二个 if 语句条件判断,因为
23、b!=2 条件成立所以整个条件表达式的值为真,所以不再执行逻辑或的第二个运算对象(c-!=3)c 的值不变,也不再执行第一个 else 语句。打印 a 的值 1,b 的值 3,c 的值 3。8.若有以下程序: #include stdio.h main( ) int a=1,b=2,c=3,d=4; if(a=2) | (b=1)c=2; if(c= =3) printf(“%d,%d,%d,%d/n“,a,b,c,d); 则程序的输出结果是_。(分数:2.50)A.1,2,3,4B.2,1,2,-1C.5,1,2,-1D.2,2,2,4 解析:解析 第一个 if 语句的判断条件是逻辑或表达式
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 110 答案 解析 DOC
