1、国家二级 C语言机试( C语言基础知识)模拟试卷 9及答案与解析 一、选择题 1 C语言中的标识符分为关键字、预定义标识符和用户标识符,以下叙述正确的是 ( A)关键字可用作用户标识符,但失去原有含义 ( B)在标识符中大写字母和小写字母被认为是相同的字符 ( C)用户标识符可以由字母和数字任意顺序组成 ( D)预定义标识符可用作用户标识符,但失去原有含义 2 以下叙述中错误的是 ( A)常量可以用一个符号名来代表 ( B)数值型常量有正值和负值的区分 ( C)常量是在程序运行过程中值不能被改变的量 ( D)定义符号常量必须用类型名来设定常量的类型 3 与十进制数 200等值的十六进制数为 (
2、 A) A8 ( B) A4 ( C) C8 ( D) C4 4 以下选项中,合法的一组 C语言数值常量是 ( A) 12 0Xa23 4 5e0 ( B) 028 5e-3-0xf ( C) 177 4e1 5 0abc ( D) 0x8A 10, 000 3 e5 5 C源程序中不能表示的数制是 ( A)八进制 ( B)十进制 ( C)二进制 ( D)十六进制 6 以下叙述中正确的是 ( A)在 C程序中的八进制和十六 进制,可以是浮点数 ( B)八进制数的开头要使用英文字母 o,否则不能与十进制区分开 ( C)整型变量可以分为 int型、 short型、 long型和 unsigned型
3、四种 ( D)英文大写字母 X和英文小写字母 x都可以作为二进制数字的开头字符 7 以下选项中合法的常量是 ( A) 2 7e ( B) 999 ( C) 123E0 2 ( D) 0Xab 8 以下选项中能表示合法常量的是 ( A) 007 ( B) 1 5E2 0 ( C) ( D) 1, 200 9 以下选项中可用作 C程序合法实数的是 ( A) 3 0e0 2 ( B) E9 ( C) 1e0 ( D) 9 12E 10 以下不合法的数值常量是 ( A) 1e1 ( B) 011 ( C) 0xabcd ( D) 8 0E0 5 11 以下选项中正确的定义语句是 ( A) double
4、 a=b=7; ( B) double a; b; ( C) double, a, b; ( D) double a=7, b=7; 12 若有以下程序段 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 13 以下选项中合法的实型常量是 ( A) 914 ( B) 3 13e-2 1 ( C) 0 ( D) 2 0*10 14 C语言中 double类型数据占字节数为 ( A)
5、4 ( B) 12 ( C) 8 ( D) 16 15 以下叙述中正确的是 ( A)整型常量和实型常量都是数值型常量 ( B)常量的类型不能从字面形式上区分,需要根据类型名来决定 ( C)预定义的标识符是 C语言关键字的一种,不能另作它用 ( D)只能在函数体内定义变量,其他地方不允许定义变量 16 sizeof(double)是 ( A)一个双精度型表达式 ( B)一个整型表达式 ( C)一个不合法的表达式 ( D)一种函数调用 17 以下选项中,值为 1的表达式是 ( A) 1一 0 ( B) 1一 0 ( C) 1一 0 ( D) 0一 0 18 有以下说明和定义语句 struct st
6、udent int age; char num8; ; struct student stu3=20,“200401“, 21, “200402“, 19, “200403“; struct student *p=stu; 以下选项中引用结构体变量成员的表达式错误的是 ( A) (p+) num ( B) P num ( C) (*p) num ( D) stu3 age 19 以下合法的字符型常量是 ( A) x13 ( B) 081 ( C) 65 ( D) n 20 已有定义: char c;,程序前面已在命令中包含 ctype h文件。不能用于判断 c中的 字符是否为大写字母的表达式是
7、 ( A) isupper(c) ( B) A =c =Z , ( C) A =c&c =Z ( D) c =(z 32)&(a 32) =c 21 以下选项中不属于字符常量的是 ( A) C ( B) C ( C) xCC ( D) 072 22 设变量己正确定义,以下不能统计出一行中输入字符个数 (不包含回车符 )0的程序段是 ( A) n=0; while(ch=getchar()!= n)n+; ( B) n=0; while(getchar()!= n)n+; ( C) for(n=0; getchar()!= n; n+); ( D) n=0; for(ch=getchar();
8、ch!= n; n+); 23 以下选项中非法的字符常量是 ( A) 019 ( B) 65 ( C) xff ( D) 101 24 以下定义语句中正确的是 ( A) char A=65+1, b=b; ( B) int a=b=0; ( C) float a=1, *b=&a, *c=&b; ( D) double a=0 0; b=1 1; 25 以下不合法的字符常量是 ( A) “ ( B) ( C) 018 ( D) xcc 26 有以下程序,己知字母 A的 ASCII码为 65,程序运行后的输出结果是 main()char c1, c2; c1=A+8 4: c2=A+8一 5;
9、printf(“ c, n“, c1, c2); ( A) D, 69 ( B) E, 68 ( C) E, D ( D)输出无定值 27 以下不能输出字符 A的语句是 (注:字符 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); 28 以下选项中不能作为 c语言合法常量的是 ( A) cd ( B) 0 1e+6 ( C) a ( D) 011 29 有以下定义语句,编译时会
10、出现编译错误的是 ( A) char a= n; ( B) char a=“aa“; ( C) char a=a; ( D) char a= x2d; 30 已知字符 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 国家二级 C语言机试( C语言基础知识)模拟试卷 9答案与解析 一、选择题 1 【正确答案】 D 【试题解析】 预定义标识符是 C语言中的标识符,在 C语言中也有特定的含义,如函数 pri
11、ntf、 scanf、 sin等和编译预处理命令名 (如 define和 include)。预定义标识符可以作为用户标识符使用,只是这样会失去系统规定的原义。 【知识模块】 C语言基础知识 2 【正确答案】 D 【试题解析】 C语言中,常常用一个标识符来代表一个常量,称为符号常量。符号常量在使用之前要先定义,定义格式: #define(常量 ) 其中, 可以是数字常量,也可以是字符。 【知识模块】 C语言基础知识 3 【正确答案】 C 【试题解析】 本题 考察了进制转换,十进制的数转换为十六进制规则:整数部分除以 16取余数,将余数倒过来排列。 【知识模块】 C语言基础知识 4 【正确答案】
12、A 【试题解析】 八进制数其开头必须是数字 “0”,其数字包括 0 7,而在选项 B)中, 028是错误的。浮点数据的指数形式表示常量中, C语言规定字母 e或 E之前必须要有数字,且 e或 E之后的指数必须为整数,而选项 C)中 4e1 5是错误的。在选项 D)中,整型数据 10, 000的表示形式是错误的。 【知识模块】 C语言基础知识 5 【正确答案】 C 【试 题解析】 在 C语言的源程序中,数值可以用十进制、八进制和十六进制来表示。不用二进制来表示。 【知识模块】 C语言基础知识 6 【正确答案】 C 【试题解析】 整型变量分为以下 4种类型: 基本型:以 int表示。 短整型:以
13、short int表示,或以 short表示。 长整型:以 long int表示,或以 long表示。 无符号型:以 unsigned int表示,选项 c)正确,实型常量仅有十进制表示形式,八进制以数字 0开头,十六进制开头为 0x或者 0X,不是二进制。 【知识模块】 C语言基础 知识 7 【正确答案】 D 【试题解析】 0xab是十六进制表示的常量。 【知识模块】 C语言基础知识 8 【正确答案】 A 【试题解析】 选项 D), 1200中间不能有逗号,否则编译时会认为是 1或出错。选项 B), 2 0错误,必须为整数。选项 C),要表示字符斜杠常量 ,应该在反斜杠的前面再加上一个反斜杠
14、。选项 A)为字符串常量,为正确选项。 【知识模块】 C语言基础知识 9 【正确答案】 C 【试题解析】 C程序的合法实数有两种表示形式,一种是小数形式,另一种是指数形式,对于用指数形式表示的实数来说,需要注意的是字母 e或 E之前必须要有数字,且字母 e或 E后面的指数必须为整数。 【知识模块】 C语言基础知识 10 【正确答案】 D 【试题解析】 实型常量又称为实数或浮点数。在 C语言中,可以用两种形式表示一个实型常量。 小数形式是由数字和小数点组成的一种实数表示形式,这种表示形式的常量必须要有小数点。 指数形式用以 “e”或 “E”后跟一个整数来表示以 10为底的幂数。 C语言的语法规定
15、, 字母 e或 E之前必须要有数字,且 e或 E后面的指数必须为整数。因为选项 D)中字母 E后面的指数为小数形式,所以选项D)这种表示方法不合法。 【知识模块】 C语言基础知识 11 【正确答案】 D 【试题解析】 在 C语言中,可以用一条语句同时定义几个同类型的变量,变量之间用逗号隔开。 【知识模块】 C语言基础知识 12 【正确答案】 B 【试题解析】 fint)(x*1000+0 5) (double)1000表达式功能,保存数据 x的后三位小数,把第四位四舍五入。 【知识模块】 C语言基础知识 13 【正确答案】 A 【试题解析】 实型常量又称实数或浮点数,一般用小数形式或指数形式来
16、表示。实型常量分为以下两种形式: 小数形式:小数形式是由数字和小数点组成的一种实数表示形式。例如0 345、 123、 0 0等是合法的实数。这种表示形式必须要有小数点; 指数形式:在 C语言中,用 “e”或 “E”后跟一个整数来表示以 10为底的幂数。注意:字母“e”或 “E”之前必须要有数字,后面的指数必须为整数。选项 B)中 e后必须为整数,选项 C)没有小数点,而选项 D)则出现非法字符 *。 【知 识模块】 C语言基础知识 14 【正确答案】 C 【试题解析】 double类型所占字节为 8。 【知识模块】 C语言基础知识 15 【正确答案】 A 【试题解析】 整型常量和实型常量都是
17、数值型常量,选项 A)正确;常量的类型可以从字面上区分,比如整型常量不能有小数点,组成字符为 0 9等,选项 B)错误;预定义标识符,即预先定义并具有特定含义的标识符,可以另作他用,不过更改了原有的含义,选项 C)错误;变量可以定义在程序中任何的地方,属于不同的变量,选项 D)错误。 【知识模块】 C语 言基础知识 16 【正确答案】 B 【试题解析】 sizeof关键字为 C语言的运算符,用于测试 ()内类型其变量所占内存,表达式结果返回十进制整数,因此为整型表达式,表明变量所占的内存字节数。 【知识模块】 C语言基础知识 17 【正确答案】 C 【试题解析】 在 C程序中,字符量可参与任何
18、整数运算。字符参与运算时,首先要将字符转换为其对应的 ASCII码值再参与整数运算。字符 “1”对应的 ASCII码值是 49,字符 0对应的 ASCII码值是 48,字符 “ 0”是字符串结束标识符NULL,其对应的 ASCII码值是 0。 【知识模块】 C语言基础知识 18 【正确答案】 D 【试题解析】 本题考查结构体和结构体指针, stu是一个结构体数组, p是结构体指针,且 p指向 stu数组,即 p指向了 stu数组的首元素地址。选项 A)中 p+表示先引用 p指针,然后 p指向下一个元素, (p+) num表示取出 stu首元素的num值,然后 p指向 stu1元素地址;选项 B
19、)是通过结构体指针访问结构体元素,使用 “ ”运算符;选项 C)中 *p代表 stu0元素,因此 (*p) num表示stu0 num;选项 D)中, stu数组的长度为 3, stu3已经超出数组范围,错误。 【知识模块】 C语言基础知识 19 【正确答案】 A 【试题解析】 本题考查字符型常量。选项 A)正确,使用了转义字符 “ ”, x13表示 16进制的 13;选项 B)同样使用了转义字符,但 081错误,以 0开始表示 8进制, 8进制数字的范围是 0 7,没有 8;选项 C)错误, 65是一个字符串,不是字符;选项 D)错误,换行符是 “ n”。 【知识模块】 C语言基础知识 20
20、 【正确答案】 D 【试题解析】 本 题考查字符变量和逻辑运算。选项 A)通过调用函数 isupper来判断字符 c是否是大小字母,满足要求;选项 B)是逻辑表达式,不管 c为何值, A =c为真或者假,然后再和 z比较结果必然为真 (0和 1都小于 Z的 ASCII值 );选项 C)是通过与运算来判断 c是否是大小字母;选项 D)中 z-32和大小字母 Z相等,同样 a-32和大小字母 A相等。 【知识模块】 C语言基础知识 21 【正确答案】 B 【试题解析】 本题考查字符型常量。选项 A)正确,是大小字母 C;选项 B)错误,使用双引号括 起来的是字符串,不是字符;选项 C)正确,使用了
21、转义字符“ ” xCC表示 16进制的 CC;选项 D)正确,使用了转义字符 “ ” , 072表示 8进制的 72。 【知识模块】 C语言基础知识 22 【正确答案】 D 【试题解析】 本题主要考查循环的使用。选项 A)中,首先把输入的字符放到 ch变量中,然后判断 ch是否为回车符,如果不是则 n增加,循环结束条件是输入的是回车符;选项 B)中,直接判断 getchar函数的返回值是否是回车符,如果不是则 n增加,输入回车符循环结束;选项 C)使用 for循环, n的初值为 0,每次循环n增加 1,循环的结束条件是输入回车符;选项 D)中 for循环的初始条件 ch值为输入的字符,只有一次
22、输入,不能统计输入的字符数,如果第一次输入的不是回车符循环不能结束。 【知识模块】 C语言基础知识 23 【正确答案】 A 【试题解析】 本题考查字符型常量。选项 A)错误,使用了转义字符 “ ”, 019以0开始表示 8进制, 8进制数字的范围是 0-7,没有 9;选项 B)、 C)和 D)正确。 【知识模块】 C语言基础知识 24 【正确答案】 A 【试题解析】 本题考查的是数据类型的定 义并赋值,选项 B)中对变量声明类型且赋值的情况是不允许出现的,必须单独定义且赋值。选项 C)中对于指针变量 c的赋值须为同型指针,而 b为二级指针。选项 D)中 C语言允许在一个类型说明符后说明多个相同
23、类型的变量,各变量之间要用逗号 (, )隔开,而不是用分号 (; )隔开;在计算机存储字符时将字符相应的 ASCII码以其对应的二进制进行存放,选项 A)中的定义是合法的。 【知识模块】 C语言基础知识 25 【正确答案】 C 【试题解析】 在 C语言中,一个字符常量代表 ASCII字符集中的一个字符,在程序中用单引 号把一个字符括起来用为字符常量。转义字符常量也是必须括在一对单引号内,以一个反斜线开头后跟一个特定的字符,用来代表某一个特定的ASCII字符。在选项 C)中, 018是用八进制数来代表一个字符常量,所以其中的数字只能小于 8,并不包括 8。 【知识模块】 C语言基础知识 26 【
24、正确答案】 B 【试题解析】 字符变量 c1的 AsCII值等于 69,而字符变量 c2的 AsCII值等于68,当分别以字符和整型输出 c1和 c2的 ASCII码值时,其结果为 E, 68。 【知识模块】 C语言基础知识 27 【正确答案】 B 【试题解析】 在选项 B)的输出函数中,大写字符 A以整型数据的形式输出。 【知识模块】 C语言基础知识 28 【正确答案】 A 【试题解析】 常量指的是在程序的运行过程中,其值不能被改变的量。在 C语言中,包括整型常量、实型常量、字符常量和字符串常量等类型。选项 B)0 1e+6是用指数形式表示的实型常量。在 C语言中,用以 “e”或 “E”后一
25、个整数来表示以10为底的幂数。以用这种形式表示实型常量时要注意 C语言的语法规定,字母 e或 E之前必须要有数字,且 e或 E后面的指数必 须为整数,并且在字母 e或 E的前后以及数字之间不得插入空格。选项 C)中用双引号括起来表示的字符串 “ a”。选项 D)中 011表示用单引号括起来的转义字符八制进数 011。选项 A)表示的字符常量是非法的,在用单引号表示的字符常量中,只能包含一个字符,而选项 A)中包含两个字符。 【知识模块】 C语言基础知识 29 【正确答案】 B 【试题解析】 在选项 B)中,由两个字符 aa组成一个字符串赋给一个字符变量 a时会出错。 【知识模块】 C语言基础知识 30 【正确答案】 C 【试题解析 】 在 C语言中,字符常量在内存中占一个字节,存放的是字符的ASCII码值。所有的字符常量都作为整型量来处理。在本题中输出语句用整型格式输出字符时,输出的是其 ASCII码值。因为字符 A和 D的 ASCII码倩分别为65和 68,所以 c2-2=68-2=66。 【知识模块】 C语言基础知识
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1