【计算机类职业资格】二级C语言-运算符与表达式及答案解析.doc
《【计算机类职业资格】二级C语言-运算符与表达式及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言-运算符与表达式及答案解析.doc(32页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C 语言-运算符与表达式及答案解析(总分:60.00,做题时间:90 分钟)一、B选择题/B(总题数:38,分数:38.00)1.设变量已正确定义并赋值,以下合法的 C 语言赋值语句是_。 A.x=y=5 B.x=n%2.5 C.x+n=i D.x=5=4+1(分数:1.00)A.B.C.D.2.在 x 值处于-22、48 时值为“真”,否则为“假”的表达式是_。 A.(2x-2)|(4x8) B.!(x-2)|(x2)double b;float c;char k;,则表达式 a/b+c-k 的值的类型为_。 A.int B.double C.float D.char(分数:1.00)
2、A.B.C.D.10.设有定义:int k=0;,以下选项的 4 个表达式中与其他 3 个表达式的值不相同的是_。 A.k+ B.k+=1 C.+k D.k+1(分数:1.00)A.B.C.D.11.以下关于单目运算符+、-的叙述中正确的是_。 A.它们的运算对象可以是任何变量和常量 B.它们的运算对象可以是 char 型变量和 int 型变量,但不能是 float 型变量 C.它们的运算对象可以是 int 型变量,但不能是 double 型变量和 float 型变量 D.它们的运算对象可以是 char 型变量、int 型变量和 float 型变量(分数:1.00)A.B.C.D.12.以下选
3、项中,与 k=n+完全等价的表达式是_。 A.k=n, n=n+1 B.n=n+1, k=n C.k=+n D.k+=n+1(分数:1.00)A.B.C.D.13.以下非法的赋值语句是_。 A.n=(i=2, +i) B.j+ C.+(i+1) D.x=j0(分数:1.00)A.B.C.D.14.以下程序的输出结果为_。#include stdio.hmain() int i=4, a;a=i+;printf(“a=% d, i=% d“, a, i); A.a=4, i=4 B.a=5, i=4 C.a=4, i=5 D.a=5, i=5(分数:1.00)A.B.C.D.15.若变量已正确定
4、义并赋值,以下符合 C 语言语法的表达式是_。 A.a:=b+1 B.a=b=c+2 C.int18.5%3 D.a=a+7=c+b(分数:1.00)A.B.C.D.16.若下列变量都已正确定义并赋值,则符合 C 语言语法的表达式是_。 A.a=a+7 B.a=7+b+c, a+ C.int(12.3/4) D.a=a+7=c+b(分数:1.00)A.B.C.D.17.设有定义:int x=2;,以下表达式中,值不为 6 的是_。 A.x*=x+1 B.x+, 2*x C.x*=(1+x) D.2*x, x+=2(分数:1.00)A.B.C.D.18.执行以下程序后的输出结果是_。main()
5、 int a=65;printf(“%c“, (char)a); A.A B.B C.C D.D(分数:1.00)A.B.C.D.19.以下程序的运行结果是_。main() char ch=A;int num1=ch;float num2=num1;printf(“% f“, num2); A.A B.65 C.65.00000 D.a(分数:1.00)A.B.C.D.20.若 a 为整型变量,则执行以下语句后的_。a=-2L;printf(“%d/n“, a); A.赋值不合法 B.输出值为-2 C.输出为不确定值 D.输出值为 2(分数:1.00)A.B.C.D.21.已知字符 A 的 A
6、SCII 码值是 65,执行以下程序后的_。#include stdio.hmain() char a =A;int b=20;printf(“% d, %o“, (a=a+1, a+b, b), a+a-A, b); A.表达式非法,输出零或不确定值 B.因输出项过多,无输出或输出不确定值 C.输出结果为 20,141 D.输出结果为 20,1541,20(分数:1.00)A.B.C.D.22.变量 a 中的数据用二进制表示的形式是 01011101,变量 b 中的数据用二进制表示的形式是 11110000。若要求将 a 的高 4 位取反,低 4 位不变,所要执行的运算是_。 A.ab B.
7、a|b C.a,若想通过 a x=2; y=3; z=4; m=(wx)?w:x; m=(my)?m:y; m=(mz)?m:z; 则该程序运行后,m 的值是_。 A.4 B.3 C.2 D.1(分数:1.00)A.B.C.D.28.以下程序的输出结果是_。#include stdio.hmain() int a=5, b=4, c=6, d;printf(“% d/n“, d=ab? (ac? a:c):(b); A.5 B.4 C.6 D.不确定(分数:1.00)A.B.C.D.29.在 C 语言中,如果下面的变量都是 int 类型,则输出的结果是_。sum=pad=5; pad=sum+
8、, pad+, +pad; printf(“%d/n“, pad); A.7 B.6 C.5 D.4(分数:1.00)A.B.C.D.30.以下程序的输出结果是_。#include stdio.hmain() int i =010, j=10;printf(“% d, % d/n“, +i, j-); A.11,10 B.9,10 C.010,9 D.10,9(分数:1.00)A.B.C.D.31.已知 int i; float f;,以下选项中正确的语句是_。 A.(int f)%i; B.int(f)%i; C.int(f%i); D.(int)f%i;(分数:1.00)A.B.C.D.3
9、2.若有定义:int x=3,y=2;float a=2.5,b=3.5;则下面表达式的值为_。(x+y)%2+(int)a/(int)b A.1.0 B.1 C.2.0 D.2(分数:1.00)A.B.C.D.33.假设所有变量均为整型,则表达式(a=2, b=5, a+, b+, a+b)的值为_。 A.7 B.8 C.9 D.10(分数:1.00)A.B.C.D.34.若有定义“int x=1, y=1;“,表达式(!x|y-)的值是_。 A.0 B.1 C.2 D.-1(分数:1.00)A.B.C.D.35.有以下程序:main() unsigned char/a, b, c;a=0x
10、3;b=a |0x8;c=b 1;printf(“%d%d/n“, b, c);程序运行后的输出结果是_。 A.-11 12 B.-6 -13 C.12 24 D.11 22(分数:1.00)A.B.C.D.36.若已定义 x 和 y 为 double 类型,则表达式 x=1,y=x+3/2 的值是_。 A.1 B.2 C.2.0 D.2.5(分数:1.00)A.B.C.D.37.执行以下程序段后,c3 的值为_。int c1=1, c2=2, c3;c3=1.0/c2*c1; A.0 B.0.5 C.1 D.2(分数:1.00)A.B.C.D.38.以下程序的输出结果是_。#include
11、stdio.hmain() int y=3, x=3, z=1;printf(“%d%d/n“, (+x, y+), z+2); A.34 B.42 C.43 D.33(分数:1.00)A.B.C.D.二、B操作题/B(总题数:8,分数:22.00)39.编写函数 fun(),其功能是:根据以下公式求 的值(要求精度为 0.0005,即某项小于 0.0005 时停止迭代)。_40.下列给定程序中函数 fun()的功能是:求两个非零正整数的最大公约数,并作为函数值返回。例如,若 num1 和 num2 分别为 49 和 21,则输出的最大公约数为 7;若 num1 和 num2 分别为 27 和
12、 81,则输出的最大公约数为 27。请改正程序中的错误,使它能得出正确结果。注意:不要改动 main()函数,不得增行或删行,也不得更改程序的结构。试题程序#include stdio.hint fun(int a, int b) int r, t;if(ab)/* * * * *found* * * * * /t =a; b=a; a=t;r=a% b;while(r!= 0)a=b; b=r; r=a% b;/* * * * *found* * * * * /return (a);void main() int num1, num2, a;printf(“Input num1 num2:
13、“);scanf(“% d% d“, printf(“num1 =% d num2=% d/n/n“, num1, num2);a=fun(num1, num2);printf(“The maximun common divisor is% d/n/n“, a);_41.下列给定的程序中,函数 fun()的功能是:计算并输出 k 以内最大的 10 个能被 13 或 17 整除的自然数之和。k 的值由主函数传入,若 k 的值为 500,则函数的值为 4622。请改正程序中的错误,使它能得出正确的结果。注意:不要改动 main()函数,不得增行或删行,也不得更改程序的结构。试题程序#include
14、 stdio.h#include conio.h#include stdlib.hint fun(int k) int m=0, mc=0, j;while(k=2) mc+;k-;/* * * * *found* * * * * /return m;void main() printf(“% d/n“, fun(500);_42.下列给定程序中函数 fun()的功能是:将 p 所指字符串中的所有字符复制到 b 中,要求每复制 3 个字符之后插入一个空格。例如,若给 a 输入字符串:ABCDEFGHIJK,调用函数后,字符数组 b 中的内容为:ABC DEF GHI JK。请改正程序中的错误,
15、使它能得出正确结果。注意:不要改动 main()函数,不得增行或删行,也不得更改程序的结构。试题程序#include stdio.hvoid fun(char *p, char *b) int i, k=0; while(*p) i=1;while(i=3 k+; p+; i+;if(*p) /* * * * *found* * * * * /bk+=“ “;bk=/0;main() char a80, b80;printf(“Enter a string:“);gets(a);printf(“The original string:“); puts(a);fun(a, b);printf(“
16、/nThe string after insert space:“);puts(b); printf(“/n/n“);_43.下列给定程序中函数 fun()的功能是:计算并输出 high 以内最大的 10 个素数的和。high 的值由主函数传给 fun()函数。例如,若 high 的值为 100,则函数的值为 732。请改正程序中的错误,使它能得出正确的结果。注意:不要改动 main()函数,不得增行或删行,也不得更改程序的结构。试题程序#include conio.h#include stdio.h#include math.h int fun(int high) int sum=0, n=
17、0, j, yes;/* * * * *found* * * * * /while(high=2) for(j=2; j=high/2; j+)if(high% j=0) /* * * * *found* * * * * /yes=0; breakif(yes) sum+=high;n+;high-;return sum;main() printf(“% d/n“, fun(100);_44.下列给定程序中函数 fun()的功能是:将长整型数中各位上为奇数的数依次取出,构成一个新数放在t 中。高位仍在高位,低位仍在低位。例如,当 s 中的数为 87653142 时,t 中的数为 7531。请在
18、下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。注意:不要改动 main()函数,不得增行或删行,也不得更改程序的结构。试题程序#include stdlib.h#include stdio.h#include conio.hvoid fun(long s, long * t) int d;long s1=1;*t=0;while(s0) d=s% 10;if(d% 2!=0) *t=d*s1+*t;s1_10;s/ =10;void main() long s, t;printf(“/nPlease enter s:“);scanf(“% ld“, fun(s, printf(“
19、The result is:% ld/n“, t);(分数:8.00)填空项 1:_45.给定程序的功能是:计算并输出下列级数的前 n 项之和 Sn,直到 Sn大于 q 为止,q 的值通过形参传入。(分数:8.00)填空项 1:_46.下列给定程序中,函数 fun()的功能是:将形参 n 中各位上为偶数的数取出,并按原来从高位到低位相反的顺序组成一个新数,作为函数值返回。例如,输入一个整数 27638496,函数返回值为 64862。请在标号处填入正确的内容,使程序得出正确的结果。注意:部分源程序给出如下。不得增行或删行,也不得更改程序的结构。试题程序#include stdio.hunsig
20、ned long fun(unsigned long n) unsigned long x=0; int t;while(n) t=n% 10;/* * * * *found* * * * * /if(t% 2=_)/* * * * *found* * * * * /x=_+t;/* * * * *found* * * * * /n=_;return x;main() unsigned long n=-1;while(n99999999|n0) printf(“Please input (0n100000000): “);scanf(“% ld“, printf(“/nThe result i
21、s: % ld/n“, fun(n);(分数:6.00)填空项 1:_二级 C 语言-运算符与表达式答案解析(总分:60.00,做题时间:90 分钟)一、B选择题/B(总题数:38,分数:38.00)1.设变量已正确定义并赋值,以下合法的 C 语言赋值语句是_。 A.x=y=5 B.x=n%2.5 C.x+n=i D.x=5=4+1(分数:1.00)A. B.C.D.解析:解析 赋值运算符左侧的操作数必须是一个变量,而不能是表达式或者常量,选项 C 和 D 错误。“%”运算符两侧都应当是整型数据,选项 B 错误。2.在 x 值处于-22、48 时值为“真”,否则为“假”的表达式是_。 A.(2
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 运算 表达式 答案 解析 DOC
