1、国家二级 C语言机试(选择题)模拟试卷 14 及答案与解析 一、选择题 1 以下程序段中的变量已定义为 int类型 sum = pad = 5; pAd = sum+, pAd+, +pAd; printf( “%dn“, pad ); 程序段的输出结果是( )。 ( A) 5 ( B) 4 ( C) 6 ( D) 7 2 sizeof( double ) 是( )。 ( A)一个整型表达式 ( B)一个函数调用 ( C)一个双精度表达式 ( D)不合法的表达形式 3 有以下程序 #include #include main() int a=1, b=4, c=2; double x=10.5
2、, y=4.0, z; z = ( a+b )/c + sqrt( y ) * 1.2 / c + x; printf(“%fn“, z); 程序运行后的输出结果是( )。 ( A) 13.700000 ( B) 14.000000 ( C) 15.400000 ( D) 14.900000 4 有以下程序 #include main() int x=010, y=10; printf(“%d,%dn“, +x, y-); 程序运行后的输出结果是( )。 ( A) 9,10 ( B) 11,10 ( C) 010,9 ( D) 10,9 5 以下选项中叙述正确的是( )。 ( A) C语言的标
3、识符可分为关键字、预定义标识符和用户标识符三类 ( B) C语言的标识符可分为语句、变量和关键字三类 ( C) C语言的标识符可分为函数名、变量和预定义标识符三类 ( D) C语言的标识符可分为运算符、用户标识符和关键字三类 6 以下选项中,合法的 C语言常量是 ( )。 ( A) 1.234 ( B) C+ ( C) “2.0 ( D) 2Kb 7 以下选项中,合法的 C语言实数是( )。 ( A) .2e0 ( B) 3.1e0.4 ( C) E13 ( D) 7.12E 8 设 a,b,c是整型变量且均已赋值,则以下选项中错误的赋值语句是( )。 ( A) a = (b = 3) = 1
4、; ( B) a = (b = 2) + c; ( C) a = b = c + 10; ( D) a = 1 + (b = c = 2); 9 有如下程序 #include main() int x = 072; printf(“%dn“, x+1); 程序运行后的输出结果是( )。 ( A) 59 ( B) 73 ( C) 115 ( D) 72 10 以下选项中,合法的数值型常量是( )。 ( A) 3.1415 ( B) A ( C) 092 ( D) 0xDH 11 以下选项中,合法的实数是( )。 ( A) 4.5E2 ( B) E1.3 ( C) 7.11E ( D) 1.2E1
5、.2 12 若有定义 int a, b, c; 以下选项中的赋值语句正确的是( )。 ( A) a = (b = c) + 1; ( B) (a = b) = c = 1; ( C) a = (b = c) = 1; ( D) a + b = c; 13 有如下程序 #include main() int x = 0x13; printf(“%dn“, x+1); 程序运行后的输出结果是( )。 ( A) 20 ( B) 14 ( C) 12 ( D) 13 14 在 C语言中,以下选项中不能正确表示 101000 之值的是( )。 ( A) 1.0E4.0 ( B) 1.E4 ( C) 10
6、E3 ( D) 1.0e4 15 设有定义: int a=0,b=1,c=1; 以下选项中,表达式值与其它三个不同的是( )。 ( A) b=a=c ( B) a=b=c ( C) a=c=b ( D) c=a!=c 16 若 a是数值类型,则逻辑表达式 (a=1)|(a!=1)的值是( )。 ( A) 1 ( B) 0 ( C) 2 ( D)不知道 a的值,不能确定 17 以下选项中不能作为 C语言合法常量的是( )。 ( A) cd ( B) 0.1e+6 ( C) a ( D) 011 18 有以下定义语句,编译时会出现编译错误的是( )。 ( A) char a=“aa“; ( B)
7、char a=n; ( C) char a=a; ( D) char a=x2d; 19 当变量 c的值不为 2、 4、 6时,值为 “真 “的表达式是( )。 ( A) (c=2 c1=C+8-3; c2=9-0; printf(“%c %dn“, c1, c2); 则程序的输出结果是( )。 ( A) H 9 ( B)表达式不合法输出无定值 ( C) F 9 ( D) H 9 30 表示关系式 xyz的 C语言表达式的是( )。 ( A) (x main() int x=35, B; char z=B ; B = ( x ) 则变量 a( )。 ( A)说明不合法 ( B)包含 1个字符
8、( C)包含 2个字符 ( D)包含 3个字符 国家二级 C语言机试(选择题)模拟试卷 14 答案与解析 一、选择题 1 【正确答案】 A 【试题解析】 C语言对大小写敏感,所以 pad 和 pAd 是两个不同的变量,答案选 A。 【知 识模块】 数据类型、运算符与表达式 2 【正确答案】 A 【试题解析】 sizeof 为求字节数的运算符,操作的对象可以是类型说明符、数组名或者表达式,求得的结果为一个整数,所以答案选 A。 【知识模块】 数据类型、运算符与表达式 3 【正确答案】 A 【试题解析】 考查运算符与表达式。表达式 ( a+b )/c + sqrt( y ) * 1.2 / c +
9、 x;先计算 ( a+b )/c, a、 b、 c均为整数,所以计算的结果也为整数即 2;然后计算 sqrt( y ) * 1.2 / c,即 2.0*1.2/c,结果为 1.2;最后计算 2+1.2+x的值,为 13.7,输出结果为选项 A)。 【知识模块】 数据类型、运算符与表达式 4 【正确答案】 A 【试题解析】 八进制整常数以数字 “0“作为前缀,格式控制符为 “%d“表示按照十进制输出,而且自加自减运算中, +x和 -x都是先计算后使用该变量,而 x+和 x-是先使用该变量再计算,所以在输出的时候输出的是 x自加 1之后的十进制数字,即 9,还有 y自减之前的十进制数字,即 10,
10、所以答案选 A。 【知识模块】 数据类型、运算符与表达式 5 【正确答案】 A 【试题解析】 C语言的标识符可分为关键字、预定义标识符和用户标识符三类。答案选 A。 【知识模块】 数据类型、运算符与表达式 6 【正确答案】 A 【试题解析】 字符常量只包含一个字符,选项 B)错误; C语言中有 “表示双引号符,但是没有 “的形式,选项 C)错误; 2Kb 只是表示字节数,并不是 C语言常量,选项 D)错误;选项 A)为合法的实型常量,所以答案选 A)。 【知识模块】 数据类型、运算符与表达式 7 【正确答案】 A 【试题解析】 科学计 数法中, e/E前后必须有数字并且后面的数字必须为整数,答
11、案选 A。 【知识模块】 数据类型、运算符与表达式 8 【正确答案】 A 【试题解析】 赋值运算符的左侧必须为变量而不能是表达式,所以答案选 A。 【知识模块】 数据类型、运算符与表达式 9 【正确答案】 A 【试题解析】 八进制整常数以数字 “0“作为前缀, printf中的格式控制符为 “%d“表示按照十进制输出,所以输出的是 x加 1之后的十进制数字,即 59,答案选A。 【知识模块】 数据类型、运算符与表达式 10 【 正确答案】 A 【试题解析】 数值型常量包含整型常量、实型常量和字符常量,字符常量用的是单引号而不是双引号,选项 B)错误;以数字 “0“作为前缀的是八进制整常数,不能
12、包含数字 9,选项 C)错误;以 “0x“作为前缀的是十六进制整常数,不能包含“H“,选项 D)错误。答案选 A)。 【知识模块】 数据类型、运算符与表达式 11 【正确答案】 A 【试题解析】 科学计数法中, e/E前后必须有数字并且后面的数字必须为整数,答案选 A。 【知识模块】 数据类型、运算符与表达式 12 【正确答案】 A 【试题解析】 赋值运算符的左侧必须为变量而不能是表达式,所以答案选 A。 【知识模块】 数据类型、运算符与表达式 13 【正确答案】 A 【试题解析】 十六进制整常数以数字 “0x“作为前缀, printf中的格式控制符为“%d“表示按照十进制输出, x对应的十进
13、制数值为 19, x加 1之后的十进制数字为 20,答案选 A。 【知识模块】 数据类型、运算符与表达式 14 【正确答案】 A 【试题解析】 科学计数法中, e/E前后必须有数字并且后面的数字必须为整数,选项 A)不是正确的 表示方法,所以答案选 A)。 【知识模块】 数据类型、运算符与表达式 15 【正确答案】 A 【试题解析】 关系运算符的优先级要高于赋值运算符。所有的表达式均是先计算关系表达式然后再计算赋值运算,除了选项 A)的表达式的值为 0之外,其余的所有选项的表达式的值均为 1,所以答案选 A)。 【知识模块】 数据类型、运算符与表达式 16 【正确答案】 A 【试题解析】 逻辑
14、表达式的值只有 0或者 1,逻辑或运算符 “|“两侧的运算对象只要有一个为真,该逻辑表达式的值就为真。在题中的逻辑表达式中 ,判定的是a=1和 a!=1相或的值,易得知该逻辑表达式的值为真,即 1,答案选 A。 【知识模块】 数据类型、运算符与表达式 17 【正确答案】 A 【试题解析】 字符常量是由单引号括起来的单个字符,选项 A)错误,而选项B)是由科学计数法表示的实型常量,选项 C)是由转义字符 a表示的字符串常量,选项 D)是由 3位八进制数所代表的字符。答案选 A)。 【知识模块】 数据类型、运算符与表达式 18 【正确答案】 A 【试题解析】 由两个双引号 “引起来的是一个字符串常
15、量,而字符变量只能 存放单个字符常量,答案选 A。 【知识模块】 数据类型、运算符与表达式 19 【正确答案】 A 【试题解析】 逻辑或运算符的两个运算对象中,只要有一个值为真,整个逻辑表达式的值就为真;逻辑与运算符的两个运算对象的值均为真,整个逻辑表达式的值才为真。选项 A)中,只要 c的值不为 3或者不为 5或者在 2和 6之间,这个表达式就为真,所以答案选 A)。 【知识模块】 数据类型、运算符与表达式 20 【正确答案】 A 【试题解析】 字符常量与其 ASCII码值一一对应,在计算的时候,一般是字符常量 对应的 ASCII 码参与运算,输出时会根据格式控制符输出对应的字符或者ASCI
16、I码。字符变量是字符数据在内存中的存储形式,存放的是字符的 ASCII值。本题中, c1 的值为 A,输出其 ASCII 码值为 65, c2 的值为 D,对应 ASCII码值为 68,所以输出结果为 68-2为 66,答案选 A。 【知识模块】 数据类型、运算符与表达式 21 【正确答案】 A 【试题解析】 题中 x为大于 1的奇数, “%“为取余运算符, x对 2取余,即“x%2“的值肯定为 1,答案选 A。 【知识模块】 数据类型、运算符与 表达式 22 【正确答案】 A 【试题解析】 字符常量与其 ASCII码值一一对应,一个字符对应小写字母的ASCII码要比对应大写字母的 ASCII
17、码值大 32。所以将大写字母转换成小写字母,只需要将对应字符加上 32即可,只有选项 A)不是在原来字符的基础上加32,所以答案选 A)。 【知识模块】 数据类型、运算符与表达式 23 【正确答案】 A 【试题解析】 题中 x为大于 1的奇数, “%“为取余运算符, x对 2取余,即“x%2“的值肯定为 1,答案选 A。 【知识模块】 数据类型、运算符与表 达式 24 【正确答案】 A 【试题解析】 字符型数据参与运算时使用其对应的 ASCII码值, 0的 ASCII码值为 0, 0的为 48, 1的为 49,所以答案选 A。 【知识模块】 数据类型、运算符与表达式 25 【正确答案】 A 【
18、试题解析】 逻辑或运算符的两个运算对象中,只要有一个值为真,整个逻辑表达式的值就为真;逻辑与运算符的两个运算对象的值均为真,整个逻辑表达式的值才为真。选项 A)中,只要 c的值不为 3或者不为 5或者在 2和 6之间,这个表达式就为真,所以答案选 A)。 【 知识模块】 数据类型、运算符与表达式 26 【正确答案】 A 【试题解析】 字符常量是由单引号括起来的单个字符,选项 A)错误,而选项B)是转义字符,选项 C)是由 3位八进制数所代表的字符,选项 D)是由 2位十六进制数所代表的字符,答案选 A)。 【知识模块】 数据类型、运算符与表达式 27 【正确答案】 A 【试题解析】 选项 B)
19、由单个字符构成的字符常量,选项 C)、 D)为由 2位十六进制数所代表的字符,没有用两个十进制数代表的字符,答案选 A)。 【知识模块】 数据类型、运算符与表达式 28 【正确答案】 A 【试题解析】 ?101?为由 3位八进制数所代表的字符,是一个字符常量,占用空间为 1个字节,答案选 A。 【知识模块】 数据类型、运算符与表达式 29 【正确答案】 A 【试题解析】 字符常量与其 ASCII码值一一对应,在计算的时候,一般是字符数据对应的 ASCII 码参与运算,输出时会根据格式控制符输出对应的字符或者ASCII码。本题中, 8- 3结果为 5, C+5的结果为 72即 H,所以 c1=
20、H。 9-0为 9,所以 c2=9。故而输出 结果为选项 A)。 【知识模块】 数据类型、运算符与表达式 30 【正确答案】 A 【试题解析】 关系式 “xyz“表示的是 y值大于 x并且小于 z,所以用逻辑与运算符 “&“,答案选 A。 【知识模块】 数据类型、运算符与表达式 31 【正确答案】 A 【试题解析】 赋值运算符的左侧必须为变量而不能是表达式或者常量,选项 A)的表达式非法,答案选 A)。 【知识模块】 数据类型、运算符与表达式 32 【正确答案】 A 【试题解析】 逻辑表达式的值只能为 1或者 0,而逻辑 表达式 “( x ) & ( z 算术运算符 关系运算符 逻辑运算符 条
21、件运算符 赋值运算符 逗号运算符。所以逻辑 “或 “的运算级别要比算术运算低,选项 D)错;逻辑或和逻辑与表达式均有 “短路求值 “的现象,所以答案选 A)。 【知识模块】 数据类型、运算符与表达式 38 【正确答案】 A 【试题解析】 字符常量进行计算的时候使用其 ASCII码参与运算, a的 ASCII码值为 97, b的 ASCII码值为 98,所以表达式的结果为 “假 “,选项 A)正确 ;“a“表示的是一个字符串常量,选项 B)错; 0为一个转义字符, ASCII码值为0,选项 C)错; “为一个转义字符,表示一个双引号符,选项 D)错。答案选A)。 【知识模块】 数据类型、运算符与
22、表达式 39 【正确答案】 A 【试题解析】 字符常量进行计算的时候使用其 ASCII码参与运算,所以字符常量可以参与整数运算,选项 A)正确;任何变量都可以在定义时赋初值,选项B)错; C语言对大小写敏感,所以大小写不同的英语字母代表不同的字符常量,选项 C)错;转义字符以反斜杠 “作为开头,选项 D)错;所以答案选 A)。 【知识模块】 数据类型、运算符与表达式 40 【正确答案】 A 【试题解析】 以反斜杠开始的为转义字符, C语言中可以用 13位八进制数代表一个转义字符(形式为 ?ddd?),或者由两位十六进制数代表一个字符(形式为 ?xhh?),但是没有用两个十进制数代表的字符,所以答案选 A。 【知识模块】 数据类型、运算符与表达式