国家二级C语言机试(C语言基础知识)模拟试卷20
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
国家二级C语言机试(C语言基础知识)模拟试卷20
(总分:60.00,做题时间:90分钟)
一、选择题(总题数:30,分数:60.00)
1.我们所写的每条C语句,经过编译最终都将转换成二进制的机器指令。
关于转换以下说法错误的是
(分数:2.00)
A.一条C语句可能会被转换成多条机器指令
B.一条C语句对应转换成一条机器指令√
C.一条C语句可能会被转换成零条机器指令
D.某种类型和格式的C语句被转换成机器指令的条数是固定的
解析:解析:由C语言编写的程序,通过编译、链接转换成可以让机器识别的01二进制指令。
这些二进制指令命令机器计算,这些就是机器指令,而C语言的语句条数和机器指令的条数不是一对一的关系。
2.以下选项中不属于C语言程序运算符的是
(分数:2.00)
A.sizeof
B.()
C.<> √
D.&&
解析:解析:sizeof为测试内存的运算符,()为算术运算符,&&为逻辑运算符。
而<>不是C语言的运算符,C语言中!=表示不等于。
3.若变量已正确定义并赋值,以下不能构成C语句的选项是
(分数:2.00)
A.A=a+b;
B.B++;
C.a=a+b √
D.A?a:b;
解析:解析:C语言语句的表示为分号,不加分号的表达式不能看成C语句。
4.以下叙述中正确的是
(分数:2.00)
A.程序必须包含所有三种基本结构才能成为一种算法
B.如果算法非常复杂,则需要使用三种基本结构之外的语句结构,才能准确表达
C.只有简单算法才能在有限的操作步骤之后结束
D.我们所写的每条C语句,经过编译最终都将转换成二进制的机器指令√
解析:解析:C语句构成了函数,函数构成的程序,经过编译转换成二进制代码后可以运行,算法是指为解决某个特定问题而采取的确定且有限的步骤,可以利用代码来描述算法,而算法+数据结构才是程序,结构化的程序由顺序结构、循环结构和选择结构三种基本结构组成。
由这三种基本结构组成的算法可以解决任何复杂的问题,反之则不一定,所有算法必须在有限步骤后结束。
5.下列选项中,不能用作标识符的是
(分数:2.00)
A._1234_
B._1_2
C.int_2_
D.2_int_ √
解析:解析:C语言中标识符必须以字母或者下划线开始,选项D中是以数字开始的不能作为标识符。
6.以下选项中作为C语言合法常量的是
(分数:2.00)
A.-80.√
B.-080
C.-8e1.0
D.-80.0e
解析:解析:本题考查C语言中的常量,C语言中字母e或E之前必须有数字,且e或E后面的指数必须为整数。
选项A表示负数-80;选项B中以数字0开始表示的是八进制数,八进制数数字范围是从0-7,不包括8;选项C是一个指数浮点,字母e后面应该是整型指数;选项D中字母e后面没有整数,不满足C 规范。
7.以下不能定义为用户标识符是
(分数:2.00)
A.Main
B._0
C._int
D.sizeof √
解析:解析:本题考查用户标识符,C语言中用户标识符只能由字母和数字组成,且必须以字母开头,不能和C语言的关键字相同。
选项A、B)和C)都符合要求,选项D中的sizeof是C语言关键字,不能作为用户标识符。
8.以下选项中,不能作为合法常量的是
(分数:2.00)
A.1.234e04
B.1.234e0.4 √
C.1.234e+4
D.1.234e0
解析:解析:本题考查C语言中的常量,C语言中字母e或E之前必须有数字,且e或E后面的指数必须为整数。
选项B中字母e后面是浮点数,错误,其他选项都是正确的常量。
9.可在C程序中用作用户标识符的一组标识符是
(分数:2.00)
A.and 2007 √
B.Date v-m-d
C.Hi Dr.Tom
D.case Big1
解析:解析:本题考查用户标识符,C语言中,用户标识符只能由字母、下划线和数组组成,且必须以字母或者下划线开始。
选项A正确;选项B中使用了字符“-”:选项C使用了字符“.”:选项D中的caSe 是C语言关键字,不能作为用户标识符。
10.以下C语言用户标识符中,不合法的是
(分数:2.00)
A._1
B.AaBc
C.a_b
D.a--b √
解析:解析:本题考查用户标识符,C语言中,用户标识符只能由字母、下划线和数组组成,且必须以字母或者下划线开始。
选项A、B)和C)都是正确的,选项D中的case是C语言关键字,不能作为用户标识符,是错误的。
11.以下选项中不能用作C程序合法常量的是
(分数:2.00)
A.1.234 √
B.'\123'
C.123
D.\x7G
解析:解析:本题考查C语言中的常量。
选项A错误,多了逗号;选项B是字符常量;选项C是整型常量;选项D是字符常量。
12.关于C语言中数的表示,以下叙述正确的是
(分数:2.00)
A.只要允许范围内整型数和实型数都能精确的表示
B.只有整型数在允许范围内能精确无误的表示,实型数会有误差
C.只有实型数在允许范围内能精确无误的表示,整型数会有误差√
D.只有用八进制表示的数才不会有误差
解析:解析:本题考查C语言基本数据类型,整型数是有范围的,只在允许的范围内才能精确无误的表示,实型数由于存储K度限制存在误差。
13.设变量均已正确定义并赋值,以下与其他三组输出结果不同的一组语句是
(分数:2.00)
A.x++;printf("%d\n",x);
B.++x;printf("%d\n",x);
C.n=x++:printf("%d\n",n);√
D.n=++x;printf("%d\n",n);
解析:解析:本题考查自增运算符。
++在前表示先自增然后使用,++在后面表示先使用然后自增。
选项A 中首先执行x++,执行完后x自增1,然后printf输出的是x自增后的值;选项B首先执行++x,x的值增加1,接着输出x的值:选项C中++在x的后面,因此n的值是x自增前的值,printf输出的是x自增前的值;选项D中++在x的前面,因此x首先自增,然后再赋值给n,n的值是x自增后的值,输出的也是x 自增后的值。
14.以下选项中表示一个合法的常量是(说明:符号□表示空格)
(分数:2.00)
A.123E0.2
B.2.7e□
C.0999□
D.0Xab √
解析:解析:本题考查C语言中的常量。
选项A字母E后面必须是整型数,浮点数错误:选项B字母e后面没有整型数:选项C以0开始表示8进制数,8进制数没有9;选项D是一个正确的16进制常数。
15.以下选项中不合法的标识符是
(分数:2.00)
A.FOR
B.&a √
C.print
D._00
解析:解析:合法的标识符要满足组成字符为a~z以及A~z,数字字符0到9和下划线,其中数字不开头,不能是关键字。
选项B中,&不属于组成字符,是错误的。
16.以下选项中,能用作数据常量的是
(分数:2.00)
A.115L √
B.0118
C.1.5e1.5
D.o115
解析:解析:本题考查常量定义。
数据常量可有10进制、8进制、16进制、指数法等,8进制数字为0.7,第一个字符为0,而不是0。
指数法表示时,指数部分须为整型,选项A中数字后加入L是说明此变量为长整型,是正确的常量表示形式。
17.按照C语言规定的用户标识符命名规则,不能出现在标识符中的是
(分数:2.00)
A.连接符√
B.大写字母
C.数字字符
D.下划线
解析:解析:在C语言中,合法标识符的命令规则是:标识符可以由字母、数字或下划线组成,并且第一个字符必须为字母或下划线。
在C语言的标识符中,大写字母和小写字母被认为是两个不同的字符。
选项A是连字符,不在C语言规定的命名变量标识符的范围内。
18.以下选项中,能用作用户标识符的是
(分数:2.00)
A._0_ √
B.8_8
C.void
D.unsigned
解析:解析:在C语言中,用户的标识符只能由字母或下划线开始。
一般强调文见其义的命名方法。
但是C语言中的保留字不能用作用户的标识符。
而选项C和D)全部为保留字,选项B中以数字开头,这些都不正确。
19.下列定义变量的语句中错误的是
(分数:2.00)
A.float US$:√
B.double int;
C.char For;
D.int int;
解析:解析:C语言规定,变量的标识符只能由字母、数字或下划线3种字符组成,且首字符必须为字母或下划线。
在C语言中大写字母和小写字母被认为是两个不同的字符。
选项B定义的变量标识符int_和选项D定义的变量标识符int与C语言的关键字int是不同的,是正确的变量标识。
选项C定义的变量标识符For与C语言中的关键字f-or是两个不同的标识符,而在选项A包含有特殊字符$,因而其不符合C语言的变量命名规定。
20.以下选项中关于C语言常量的叙述错误的是
(分数:2.00)
A.常量分为整型常量、实型常量、字符常量和字符串常量
B.经常被使用的变量可以定义成常量√
C.常量可分为数值型常量和非数值型常量
D.所谓常量,是指在程序运行过程中,其值不能被改变的量
解析:解析:常量指在程序运行过程中,其值不能被改变的量。
常量分为整型常量(即整常数)、实型常量、字符型常量和字符串常量。
常量也可以按数据类型分为为数据常量和非数据常量。
变量是指在程序运行过程中,其值能被改变的量。
21.以下选项中,不合法的C语言用户标识符是
(分数:2.00)
A.AaBc
B.a-b √
C.a_b
D._1
解析:解析:在C语言中的用户标识符只能由字母,数字和下划母组成,并且第一个字符必须是字母或下划线,在选项B中出现了非法的字符“-”。
22.以下关于C语言数据类型使用的叙述中错误的是
(分数:2.00)
A.若要保存带有多位小数的数据,可使用双精度类型
B.若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型
C.若只处理“真”和“假”两种逻辑值,应使用逻辑类型√
D.整数类犁表示的自然数是准确无误差的
解析:解析:在C语言中没有定义逻辑类型,而是用0代表假,用非零代表真。
23.以下选项中不能用作C程序合法常量的是
(分数:2.00)
A.'\123'
B.1,234 √
C.123
D.\x7D
解析:解析:选项B中的1,234在两侧加双引号才是C程序的合法字符串常量。
24.阅读以下程序#include main(){int case;float printF; printf("请输入2个数:"); scanf("%d%f",&case,&printF); printf("%d%t\n",case,printF);} 该程序在编译时产生错误,其出错原因是
(分数:2.00)
A.定义语句出错,printF不能用作用户自定义标识符
B.定义语句出错,case是关键字,不能用作用户自定义标识符√
C.定义语句无错,scanf不能作为输入函数使用
D.定义语句无错,printf不能输出case的值
解析:解析:case是C语言中的一个关键字,不能用作用户标识符来使用,所以这段程序代码在编译时就会出错。
25.以下选项中合法的标识符是
(分数:2.00)
A.1-1
B.1_1
C._11 √
D.1_ _
解析:解析:本题考查标识符定义。
合法标识符的要求是由下划线、英文大小写字母和数字组成的字符串,且第一个字符必须是字母或下划线。
26.关于C语言的符号常量,以下叙述中正确的是
(分数:2.00)
A.符号常量的符号名是标识符,但必须大写
B.符号常量在整个程序中其值都不能再被重新定义
C.符号常量是指在程序中通过宏定义用一个符号名来代表一个常量√
D.符号常量的符号名必须是常量
解析:解析:在C语言程序中,用一个符号名来代表一个常量,称为符号常量。
注意:这个符号名必须在程序中进行特别的“指定”,并符合标识符的命名规则。
一般在程序中都是利用宏定义来定义符号常量的,在代码中可以利用undef来结束符号常量的定义,然后进行重新定义,符号常量的大小写并没有特别的规定,一般时候为了和变量区分利用大写。
27.关于C语言的变量,以下叙述中错误的是
(分数:2.00)
A.所谓变量是指在程序运行过程中其值可以被改变的量
B.变量所占的存储单元地址可以随时改变√
C.程序中用到的所有变量都必须先定义后才能使用
D.由三条下划线构成的符号名是合法的变量名
解析:解析:变量是指在程序运行过程中其值可以改变的值,一个变量实质上是代表了内存中的某个存储单元。
在程序中对某个变量的操作实际上就是对这个存储单元的操作,程序运行期间,这个分配的存储单元不会改变,但是其值可以变化。
变量命名要符合标识符的规定,其中下划线是标识符的组成字符。
程序中所有变量都必须先定义后使用。
28.以下选项中不属于C语言标识符的是
(分数:2.00)
A.用户标识符
B.关键字
C.常量√
D.预定义标识符
解析:解析:C语言的标识符可分为以下3类:①关键字。
C语言预先规定了一批标识符,它们在程序中都代表着固定的含义,不能另作他用。
这些字符称为关键字。
例如,int、doubk、if、else、while、for等。
②预定义标识符。
即预先定义并具有特定含义的标识符。
③用户标识符。
由用户根据需要定义的标识符称为用户标识符,又称自定义标识符,一般用来给变量、函数、数组等命名。
29.以下选项中合法的变量是
(分数:2.00)
A.5a
B.A%
C.10 √
D.sizeof
解析:解析:对于变量的命名要利用标识符命名,所谓标识符就是C语言中的变量名、函数名、数组名、文件名、类型名等。
其中标识符构成:①标识符由字母、数字和下划线组成;②第一个字符必须为字母或下划线:因此选项A中数字开头,选项B出现了非法字符%,而选项D中sizeof为关键字,不能为变量命名。
30.以下叙述中正确的是
(分数:2.00)
A.标识符的长度不能任意长,最多只能包含16个字符
B.语言中的关键字不能作变量名,但可以作为函数名
C.用户自定义的标识符必须“见名知义”,如果随意定义,则会出编译错误
D.标识符总是由字母、数字和下划线组成,且第一个字符不得为数字√
解析:解析:标识符就是C语言中的变量名、函数名、数组名、文件名、类型名等。
C语言合法标识符的命名规则是:①标识符由字母、数字和下划线组成;②第一个字符必须为字母或下划线:③大写字母与小写字母被认为是两个不同的字符:④C语言规定了一个标识符允许的字符个数,为32,超过的字符将不被识别。
C语言的标识符可分为以下3类:①关键字,不能用于为自定义标识符命名。
②预定义标识符。
③用户标识符。
由用户根据需要定义的标识符称为用户标识符,又称自定义标识符,一般用来给变量、函数、数组等命名,一般做到见名知义,但是没有特殊规定。