国家二级C语言机试(C语言基础知识)模拟试卷9
(总分60, 做题时间90分钟)
1. 选择题
1. 
C语言中的标识符分为关键字、预定义标识符和用户标识符,以下叙述正确的是
A 关键字可用作用户标识符,但失去原有含义
B 在标识符中大写字母和小写字母被认为是相同的字符
C 用户标识符可以由字母和数字任意顺序组成
D 预定义标识符可用作用户标识符,但失去原有含义
    分值: 2
答案:D
解析:预定义标识符是C语言中的标识符,在C语言中也有特定的含义,如函数printf、scanf、sin等和编译预处理命令名(如define和include)。预定义标识符可以作为用户标识符使用,只是这样会失去系统规定的原义。
2. 
以下叙述中错误的是
A 常量可以用一个符号名来代表
B 数值型常量有正值和负值的区分
C 常量是在程序运行过程中值不能被改变的量
D 定义符号常量必须用类型名来设定常量的类型
    分值: 2
答案:D
解析:C语言中,常常用一个标识符来代表一个常量,称为符号常量。符号常量在使用之前要先定义,定义格式:#define<符号常量名>(常量) 其中,<符号常量名)用标识符,习惯上用大写字母,<常量>可以是数字常量,也可以是字符。
3. 
与十进制数200等值的十六进制数为
A A8
B A4
C C8
D C4
    分值: 2
答案:C
解析:本题考察了进制转换,十进制的数转换为十六进制规则:整数部分除以16取余数,将余数倒过来排列。
4. 
以下选项中,合法的一组C语言数值常量是
A 12.0Xa23 4.5e0
B 028.5e-3-0xf
C .177 4e1.5 0abc
D 0x8A 10,000 3.e5
    分值: 2
答案:A
解析:八进制数其开头必须是数字“0”,其数字包括0~7,而在选项B)中,028是错误的。浮点数据的指数形式表示常量中,C语言规定字母e或E之前必须要有数字,且e或E之后的指数必须为整数,而选项C)中4e1.5是错误的。在选项D)中,整型数据10,000的表示形式是错误的。
5. 
C源程序中不能表示的数制是
A 八进制
B 十进制
C 二进制
D 十六进制
    分值: 2
答案:C
解析:在C语言的源程序中,数值可以用十进制、八进制和十六进制来表示。不用二进制来表示。
6. 
以下叙述中正确的是
A 在C程序中的八进制和十六进制,可以是浮点数
整型常量合法要求B 八进制数的开头要使用英文字母o,否则不能与十进制区分开
C 整型变量可以分为int型、short型、long型和unsigned型四种
D 英文大写字母X和英文小写字母x都可以作为二进制数字的开头字符
    分值: 2
答案:C
解析:整型变量分为以下4种类型: ①基本型:以int表示。②短整型:以short int表示,或以short表示。③长整型:以long int表示,或以long表示。④无符号型:以unsigned int表示,选项c)正确,实型常量仅有十进制表示形式,八进制以数字0开头,十六进制开头为0x或者0X,不是二进制。
7. 
以下选项中合法的常量是
A 2.7e
B 999
C 123E0.2
D 0Xab
    分值: 2
答案:D
解析:0xab是十六进制表示的常量。
8. 
以下选项中能表示合法常量的是
A \007
B 1.5E2.0
C '\'
D 1,200
    分值: 2
答案:A
解析:选项D),1200中间不能有逗号,否则编译时会认为是1或出错。选项B),2.0错误,必须为整数。选项C),要表示字符斜杠常量'\',应该在反斜杠的前面再加上一个反斜杠。选项A)为字符串常量,为正确选项。
9. 
以下选项中可用作C程序合法实数的是
A 3.0e0.2
B E9
C .1e0
D 9.12E
    分值: 2
答案:C
解析:C程序的合法实数有两种表示形式,一种是小数形式,另一种是指数形式,对于用指数形式表示的实数来说,需要注意的是字母e或E之前必须要有数字,且字母e或E后面的指数必须为整数。
10. 
以下不合法的数值常量是
A 1e1
B 011
C 0xabcd
D 8.0E0.5
    分值: 2
答案:D
解析:实型常量又称为实数或浮点数。在C语言中,可以用两种形式表示一个实型常量。①小数形式是由数字和小数点组成的一种实数表示形式,这种表示形式的常量必须要有小数点。②指数形式用以“e”或“E”后跟一个整数来表示以10为底的幂数。C语言的语法规定,字母e或E之前必须要有数字,且e或E后面的指数必须为整数。因为选项D)中字母E后面的指数为小数形式,所以选项D)这种表示方法不合法。
11. 
以下选项中正确的定义语句是
A double a=b=7;
B double a;b;
C double,a,b;
D double a=7,b=7;
    分值: 2
答案:D
解析:在C语言中,可以用一条语句同时定义几个同类型的变量,变量之间用逗号隔开。
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
    分值: 2
答案:B
解析:fint)(x*1000+0.5)/(double)1000表达式功能,保存数据x的后三位小数,把第四位四舍五入。
13. 
以下选项中合法的实型常量是
A .914
B 3.13e-2.1
C 0
D 2.0*10
    分值: 2
答案:A
解析:实型常量又称实数或浮点数,一般用小数形式或指数形式来表示。实型常量分为以下两种形式: ①小数形式:小数形式是由数字和小数点组成的一种实数表示形式。例如0.34
5、.123、0.0等是合法的实数。这种表示形式必须要有小数点;②指数形式:在C语言中,用“e”或“E”后跟一个整数来表示以10为底的幂数。注意:字母“e”或“E”之前必须要有数字,后面的指数必须为整数。选项B)中e后必须为整数,选项C)没有小数点,而选项D)则出现非法字符*。
14. 
C语言中double类型数据占字节数为
A 4
B 12
C 8
D 16
    分值: 2
答案:C
解析:double类型所占字节为8。
15. 
以下叙述中正确的是
A 整型常量和实型常量都是数值型常量
B 常量的类型不能从字面形式上区分,需要根据类型名来决定
C 预定义的标识符是C语言关键字的一种,不能另作它用
D 只能在函数体内定义变量,其他地方不允许定义变量
    分值: 2
答案:A
解析:整型常量和实型常量都是数值型常量,选项A)正确;常量的类型可以从字面上区分,比如整型常量不能有小数点,组成字符为0~9等,选项B)错误;预定义标识符,即预先定义并具有特定含义的标识符,可以另作他用,不过更改了原有的含义,选项C)错误;变量可以定义在程序中任何的地方,属于不同的变量,选项D)错误。
16. 
sizeof(double)是
A 一个双精度型表达式
B 一个整型表达式
C 一个不合法的表达式
D 一种函数调用
    分值: 2
答案:B
解析:sizeof关键字为C语言的运算符,用于测试()内类型其变量所占内存,表达式结果返回十进制整数,因此为整型表达式,表明变量所占的内存字节数。
17. 
以下选项中,值为1的表达式是
A 1一'0'
B '1'一0
C 1一'\0'
D '\0'一'0'
    分值: 2
答案:C
解析:在C程序中,字符量可参与任何整数运算。字符参与运算时,首先要将字符转换为其对应的ASCII码值再参与整数运算。字符“'1'”对应的ASCII码值是49,字符'0'对应的ASCII码值是48,字符“'\0'”是字符串结束标识符NULL,其对应的ASCII码值是0。
18. 
有以下说明和定义语句struct  student{int age;char num[8];}; struct student stu[3]={{20,"200401"},{21,"200402"},{19,"200403"}}; struct  student  *p=stu;以下选项中引用结构体变量成员的表达式错误的是