1、国家二级 C语言机试(数据类型、运算符与表达式)模拟试卷 3及答案与解析 一、选择题 1 sizeof( double )是( )。 ( A)一个整型表达式 ( B)一个双精度型表达式 ( C)一个不合法的表达式 ( D)一种函数调用 2 C语言中的标识符分为关键字、预定义标识符和用户标识符,以下叙述正确的是( )。 ( A)预定义标识符可用作用户标识符,但失去原有含义 ( B)关键字可用作用户标识符,但失去原有含义 ( C)在标识符中大写字母和小写字母被认为是相同的字符 ( D)用户标识符可以由字母 和数字任意顺序组成 3 以下选项中合法的常量是( )。 ( A) 0Xab ( B) 2.7
2、e ( C) 9 9 9 ( D) 123E 0.2 4 以下叙述中错误的是( )。 ( A)定义符号常量必须用类型名来设定常量的类型 ( B)常量可以用一个符号名来代表 ( C)数值型常量有正值和负值的区分 ( D)常量是在程序运行过程中值不能被改变的量 5 C语言的常量包括数值型常量和符号常量,以下叙述正确的是( )。 ( A)数值型常量 1.0和 1所占内存的大小不同 ( B)不能用 sizeof求数值型常量所占 内存的大小 ( C)不能用 sizeof求符号常量所占内存的大小 ( D)可以用 a = (int)(-1.53*3); printf(“%dn“, a); 程序的运行结果是(
3、 )。 ( A) -4 ( B) -3 ( C) -5 ( D)结果不确定 7 关于 C语言的变量名,以下叙述正确的是( )。 ( A)变量名不可以与关键字同名 ( B)变量名不可以与预定义标识符同名 ( C)变 量名必须以字母开头 ( D)变量名是没有长度限制的 8 有以下程序 #include main() int a; a = (int)1.99*3; printf(“%dn“, a); 程序的运行结果是( )。 ( A) 3 ( B) 5 ( C) 6 ( D)结果不确定 9 以下选项中可用作 C语言中合法用户标识符的是( )。 ( A) _123 ( B) void ( C) -ab
4、c ( D) 2a 10 以下选项中合法的 C语言赋值语句是( )。 ( A) +i; ( B) a=b=34 ( C) a=3,b=9 ( D) k=int( a+b ); 11 以下程序段中的变量已定义为 int类型 sum = pad = 5; pAd = sum+, pAd+, +pAd; printf( “%dn“, pad ); 程序段的输出结果是( )。 ( A) 5 ( B) 4 ( C) 6 ( D) 7 12 sizeof( double ) 是( )。 ( A)一个整型表达式 ( B)一个函数调用 ( C)一个双精度表达式 ( D)不合法的表达形式 13 有以下程序 #i
5、nclude #include main() int a=1, b=4, c=2; double x=10.5, 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 14 有以下程序 #include main() int x=010, y=10; printf(“%d,%dn“, +x, y-); 程序运行后的输出结果是( )。 ( A) 9,10 ( B)
6、 11,10 ( C) 010,9 ( D) 10,9 15 以下选项中叙述正确的是( )。 ( A) C语言的标识符可分为关键字、预定义标识符和用户标识符三类 ( B) C语言的标识符可分为语句、变量和关键字三类 ( C) C语言的标识符可分为函数名、变量和预定义标识符三类 ( D) C语言的标识符可分为运算符、用户标识符和关键字三类 16 以下选项中,合法的 C语言常量是( )。 ( A) 1.234 ( B) C+ ( C) “2.0 ( D) 2Kb 17 以下选项中,合法的 C语言实数是( )。 ( A) .2e0 ( B) 3.1e0.4 ( C) E13 ( D) 7.12E 1
7、8 设 a,b,c是整型变量且均已赋值,则以下选项中错误的赋值语句是( )。 ( A) a = (b = 3) = 1; ( B) a = (b = 2) + c; ( C) a = b = c + 10; ( D) a = 1 + (b = c = 2); 19 有如下程序 #include main() int x = 072; printf(“%dn“, x+1); 程序运行后的输出结果是( )。 ( A) 59 ( B) 73 ( C) 115 ( D) 72 20 以下选项中,合法的数值型常量是( )。 ( A) 3.1415 ( B) A ( C) 092 ( D) 0xDH 21
8、 以下选项中,合法的实数是( )。 ( A) 4.5E2 ( B) E1.3 ( C) 7.11E ( D) 1.2E1.2 22 若有定义 int a, b, c; 以下选项中的 赋值语句正确的是( )。 ( A) a = (b = c) + 1; ( B) (a = b) = c = 1; ( C) a = (b = c) = 1; ( D) a + b = c; 23 有如下程序 #include main() int x = 0x13; printf(“%dn“, x+1); 程序运行后的输出结果是( )。 ( A) 20 ( B) 14 ( C) 12 ( D) 13 24 在 C语
9、言中,以下选项中不能正确表示 101000 之值的是( )。 ( A) 1.0E4.0 ( B) 1.E4 ( C) 10E3 ( D) 1.0e4 25 设有定义: int a=0,b=1,c=1; 以下选项中,表达式值与其它三个不同的是( )。 ( A) b=a=c ( B) a=b=c ( C) a=c=b ( D) c=a!=c 26 若 a是数值类型,则逻辑表达式 (a=1)|(a!=1)的值是( )。 ( A) 1 ( B) 0 ( C) 2 ( D)不知道 a的值,不能确定 27 以下选项中不能作为 C语言合法常量的是( )。 ( A) cd ( B) 0.1e+6 ( C) a
10、 ( D) 011 28 有以下定义语句,编译时会出现编译错误的是( )。 ( A) char a=“aa“; ( B) char a=n; ( C) char a=a; ( D) char a=x2d; 29 当变量 c的值不为 2、 4、 6时,值为 “真 “的表达式是( )。 ( A) (c=2 的输出结果是( )。 ( A) 65,66 ( B) A,68 ( C) A,B ( D) 65,68 31 以下选项中,当 x为大于 1的奇数时,值为 0的表达式是( )。 ( A) x%2=0 ( B) x/2 ( C) x%2!=0 ( D) x%2=1 国家二级 C语言机试(数据类型、运
11、算符与表达式)模拟试卷 3答案与解 析 一、选择题 1 【正确答案】 A 【试题解析】 sizeof 为求字节数的运算符,求得的是当前类型占用的字节数,计算的结果为一整型数据,答案选 A。 【知识模块】 数据类型、运算符与表达式 2 【正确答案】 A 【试题解析】 用户标识符不能与关键字相同,并且应尽量避免和预定义标识符相同。预定义标识符若作为用户标识符使用,则会失去其原有的含义,选项 A)正确,选项 B)错; C语言对大小写敏感,大小写不同的字母是不同的字符,选项C)错;用户标识符由字母、数字、下划线组成并且第一个字符不能为 数字,而不是任意顺序,选项 D)错;答案选 A)。 【知识模块】
12、数据类型、运算符与表达式 3 【正确答案】 A 【试题解析】 科学计数法中, e/E前后必须有数字并且后面的数字必须为整数,选项 B)、 D)错;常量中不能有空格,选项 C)错;答案选 A)。 【知识模块】 数据类型、运算符与表达式 4 【正确答案】 A 【试题解析】 C语言中,用一个用户自定义标识符表示的一个常量,称为符号常量。符号常量没有类型;符号常量的值在其作用域内不能改变,也不能再次被赋值,答案选 A。 【知识模块】 数据类型、运算符与表达式 5 【正确答案】 A 【试题解析】 常量的类型通过字面形式区分, 1.0为实型常量, 1为整型常量,一个实型所占用的内存等于两个整型所占用的内存
13、,选项 A)正确; sizeof 为求字节数的运算符,操作的对象可以是类型说明符、数组名或者表达式,所以既可以计算数值型常量所占内存也可以对符号常量计算内存,选项 B)、 C)错;符号常量在 C中不占用存储空间,所以就没有地址,不能用取地址运算符对其取地址,选项 D)错。答案选 A)。 【知识模块】 数据类型、运算符与表达式 6 【正确答案】 A 【试题解析】 考查数据类型之间的强制转换,程序中将表达式 (-1.53*3)的值 -4.59强制转换成 int型然后赋值给 a,处理方法是直接将小数部分舍去,保留带有符号的整数部分,所以答案选 A。 【知识模块】 数据类型、运算符与表达式 7 【正确
14、答案】 A 【试题解析】 变量名属于用户标识符,需要符合用户标识符的命名规则,即由字母、数字、下划线组成并且第一个字符不能为数字。而且用户标识符不能与关键字相同,并且尽量避免和预定义标识符相同,不同的系统对变量名会有识别长 度的限制。答案选 A。 【知识模块】 数据类型、运算符与表达式 8 【正确答案】 A 【试题解析】 考查数据类型之间的强制转换,程序中将表达式 (int)1.99*3的值赋值给 a然后输出,表达式的计算流程是先用 int对 1.99取整然后与 3相乘,将float型数据强制转换成 int型的处理方法是直接将小数部分舍去,保留带有符号的整数部分,所以计算结果为 3,答案选 A
15、。 【知识模块】 数据类型、运算符与表达式 9 【正确答案】 A 【试题解析】 用户标识符不能与关键字相同,尽量避免和预定 义标识符相同,并且用户标识符的命名规则需符合标识符的命名规则:由字母、数字、下划线组成并且第一个字符不能为数字。 void为 C语言关键字所以不能作为用户标识符,所以答案选 A。 【知识模块】 数据类型、运算符与表达式 10 【正确答案】 A 【试题解析】 :考查赋值语句。 C语言语句在结尾必须有分号,没有分号则不合法,选项 B)、 C)错; C语言中强制转换类型需要将类型说明符给括起来,应该为 k=(int)(a+b),选项 D)错;答案选 A)。 【知识模块】 数据类
16、型、运算符与表达式 11 【正 确答案】 A 【试题解析】 C语言对大小写敏感,所以 pad 和 pAd 是两个不同的变量,答案选 A。 【知识模块】 数据类型、运算符与表达式 12 【正确答案】 A 【试题解析】 sizeof 为求字节数的运算符,操作的对象可以是类型说明符、数组名或者表达式,求得的结果为一个整数,所以答案选 A。 【知识模块】 数据类型、运算符与表达式 13 【正确答案】 A 【试题解析】 考查运算符与表达式。表达式 ( a+b )/c + sqrt( y ) * 1.2 / c + x;先计算 ( a+b )/c, a、 b、 c均为整数,所以计算的结果也为整数即 2;然
17、后计算 sqrt( y ) * 1.2 / c,即 2.0*1.2/c,结果为 1.2;最后计算 2+1.2+x的值,为 13.7,输出结果为选项 A)。 【知识模块】 数据类型、运算符与表达式 14 【正确答案】 A 【试题解析】 八进制整常数以数字 “0“作为前缀,格式控制符为 “%d“表示按照十进制输出,而且自加自减运算中, +x和 -x都是先计算后使用该变量,而 x+和 x-是先使用该变量再计算,所以在输出的时候输出的是 x自加 1之后 的十进制数字,即 9,还有 y自减之前的十进制数字,即 10,所以答案选 A。 【知识模块】 数据类型、运算符与表达式 15 【正确答案】 A 【试题
18、解析】 C语言的标识符可分为关键字、预定义标识符和用户标识符三类。答案选 A。 【知识模块】 数据类型、运算符与表达式 16 【正确答案】 A 【试题解析】 字符常量只包含一个字符,选项 B)错误; C语言中有 “表示双引号符,但是没有 “的形式,选项 C)错误; 2Kb 只是表示字节数,并不是 C语言常量,选项 D)错误;选项 A)为合法的实型 常量,所以答案选 A)。 【知识模块】 数据类型、运算符与表达式 17 【正确答案】 A 【试题解析】 科学计数法中, e/E前后必须有数字并且后面的数字必须为整数,答案选 A。 【知识模块】 数据类型、运算符与表达式 18 【正确答案】 A 【试题
19、解析】 赋值运算符的左侧必须为变量而不能是表达式,所以答案选 A。 【知识模块】 数据类型、运算符与表达式 19 【正确答案】 A 【试题解析】 八进制整常数以数字 “0“作为前缀, printf中的格式控制符为 “%d“表示按 照十进制输出,所以输出的是 x加 1之后的十进制数字,即 59,答案选A。 【知识模块】 数据类型、运算符与表达式 20 【正确答案】 A 【试题解析】 数值型常量包含整型常量、实型常量和字符常量,字符常量用的是单引号而不是双引号,选项 B)错误;以数字 “0“作为前缀的是八进制整常数,不能包含数字 9,选项 C)错误;以 “0x“作为前缀的是十六进制整常数,不能包含
20、“H“,选项 D)错误。答案选 A)。 【知识模块】 数据类型、运算符与表达式 21 【正确答案】 A 【试题解析】 科学计数法中 , e/E前后必须有数字并且后面的数字必须为整数,答案选 A。 【知识模块】 数据类型、运算符与表达式 22 【正确答案】 A 【试题解析】 赋值运算符的左侧必须为变量而不能是表达式,所以答案选 A。 【知识模块】 数据类型、运算符与表达式 23 【正确答案】 A 【试题解析】 十六进制整常数以数字 “0x“作为前缀, printf中的格式控制符为“%d“表示按照十进制输出, x对应的十进制数值为 19, x加 1之后的十进制数字为 20,答案选 A。 【知识模块
21、】 数据类型、运算符与表达式 24 【正确答案】 A 【试题解析】 科学计数法中, e/E前后必须有数字并且后面的数字必须为整数,选项 A)不是正确的表示方法,所以答案选 A)。 【知识模块】 数据类型、运算符与表达式 25 【正确答案】 A 【试题解析】 关系运算符的优先级要高于赋值运算符。所有的表达式均是先计算关系表达式然后再计算赋值运算,除了选项 A)的表达式的值为 0之外,其余的所有选项的表达式的值均为 1,所以答案选 A)。 【知识模块】 数据类型、运算符与表达式 26 【正确答案】 A 【试题解 析】 逻辑表达式的值只有 0或者 1,逻辑或运算符 “|“两侧的运算对象只要有一个为真
22、,该逻辑表达式的值就为真。在题中的逻辑表达式中,判定的是a=1和 a!=1相或的值,易得知该逻辑表达式的值为真,即 1,答案选 A。 【知识模块】 数据类型、运算符与表达式 27 【正确答案】 A 【试题解析】 字符常量是由单引号括起来的单个字符,选项 A)错误,而选项B)是由科学计数法表示的实型常量,选项 C)是由转义字符 a表示的字符串常量,选项 D)是由 3位八进制数所代表的字符。答案选 A)。 【知识模块】 数 据类型、运算符与表达式 28 【正确答案】 A 【试题解析】 由两个双引号 “引起来的是一个字符串常量,而字符变量只能存放单个字符常量,答案选 A。 【知识模块】 数据类型、运
23、算符与表达式 29 【正确答案】 A 【试题解析】 逻辑或运算符的两个运算对象中,只要有一个值为真,整个逻辑表达式的值就为真;逻辑与运算符的两个运算对象的值均为真,整个逻辑表达式的值才为真。选项 A)中,只要 c的值不为 3或者不为 5或者在 2和 6之间,这个表达式就为真,所以答案选 A)。 【知识模块】 数据类型、 运算符与表达式 30 【正确答案】 A 【试题解析】 字符常量与其 ASCII码值一一对应,在计算的时候,一般是字符常量对应的 ASCII 码参与运算,输出时会根据格式控制符输出对应的字符或者ASCII码。字符变量是字符数据在内存中的存储形式,存放的是字符的 ASCII值。本题中, c1 的值为 A,输出其 ASCII 码值为 65, c2 的值为 D,对应 ASCII码值为 68,所以输出结果为 68-2为 66,答案选 A。 【知识模块】 数据类型、运算符与表达式 31 【正确答案】 A 【试题解析】 题 中 x为大于 1的奇数, “%“为取余运算符, x对 2取余,即“x%2“的值肯定为 1,答案选 A。 【知识模块】 数据类型、运算符与表达式
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1