1、国家二级 C语言( C语言基础知识)机试模拟试卷 17及答案与解析 一、选择题 1 以下选项中,合法的一组 C语言数值常量是 ( A) 12. 0Xa23 4.5e0 ( B) 028 .5e-3 -0xf ( C) .177 4e1.5 0abc ( D) 0x8A 10,000 3.e5 2 C源程序中不能表示的数制是 ( A)八进制 ( B)十进制 ( C)二进制 ( D)十六进制 3 以下叙述中正确的是 ( A)在 C程序中的八进制和十六进制,可以是浮点数 ( B)八进制数的开头要使用英文字母 o,否则不 能与十进制区分开 ( C)整型变量可以分为 int型、 short型、 long
2、型和 unsigned型四种 ( D)英文大写字母 X和英文小写字母 x都可以作为二进制数字的开头字符 4 以下选项中合法的常量是 ( A) 2.7e ( B) 9 9 9 ( C) 123E 0.2 ( D) 0Xab 5 以下选项中能表示合法常量的是 ( A) 007 ( B) 1.5E2.0 ( C) ( D) 1,200 6 以下选项中可用作 C程序合法实数的是 ( A) 3.0e0.2 ( B) E9 ( C) .1e0 ( D) 9.12E 7 以下不合法的数值常量是 ( A) 1e1 ( B) 011 ( C) 0xabcd ( D) 8.0E0.5 8 以下选项中正确的定义语句
3、是 ( A) double a=b=7; ( B) double a; b; ( C) double, a, b; ( D) double a=7, b=7; 9 若有以下程序段 double x=5.16894; printf(“%fn“, (int)(x*1000+0.5)/(double)1000 ); 则程序段的输出结果是 ( A) 5.175000 ( B) 5.169000 ( C) 5.170000 ( D) 5.168000 10 以下选项中合法的实型常量是 ( A) .914 ( B) 3.13e-2.1 ( C) 0 ( D) 2.0*10 11 C语言中 double 类
4、型数据占字节数为 ( A) 4 ( B) 12 ( C) 8 ( D) 16 12 以下叙述中正确的是 ( A)整型常量和实型常量都是数值型常量 ( B)常量的类型不能从字面形式上区分,需要根据类型名来决定 ( C)预定义的标识符是 C语言关键字的一种,不能另作它用 ( D)只能在函数体内 定义变量,其他地方不允许定义变量 13 sizeof( double )是 ( A)一个双精度型表达式 ( B)一个整型表达式 ( C)一个不合法的表达式 ( D)一种函数调用 14 以下选项中,值为 1的表达式是 ( A) 1 -0 ( B) 1 -0 ( C) 1 - 0 ( D) 0 - 0 15 以
5、下定义语句中正确的是 ( A) char A=65+1,b=b; ( B) int a=b=0; ( C) float a=1,*b= ( D) double a=0.0; b=1.1; 16 以下不合法的字符常量是 ( A) “ ( B) ( C) 018 ( D) xcc 17 有以下程序 main() char c1,c2; c1=A+8-4; c2=A+8-5; printf( “%c,%dn“,c1,c2); 已知字母 A的 ASCII码为 65,程序运行后的输出结果是 ( A) D,69 ( B) E,68 ( C) E,D ( D)输出无定值 18 以下不能输出字符 A的语句是(
6、注:字符 A的 ASCII码值为 65,字符 a的ASCII码值为 97) ( A) printf (“%c n“, a-32); ( B) printf (“%d n“, A); ( C) printf (“%c n“, 65); ( D) printf (“%c n“, B-1); 19 以下选项中不能作为 C语言合法常量的是 ( A) cd ( B) 0.1e+6 ( C) a ( D) 011 20 有以下定义语句,编译时会出现编译错误的是 ( A) char a=n; ( B) char a=“aa“; ( C) char a=a; ( D) char a=x2d; 21 已知字符
7、A的 ASCII代码值是 65,字符变量 c1的值是 A, c2的值是 D。则执行语句 printf(“%d,%d“, c1, c2-2 ); 的输出结果是 ( A) A,68 ( B) A,B ( C) 65,66 ( D) 65,68 22 已知大写字母 A的 ASCII码是 65,小写字母 a的 ASCII码是 97。以下不能将变量 c中的大写字母转换为对应小写字母的语句是 ( A) c=(A+c)%26-a ( B) c=C+32 ( C) c=C-A+a ( D) c=(C-A)%26 +a 23 以下选项中非法的 C语言字符常量是 ( A) b ( B) 007 ( C) aa (
8、 D) xaa 24 以下选项中非法的 C语言字符常量是 ( A) 9 ( B) 09 ( C) x09 ( D) x9d 25 若有定义语句 char c=101; 则变量 c在内存中占 ( A) 2个字节 ( B) 3个字节 ( C) 1个字节 ( D) 4个字节 国家二级 C语言( C语言基础知 识)机试模拟试卷 17答案与解析 一、选择题 1 【正确答案】 D 【试题解析】 八进制数其开头必须是数字 “0”,其数字包括 0 7,而在选项 B中, 028是错误的。浮点数据的指数形式表示常量中, C语言规定字母 e或 E之前必须要有数字,且 e或 E之后的指数必须为整数,而选项 C中 4e
9、1.5是错误的。在选项 D中,整型数据 10, 000的表示形式是错误的。 【知识模块】 C语言基础知识 2 【正确答案】 C 【试题解析】 在 C语言的源程序中,数值可以用十进制、八进制和十六进制来表示。不用二进制来表示 。 【知识模块】 C语言基础知识 3 【正确答案】 C 【试题解析】 整型变量分为以下 4种类型: 基本型:以 int表示。 短整型:以 short int表示,或以 short表示。 长整型:以 long int表示,或以 long表示。 无符号型:以 unsigned int表示,选项 C正确,实型常量仅有十进制表示形式,八进制以数字 0开头,十六进制开头为 0x或者
10、0X,不是二进制。 【知识模块】 C语言基础知识 4 【正确答案】 D 【试题解析】 0xab是十六进制表示的常量。 【知识模块】 C语言基础知识 5 【正确答案】 D 【试题解析】 选项 D, 1200中间不能有逗号,否则编译时会认为是 1或出错。选项 B, 2.0错误,必须为整数。选项 C,要表示字符斜杠常量 ,应该在反斜杠的前面再加上一个反斜杠。选项 A为字符串常量,为正确选项。 【知识模块】 C语言基础知识 6 【正确答案】 C 【试题解析】 C程序的合法实数有两种表示形式,一种是小数形式,另一种是指数形式,对于用指数形式表示的实数来说,需要注意的是字母 e或 E之前必须要有数字,且字
11、母 e或 E后面的指数必须为整数。 【知识模块】 C语言基础知识 7 【正确答案】 D 【试题解析】 实型常量又称为实数或浮点数。在 C语言中 ,可以用两种形式表示一个实型常量。 小数形式是由数字和小数点组成的一种实数表示形式,这种表示形式的常量必须要有小数点。 指数形式用以 “e”或 “E”后跟一个整数来表示以10为底的幂数。 C语言的语法规定,字 母 e或 E之前必须要有数字,且 e或 E后面的指数必须为整数。因为选项 D中字母 E后面的指数为小数形式,所以选项 D这种表示方法不合法。 【知识模块】 C语言基础知识 8 【正确答案】 D 【试题解析】 在 C语言中,可以用一条语句同时定义几
12、个同类型的变量,变量之间用逗号隔开。 【知识模块】 C语言基础知识 9 【正确答案】 B 【试题解析】 (int)(x*1000+0.5)/(double)1000表达式功能,保存数据 x的后三位小数,把第四位四舍五入。 【知识模块】 C语言基础 知识 10 【正确答案】 A 【试题解析】 实型常量又称实数或浮点数,一般用小数形式或指数形式来表示。实型常量分为以下两种形式: 小数形式:小数形式是由数字和小数点组成的一种实数表示形式。例如0.345、 .123、 0.0等是合法的实数。这种表示形式必须要有小数点。 指数形式:在 C语言中,用 “e”或 “E”后跟一个整数来表示以 10为底的幂数。
13、注意:字母 “e”或 “E”之前必须要有数字,后面的指数必须为整数。 选项 B中 e后必须为整数,选项 C没有小数点,而选项 D则出现非法字符 *。 【知识模块】 C语言基础知识 11 【正确答案】 C 【试题解析】 double类型所占字节为 8。 【知识模块】 C语言基础知识 12 【正确答案】 A 【试题解析】 整型常量和实型常量都是数值型常量,选项 A正确;常量的类型可以从字面上区分,比如整型常量不能有小数点,组成字符为 09等,选项 B错误;预定义标识符,即预先定义并具有特定含义的标识符,可以另作他用,不过更改了原有的含义,选项 C错误;变量可以定义在程序中任何的地方,属于不同的变量
14、,选项 D错误。 【知识模块】 C语言基础知识 13 【正确答案】 B 【试题解析】 sizeof关键字为 C语言的运算符,用于测试()内类型其变量所占内存,表达式结果返回十进制整数,因此为整型表达式,表明变量所占的内存字节数。 【知识模块】 C语言基础知识 14 【正确答案】 C 【试题解析】 在 C程序中,字符量可参与任何整数运算。字符参与运算时,首先要将字符转换为其对应的 ASC 码值再参与整数运算。字符 1对应的 ASC 码值是 49,字符 0对应的 ASC 码值是 48,字符 0是字符串结束标识符 NULL,其对应的 ASC 码值是 0。 【知识模块】 C语言基础知识 15 【正确答
15、案】 C 【试题解析】 本题考查的是数据类型的定义并赋值,选项 B中对变量声明类型且赋值的情况是不允许出现的,必须单独定义且赋值。选项 C中对于指针变量 c的赋值须为同型指针,而 &b为二级指针。选项 D中 C语言允许在一个类型说明符后说明多个相同类型的变量,各变量之间要用逗号(,)隔开,而不是用分号(;)隔开;在计算机存储字符时将字符相应的 ASCII码以其对应的二进制进行存放,选项 A中的定义是合法的。 【知识模块】 C语言基础知识 16 【正确答 案】 C 【试题解析】 在 C语言中,一个字符常量代表 ASC 字符集中的一个字符,在程序中用单引号把一个字符括起来用为字符常量。转义字符常量
16、也是必须括在一对单引号内,以一个反斜线开头后跟一个特定的字符,用来代表某一个特定的ASC 字符。在选项 C中, 018是用八进制数来代表一个字符常量,所以其中的数字只能小于 8,并不包括 8。 【知识模块】 C语言基础知识 17 【正确答案】 B 【试题解析】 字符变量 c1的 ASCII值等于 69,而字符变量 c2的 ASCII值等于68,当分别以字符和整型 输出 c1和 c2的 ASCII码值时,其结果为 E, 68。 【知识模块】 C语言基础知识 18 【正确答案】 B 【试题解析】 在选项 B的输出函数中,大写字符 A以整型数据的形式输出。 【知识模块】 C语言基础知识 19 【正确
17、答案】 A 【试题解析】 常量指的是在程序的运行过程中,其值不能被改变的量。在 C语言中,包括整型常量、实型常量、字符常量和字符串常量等类型。选项 B0.1e+6是用指数形式表示的实型常量。在 C语言中,用以 “e”或 “E”后一个整数来表示以10为底的幂数。以用这 种形式表示实型常量时要注意 C语言的语法规定,字母 e或 E之前必须要有数字,且 e或 E后面的指数必须为整数,并且在字母 e或 E的前后以及数字之间不得插入空格。选项 C中用双引号括起来表示的字符串 a。选项 D中 011表示用单引号括起来的转义字符八制进数 011。选项 A表示的字符常量是非法的,在用单引号表示的字符常量中,只
18、能包含一个字符,而选项 A中包含两个字符。 【知识模块】 C语言基础知识 20 【正确答案】 B 【试题解析】 在选项 B中,由两个字符 aa组成一个字符串赋给一个字符变量 a时会出错。 【知识模块】 C语言基础知识 21 【正确答案】 C 【试题解析】 在 C语言中,字符常量在内存中占一个字节,存放的是字符的ASC 码值。所有的字符常量都作为整型量来处理。在本题中输出语句用整型格式输出字符时,输出的是其 ASC 码值。因为字符 A和 D的 ASC 码值分别为65和 68,所以 c2-2=68-2=66。 【知识模块】 C语言基础知识 22 【正确答案】 A 【试题解析】 由题意可知,小写字符
19、 a和大写字符 A的 ASC 代码相差为 32,所以选项 C能将大写字符 C的 ASC 代 码转换为小写字符 c的 ASC 代码;选项D和 C左侧的表达式都是大写字符 C与大写字符 A的差与 a 的 ASC 代码的和就是小写字符 c的 ASC 代码。而选项 A中应该是加上 a,而不是减去 a。 【知识模块】 C语言基础知识 23 【正确答案】 C 【试题解析】 一个字符常量代表 ASCII字符集中的一个字符,在程序中用单引号把一个字符括起来作为字符常量。 【知识模块】 C语言基础知识 24 【正确答案】 B 【试题解析】 一个字符常量代表 ASCII字符集中的一个字符,在程序中用单 引号把一个字符括起来。也可以为转移字符,转义字符又称反斜线字符,这些字符常量总是以一个反斜线开头后跟一个特定的字符,用来代表某一个特定的 ASCII字符,这些字符常量也必须括在一对单引号内。其中反斜线后的八进制数可以不用 0开头,但是不能有 8和 9字符出现。反斜线后的十六制数只可由小写字母 x开头。 【知识模块】 C语言基础知识 25 【正确答案】 C 【试题解析】 每个字符变量被分配一个字节的内存空间,因此只能存放一个字符。字符值是以 ASCII码的形式存放在变量的内存单元之中的。 【知识模块 】 C语言基础知识