全国计算机等级考试二级C语言真题库之选择题Word格式.docx

上传人:b****3 文档编号:7019958 上传时间:2023-05-07 格式:DOCX 页数:17 大小:26.99KB
下载 相关 举报
全国计算机等级考试二级C语言真题库之选择题Word格式.docx_第1页
第1页 / 共17页
全国计算机等级考试二级C语言真题库之选择题Word格式.docx_第2页
第2页 / 共17页
全国计算机等级考试二级C语言真题库之选择题Word格式.docx_第3页
第3页 / 共17页
全国计算机等级考试二级C语言真题库之选择题Word格式.docx_第4页
第4页 / 共17页
全国计算机等级考试二级C语言真题库之选择题Word格式.docx_第5页
第5页 / 共17页
全国计算机等级考试二级C语言真题库之选择题Word格式.docx_第6页
第6页 / 共17页
全国计算机等级考试二级C语言真题库之选择题Word格式.docx_第7页
第7页 / 共17页
全国计算机等级考试二级C语言真题库之选择题Word格式.docx_第8页
第8页 / 共17页
全国计算机等级考试二级C语言真题库之选择题Word格式.docx_第9页
第9页 / 共17页
全国计算机等级考试二级C语言真题库之选择题Word格式.docx_第10页
第10页 / 共17页
全国计算机等级考试二级C语言真题库之选择题Word格式.docx_第11页
第11页 / 共17页
全国计算机等级考试二级C语言真题库之选择题Word格式.docx_第12页
第12页 / 共17页
全国计算机等级考试二级C语言真题库之选择题Word格式.docx_第13页
第13页 / 共17页
全国计算机等级考试二级C语言真题库之选择题Word格式.docx_第14页
第14页 / 共17页
全国计算机等级考试二级C语言真题库之选择题Word格式.docx_第15页
第15页 / 共17页
全国计算机等级考试二级C语言真题库之选择题Word格式.docx_第16页
第16页 / 共17页
全国计算机等级考试二级C语言真题库之选择题Word格式.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

全国计算机等级考试二级C语言真题库之选择题Word格式.docx

《全国计算机等级考试二级C语言真题库之选择题Word格式.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级C语言真题库之选择题Word格式.docx(17页珍藏版)》请在冰点文库上搜索。

全国计算机等级考试二级C语言真题库之选择题Word格式.docx

4.在关系数据库中,用来表示实体间联系的是

A)属性

B)二维表

C)网状结构

D)树状结构

B

【解析】关系模型实体间的联系采用二维表来表示,简称表。

选项C为网状模型实体间的联系,选项D为层次模型实体间的联系,选项A属性刻画了实体

5.公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员。

则实体部门和职员间的联系是

A)1:

1联系

B)m:

C)1:

m联系

D)m:

n联系

【解析】两个实体集间的联系实际上是实体集间的函数关系,主要有一对一联系(1:

1)、一对多联系(1:

m)、多对一联系(m:

1)、多对多联系(m:

n)。

对于每一个实体部门,都有多名职员,则其对应的联系为一对多联系(1:

m),答案选C。

6.

A)选择

B)投影

C)自然连接

D)并

【解析】由关系R到关系S为一元运算,排除C和D。

关系S是关系R的一部分,是通过选择之后的结果,因此选A。

7.数据字典(DD)所定义的对象都包含于

A)数据流图(DFD图)

B)程序流程图

C)软件结构图

D)方框图

【解析】在数据流图中,对所有元素都进行了命名,所有名字的定义集中起来就构成了数据字典。

因此选A,而B,C,D都不符合。

8.软件需求规格说明书的作用不包括

A)软件验收的依据

B)用户与开发人员对软件要做什么的共同理解

C)软件设计的依据

D)软件可行性研究的依据

【解析】软件需求规格说明书是需求分析阶段的最后成果,是软件开发的重要文档之一。

软件需求规格说明书有以下几个方面的作用。

①便于用户、开发人员进行理解和交流,B正确;

②反映出用户问题的结构,可以作为软件开发工作的基础和依据,C正确;

③作为确认测试和验收的依据,A正确。

9.下面属于黑盒测试方法的是

A)语句覆盖

B)逻辑覆盖

C)边界值分析

D)路径覆盖

【解析】黑盒测试不关心程序内部的逻辑,只是根据程序的功能说明来设计测试用例。

在使用黑盒测试法时,手头只需要有程序功能说明就可以了。

黑盒测试法分等价类划分法、边界值分析法和错误推测法,答案为C。

而A、B、D均为白盒测试方法。

10.下面不属于软件设计阶段任务的是

A)软件总体设计

B)算法设计

C)制定软件确认测试计划

D)数据库设计

【解析】从技术观点上看,软件设计包括软件结构设计、数据设计、接口设计、过程设计。

所以A、B、D正确,C为软件测试阶段的任务。

11.以下叙述中正确的是

A)N-S流程图只能描述简单的顺序结构的程序

B)程序的算法只能使用流程图来描述

C)结构化程序的三种基本结构是循环结构、选择结构、顺序结构

D)计算机可以直接处理C语言程序,不必进行任何转换

【解析】N-S流程图是可以描述循环结构、选择结构、顺序结构等多种结构的程序,所以A选项错误。程序的算法可以用流程图、伪代码、N-S结构图等方法表示,所以B选项错误。计算机只能处理二进制表示的目标程序,不能直接执行由C语言编写的源程序,所以D选项错误。

12.以下叙述中正确的是

A)书写源程序时,必须注意缩进格式,否则程序会有编译错误

B)程序的主函数名除main外,也可以使用Main或_main

C)程序可以包含多个主函数,但总是从第一个主函数处开始执行

D)在C程序中,模块化主要是通过函数来实现的

解析】C语言的源程序中对缩进没有要求,所以A选项错误。C语言中区分大小写,main函数不能写成Main或_main,所以B选项错误。一个C程序有且只有一个主函数,所以C选项错误。

13.C语言中double类型数据占字节数为

A)4

B)8

C)12

D)16

【解析】double型数据在内存中占8个字节,float型数据占4个字节,int型数据占2个字节,char型数据占1个字节。所以选择B。

14.以下叙述中正确的是

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

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

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

D)用户自定义的标识符必须"

见名知义"

,如果随意定义,则会出编译错误

解析】C语言中的关键字即不能做变量名也不能做用户函数名,所以A错误。标识符的命名规则,即由下划线字母数字组成,且必须以下划线和字母开始,也不能和关键字一致。不同C语言规定标识符的有效长度可能会不同,但没有限制最大长度,所以B错误。用户定义的标识符只要满足标识符命名规则没有特殊要求,不必一定"

所以D错误。

15.以下叙述中正确的是

A)由printf输出的数据都隐含左对齐

B)scanf和printf是C语言提供的输入和输出语句

C)赋值语句是一种执行语句,必须放在函数的可执行部分

D)由printf输出的数据的实际精度是由格式控制中的域宽和小数的域宽来完全决定的

【解析】scanf和printf是C语言提供的输入输出函数,所以B错误。由printf输出的数据都隐含右对齐,所以A错误。Printf输出数据所占的宽度由系统决定,所以D错误。

16.以下叙述中正确的是

A)复合语句在语法上包含多条语句,其中不能定义局部变量

B)花括号对{}只能用来表示函数的开头和结尾,不能用于其他目的

C)空语句就是指程序中的空行

D)当用scanf从键盘输入数据时,每行数据在没按下回车键(Enter键)前,可以任意修改

【解析】复合语句可以包含多条语句,在其中可以定义局部变量,所以A错误。花括号对{}不仅用来表示函数的开头和结尾,也可以用于表示复合语句,所以B错误。C语言中的语句必须以分号"

;

"

结束,所以空语句表示为"

不是空行,所以C错误。

17.以下叙述中正确的是

A)在C语言中,逻辑真值和假值分别对应1和0

B)关系运算符两边的运算对象可以是C语言中任意合法的表达式

C)对于浮点变量x和y,表达式:

x==y是非法的,会出编译错误

D)分支结构是根据算术表达式的结果来判断流程走向的

【解析】A选项中,在C语言中,逻辑真值对应非0;

C选项中,表达式:

x==y是合法的;

D选项中,分支结构的流程走向是根据表达式的值,并不仅仅是算数表达式的值。

因此B选项正确。

18.以下叙述中正确的是

A)对于逻辑表达式:

a++||b++,设a的值为1,则求解表达式的值后,b的值会发生改变

B)对于逻辑表达式:

a++&

&

b++,设a的值为0,则求解表达式的值后,b的值会发生改变

C)else不是一条独立的语句,它只是if语句的一部分

D)关系运算符的结果有三种:

0,1,-1

【解析】B选项和A选项中,对于逻辑表达式,其中b的值不会因为表达式的结果发生改变;

D选项中,关系运算符的结果有"

真"

和"

假"

两种。

因此C选项正确。

19.以下叙述中正确的是

A)continue语句使得整个循环终止

B)break语句不能用于提前结束for语句的本层循环

C)使用break语句可以使流程跳出switch语句体

D)在for语句中,continue与break的效果是一样的,可以互换

【解析】break语句通常用在循环语句和开关语句中。

当break用于开关语句switch中时,可使程序跳出switch而执行switch以后的语句;

当break语句用于do-while、for、while循环语句中时,可使程序终止循环而执行循环后面的语句,即满足条件时便跳出循环。

continue语句的作用是跳过循环体中剩余的语句而强行执行下一次循环。

A、B和D三个选项中均有错误。

20.以下叙述中正确的是

A)循环发生嵌套时,最多只能两层

B)三种循环for,while,do-while可以互相嵌套

C)循环嵌套时,如果不进行缩进形式书写代码,则会有编译错误

D)for语句的圆括号中的表达式不能都省略掉

【解析】A选项中,循环发生嵌套时,没有规定层数;

C选项中,循环嵌套时,书写代码时没有要求必须缩进;

D选项中,for语句的圆括号中的表达式都可以省略掉。

21.下面选项中合法的字符常量是

A)"

X"

B)'

X'

C)'

abc'

D)'

\'

【解析】字符常量是用单引号括起来的一个字符。

A选项中,使用双引号,所以是错误的;

C选项中,'

是字符串,字符常量只能是单个字符,不能是字符串;

D选项中,以反斜线"

\"

开头的是转义字符。

22.以下叙述中正确的是

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

B)字符常量在内存中占2个字节

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

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

【解析】B选项中,字符常量在内存中占1个字节;

A选项中,转义字符是以反斜线"

开头,后跟一个或几个字符;

D选项中,字符常量可以进行关系运算,不能参与数值运算。

23.以下叙述中正确的是

A)用户自己定义的函数只能调用库函数

B)实用的C语言源程序总是由一个或多个函数组成

C)不同函数的形式参数不能使用相同名称的标识符

D)在C语言的函数内部,可以定义局部嵌套函数

【解析】A选项中,"

用户自己定义的函数只能调用库函数"

描述是不正确的,也可以调用自定义函数;

C选项中,对于不同函数的形式参数可以使用相同名称的标识符;

D选项中,关于函数的定义不可以嵌套,但函数的调用可以嵌套。

24.以下叙述中正确的是

A)int*p1;

int**p2;

int*p3;

都是合法的定义指针变量的语句

B)指针变量只能通过求地址运算符(&

)来获得地址值

C)语句p=NULL;

与p=\0;

是等价的语句

D)语句p=NULL;

执行后,指针p指向地址为0的存储单元

【解析】B选项描述不正确,指针变量可以通过求地址运算符(&

)来获得地址值,可以通过指针变量获得地址值,还可以通过标准函数获得地址值;

C选项中,p=NULL;

和p=0;

或p='

\0'

等价;

D选项中,语句p=NULL;

执行后,指针p并不是指向地址为0的存储单元,而是具有一个确定的值-"

空"

因此A选项正确。

25.以下叙述中正确的是

A)即使不进行强制类型转换,在进行指针赋值运算时,指针变量的基类型也可以不同

B)如果企图通过一个空指针来访问一个存储单元,将会得到一个出错信息

C)设变量p是一个指针变量,则语句p=0;

是非法的,应该使用p=NULL;

D)指针变量之间不能用关系运算符进行比较

【解析】A选项描述不正确,指针变量的赋值只能赋予地址,决不能赋予任何其它数据,否则将引起错误;

是等价的;

D选项中,指向同一数组的两指针变量进行关系运算可表示它们所值数组元素之间的关系。

26.以下叙述中正确的是

A)一条语句只能定义一个数组

B)每个数组包含一组具有同一类型的变量,这些变量在内存中占有连续的存储单元

C)数组说明符的一对方括号中只能使用整型常量,而不能使用表达式

D)在引用数组元素时,下标表达式可以使用浮点数

【解析】A选项中,一条语句只能定义一个数组是不准确的,可以通过一条语句定义多个数组;

C选项中,数组说明符的一对方括号中可以是整型常量,可以是整型常量表达式;

D选项中,在引用数组元素时,下标表达式必须是整型的。

 

27.以下叙述中正确的是

A)数组下标的下限是1

B)数组下标的下限由数组中第一个非零元素的位置决定

C)数组下标的下限由数组中第一个被赋值元素的位置决定

D)charc1,c2,*c3,c4[40];

是合法的变量定义语句

【解析】数组下标的下限是0。

因此D选项正确。

28.以下叙述中正确的是

A)语句inta[8]={0};

是合法的

B)语句inta[]={0};

是不合法的,遗漏了数组的大小

C)语句chara[2]={"

A"

"

B"

};

是合法的,定义了一个包含两个字符的数组

D)语句chara[3];

a="

AB"

是合法的,因为数组有三个字符空间的容量,可以保存两个字符

【解析】B选项中,如给全部元素赋值,则在数组说明中,可以不给出数组元素的个数;

C选项中,chara[2]={"

不合法,应为chara[2]={'

A'

'

B'

D选项中,用字符串方式赋值比用字符逐个赋值要多占1个字节,在该选项中应为3个字节。

29.下面选项中的程序段,没有编译错误的是

A)char*sp,s[10];

sp="

Hello"

B)char*sp,s[10];

s="

C)charstr1[10]="

computer"

str2[10];

str2=str1;

D)charmark[];

mark="

PROGRAM"

【解析】本题考查字符数组的初始化以及指向字符串的指针,B选项不能直接将字符串赋值给数组名,C选项不能将两个字符数组直接互相赋值,D选项中不能这样定义charmark[],必须指定长度或者直接初始化。

30.以下叙述中正确的是

A)字符串常量"

str1"

的类型是:

字符串数据类型

B)有定义语句:

charstr1[]="

,数组str1将包含4个元素

C)下面的语句用赋初值方式来定义字符串,其中,'

是必须的

charstr1[]={'

s'

t'

r'

1'

D)字符数组的每个元素可存放一个字符,并且最后一个元素必须是'

字符

【解析】本题考查字符数组的相关操作,B选项中数组str1包含了5个元素,其中有结尾符,A选项中str1的类型不是字符串类型,字符数组的最后一个元素可以不是'

31.以下叙述中正确的是

A)字符串数组,是指数组中的每个元素都是一个存放字符串的一维数组

B)charca[3][5]={"

BB"

CCC"

是不合语法的

C)charca[][5]={"

D)char*ca[3]={"

【解析】本题考查字符串数组的相关知识,选项B、C、D都是合语法的。

32.以下叙述中正确的是

A)两个字符串可以用关系运算符进行大小比较

B)函数调用strlen(s);

会返回字符串s实际占用内存的大小(以字节为单位)

C)C语言本身没有提供对字符串进行整体操作的运算符

D)当拼接两个字符串时,结果字符串占用的内存空间是两个原串占用空间的和

【解析】本题考查字符串处理函数strlen、strcat、strcmp。

B选项中strlen返回的是字符串s实际占用内存大小加上结尾符,A选项中不能用关系运算符进行大小比较,可以使用strcmp。

D选项当使用连接函数strcat时,内存空间会减少一个字符位置。

33.以下叙述中正确的是

A)如果函数带有参数,就不能调用自己

B)所有函数均不能接受函数名作为实参传入

C)函数体中的语句不能出现对自己的调用

D)函数名代表该函数的入口地址

【解析】本题考查函数调用相关知识,B选项中函数可以接受函数名作为实参传入,引用函数名也是指针,C、A选项是错误的,因为递归函数就能调用自己。

34.以下叙述中正确的是

A)局部变量不能被说明为static

B)只有全局变量才有自己的作用域,函数中的局部变量没有作用域

C)只有在函数内部定义的变量才是局部变量

D)只要是用户定义的标识符,都有一个有效的作用域

【解析】本题考查局部变量和全局变量作用域,B选项中局部变量也有作用域,C选项中,函数内部定义的也可能是全局变量,A选项错误,因为可以定义个静态局部变量。

35.下面选项中关于编译预处理的叙述正确的是

A)预处理命令行必须使用分号结尾

B)凡是以#号开头的行,都被称为编译预处理命令行

C)预处理命令行不能出现在程序的最后一行

D)预处理命令行的作用域是到最近的函数结束处

【解析】本题考查预编译的预编译处理命令行,预处理命令行不能以分号结尾,所以A选项错误,预处理命令行可以出现在程序的最后一行,预处理命令行作用域是整个文件

36.以下叙述中正确的是

A)使用typedef说明新类型名时,其格式是:

typedef新类型名原类型名;

B)在程序中,允许用typedef来说明一种新的类型名

C)使用typedef说明新类型名时,后面不能加分号

D)在使用typedef改变原类型的名称后,只能使用新的类型名

【解析】本题考查typedef的使用方法,typedef对已存在的类型使用一个新的名字,选项A总新类型名应该在原类型名之后,C选项中后面要加分号,D选项中可以使用原类型名。

37.以下叙述中正确的是

A)结构体类型中各个成分的类型必须是一致的

B)结构体类型中的成分只能是C语言中预先定义的基本数据类型

C)在定义结构体类型时,编译程序就为它分配了内存空间

D)一个结构体类型可以由多个称为成员(或域)的成分组成

【解析】本题考查结构体类型,结构体类型中的成分可以是结构体,所以B选项错误,定义结构体时编译程序并不会给它分配内存空间,所以C选项错误,结构体中各个成分的类型可以是不一样的,所以A选项错误。

38.以下叙述中正确的是

A)使用typedef定义新类型名后,新类型名与原类型名实际上是等价的

B)结构体类型中的各个成分均不能是数组或指针

C)结构体类型的变量,不能在声明结构体类型组成时一起定义

D)元素为结构体类型的数组,只能在声明过结构体类型之后,单独进行定义

【解析】本题考查typedef的使用方法,typedef对已存在的类型使用一个新的名字,结构体类型中的成分可以是数组和指针,所以B选项错误,结构体类型的变量可以在声明结构体的时候一起定义,C选项错误,D选项中可以一起定义。

39.下面选项中关于位运算的叙述正确的是

A)位运算的对象只能是整型或字符型数据

B)位运算符都需要两个操作数

C)左移运算的结果总是原操作数据2倍

D)右移运算时,高位总是补0

【解析】本题考查位运算。

按位取反只需要一个操作数,所以B选项错误,左移一位是原操作数的2倍,其他情况不是,比如左移两位就是原操作数的4倍,所以C选项错误,右移运算时,高位在某些情况下不是补0。

40.下面选项中关于"

文件指针"

概念的叙述正确的是

A)文件指针是程序中用FILE定义的指针变量

B)文件指针就是文件位置指针,表示当前读写数据的位置

C)文件指针指向文件在计算机中的存储位置

D)把文件指针传给fscanf函数,就可以向文本文件中写入任意的字符

【解析】在C语言中用一个指针变量指向一个文件,这个指针称为文件指针。

通过文件指针就可对它所指的文件进行各种操作。

文件指针不是文件位置指针,所以BC选项错误,D选项中不可以写入任意的字符。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2