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

上传人:b****2 文档编号:2378283 上传时间:2022-10-29 格式:DOCX 页数:18 大小:38.56KB
下载 相关 举报
全国计算机等级考试二级C语言真题库之选择题18.docx_第1页
第1页 / 共18页
全国计算机等级考试二级C语言真题库之选择题18.docx_第2页
第2页 / 共18页
全国计算机等级考试二级C语言真题库之选择题18.docx_第3页
第3页 / 共18页
全国计算机等级考试二级C语言真题库之选择题18.docx_第4页
第4页 / 共18页
全国计算机等级考试二级C语言真题库之选择题18.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

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

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

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

全国计算机等级考试二级C语言真题库之选择题18

全国计算机等级考试等级考试真题库之选择题(18)

1.下列叙述中正确的是

A)算法的效率只与问题的规模有关,而与数据的存储结构无关

B)算法的时间复杂度是指执行算法所需要的计算工作量

C)数据的逻辑结构与存储结构是一一对应的

D)算法的时间复杂度与空间复杂度一定相关

参考答案:

B

【解析】算法的效率与问题的规模和数据的存储结构都有关,A错误。

算法的时间复杂度,是指执行算法所需要的计算工作量,B正确。

由于数据元素在计算机存储空间中的位置关系可能与逻辑关系不同,因此数据的逻辑结构和存储结构不是一一对应的,C错误。

算法的时间复杂度和空间复杂度没有直接的联系,D错误。

2.下列叙述中正确的是

A)线性表链式存储结构的存储空间一般要少于顺序存储结构

B)线性表链式存储结构与顺序存储结构的存储空间都是连续的

C)线性表链式存储结构的存储空间可以是连续的,也可以是不连续的

D)以上说法均错误

参考答案:

C

【解析】线性表的顺序存储结构具备如下两个基本特征:

(1)线性表中的所有元素所占的存储空间是连续的;

(2)线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。

用一组任意的存储单元来依次存放线性表的结点,这组存储单元既可以是连续的,也可以是不连续的,甚至是零散分布在内存中的任意位置上的。

因此C正确。

3.某二叉树共有12个结点,其中叶子结点只有1个。

则该二叉树的深度为(根结点在第1层)

A)3

B)6

C)8

D)12

参考答案:

D

【解析】二叉树中,度为0的节点数等于度为2的节点数加1,即n2=n0-1,叶子节点即度为0,n0=1,则n2=0,总节点数为12=n0+n1+n2=1+n1+0,则度为1的节点数n1=11,故深度为12,选D。

4.对长度为n的线性表作快速排序,在最坏情况下,比较次数为

A)n

B)n-1

C)n(n-1)

D)n(n-1)/2

参考答案:

D

【解析】快速排序最坏情况就是每次选的基准数都和其他数做过比较,共需比较(n-1)+(n-2)+…+1=n(n-1)/2,选D。

5.结构化程序设计中,下面对goto语句使用描述正确的是

A)禁止使用goto语句

B)使用goto语句程序效率高

C)应避免滥用goto语句

D)以上说法均错误

参考答案:

C

【解析】结构化程序设计中,要注意尽量避免goto语句的使用,故选C。

6.下面不属于软件测试实施步骤的是

A)集成测试

B)回归测试

C)确认测试

D)单元测试

参考答案:

B

【解析】软件测试主要包括单元测试、集成测试、确认测试和系统测试。

7.下面不属于软件需求分析阶段主要工作的是

A)需求变更申请

B)需求分析

C)需求评审

D)需求获取

参考答案:

A

【解析】需求分析阶段的工作可概括为4个方面:

①需求获取。

②需求分析。

③编写需求规格说明书。

④需求审评。

8.一般情况下,当对关系R和S进行自然连接时,要求R和S含有一个或者多个共有的

A)记录

B)行

C)属性

D)元组

参考答案:

C

【解析】自然连接是一种特殊的等值连接,它满足下面的条件:

①两关系间有公共域;②通过公共域的等值进行连接,选C。

9.

A)选择

B)差

C)交

D)并

参考答案:

B

【解析】关系T是关系R的一部分,并且是关系R去掉R和S相同的元素,符合差操作。

10.有表示公司和职员及工作的三张表,职员可在多家公司兼职。

其中公司C(公司号,公司名,地址,注册资本,法人代表,员工数),职员S(职员号,姓名,性别,年龄,学历),工作W(公司号,职员号,工资),则表W的键(码)为

A)公司号,职员号

B)职员号,工资

C)职员号

D)公司号,职员号,工资

参考答案:

A

【解析】由于职员可以再多加公司兼职,表W的键(码)应为公司关系和职员关系的主码,即公司号和职员号。

11.以下叙述中正确的是

A)每个后缀为.C的C语言源程序都可以单独进行编译

B)每个后缀为.C的C语言源程序都应该包含一个main函数

C)在C语言程序中,main函数必须放在其他函数的最前面

D)在C语言程序中,只有main函数才可单独进行编译

参考答案:

A

【解析】一个普通的C函数可以单独作为一个C的程序文件存在被包含到其他程序中,每个后缀为.C的C语言源程序都可以单独进行编译,所以B、D错误。main函数可以放在程序的开始,中间,最后,所以C错误。

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

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

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

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

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

参考答案:

B

【解析】关键字不可用作C语言的标识符,所以A错误。在标识符中大写字母与小写字母作为不同字符处理,所以C错误。标识符由下划线、字母、数字组成,且必须以下划线和字母开始,所以D错误。

13.以下选项中合法的常量是

A)999

B)2.7e

C)0Xab

D)123E0.2

参考答案:

C

【解析】A选项中含有非法的空格,所以错误。C语言中十六进制常量以0x开头,所以C正确。实型常量中e的前后必须均有数据,且其后必须为整数,所以B和D错误。

14.C语言主要是借助以下哪种手段来实现程序模块化

A)定义函数

B)定义常量和外部变量

C)使用丰富的数据类型

D)使用三种基本结构语句

参考答案:

A

【解析】C语言程序的模块化通过函数来体现,所以选择A。

15.以下叙述中错误的是

A)数值型常量有正值和负值的区分

B)常量可以用一个符号名来代表

C)定义符号常量必须用类型名来设定常量的类型

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

参考答案:

C

【解析】数值型常量有整型常量,实型常量,不论是整型常量还是实型常量都有正值和负值之分,所以A正确。在C语言的预编译处理中,可以用符号名代表一个常量,定义时不必指定常量类型,所以C错误,B正确。常量的定义就是常量是在程序运行过程中值不能被改变的量,所以D正确。

16.若有定义和语句:

inta,b;

scanf("%d,%d,",&a,&b);

以下选项中的输入数据,不能把值3赋给变量a、5赋给变量b的是

A)3,5,4

B)3,5

C)3,5,

D)3,5

参考答案:

D

【解析】scanf()的格式控制串可以使用其他非空白字符,如本题中的逗号,但在输入时必须输入这些字符,以保证匹配。所以在3和5之间必须输入逗号,不能有其他符号,才能保证a和b的正确赋值。所以选择D。

17.C语言中char类型数据占字节数为

A)1

B)2

C)3

D)4

参考答案:

A

【解析】每个字符变量被分配一个字节的内存空间。

因此A选项正确。

18.下列关系表达式中,结果为"假"的是

A)3<=4

B)(3<4)==1

C)(3+4)>6

D)(3!

=4)>2

参考答案:

D

【解析】B选项中,关系表达式(3<4)==1即1==1,结果为真;C选项中,(3+4)>6即7>6,结果为真;A选项中,3<=4结果为真。

D选项中,(3!

=4)>2即1>2,结果为假。

因此D选项正确。

19.若以下选项中的变量a,b,y均已正确定义并赋值,则语法正确的switch语句是

A)switch(a*a+b*b)

{default:

break;

case3:

y=a+b;break;

case2:

y=a-b;break;

}

B)switch(a+b)

{case1:

case3:

y=a+b;break;

case0:

case4:

y=a-b;

}

C)switch(a+9)

{casea:

y=a-b;

caseb:

y=a+b;

}

D)switcha*b

{case10:

y=a+b;

default:

y=a-b;

}

参考答案:

A

【解析】switch语句,其一般形式为:

switch(表达式){

case常量表达式1:

语句1;

case常量表达式2:

语句2;

case常量表达式n:

语句n;

default:

语句n+1;

}

B选项中,case1和case2有错误,;C选项中,casea和caseb不正确,case后面应该跟常量表达式;D选项中,switcha*b,有误。

因此A选项正确。

20.有以下程序

#include

main()

{inta=-2,b=0;

while(a++&&++b);

printf("%d,%d\n",a,b);

}

程序运行后输出结果是

A)0,2

B)0,3

C)1,3

D)1,2

参考答案:

D

【解析】本题重点考察while语句,变量a和b分别赋初值为-2和1,while语句的语义是:

计算表达式的值,当值为真(非0)时,执行循环体语句。

a++即a参与运算后,a的值再自增1。

++b即b自增1后再参与其它运算。

当表达式的值为0时,退出循环,最后输出a和b的值为1和2。

因此D选项正确。

21.设有定义:

intx=0,*p;

紧接着的赋值语句正确的是

A)*p=NULL;

B)p=NULL;

C)p=x;

D)*p=x;

参考答案:

B

【解析】题目中定义指针变量p,指针变量的赋值只能赋予地址,决不能赋予任何其它数据,否则将引起错误。

不允许把一个数赋予指针变量,被赋值的指针变量前不能再加"*"说明符,因此B选项正确。

22.下列叙述中正确的是

A)空字符串不占用内存,其内存空间大小是0

B)两个连续的单引号('')是合法的字符常量

C)可以对字符串进行关系运算

D)两个连续的双引号("")是合法的字符串常量

参考答案:

D

【解析】字符串常量是由一对双引号括起的字符序列。

A选项描述不正确。

B选项描述的不够完善;字符常量占一个字节的内存空间。

D选项正确;字符常量是用单引号括起来的一个字符。

C语言字符串比较不能直接用关系运算符进行正确比较。

可以用字符串比较函数strcmp来实现,C选项是错误的;字符串常量占的内存字节数等于字符串中字节数加1。

因此D选项正确。

23.有以下程序

#include

main()

{chara='H';

a=(a>='A'&&a<='Z')?

(a+32):

a;

printf("%c\n",a);

}

程序运行后的输出结果是

A)H

B)h

C)A

D)a

参考答案:

B

【解析】条件运算符构成的选择结构的一般形式为:

表达式1?

表达式2:

表达式3。

其求值规则为:

如果表达式1的值为真,则以表达式2的值作为条件表达式的值,否则以表达式2的值作为整个条件表达式的值。

该题目中首先给字符变量a赋值为'H'。

语句a=(a>='A'&&a<='Z')?

(a+32):

a;即将大写字母变为小写字母。

因此B选项正确。

24.有以下程序

#include

intf(intx);

main()

{inta,b=0;

for

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

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1