1、国家二级 C语言( C语言基础知识)机试模拟试卷 3及答案与解析 一、选择题 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型和 u
2、nsigned型四种 ( D)英文大写字母 X和英文小写字母 x都可以作为二进制数字的开头字符 4 以下选项中合法的常量是 ( A) 2 7e ( B) 999 ( C) 123E0 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 以下选项中正确的定义语句是 ( A)
3、double a=b=7; ( B) double a; b; ( C) double, a, b; ( D) double a=7, b=7; 9 若有以下程序段 double x=5 16894; printf(“ f n“, (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 以下定义语句中正确的是 ( A)
5、 char A=65+1b=b: ( B) int a=b=0; ( C) float a=1, *b=&a,*c=&b; ( D) double a=0 0; b=1 1; 16 以下不合法的字符常量是 ( A) “ ( B) ( C) 018 ( D) Lxcc 17 有以下程序 main() char c1, c2; c1=A+8-4: c2=A+f8-5; printf(“ c, dkn“,e1, 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 已知字符 A的
7、ASCII代码值是 65,字符变量 c1的值是 At, 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语言基础知识)机试模拟 试卷 3答案与解析 一、选择题 1 【正确答案】 A 【试题解析】 八进制数其开头必须是数字 “0”,其数字包括 0 7,而在选项 B中, 028是错误的。浮点数据的指数形式表示常量中, C语言规定字母 e或 E之前必须要有数字,且 e或 E之后的指数必须为整数,而选项 C中 4e1
9、5是错误的。在选项 D中,整型数据 10, 000的表示形式是错误的。 【知识模块】 C语言基础知识 2 【正确答案】 C 【试题解析】 在 C语言的源程序中,数值可以用十进制、八进制和十六进制来表示。不用二进制来表示。 【知 识模块】 C语言基础知识 3 【正确答案】 C 【试题解析】 整型变量分为以下 4种类型: 基本型:以 int表示。 短整型:以 short int表示,或以 short表尔。 长整型:以 long jnt表示,或以 long表示。 无符号型:以 unsigned int表示,选项 C)正确,实型常量仅有十进制表示形式,八进制以数字 0开头,十六进制开头为 0x或者 0
10、X,不是二进制。 【知识模块】 C语言基础知识 4 【正确答案】 D 【试题解析】 Oxab是十 六进制表示的常量。 【知识模块】 C语言基础知识 5 【正确答案】 A 【试题解析】 选项 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正确;常量的类型可以从字而上区分,比如整型常量不能有小数点,组成字符为 0 9等,选项 B错误;预定义标识符,即预先定义并具有特定含义的标识符,可以另作他用,不过更改了原有的含义,选项 C错误;变量可以定义在程序中任何的地方,属于不同
14、的变量,选项 D错误。 【知识模 块】 C语言基础知识 13 【正确答案】 B 【试题解析】 sizeof关键字为 C语言的运算符,用于测试 ()内类型其变量所占内存,表达式结果返回卜进制整数,因此为整型表达式,表明变量所占的内存字节数。 【知识模块】 C语言基础知识 14 【正确答案】 C 【试题解析】 在 C程序中,字符量可参与任何整数运算。字符参与运算时,首先要将字符转换为其对应的 ASC II码值再参与整数运算。字符 1对应的 ASC II码值是 49,字符 0对应的 ASC II码值是 48,字符 0是字符串结束 标识符NULL,其对应的 ASCII码值是 0。 【知识模块】 C语言
15、基础知识 15 【正确答案】 A 【试题解析】 本题考查的是数据类型的定义并赋值,选项 B中对变量声明类型 赋值的情况是不允许出现的,必须单独定义且赋值。选项 C中对于指针变量 c的赋值须为同型指针,而 &b为二级指针。选项 D中 C语言允许在一个类型说明符后说明多个相同类型的变量,各变量之间要用逗号 (, )隔开,而不是用分号 (; )隔开;在计算机存储字符时将字符相应的 ASCII码以其对应的二进制进行存放,选项 A中的定义是合法的。 【知 识模块】 C语言基础知识 16 【正确答案】 C 【试题解析】 在 C语言中,一个字符常量代表 ASCII字符集中的一个字符,在程序中用单引号把一个字
16、符括起来用为字符常量。转义字符常量也是必须括在一对单引号内,以一个反斜线开头后跟一个特定的字符,用来代表某一个特定的ASCII字符。在选项 C中, 018是用八进制数来代表,一个字符常量,所以其中的数字只能小于 8,并不包括 8。 【知识模块】 C语言基础知识 17 【正确答案】 B 【试题解析】 字符变量 c1的 ASCIl值等于 69,而字符 变量 c2的 ASCII值等于68,当分别以字符和整型输出 c1和 c2的 ASCII码值时,其结果为 E, 68。 【知识模块】 C语言基础知识 18 【正确答案】 B 【试题解析】 在选项 B的输出函数中,大写字符 A以整型数据的形式输出。 【知
17、识模块】 C语言基础知识 19 【正确答案】 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 11码值。所有的字符常量都作为整型量来处理。在本题中输出语句用整型格式输出宁符时,输出的是其 ASCII码值。因为字符 A和 D的 ASCII码值分别为 65和68,所以 c2-2=68-2=66。 【知识模块】 C语言基础知识 22 【正确
19、答案】 A 【试题解析】 由题意可知,小写字符 a和大写字符 A的 ASC 代码相差为 32,所以选项 C能将大写字符 C的 ASCII代码转换为小写字符 c的 ASCII代码;选项D和 C)左侧的表达式都是大写字符 C与大写字符 A的差与 a的 ASC II代码的和就是小写字符 c的 ASC II代码。而选项 A中应该是加上 a,而不是减去 a。 【知识模块】 C语言基础知识 23 【正确答案】 C 【试题解析】 一个字符常量代表 ASCII字符集中的一个字符,在程序中用单引号把一个字符括起来作为字符常量。 【知识模块】 C语言基础知识 24 【正确答案】 B 【试题解析】 一个字符常量代表 ASCII字符集中的一个字符,在程序中用单引号把一个字符括起来。也可以为转移字符,转义字符又称反斜线字符,这些字符常量总是以一个反斜线开头后跟一个特定的字符,用来代表某一个特定的 ASCII字符,这些字符常量也必须括在 对单引号内。其中反斜线后的八进制数可以不用0开头,但是不能有 8和 9字符出现。反斜线后的十六制数只可由小写字母 x开头。 【知识模块】 C语言基础知识 25 【正确答案】 C 【试题解析】 每个字符变量被分配一个字节的内存空间,因此只能存放一个字符 。字符值是以 ASCII码的形式存放在变量的内存单元之中的。 【知识模块】 C语言基础知识