【计算机类职业资格】福建省二级C语言-1及答案解析.doc

上传人:deputyduring120 文档编号:1336083 上传时间:2019-10-17 格式:DOC 页数:12 大小:63.50KB
下载 相关 举报
【计算机类职业资格】福建省二级C语言-1及答案解析.doc_第1页
第1页 / 共12页
【计算机类职业资格】福建省二级C语言-1及答案解析.doc_第2页
第2页 / 共12页
【计算机类职业资格】福建省二级C语言-1及答案解析.doc_第3页
第3页 / 共12页
【计算机类职业资格】福建省二级C语言-1及答案解析.doc_第4页
第4页 / 共12页
【计算机类职业资格】福建省二级C语言-1及答案解析.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

1、福建省二级 C 语言-1 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.C 语言的函数体由_括起来。(分数:2.00)A.()B.C.D./*/2.下面关于 C 语言的叙述中,正确的是_。(分数:2.00)A.每行只能写一条语句B.程序中必须包含有输入语句C.main 函数必须位于文件的开头D.每条语句最后必须有一个分号3.下面关于 C 语言的叙述中,错误的是_。(分数:2.00)A.若一条语句较长,也可分写在下一行上B.构成 C 语言源程序的基本单位是表达式C.C 语言源程序中大、小写字母是有区别的D.一个 C 语言源程序可由一个或多个

2、函数组成4.关于 C 语言的叙述中,不正确的是_。(分数:2.00)A.C 程序可由一个或多个函数组成B.C 程序必须包含一个 main()函数C.C 程序的基本组成单位是函数D.注释说明只能位于一条语句的后面5.以下能表示正确常量的是_。(分数:2.00)A.E5B.1E5.1C.“a12“D.32766L6.若有定义:int a=1, b=2, c=3, d=4, x=5, y=6; ,则表达式(x=ab) ,则正确的赋值表达式是_。(分数:2.00)A.a-=(a*3)B.double(-a)C.a*3D.a*4=311.若有定义:int x=1111, y=222, z=33; ,则语

3、句 printf(“%4d+%3d+%2d“,x,y,z);运行后的输出结果为_。(分数:2.00)A.111122233B.1111,222,33C.1111 222 33D.1111+222+3312.已有如下定义和输入语句: int a, b; scanf(“%d, %d“, 若要求 a、b 的值分别为 11 和 22,正确的数据输入是_。(分数:2.00)A.11 22B.11,22C.a=11,b=22D.11;2213.已有如下定义和输入语句: int a; char c1, c2; scanf(“%d%c%c“, 若要求 a、c1、c2 的值分别为 40、A 和 A,正确的数据输

4、入是_。(分数:2.00)A.40AAB.40 AAC.40A AD.40,A,A14.语句 a=(3/4)+3%2;运行后,a 的值为_。(分数:2.00)A.0B.1C.2D.315.char 型变量存放的是_。(分数:2.00)A.ASCII 代码值B.字符本身C.十进制代码值D.十六进制代码值16.在下列运算符中,优先级最高的运算符是_。(分数:2.00)A.=B.!=C.!D.|17.设单精度型变量 f、g 的值均为 2.0,使 f 为 4.0 的表达式是_。(分数:2.00)A.f+=gB.f-=g+2C.f*=g-6D.f/=g*1018.若有定义:int i=7, j=8; ,

5、则表达式 i=j|ij 的值为_。(分数:2.00)A.1B.变量 i 的值C.0D.变量 j 的值19.若希望当 a 的值为奇数时,表达式的值为“真”,a 的值为偶数时,表达式的值为“假”,则不能满足要求的表达式是_。(分数:2.00)A.a%2=1B.!(a%2=0)C.!(a%2)D.a%220.若有定义:int x=3, y=4, z=5; ,则值为 0 的表达式是_。(分数:2.00)A.“x“ int z=8; ,则表达式 x+z%3/4 的值为_。(分数:2.00)A.3.75B.3.5C.3D.422.已知 char a=“R“; ,则正确的赋值表达式是_。(分数:2.00)A

6、.a=(a+)%4B.a+2=3C.a+=256-D.a=“/078“23.若有定义:int b=7; float a=2.5, c=4.7; ,则表达式 a+(b/2*(int)(a+c)/2)%4 的值是_。(分数:2.00)A.2.5B.3.5C.4.5D.5.524.若已定义:int i=3, k; ,则语句 k=(i-)+(i-);运行后 k 的值为_。(分数:2.00)A.4B.5C.6D.725.若已定义:int a=5; float b=63.72; ,以下语句中能输出正确值的是_。(分数:2.00)A.printf(“%d%d“, a, b);B.printf(“%d%.2f

7、“, a, b);C.printf(“%.2f%.2f“, a, b);D.printf(“%.2f%d“, a, b);26.C 语言中,能正确表示条件 10x20 的逻辑表达式是_。(分数:2.00)A.10x20B.x10 | x20C.x10 ,则语句 x=(c=3,c+1);运行后,x、c 的值分别是_。(分数:2.00)A.3,3B.4,4C.3,4D.4,330.语句 a=(6/8)+6%5;运行后,a 的值为_。(分数:2.00)A.1B.2C.1.75D.1.231.若有定义:int x, y; ,则表达式(x=2,y=5,x*2,y+,x+y)的值是_。(分数:2.00)A

8、.7B.8C.9D.1032.对代数式(4ad)/(bc),不正确的 C 语言表达式是_。(分数:2.00)A.a/b/c*d*4B.4*a*d/b/cC.4*a*d/b*cD.a*d/c/b*433.若 x 和 y 为整数,以下表达式中不能正确表示数学关系|x-y|10 的是_。(分数:2.00)A.abs(x-y)10B.(x-y)-10 z=xy2;(分数:2.00)A.00010100B.00011011C.00011000D.0000011035.以下选项中,不能看作一条语句的是_。(分数:2.00)A.; B.a=0, b=0, c=0;C.if(a0);D.if(b=0)m=1;

9、 n=2;二、填空题(总题数:15,分数:30.00)36.表达式 3/5 的值是 1,3.0/5 的值是 2,3%5 的值是 3。 (分数:2.00)37.以下程序运行的结果是 1。 int main() char m; m=“A“+32; printf(“%c/n“, m); return 0; (分数:2.00)38.若有定义:int a=6, b=2; char c1=“a“, c2=“b“; ,则表达式 a+b%5+c2-c1 的值是 1。 (分数:2.00)39.若有定义:int b; ,则语句 b=4/3+2%4;运行后,b 的值为 1。 (分数:2.00)40.若已定义:int

10、 a=3, b=15, c; ,则语句 c=ab;运行后 c 的值为 1。 (分数:2.00)41.若有定义:int a=2, b=3; float x=3.5, y=2.5; ,则表达式(float)(a+b)/2+(int)x%(int)y 的值是 1。 (分数:2.00)42.已知 double a=5.2; ,则语句 a+=a-=(a=4)*(a=3);运行后 a 的值为 1。 (分数:2.00)43.若有定义:int x, y; ,则表达式(x=2,y=5,x+,x+y+)的值是 1。 (分数:2.00)44.若有定义:int m=3, n=5; ,则表达式(m+1,n+1,(-m)

11、+(n-)的值是 1。 (分数:2.00)45.若有定义:int x=3, y=4; ,则表达式!x|y 的值为 1。 (分数:2.00)46.若有定义:int a=5, b=2, c=1; ,则表达式 a-bc|b=c 的值是 1。 (分数:2.00)47.若有定义:int a=2, b=2, c=2; ,则语句+a|+b b= 1; a=ab; (分数:2.00)49.pow(3.0,2.0)的函数值是 1。 (分数:2.00)50.若有定义:int k, i=3, j=3; ,则表达式 k=(+i)*(j-)的值是 1。 (分数:2.00)福建省二级 C 语言-1 答案解析(总分:100

12、.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.C 语言的函数体由_括起来。(分数:2.00)A.()B. C.D./*/解析:解析 C 语言的函数体为函数首部下面的大括弧内的部分。2.下面关于 C 语言的叙述中,正确的是_。(分数:2.00)A.每行只能写一条语句B.程序中必须包含有输入语句C.main 函数必须位于文件的开头D.每条语句最后必须有一个分号 解析:3.下面关于 C 语言的叙述中,错误的是_。(分数:2.00)A.若一条语句较长,也可分写在下一行上B.构成 C 语言源程序的基本单位是表达式 C.C 语言源程序中大、小写字母是有区别的D.一个 C 语

13、言源程序可由一个或多个函数组成解析:解析 C 语言程序是由函数构成的。4.关于 C 语言的叙述中,不正确的是_。(分数:2.00)A.C 程序可由一个或多个函数组成B.C 程序必须包含一个 main()函数C.C 程序的基本组成单位是函数D.注释说明只能位于一条语句的后面 解析:解析 可以用/*/语句对 C 语言程序中的任何部分作注释,注释可以位于一条语句的后面,也可以单独占一行。5.以下能表示正确常量的是_。(分数:2.00)A.E5B.1E5.1C.“a12“D.32766L 解析:解析 浮点型常量用指数形式表示的形式为 aEn,a 和 n 都不能省略,n 必须为整数,因此选项 A和 B

14、是不正确的。字符串常量是由一对双引号括起来的字符序列,选项 C 是用单引号,因此选项 C 不正确。选项 D 是在一个整型常量的尾部加上字母 L,表示该整数为长整型常量,是正确的。6.若有定义:int a=1, b=2, c=3, d=4, x=5, y=6; ,则表达式(x=ab) ,则正确的赋值表达式是_。(分数:2.00)A.a-=(a*3) B.double(-a)C.a*3D.a*4=3解析:解析 a-=(a*3)与 a=a-(a*3)等价,是正确的,其余的选项都不是赋值表达式。11.若有定义:int x=1111, y=222, z=33; ,则语句 printf(“%4d+%3d+

15、%2d“,x,y,z);运行后的输出结果为_。(分数:2.00)A.111122233B.1111,222,33C.1111 222 33D.1111+222+33 解析:解析 格式控制字符串中“+”号输出时按原样输出,因此只有选项 D 符合要求。12.已有如下定义和输入语句: int a, b; scanf(“%d, %d“, 若要求 a、b 的值分别为 11 和 22,正确的数据输入是_。(分数:2.00)A.11 22B.11,22 C.a=11,b=22D.11;22解析:解析 格式控制字符串中逗号输入时要原样输入,因此正确的输入应为 11,22。13.已有如下定义和输入语句: int

16、 a; char c1, c2; scanf(“%d%c%c“, 若要求 a、c1、c2 的值分别为 40、A 和 A,正确的数据输入是_。(分数:2.00)A.40AA B.40 AAC.40A AD.40,A,A解析:解析 用%c 输入字符时,空格也会当作有效字符输入,因此 c1、c2 会接收空格,因此 B、C 选项是错的,D 选项中多了两个逗号,运行后 c1 和 c2 的值分别为“,“和“A“。14.语句 a=(3/4)+3%2;运行后,a 的值为_。(分数:2.00)A.0B.1 C.2D.3解析:解析 3/4 是整除,值为 0.3%2 为求余,值为 1,因此整个表达式的值为 1。15

17、.char 型变量存放的是_。(分数:2.00)A.ASCII 代码值 B.字符本身C.十进制代码值D.十六进制代码值解析:解析 C 语言在内存中存放字符时是用字符数据的 ASCII 码值存储的因此选项 A 是正确的。16.在下列运算符中,优先级最高的运算符是_。(分数:2.00)A.=B.!=C.! D.|解析:解析 通过教材“表 3-3 C 运算符的优先级与结合性”可知,=的优先级是 6,!=的优先级是7,!的优先级是 2,|的优先级是 12。17.设单精度型变量 f、g 的值均为 2.0,使 f 为 4.0 的表达式是_。(分数:2.00)A.f+=g B.f-=g+2C.f*=g-6D

18、.f/=g*10解析:解析 对于选项 A,该表达式相当于 f=f+g,因此 f 的值为 4.0。18.若有定义:int i=7, j=8; ,则表达式 i=j|ij 的值为_。(分数:2.00)A.1 B.变量 i 的值C.0D.变量 j 的值解析:解析 i 的值为 7,j 的值为 8,因此 ij 的值为“真”,|运算的结果是整个表达式的值为“真”,C 语言中用 1 表示真。实际上不论 i、j 的值为多少,该表达式的值总为真。19.若希望当 a 的值为奇数时,表达式的值为“真”,a 的值为偶数时,表达式的值为“假”,则不能满足要求的表达式是_。(分数:2.00)A.a%2=1B.!(a%2=0

19、)C.!(a%2) D.a%2解析:解析 a%2 是求 a 整除 2 的余数,当 a 为奇数时值为 1,当 a 为偶数时值为 0。在选项 C 中,进行!(非)运算后的值分别为 0 和 1。因此当 a 为奇数时表达式!(a%2)的值为“假”,当 a 为偶数时整个表达式的值为“真”,与题目的要求相反。20.若有定义:int x=3, y=4, z=5; ,则值为 0 的表达式是_。(分数:2.00)A.“x“ int z=8; ,则表达式 x+z%3/4 的值为_。(分数:2.00)A.3.75B.3.5 C.3D.4解析:解析 z%3 的值为 2(求余数),2/4 的值为 0(整数除),x+0

20、值为 3.5。22.已知 char a=“R“; ,则正确的赋值表达式是_。(分数:2.00)A.a=(a+)%4 B.a+2=3C.a+=256-D.a=“/078“解析:解析 C 语言在内存中存放字符时是用字符数据的 ASCII 码值存储的,字符数据可以参加算术运算。选项 A 是正确的,其中(a+)%4 是将 a 的 ASCII 码值(字符“R“的 ASCII 码值为 82)整除 4 得到的余数值为 2,赋值给 a,然后 a 再加 1,因此最后 a 的 ASCII 码值为 3。选项 B 错误的原因是 a+2 不能作为赋值运算的“左值”。选项 C 错误的原因是自增运算符“-”不能作用于常量。

21、在选项 D 中,“/ddd“是指用八进制数代表的转义符,而八进制只可以用数字 07,而选项 D 中出现了 8,因此是错误的。23.若有定义:int b=7; float a=2.5, c=4.7; ,则表达式 a+(b/2*(int)(a+c)/2)%4 的值是_。(分数:2.00)A.2.5B.3.5C.4.5 D.5.5解析:解析 b/2 的值为 3,(int)(a+c)的值为 7,3*7 整除以 2 得 10,因此 b/2*(int)(a+c)/2 的值为10,整除以 4 的余数为 2,与 a 相加得 4.5。24.若已定义:int i=3, k; ,则语句 k=(i-)+(i-);运行

22、后 k 的值为_。(分数:2.00)A.4B.5C.6 D.7解析:解析 由于(i-)+(i-)中两个“-”都是后缀运算符,因此 k 的值等于 i+i 为 6。25.若已定义:int a=5; float b=63.72; ,以下语句中能输出正确值的是_。(分数:2.00)A.printf(“%d%d“, a, b);B.printf(“%d%.2f“, a, b); C.printf(“%.2f%.2f“, a, b);D.printf(“%.2f%d“, a, b);解析:解析 由于 a 和 b 分别是整型和浮点型变量,对应于 printf 函数的输出格式控制符是%d 和%f;浮点型数据输

23、出可以用%m.nf 来指定数据输出总的宽度占 m 列,小数部分占 n 列。因此 B 选项可以输出正确值。26.C 语言中,能正确表示条件 10x20 的逻辑表达式是_。(分数:2.00)A.10x20B.x10 | x20C.x10 ,则语句 x=(c=3,c+1);运行后,x、c 的值分别是_。(分数:2.00)A.3,3B.4,4C.3,4D.4,3 解析:解析 逗号表达式(c=3,c+1)从左到右运算,首先为 c 赋值 3,又因为逗号表达式的值为最右边表达式 c+1 的值,因此 x 的值为 c+1 等于 4。30.语句 a=(6/8)+6%5;运行后,a 的值为_。(分数:2.00)A.

24、1 B.2C.1.75D.1.2解析:解析 6/8 表示 6 整除以 8,值为 0;6%5 求 6 整除以 5 的余数,值为 1。31.若有定义:int x, y; ,则表达式(x=2,y=5,x*2,y+,x+y)的值是_。(分数:2.00)A.7B.8 C.9D.10解析:解析 逗号表达式的求值过程是,从左到右依次对各表达式求值,并将最右边一个表达式的值作为整个表达式的值,即 x+y 的值是整个表达式的值。此外,要注意:(1)x*2 不改变 x 的值,x 还是 2;(2)y+表达式运算之后 y 加了 1 为 6,因此 x+y 值为 8。32.对代数式(4ad)/(bc),不正确的 C 语言

25、表达式是_。(分数:2.00)A.a/b/c*d*4B.4*a*d/b/cC.4*a*d/b*c D.a*d/c/b*4解析:解析 由于运算符“*”与“/”的优先级相同,运算顺序是从左到右,因此 C 选项 4*a*d/b*c 相当于(4ad/b)*c,不正确。33.若 x 和 y 为整数,以下表达式中不能正确表示数学关系|x-y|10 的是_。(分数:2.00)A.abs(x-y)10B.(x-y)-10 z=xy2;(分数:2.00)A.00010100B.00011011 C.00011000D.00000110解析:解析 运算符的优先级高于,因此先计算 y2,由于 y 的二进制值为 00

26、000110,左移两位为 00011000,然后与 x(00000011)进行按位异或运算,值为 00011011。35.以下选项中,不能看作一条语句的是_。(分数:2.00)A.; B.a=0, b=0, c=0;C.if(a0);D.if(b=0)m=1; n=2; 解析:解析 选项 A 是空语句;B 是逗号表达式语句;C 的 if 分支内嵌语句是空语句,故 C 是一个完整的 if 语句;D 的 if 分支只内嵌对变量 m 的赋值语句,对变量 n 的赋值语句不属于 if 语句,因此 D 有两个语句。二、填空题(总题数:15,分数:30.00)36.表达式 3/5 的值是 1,3.0/5 的

27、值是 2,3%5 的值是 3。 (分数:2.00)解析:0 0.6 3解析 3/5 是求 3 整除 5 的值,3.0/5 是浮点数相除,3%5 是求 3 整除 5 的余数,要求两个操作数都是整数。37.以下程序运行的结果是 1。 int main() char m; m=“A“+32; printf(“%c/n“, m); return 0; (分数:2.00)解析:a。解析 C 语言在内存中存放字符时是用字符数据的 ASCII 码值存储的,字符数据可以参加算术运算。m=“A“+32 将字符 A 的 ASCII 码值 65 与 32 相加,得 97,它是字符“a“的 ASCII 码值,该程序实

28、现了大写字母转换为小写字母的功能。38.若有定义:int a=6, b=2; char c1=“a“, c2=“b“; ,则表达式 a+b%5+c2-c1 的值是 1。 (分数:2.00)解析:9。解析 首先运算 b%5,值为 2;a+2 的值为 8;8+c2 的值为 106;106-c1 的值为 9,因此整个表达式的值为 9。39.若有定义:int b; ,则语句 b=4/3+2%4;运行后,b 的值为 1。 (分数:2.00)解析:3。解析 4/3 是整数除,值为 1,2%4 求 2 整除 4 的余数,值为 2。40.若已定义:int a=3, b=15, c; ,则语句 c=ab;运行后

29、 c 的值为 1。 (分数:2.00)解析:0。解析 关系运算符的优先级比赋值运算符高,ab 进行的是关系运算,由于 a=3,b=15 因此ab 值为 0(假),赋值给 C。41.若有定义:int a=2, b=3; float x=3.5, y=2.5; ,则表达式(float)(a+b)/2+(int)x%(int)y 的值是 1。 (分数:2.00)解析:3.5。解析 a+b 的值为 5,(float)(a+b)强制类型转换为浮点型。值为 5.0,因此(float)(a+b)/2 的值为 2.5;(int)x 的值为 3,(int)y 的值为 2,%是求余运算,因此(int)x%(int

30、)y 的值为 1,所以整个表达式的值为 3.5。42.已知 double a=5.2; ,则语句 a+=a-=(a=4)*(a=3);运行后 a 的值为 1。 (分数:2.00)解析:-18.0。解析 先计算 a-=(a=4)*(a=3),其中子表达式(a=4)*(a=3)是两个赋值运算表达式的值相乘,相当于 4.0*3.0 等于 12.0,并且 a 的值等于 3.0;接着 a-=(a=4)*(a=3)等同于 a=a-12.0,因此 a 的值为-9.0,然后计算 a=a+a,因此 a 最后值为-18.0。43.若有定义:int x, y; ,则表达式(x=2,y=5,x+,x+y+)的值是 1

31、。 (分数:2.00)解析:8。解析 逗号表达式从左到右运算,计算完表达式 x+后 x 加 1 为 3,然后计算表达式 x+y+,值为 3+5 等于 8,然后 y 再加 1,并且逗号表达式的值为最右边表达式的值,为 8。44.若有定义:int m=3, n=5; ,则表达式(m+1,n+1,(-m)+(n-)的值是 1。 (分数:2.00)解析:7。解析 (1)逗号表达式中 m+1、n+1 不改变 m 和 n 的值;(2)运算表达式(-m)+(n-)时,m 先自减变为 2,然后与 n 相加为 7,即为表达式的值,最后 n 再减 1,但不影响整个表达式的值。45.若有定义:int x=3, y=

32、4; ,则表达式!x|y 的值为 1。 (分数:2.00)解析:1。解析 !x|y 表达式是进行两个逻辑运算,x 值为 3,C 语言逻辑运算中非 0 表示“真”,因此!x的值为“假”;y 的值是 4,在逻辑运算中表示“真”,“假”和“真”进行|(或)运算的结果为“真”,C 语言中用 1 表示。46.若有定义:int a=5, b=2, c=1; ,则表达式 a-bc|b=c 的值是 1。 (分数:2.00)解析:0。解析 表达式 a-bc 为假,表达式 b=c 为假,两者的或为假,C 语言中用 0 表示假,因此表达式的值为 0。47.若有定义:int a=2, b=2, c=2; ,则语句+a

33、|+b b= 1; a=ab; (分数:2.00)解析:15 或 0xf。解析 若要将数 a 的某些位 n1,n2,取反,只需取一数 b,置 b 的相应位n1,n2,为 1,其余位置 0,并且让数 a 与 b 进行按位异或运算,所得的结果即是将数 a 的位n1,n2,取反。因此本题只要取 b 的二进制值为 00001111 即可。49.pow(3.0,2.0)的函数值是 1。 (分数:2.00)解析:9.0。 解析 函数 pow(double x,double y)是求 x 为底 y 为幂的指数值,pow(3.0,2.0)即求3.0 2.0 的值,结果为 9.0。50.若有定义:int k, i=3, j=3; ,则表达式 k=(+i)*(j-)的值是 1。 (分数:2.00)解析:12。解析 i 先加后用,因此(+i)的值为 4;j 先用后减,因此(j-)的值为 3,两者相乘值为12。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1