国家二级C语言(C语言基础知识)机试模拟试卷1_第1页
国家二级C语言(C语言基础知识)机试模拟试卷1_第2页
国家二级C语言(C语言基础知识)机试模拟试卷1_第3页
国家二级C语言(C语言基础知识)机试模拟试卷1_第4页
国家二级C语言(C语言基础知识)机试模拟试卷1_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

家二级C语言(C语言基础知识)机

试模拟试卷第1套

一、选择题(本题共30题,每题1.0分,共30分。)

1、我们所写的每条c语句,经过编译最终都将转换成二进制的机器指令。关于转

换以下说法错误的是

A、一条C语句可能会被转换成多条机器指令

B、一条C语句对应转换成一条机器指令

C、一条C语句可能会被转换成零条机器指令

D、某种类型和格式的C语句被转换成机器指令的条数是固定的

标准答案:B

知识点解析:由C语言编写的程序,通过编译、链接转换成可以让机器识别的01

二进制指令v这些二进制指令命令机器计算,这些就是机器指令,而C语言的语

句条数和机器指令的条数不是一对一的关系。

2、以下选项中不属于C语言程序运算符的是

A^sizeof

B、()

C、<>

D、&&

标准答案:C

知识点解析:sizeof为测试内存的运算符,()为算术运算符,&&为逻辑运算符。而

V>不是C语言的运算符,C语言中!=表示不等于。

3、若变量已正确定义并赋值,以下不能构成C语句的选项是

A、A=a+b;

B、B++:

C、a=a+b

D、A?a:b;

标准答案:C

知识点解析:C语言语句的表示为分号,不加分号的表达式不能看成C语句。

4、以下叙述中正确的是

A、程序必须包含所有三种基本结构才能成为一种算法

B、如果算法非常复杂,则需要使用三种基本结构之外的语句结构,才能准确表达

C、只有简单算法才能在有限的操作步骤之后结束

D、我们所写的每条C语句,经过编译最终都将转获成二进制的机器指令

标准答案:D

知识点解析:C语句构成了函数,函数构成的程序,经过编译转换成二进制代码后

可以运行,算法是指为解决某个特定问题而采取的确定且有限的步骤,可以利用代

码来描述算法,而算法+数据结构才是程序,结构化的程序由顺序结构、循环结构

和选择结构三种基本结沟组成。由这三种基本结构组成的算法可以解决任何复杂的

问题,反之则不一定,所有算法必须在有限步骤后结束。

5、下列选项中,不能用作标识符的是

A、_1234

B、_1_2

C、int_2_

D、2_int_

标准答案:D

知识点解析•:C语言中标识符必须以字母或者下划线开始,选项D)中是以数字开

始的不能作为标识符。

6、以下选项中作为C语言合法常量的是

A、-80

B、-80

C、-8el.0

D、-80.0e

标准答案:A

知识点解析:本题考查C语言中的常量,C语言中字母e或E之前必须有数字,且

e或E后面的指数必须为整数。选项A)表示负数-80;选项B)中以数字。开始表示

的是八进制数,八进制数数字范围是从0.7,不包括8;选项C)是一个指数浮

点,字母e后面应该是整型指数;选项D)中字母e后面没有整数,不满足C规

范C

7、以下不能定义为用户标识符是

A、Main

B、_0

C、_int

D、sizeof

标准答案:D

知识点解析:本题考查用户标识符,C语言中用户标识符只能由字母和数字组成,

且必须以字母开头,不能和C语言的关键字相同。选项A)、B)和C)都符合要求,

选项D)中的sizeof是C语言关键字,不能作为用户标识符。

8、以下选项中,不能作为合法常量的是

A、1.234e04

B、1.234e0.4

C、1.234e+4

D、1.234eO

标准答案:B

知识点解析:本题考查C语言中的常量,C语言中字母e或E之前必须有数字,且

e或E后面的指数必须为整数。选项B)中字母e后面•是浮点数,错误,其他选项都

是正确的常量。

9、可在C程序中用作用户标识符的一组标识符是

A、and_2007

B、Datey-m-d

C、HiDr.Tom

D^caseBigl

标准答案:A

知识点解析:本题考查用户标识符,C语言中,用户标识符只能由字母、下划线和

数组组成,且必须以字母或者下划线开始。选项A)正确;选项B)中使用了字符

选项C)使用了字符选项D)中的case是C语言关键字,不能作为用户标

识符。

10、以下C语言用户标识符中,不合法的是

A、_1

B、AaBc

C^a_b

D、a-b

标准答案:D

知识点解析:本题考查用户标识符,C语言中,用户标识符只能由字母、下划线和

数组组成,且必须以字母或者下划线开始。选项A)、B)和C)都是正确的,选项D)

中的case是C语言关键字,不能作为用户标识符,是错误的。

11、以下选项中不能用作C程序合法常量的是

A、1,234

B、’\123,

C、123

D、\x7G

标准答案:A

知识点解析:本题考查C语言中的常量。选项A)错误,多了逗号;选项B)是字符

常量;选项C)是整型常量;选项D)是字符常量。

12、关于C语言中数的表示,以下叙述正确的是

A、只要允许范围内整型数和实型数都能精确的表示

B、只有整型数在允许范围内能精确无误的表示,实型数会有误差

C、只有实型数在允许范围内能精确无误的表示,整型数会有误差

D、只有用八进制表示的数才不会有误差

标准答案:c

知识点露析:本题考查C语言基本数据类型,整型数是有范围的,只在允许的范

围内才能精确无误的表示,实型数由于存储长度限制存在误差。

13、设变量均已正确定义并赋值,以下与其他三组输出结果不同的一组语句是

A、x++;printf("%d\n",x);

++x;printf(',%d\n"»x);

C、n=x++;printf("%d\n",n);

D、n=++x;printf("%dn",n);

标准答案:C

知识点解析:本题考查自增运算符。++在前表示先自增然后使用,++在后面表示

先使用然后自增。选项A)中首先执行x++,执行完后x自增1,然后printf输出的

是x自增后的值;选项B)首先执行++x,x的值增加1,接着输出x的值;选项C)

中++在x的后面,因此n的值是x自增前的值,prinlf输出的是x自增前的值;选

项D)中++在x的前面,因此x首先自增,然后再赋值给n,n的值是x自增后的

值,输出的也是x自增后的值。

14、以下选项中表示一个合法的常量是(说明:符号口表示空格)

A、123E0.2

B、2.7e口

C、0999□

D、OXab

标准答案:D

知识点解析:本题考查C语言中的常量。选项A)字母E后面必须是整型数,浮点

数错误;选项B)字母。后面没有整型数;选项C)以。开始表示8进制数,8进制数

没有9;选项D)是一个正确的16进制常数。

15、以下选项中不合法的标识符是

A、FOR

B、&a

C^print

D、_00

标准答案:B

知识点解析:合法的标设符要满足组成字符a〜z以及A〜z,数字字符0到9和下

划线,其中数字不开头,不能是关键字。选项B)巾,&不属于组成字符,是错误

的。

16、以下选项中,能用作数据常量的是

A、115L

B、0118

C、1.5el.5

D、0115

标准答案:A

知识点解析:本题考查常量定义。数据常量可有10进制、8进制、16进制、指数

法等,8进制数字为0-7,第一个字符为0,而不是0。指数法表示时,指数部分须

为整型,选项A)中数字后加入L是说明此变量为长整型,是正确的常量表示形

式。

17、按照C语言规定的用户标识符命名规则,不能出现在标识符中的是

A、连接符

B、大写字母

C、数字字符

D、下划线

标准答案:A

知识点解析:在C语言中,合法标识符的命令规则是:标识符可以由字母、数字

或下划线组成,并且第一个字符必须为字母或下划线。在C语言的标识符中,大

写字母和小写字母被认为是两个不同的字符。选项A)是连字符,不在C语言规定

的命名变量标识符的范围内。

18、以下选项中,能用作用户标识符的是

A、_0_

B、8_8

C、void,

D、unsigned

标准答案:A

知识点解析:在C语言中,用户的标识符只能由字母或下划线开始。一般强调文

见其义的命名方法。但是C语言中的保留字不能用作用户的标识符。而选项C)和

D)全部为保留字,选项B)中以数字开头,这些都不正确。

19、下列定义变量的语句中错误的是

A^floatUSS;

B、doubleint;

C、charFor;

D、intjnt:

标准答案:A

知识点解析:C语言规定,变量的标识符只能由字母、数字或下划线3种字符组

成,且首字符必须为字母或下划线。在C语言中大写字母和小写字母被认为是两

个不同的字符。选项B)定义的变量标识符int和选项D)定义的变量标识符int与C

语言的关键字int是不同的,是正确的变量标识。选项C)定义的变量标识符For与

C语言中的关键字for是两个不同的标识符,而在选项A)包含有特殊字符$,因而

其不符合C语言的变量命名规定。

20、以下选项中关于C语言常量的叙述错误的是

A、常量分为整型常量、实型常量、字符常量和字符串常量

B、经常被使用的变量可以定义成常量

C、常量可分为数值型常量和非数值型常量

D、所谓常量,是指在程序运行过程中,其值不能被改变的量

标准答案:B

知识点解析:常量指在程序运行过程中,其值不能被改变的量。常量分为整型常量

(即整常数)、实型常量、字符型常量和字符串常量。常量也可以按数据类型分为为

数据常量和非数据常量。变量是指在程序运行过程中,其值能被改变的量。

21、以下选项中,不合法的C语言用户标识符是

A、AaBc

B、a_b

C^ab

D、1

标准答案:B

知识点解析•:在C语言中的用户标识符只能由字母,数字和下划母组成,并且第

一个字符必须是字母或下划线,在选项B)中出现了非法的字符

22、以下关于C语言数据类型使用的叙述中错误的是

A、若要保存带有多位小数的数据,可使用双精度类型

B、若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型

C、若只处理“真”和“假”两种逻辑值,应使用逻辑类型

D、整数类型表示的自然数是准确无误差的

标准答案:C

知识点解析:在C语言中没有定义逻辑类型,而是用0代表假,用非零代表真。

23、以下选项中不能用作C程序合法常量的是

A、’\123,

B、1,234

C、123

D、\x7D

标准答案:B

知识点解析:选项B)中的1,234在两侧加双引号才是C程序的合法字符串常量。

24、阅读以下程序#include〈stdio.h>main(){intcase;floatprintF;printf("请输

入2个数:");scanf("%d%F',&case,&printF);printf("%d%f\n'\case,

printF);}该程序在编译时产生错误,其出错原因是

A、定义语句出错,printF不能用作用户自定义标识符

B、定义语句出错,case是关键字,不能用作用户自定义标识符

C、定义语句无错,scanf不能作为输入函数使用

D、定义语句无错,printf不能输出case的值

标准答案:B

知识点解析:case是C潜言中的一个关键字,不能用作用户标识符来使用,所以

这段程序代码在编译时就会出错。

25、以下选项中合法的标识符是

A、1月1日

B、1」

C、_11

D、1__

标准答纂C

知识点解析:本题考查标识符定义。合法标识符的要求是由下划线、英文大小写字

母和数字组成的字符串,且第一个字符必须是字母或下划线。

26、关于C语言的符号常量,以下叙述中正确的是

A、符号常量的符号名是标识符,但必须大写

B、符号常量在整个程序中其值都不能再被重新定义

C、符号常量是指在程咨中通过宏定义用一个符号名来代表一个常量

D、符号常量的符号名必须是常量

标准答案:C

知识点解析:在C语言程序中,用一个符号名来代表一个常量,称为符号常量。

注意:这个符号名必须在程序中进行特别的“指定并符合标识符的命名规则。

般在程序中都是利用宏定义来定义符号常量的,在代码中可以利用undef来结束符

号常量的定义,然后进行重新定义,符号常量的大小写并没有特别的规定,一般时

候为了和变量区分利用大写。

27、关于C语言的变量,以下叙述中错误的是

A、所谓变量是指在程序运行过程中其值可以被改变的量

B、变量所占的存储单元地址可以随时改变

C、程序中用到的所有变量都必须先定义后才能使用

D、由三条下划线构成的符号名是合法的变量名

标准答案:B

知识点解析:变量是指在程序运行过程中其值可以改变的值,一个变量实质上是代

表了内存中的某个存储单元。在程序中对某个变量的操作实际上就是对这个存储单

元的操作,程序运行期间,这个分配的存储单元不会改变,但是其值可以变化。变

量命名耍符合标识符的规定,其中下划线是标识符的组成字符。程序中所有变量都

必须先定义后使用。

28、以下选项中不属于C语言标识符的是

A、用户标识符

B、关键字

C、常量

D、预定义标识符

标准答案:C

知识点解析:C语言的标识符可分为以下3类:①关键字。C语言预先规定了一批

标识符,它们在程序中都代表着固定的含义,不能另作他用。这些字符称为关键

字。例如,int、double>if、else>while>for等。②预定义标识符。即预先定义并

具有特定含义的标识符。③用户标识符。由用户根据需要定义的标识符称为用户

标识符,又称自定义标设符,一般用来给变量、函数、数组等命名。

29、以下选项中合法的变量是

A、5a

B、A%

C、_10_

D、sizeof

标准答案:C

知识点解析:对于变量的命名要利用标识符命名,所谓标识符就是C语言中的变

量名、函数名、数组名、文件名、类型名等。其中标识符构成:①标识符由字

母、数字和下划线组成;②第一个字符必须为字母或下划线;因此选项A)中数字

开头,选项B)出现了非法字符%,而选项D)中sizeof为关键字,不能为变量命

名。

30、以下叙述中正确的是

A、标识符的长度不能任意长,最多只能包含16个字符

B、语言中的关键字不能作变量名,但可以作为函数名

C、用户自定义的标识符必须“见名知义”,如果随意定义,则会出编译错误

D、标识符总是由字母、数字和下划线组成,旦第一个字符不得为数字

标准答案:D

知识点解析:标识符就是C语言中的变量名、函数名、数组名、文件名、类型名

等。C语言合法标识符的命名规则是:①标识符由字母、数字和下划线组成:②

第一个字符必须为字母或下划线:③大写字母与小写字母被认为是两个不同的字

符:④C语言规定了一个标识符允许的字符个数,为32,超过的字符将不被识

别。C语言的标识符可分为以下3类:①关键字,不能用于为自定义标识符命

名。②预定义标识符。③用户标识符。由用户根据需要定义的标识符称为用户标

识符,乂称自定义标识符,一般用来给变量、函数、数组等命名,一般做到见名知

义,但是没有特殊规定。

国家二级C语言(C语言基础知识)机

试模拟试卷第2套

一、选择题(本题共30题,每题1.0分,共30分。)

1、已知大写字母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'

标准答案:A

知识点解析:由题意可知,小写字符a和大写字符A的ASCII代码相差为32,所

以选项C)能将大写字符C的ASCII代码转换为小写字符c的ASCII代码;选项D)

和C)左侧的表达式都是大写字符C与大写字符A的差与W的ASCII代码的和就是

小写字符c的ASCH代码。而选项A)中应该是加上V,而不是减去

2、以下选项中非法的C语言字符常量是

A、,\夕

B、,\007,

C、‘aa'

D、,\xaa,

标准答案:C

知识点解析:一个字符常量代表ASCII字符集中的一个字符,在程序中用单引号

把一个字符括起来作为字符常量。

3、以下选项中非法的C语言字符常量是

A、'9'

B、,\09,

C、'\x09'

D、'\x9d'

标准答案:B

知识点解析:一个字符常量代表ASCII字符集中的一个字符,在程序中用单引号

把一个字符括起来。也可以为转移字符,转义字符又称反斜线字符,这些字符常量

总是以一个反斜线开头后跟一个特定的字符,用来代表某一个特定的ASCII字

符,这些字符常量也必须括在一对单引号内。其中反斜线后的八进制数可以不用0

开头,但是不能有8和9字符出现。反斜线后的十六制数只可由小写字母x开头。

4、若有定义语句charc=,\101';则变量c在内存中占

A、2个字节

B、3个字节

C、1个字节

D、4个字节

标准答案:c

知识点。析:每个字符变量被分配一个字节的内存空间,因此只能存放一个字符。

字符值是以ASCII码的形式存放在变量的内存单元之中的。

5、若有以下程序,则程序的输出结果是#include〈stdio.h>main(){charcl,c2;

cl='C'+'8'-'3';c2='9'-'O':printf("%c%dhan,cl,c2);J

A、H9

B、H9

C、FW

D、表达式不合法输出无定值

标准答案:A

知识点解析:字符常量允许进行简单的算术运算,则,C+5表示H,而,9=0狈J表

示数值9。

6、下面选项中合法的字符常量是

A、X

B、'abc'

C、X

D、、

标准答案:c

知识点词析:在程序中用单引号把一个字符括起来作为字符常量。但是为了表示字

符要用两个“\表示一个反斜杠。

7、以下叙述中正确的是

A、字符常量在内存中占2个字节

B、转义字符要用双引号括起来,以便与普通的字符常量区分开

C、字符常量需要用单引号括起来

D、字符常量是不能进行关系运算的

标准答案:C

知识点解析:在程序中用单引号把一个字符括起来作为字符常量。转义字符又称反

斜线字符,这些字符常量总是以一个反斜线开头后跟一个特定的字符,用来代表某

一个特定的ASCH字符,这些字符常量也必须括在一对单引号内.和整型常量一

样,字符常量也可以进行关系运算的。

8、以下叙述中正确的是

A、字符变量在定义时不能赋初值

B、同一英文字母的大写和小写形式代表的是同一个字符常量

C、字符常量可以参与任何整数运算

D、转义字符用@符号开头

标准答案:c

知识点3析:一个字符常量代表ASCII字符集中的一个字符,在C程序中,字符

常量可参与任何整数运算,转义字符以一个反斜线开头后跟一个特定的字符。

9、若有定义语句:chara=,\82、则变量a

A、包含1个字符

B、说明不合法

C、包含2个字符

D、包含3个字符

标准答案:B

知识点解析:转义字符以一个反斜线开头后跟一个特定的字符,可以利用、ddd,3

位八进制数代表的一个ASCII字符,也可以、xhh'2位十六进制数代表的一个

ASCII字符。选项A)中的八进制表示出现字符8,非法。

10、有以下程序,程序的输出结果是1]向硝{加3=认,会2=、-printf(n%d,%

dha",cl,c2);}

A、输出格式不合法,输电出错信息

B、65,90

C、65,89

D、A,Y

标准答案:C

知识点解析:C语言允许对整型变量赋以字符值,也允许对字符变量赋以整型值。

在输出时,允许把字符变量按整型量输出,也允许把整型量按字符量输出。

11、C语言中char类型数据占字节数为

A、2

B、3

C、1

D、4

标准答案:C

知识点解析:C语言中char类型数据占字节数为1。

12、有以下程序,程序运行后的输出结果是main(){chara=,H,:a=(a>=,A'&&aV

=='Z')?(a+32):a;printf("%cha",a);}

A、H

B、A

C、h

D、a

标准答案:C

知识点解析:表达式a=(a>='A,&&aV=Z)?(a+32):a,为条件表达式,如果a是

大写字符,则转换为小写字符存放到a中,否则不变。

13、以下正确的字符串常量是

A^,abc,

OlympicGames

C、

D、"\\\"

标准答案:C

知识点解析:字符串常量是由双引号括起来的一串字符。在C语言中,以一个反

斜线开头后跟一个特定的字符,用来代表一个特定的ASCII字符。利用两个

表示一个反斜杠,因此选项D)的表示无法确认表示几个反斜杠。

14、若、x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是

abs(x-y)<10

B、x-y>-10&x-y<10

C>!(x-y)<-10||!(y-x)>l0

D、(x-y)*(x-y)<100

标准答案:C

知识点解析:数学关系|x・y|V10表示x和y的差的绝对值小于10,选项A)使月了

abs求绝对值函数,满足要求;选项B)是x和y的差值在.10和10之间,满足要

求;选项C)是x和y的差值大于.10或者y和x的差值小于10,不满足要。

15、数字字符。的ASCII值为48,若有以下程序,程序运行后的输出结果是

main(){chara=,1',b=,2,;printf("%c,",b++):printf("%d\n",b-a);)

A、3,2

B、50,2

C、2,2,

D、2,50

标准答案:C

知识点解析:本题主要考查ASCII码和自加运算。第一个printf语句中,是以字符

形式输出b++的值,++放在变量的后面是先使用然后自增,因此第一个printf输出

值是2,然后b的值变成,3"在第二个prinlf语句中,b的值为,31a的值为“"

所以b-a的值为2。

16、若有代数式《丁4屋1(其中e仅代表自然对数的底数,不是变量),则以下能

够正确表示该代数式的C语言表达式是

A、sqrt(fabs(pow(n,x)+pow(x,e)))

sqrt(abs(nAx+eAx))

C、sqrt(fabs(pow(n,x)+exp(x)))

D、sqrt(fabs(pow(x,n)+exp(x)))

标准答案:C

知识点解析:n和e的x塞次方,要分别调用C语言的数学库函数doublepow(n,

x)和doubleexp(x),因为这两个函数的返回值都为double型,对其两者的和计算绝

对值,调用库函数doublefabs(pow(n,x)+exp(x)),求出和的绝对值,再调用开平

方函数doublcsqrt(fabs(pow(n,x)+cxp(x))),这样计算出的结果就是题干中算术表

达式的值。

17、表达式:(int)((double)9/2)-9%2的值是

A、0

B、4

C>3

D、5

标准答案:C

知识点0析:这个表达式的计算过程为,首先求出9除以2的商等于4,再把其强

制转化为实型数据为4.0,然后再强制转4,减去9对2求余数1,得到其结果等

于3。

18、若有定义语句:intx=12,y=8,z;在其后执行语句z=0.9+x/y;则z的值

A、1.9

B、1

C、2

D、2.4

标准答案:B

知识点解析:由于x,y,z都是整型数据,所以x除以y的值为整型数值I,1和

0.9相加得到1.9,再转换为整型数1赋给整型变量z。

19,表达式3.6-5/2+1.2+5%2的值是

A、4.18

B、3.3

C、3.8

D、4.3

标准答案:C

知识点解析:表达式的计算过程为:3.6-5/2+1.2+5%2=3.6-

2+1.2+1=3.8。此题要注意5/2的结果是2,而不2.5,因为除法运算符两边

的数值类型均为整型,故运算结果的数值类型也被认定为整型。

20>有以下定义:inta;longb;doublex,y;则以下选项中正确的表达式是

A、a%(int)(x-y)

B、a=x<>y

C、(a*y)%b

D、y=x+y=x

标准答案:A

知识点解析:选项B)中V>运算符不存在,选项Q中double类型不能进行取余

(%)操作,要求两个运算数必须是整数,选项D)中x+y=x错误。

21、若有以下程序,编惮时出现错误,你认为出错的是的区1遍0<$1(1诂/〉

main(){inta=0,b=0,c=0,d;c=(a+=b,»b+=a);/*第4行*/d=c;;/*第5

行*/;/*第6行*/printfC,%d,%d,%d\iT,a,b,c);/*第7行*/)

A、第4行

第5行

C、第6行

D、第7行

标准答案:A

知识点解析:第4行出错,在第4行括号中两个逗号不可以为空。单独的分号为C

语言的空语句,是编译程序可以识别并且编译的,因此第5、6行都是正确的。

a-b

22、不能正确表示数学式的T表达式是

A^a*b/c

B、a/c^b

C>a/b*c

D、a*(b/c)

标准答案:C

知识点解析:表达式的含义为a乘以b除以c,选项。正好曲解了这一个含义。

23、C语言程序中,运算对象必须是整型数的运算符是

A、/

B、%

C、&&

D、*

标准答案:B

知识点解析:%要求参与运算的运算量为整型,其他三个运算符对于参与运算的运

算量没有直接要求。

24、设有定义:intk=l,m=2;floatf=7;,则以下选项中错误的表达式是

A、k=k>=k

B、-k++

C、k%inl⑴

D、k>=f=m

标准答案:D

知识点解析:本题考查了赋值表达式,在赋值表达式中,等号的左边必须是变量,

等号右边可以是变量、表达式或者常量。选项A)是一个赋值表达式;选项B)是一

个表达式;选项C)是计算余数表达式;选项D)错误,等号的左边不是变量。

25、设有定义:inla=2,b=3,c=4;,则以下选项中值为0的表达式是

A、(!a==l)&(!b==0)

B、(a<b)&!c||l

C、a&b

D、a||(b+b)||(c-a)

标准答案:A

知识点解析:本题主要考查逻辑运算。选项A)中,(!a=l)中!运算优先级比==高,

因此!a为假,然后在和1比较是否相等,因此整个表达式的结果为假,(!a==l)和

(!b-0)是与的关系,前面的表达式为假,整个表达式结果就是假(0);选项B)中a

Vb为真,!c值为假,(aVb)&!c值为假,(aVb)&!c||l为真;选项C)中a&b的值为

2;选项D)中a的值为真,表达式的结果为真。

26>若有表达式(w)?(・-x):(++y),则其中与w等价的表达式是

w==l

BNW==0

C、w!=l

D、w!=0

标准答案:D

知识点解析:本题考查条件表达式。(w)?(-x):(++y)的含义是如果w非0那么表

达式的值为-X,否为++y,因此只有选项D)和w等价。

27若有定义:doublea=22;imi=0,k=18;则不符合C语言规定的赋值语句是

A、i=Ca+k)<=(i+k);

a=a++,i++:

C、i=a%11;

D、i=!a;

标准答案:C

知识点解析:在C语言中,求余运算符的运算对象只能是整型,在题目中,变量a

是一个双精型实型变量。

28、设变量己正确定义并赋值,以下正确的表达式是

A、x=y+z+5♦++y

B、int(15.8%5)

C^x=y*5=x+z

D、x=25%5.0

标准答案:A

知识点解析:在赋值表达式中,赋值符号的左边只能为赋值的变量,不能为表

达式,右边可以为常量或者是表达式,故选项C)错误;在取余运算中,运算符

“%”两边都必须是整型数据,所以选项B)、D)错误,选项A)是C语言中的逗号表

达式。

29若有定义语句:imx=10;则表达式x-二x+x的值为

A、-20

B、0

C、-10

D、10

标准答案:C

知识点解析:表达式x・=x+x等价于x=x・(x+x),整型变量x的初始值等于10,计算

题目所求表达式的值时,首先计算x与x的和等于20,然后再用10减去20等于・

10,得到该表达式的值。

30、有以下程序#includeVstdio.n>main(){inta=l,b=0;printf("%d,",

b=a+b);printfC%d\n',a=2*b);}程序运行后的输出结果是

A、1,0

B、3,2

C、1,2

D、0,0

标准答案:C

知识点解析:在主函数中定义了两个整型变量a和b,并把它们的初值分别设置为

1和0;在第二条语句中,首先计算出a和b的和等于1,把此值赋给变量b,并在

屏幕上输出此时变量b的值1;在第三条语句中,计算出2乘以I的积等于2,把

2赋给变量a,再把变量a的值在屏幕上输出。

国家二级C语言(C语言基础知识)机

试模拟试卷第3套

一、选择题(本题共30题,每题1.0分,共30分。)

1、C语言中的标识符分为关键字、预定义标识符和用户标识符,以下叙述正确的

A、关键字可用作用户标识符,但失去原有含义

B、在标识符中大写字母和小写字母被认为是相同的字符

C、用户标识符可以由字母和数字任意顺序组成

D、预定义标识符可用作用户标识符,但失去原有含义

标准答案:D

知识点解析:预定义标史符是C语言中的标识符,在C语言中也有特定的含义,

如函数printf、scanf>sin等和编译预处理命令名(如define和include)。预定义标识

符可以作为用户标识符使用,只是这样会失去系统规定的原义。

2、以下叙述中错误的是

A、常量可以用一个符号名来代表

B、数值型常量有正值和负值的区分

C、常量是在程序运行过程中值不能被改变的量

D、定义符号常量必须用类型名来设定常量的类型

标准答案:D

知识点解析:C语言中,常常用一个标识符来代表一个常量,称为符号常量。符号

常量在使用之前要先定义,定义格式:#defineV符号常量名〉(常量)其中,〈符号

常量名〉用标识符,习惯.上用大写字母,V常量〉可以是数字常量,也可以是字

符。

3、与十进制数200等值的十六进制数为

A、A8

B、A4

C、C8

D、C4

标准答案:C

知识点解析:本题考察了进制转换,十进制的数转换为十六进制规则:整数部分除

以16取余数,将余数倒过来排列。

4、以下选项中,合法的一组C语言数值常量是

A、12.0Xa234.5e0

B、028.5e-3-0xf

C、.1774cl.50abc

D、0x8A10,0003.e5

标准答案:A

知识点解析:八进制数其开头必须是数字“0",其数字包括0〜7,而在选项B)中,

028是错误的。浮点数据的指数形式表示常量中,C语言规定字母e或E之前必须

要有数字,且e或E之后的指数必须为整数,而选项C)中4el.5是错误的。在选

项D)中,整型数据10,000的表示形式是错误的。

5、C源程序中不能表示的数制是

A、八进制

B、十进制

C、二进制

D^十六进制

标准答案:C

知识点解析:在C语言的源程序中,数值可以用十进制、八进制和十六进制来表

示C不用二进制来表示.

6、以下叙述中正确的是

A、在C程序中的八进制和十六进制,可以是浮点数

B、八进制数的开头要使用英文字母o,否则不能与十进制区分开

C、整型变量可以分为int型、short型、long型和unsigned型四种

D、英文大写字母x和英文小写字母x都可以作为二二进制数字的开头字符

标准答案:C

知识点解析:整型变量分为以下4种类型:①基本型:以int表示。②短整型:

以shortint表示,或以short表示。③长整型:以longint表示,或以long表示。

④无符号型:以unsignedint表示,选项C)正确,实型常量仅有十进制表示形式,

八进制以数字0开头,十六进制开头为Ox或者0X,不是二进制。

7、以下选项中合法的常量是

A、2.7e

B、999

C、123E0.2

D、OXab

标准答案:D

知识点解析:Oxab是十六进制表示的常量。

8、以下选项中能表示合法常量的是

A、\007

B、1.5E2.0

C、、

D、1,200

标准答案:A

知识点解析:选项D),1200中间不能有逗号,否则编译时会认为是1或出错。选

项B),2.0错误,必须为整数。选项C),要表示字符斜杠常量、,,应该在反斜

杠的前面再加上一个反斜杠。选项A)为字符串常量,为正确选项。

9、以下选项中可用作C程序合法实数的是

A、3.OeO.2

B、E9

C、.IcO

D、9.12E

标准答案:C

知识点解析:C程序的合法实数有两种表示形式,一种是小数形式,另一种是指数

形式,对于用指数形式表示的实数来说,需要注意的是字母e或E之前必须要有数

字,且字母e或E后面的指数必须为整数。

10、以下不合法的数值常量是

A、lei

B、011

C、Oxabcd

D、8.OEO.5

标准答案:D

知识点解析:实型常量又称为实数或浮点数。在C语言中,可以用两种形式表示

一个实型常量。①小数形式是由数字和小数点组成的一种实数表示形式,这种表

示形式的常量必须要有小数点。②指数形式用以“e”或“E”后跟一个整数来表示以

10为底的事数。C语言的语法规定,字母e或E之前必须要有数字,且e或E后面

的指数必须为整数。因为选项D)中字母E后面的指数为小数形式,所以选项D)这

种表示方法不合法。

11、以下选项中正确的定义语句是

A、doublea=b=7;

doublea:b;

C、double,a,b;

D^doublea=7,b=7;

标准答案:D

知识点解析:在C语言中,可以用一条语句同时定义几个同类型的变量,变量之

间用逗号隔开。

12、若有以下程序段doublex=5.16894:printf("%f\n",(int)(x*1000+0.5)/

(double)1000);则程序段的输出结果是

A、5.175000

B、5.169000

C、5.170000

D、5.168000

标准答案:B

知识点解析:(int)(x*1000+0.5)/(double)1000表达式功能,保存数据x的后三位

小数,把第四位四舍五入。

13、以下选项中合法的实型常量是

A、.914

B、3.13e-2.1

C、0

D、2.0*10

标准答案:A

知识点解析:实型常量又称实数或浮点数,一般用小数形式或指数形式来表示。实

型常量分为以下两种形式:①小数形式:小数形式是由数字和小数点组成的一种

实数表示形式。例如0.345、.123、0.0等是合法的实数。这种表示形式必须要

有小数点;②指数形式:在C语言中,用“e”或“E”后跟一个整数来表示以10为底

的基数。注意:字母"e”或"E”之前必须要有数字,后面的指数必须为整数。选项

R)中e后必须为整数,选项C)没有小数点.而选项D)则出现非法字符3

14、C语言中double类型数据占字节数为

A、4

B、12

C、8

D、16

标准答案:C

知识点解析:double类型所占字节为8。

15、以下叙述中正确的是

A、整型常量和实型常量都是数值型常量

B、常量的类型不能从字面形式上区分,需要根据类型名来决定

C、预定义的标识符是C语言关键字的一种,不能另作它用

D、只能在函数体内定义变量,其他地方不允许定义变量

标准答案:A

知识点解析:整型常量和实型常量都是数值型常量,选项A)正确;常量的类型可

以从字面上区分,比如整型常量不能有小数点,组成字符为0〜9等,选项B)错

误;预定义标识符,即预先定义并具有特定含义的标识符,可以另作他用,不过更

改了原有的含义,选项C)错误;变量可以定义在程序中任何的地方,属于不同的

变量,选项D)错误。

16、sizeof(double)^

A、一个双精度型表达式

13、一个整型表达式

C、一个不合法的表达式

D、一种函数调用

标准答案:B

知识点解析:sizeof关键字为C语言的运算符,用于测试0内类型其变量所占内

存,表达式结果返回十进制整数,因此为整型表达式,表明变量所占的内存字节

数。

17、以下选项中,值为1的表达式是

A、1-0

B、r-o

c、

D、\(r」o'

标准答案:C

知识点解析:在C程序中,字符量可参与任何整数运算。字符参与运算时,首先

要将字符转换为其对应的.ASCII码值再参与整数运算。字符“」,”对应的ASCII码

值是49,字符1(T对应的ASCH码值是48,字符“'\(T”是字符串结束标识符

NULL,其对应的ASCII码值是0。

18>有以下说明和定义语句structstudent{intage;charnum[8];):structstudent

stu[3]={{20,”200401”},{21,”200402”},{19,"200403"}};structstudent

*p=stu;以下选项中引用结构体变量成员的表达式错误的是

A^(p++)->num

B、p->num

C、(*p).num

D、stu[3].age

标准答案:D

知识点解析:本题考查结构体和结构体指针,siu是一个结构体数组,p是结构体

指针,且p指向stu数组,即p指向了stu数组的首元素地址。选项A)中p++表示

先引用p相针,然后p指向下一个元素,(p++)->num表示取出slu首元装的num

值,然后p指向stu[l]元素地址;选项B)是通过结构体指针访问结构体元素,使用

运算符;选项C)中*p代表stu[O]元素,因此(*p).num表示stu[O].num:选

项D)中,slu数组的长度为3,stu[3]已经超出数组范围,错误。

19、以F合法的字符型常量是

A、'\xl3'

B、'\081,

C、,65,

D、,/n,

标准答案:A

知识点解析:本题考查字符型常量。选项A)正确,使用了转义字符“\",X13表示

16进制的13;选项B)同样使用了转义字符,但081错误,以0开始表示8进制,

8进制数字的范围是0-7,没有8:选项C)错误,65是一个字符串,不是字符;选

项D)错误,换行符是“\暧。

20、己有定义:chare;,程序前面己在命令中包含ctype.h文件。不能用于判断

c中的字符是否为大写字母的表达式是

A、isupper(c)

B、'A,V=cV=Z

C、'A'V=c&cV=Z

D、c〈=('z'-32)&('a'-32)〈二c

标准答案:B

知识点解析:本题考查字符变量和逻辑运算。选项A)通过调用函数isupper来判断

字符c是否是大小字母,满足要求;选项B)是逻辑表达式,不管c为何值,'A,<

=c为真或者假,然后再和2,比较结果必然为真(0和1都小于'Z,的ASCII值);选

项C)是通过与运算来判断c是否是大小字母:选项D)中P-32和大小字母2,相

等,同样宣-32和大小字母,A,相等。

21、以下选项中不属于字符常量的是

A、C

B、C

C、'\xCC'

D、,\072,

标准答案:B

知识点解析:本题考查字符型常量。选项A)正确,是大小字母C选项B)错误,

使用双引号括起来的是字符串,不是字符;选项Q正确,使用了转义字符“\”,

xCC表示16进制的CC:选项D)正确,使用了转义字符“\",072表示8进制的

72o

22、设变量己正确定义,以下不能统计出一行中输入字符个数(不包含回车符)0的

程序段是

A、n=0;while((ch=gctchar())!=,\n')n++;

B、n=0;while(getcharO()!='\n')n++;

C、for(n=0;getchar()!=,\n5;n++);

D、n=0;for(ch=getchar();ch!='\n';n++):

标准答案:D

知识点解析:本题主要考查循环的使用。选项A)中,首先把输入的字符放到ch变

量中,然后判断ch是否为回车符,如果不是则n增加,循环结束条件是输入的是

回车符:选项B)中,直接判断getchar函数的返回值是否是回车符,如果不是则n

增加,输入回车符循环结束;选项C)使用for循环,n的初值为0,每次循环n增

加1,循环的结束条件是输入回车符;选项D)中for循环的初始条件ch值为输入

的字符,只有一次输入,不能统计输入的字符数,如果第一次输入的不是回车符循

环不能结束。

23、以下选项中非法的字符常量是

A、,\01夕

B>,\65,

C、、XfF

D、

标准答案:A

知识点解析:本题考查字符型常量。选项A)错误,使用了转义字符“\”,019以0

开始表示8进制,8进制数字的范围是0-7,没有9;选项B)、C)和D)正确。

24、以下定义语句中正确的是

A、charA=65+l,b=='b';

inta=b=0;

C、floata=l,*b=&a,*c=&b;

D、doublea=0.0;b=l.1;

标准答案:A

知识点解析:本题考查的是数据类型的定义并赋值,选项B)中对变量声明类型且

赋值的情况是不允许出现的,必须单独定义且赋值。选项C)中对于指针变量c的

赋值须为同型指针,而&b为二级指针。选项D)中C语言允许在一个类型说明符后

说明多个相同类型的变量,各变量之间要用逗号(,)隔开,而不是用分号(;)隔

开:在计算机存储字符时将字符相应的ASCII码以其对应的二进制进行存放.选

项A)中的定义是合法的。

25、以下不合法的字符常量是

A、

B、、\'

C、⑻

D、,\xcc,

标准答案:c

知识点。析:在C语言中,一个字符常量代表ASCH字符集中的一个字符,在程

序中用单引号把一个字符括起来用为字符常量。转义字符常量也是必须括在一对单

引号内,以一个反斜线开头后跟一个特定的字符,用来代表某一个特定的ASCH

字符。在选项C)中,101+是用八进制数来代表一个字符常量,所以其中的数字

只能小于8,并不包括8。

26、有以下程序,已知字母A的ASCH码为65,程序运行后的输出结果是

main(){charcl,c2:cl='A'+'8'-'4';c2='A'+'8'-'5';printf(n%c,%d\n",cl,

c2);|

A、D6,9

B、E,68

C、E,D

D、输出无定值

标准答案:B

知识点解析:字符变量cl的ASCII值等于69,而字符变量c2的ASCII值等于

68,当分别以字符和整型输出cl和c2的ASCII码/直时,其结果为E,68。

27、以下不能输出字符A的语句是(注:字符A的ASCII码值为65,字符a的

ASCII吗值为97)

A、printf(r%c\n",'a'-32)

B、printfC%d\n",'A');

C、printfC%c\n",65);

D、printf(u%c\n",'B'-l);

标准答案:B

知识点解析:在选项B)的输出函数中,大写字符W以整型数据的形式输出。

28、以下选项中不能作为C语言合法常量的是

A、贯

B、0.le+6

C、\a

Aoir

标准答案:A

知识点解析:常量指的是在程序的运行过程中,其值不能被改变的量。在C语言

中,包括整型常量、实型常量、字符常量和字符串常量等类型°选项R)O.1e+6

是用指数形式表示的实型常量。在C语言中,用以“e”或“E”后一个整数来表示以

10为底的基数。以用这种形式表示实型常量时要注意C语言的语法规定,字母e

或E之前必须要有数字,且e或E后面的指数必须为整数,并且在字母e或E的前

后以及数字之间不得插入空格。选项C)中用双引号括起来表示的字符串“\aL选

项D)中,\011,表示用单引号括起来的转义字符八制进数Oik选项A)表示的字符

常量是非法的,在用单引号表示的字符常量中,只能包含一个字符,而选项A)中

包含两个字符。

29、有以下定义语句,编译时会出现编译错误的是

A^chara=,\n*;

B、chara="aa",;

C、chara=,a,;

D、chara=>\x2d\

标准答案:B

知识点解析:在选项B)中,由两个字符aa组成一个字符串赋给一个字符变量a时

会出错。

30、己知字符,A,的AScII代码值是65,字符变量字的值是,ASc2的值是,D"则

执行语句printf("%d,%d”,cl,c2-2);的输出结果是

A、A,68

B、A,B

C、65,66

D、65.68

标准答案:C

知识点解析:在C语言中,字符常量在内存中占一个字节,存放的是字符的ASCH

码值。所有的字符常量都作为整型量来处理。在本题中输出语句用整型格式输出字

符时,输出的是其ASCII码值。因为字符,A,和D的ASCH码值分别为65和68,

所以c2-2=68-2=66o

国家二级C语言(C语言基础知识)机

试模拟试卷第4套

一、选择题(本题共30题,每题1.0分,共30分。)

1、DOS文件系统的组织结构属于

A、星形结构

B、网形结构

C、环形结构

D、树形结构

标准答案:D

知识点解析:DOS中目录结构是层次的,由根目录到子目录形成一个树型结构。

2、计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确

的是

A、C语言程序仅可以编译执行

B、C语言程序仅可以解释执行

C、C语言程序既可以编译执行又可以解释执行

D、以上说法都不对

标准答案:A

知识点解析:C语言是编译型语言,只在编译链接后才能执行。

3、以下叙述中错误的是

A、C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文

B、用C语言编写的程序称为源程序,它以ASCH代码形式存放在一个文本文件中

C、C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令

D、C语言源程序经编译后生成后缀为.obj的目标程序

标准答案:C

知识点解析:C语言中的非执行语句例如宏定义命令,在预编译之后替换到代码

中,该命令本身也就不存在了,不会转换成二进制的机器指令。由高级语言编写的

程序称为“源程序”,把由二进制代码表示的程序称为“目标程序C语言编写的源

程序就是一ASCII的形式存放在文本文件中的。C源程序经过C编译程序编译之

后生成一个后缀为.obj的二进制文件(称为目标文件),然后由称为“连接程

序”(Link)的软件,把此.obj文件与C语言提供的各种库函数连接起来生成一个后

缀为.EXE的可执行文件。

4、下列叙述中错误的是

A、C程序可以由多个程序文件组成

B、一个C语言程序只能实现一种算法

C、C程序可以由一个或多个函数组成

D、一个C函数可以单独作为一个C程序文件存在

标准答案:B

知识点解析:算法是指为解决某个特定问题而采取的确定且有限的步骤。在C语

言中一个算法是用函数来实现的。一个C语言源程序由许多函数组成,这些函数

都是根据实际任务,确定具体的算法,由用户自己编写。C语言源程序可以放在不

同的文件中,同一个源程序中的函数也可放在不同的文件中,所以一个C语言程

序可以实现多种算法。

5、以下叙述中错误的是

A、结构化程序由顺序、分支、循环二种基本结构组成

B、C语言是一种结构化程序设计语言

C、使用三种基本结构构成的程序只能解决简单问题

D、结构化程序设计提倡模块化的设计方法

标准答案:C

知识点解析:结构化程序由顺序结构、选择结构和循环结构3种基本结构组成。己

经证明,由3种基本结构组成的算法可以解决任何复杂的问题。由3种基本结构所

构成的算法称为结构化算法;由3种基本结构所构成的程序称为结构化程序。

6、以下叙述中错误的是

A、算法正确的程序最终一定会结束

B、算法正确的程序可以有零个输入

C、算法正确的程序可以有零个输出

D、算法正确的程序对于相同的输入一定有相同的结果

标准答案:C

知识点解析:算法是指为解决某个特定问题而采取的确定且有限的步骤。一个算法

应该具有5个特征:①有穷性。一个算法包含的操作步骤应该是有限的。也就是

说,在执行若干个操作步骤之后,算法将结束,而且每一步都在合理的时间内完

成。②确定性。算法中的每一条指令必须有确切的含义,不能有二义性,对于相

同的输入必能得出相同的执行结果。③可行性。算法中指定的操作,都可以通过

已经验证过可以实现的基本运算执行有限次后实现。④有零个或多个输入。在计

算机上实现的算法是用来处理数据对象的,在大多数情况下这些对象需要通过输入

来得到。⑤有一个或多个输出。算法的目的是为了求“解”,这些“解”只有通过输出

才能得到。

7、以下选项中关于程序模块化的叙述错误的是

A、把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块

B、可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序

C、把程序分成若干相对独立的模块,可便于编码和调试

D、可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序

标准答案:B

知识点解析:如果应用结构化程序设计方法设计程序,那么可采用自顶向下,逐步

细化的设计方法把若干独立模块组装成所要求的程序。

8、C语言源程序名的后缀是

A、.exe

B、.obj

C、.c

D、.cp

标准答案:C

知识点解析:由c语言构成的指令序列称为c源程序,源程序文件的后缀为

c”。源程序经过C编译程序编译生成后缀为obj”的二进制文件(称为目标文

件),然后由称为“连接程序”(Link)的软件把目标文件与「语言提供的各种库函数连

接起来,生成后缀为“•exe”的可执行文件。

9、关于算法,以下叙述中错误的是

A、同一个算法对于相同的输入必能得出相同的结果

B、一个算法对于某个输入的循环次数是可以事先估计出来的

C、某个算法可能会没有输入

D、任何算法都能转换成计算机高级语言的程序,并在有限时间内运行完毕

标准答案:D

知识点解析:算法和程序不同,算法满足以下特性:算法有5个特性,即有穷性、

确定性、可行性、有零个或多个输入以及有一个或多个输出。算法的确定性是指算

法中的每一个步骤都必

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论