全国计算机二级C选择题题库第35套

更新时间:2024-01-16 02:12:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

全国计算机二级C选择题题库第35套

1、下列叙述中正确的是

A) 程序可以作为算法的一种表达方式 B) 算法的有穷性是指算法的规模不能太大 C) 算法的复杂度用于衡量算法的控制结构 D) 算法的效率与数据的存储结构无关 参考答案:A

算法的有穷性是指操作步骤有限且能在有限时间内完成,如果一个算法执行耗费的时间太长,即使最终得出了正确结果,也是没有意义的。B选项错误。

一个算法复杂度的高低体现在运行该算法所需要的计算机资源的多少。C选项错误。 算法的效率是指算法执行的时间,算法执行时间需通过依据该算法编制的程序在计算机上运行时所消耗的时间来度量,这就与算法本身设计的优劣以及具体的编程实现有关,数据的存储结构会极大的影响程序的执行时间。D选项错误。算法在实现时需要用具体的程序设计语言来实现,所以程序可以作为实现算法的一种表达方式。故选A选项。

2、某循环队列的存储空间为Q(1:m),初始状态为front=rear=m。现经过一系列的入队操作和退队操作后,front=m-1,rear=m,则该循环队列中的元素个数为 A) m-1 B) 1 C) m D) 0

参考答案:B

循环队列长度为m,由初始状态为front=rear=m可知此时循环队列为空。入队运算时,首先队尾指针(rear)进1(即rear+1),然后在rear指针指向的位置插入新元素。特别的,当队尾指针rear=m+1时,置rear=1。退队运算时,排头指针(front)进1(即front+1),然后删除front指针指向的位置上的元素,当排头指针front=m+1时,置front=1。

从排头指针front指向的后一个位置直到队尾指针rear指向的位置之间所有的元素均为队列中的元素,则该循环队列中的元素个数为m-(m-1)=1。故选择A选项。

3、能从任意一个结点开始没有重复地扫描到所有结点的数据结构是 A) 循环链表 B) 双向链表 C) 二叉链表 D) 有序链表 参考答案:A

在单链表的第一个结点前增加一个表头结点,队头指针指向表头结点,最后一个结点的指针域的值由NULL改为指向表头结点,这样的链表称为循环链表。在循环链表中,只要指出表中任何一个结点的位置,就可以从它出发没有重复地扫描到表中其他所有的结点。

双向链表与二叉链表都可以扫描到所有结点,但是会有重复。有序链表如果是单链表的情况下,不能扫描到所有结点。故A选项正确。

4、某棵树中共有25个结点,且只有度为3的结点和叶子结点,其中叶子结点有7个,则该树中度为3的结点数为

A) 不存在这样的树 B) 7 C) 8 D) 6

参考答案:A

树是一种简单的非线性结构,直观地来看,树是以分支关系定义的层次结构。在树结构中,一个结点所拥有的后件个数称为该结点的度,所有结点中最大的度称为树的度。首先假设这样的树是存在的,由于只有度为3的结点和叶子结点,可知最后一层都为叶子结点,倒数第二层一部分结点的度为3,一部分结点为叶子结点。结点总数为25,叶子结点有7个,

4-15-1

则度为3的结点有18个,由于(3-1)/2<18<(3-1)/2可知,树共有5层,前三层有度为3的

4-14-1

结点(3-1)/2=13个,第四层有3=27个结点,其中5个是度为3的结点,22个是叶子结点,此时与题目给出的叶子结点有7个相矛盾,故不存在这样的树。故选择A选项。

5、在最坏情况下,二分查找法的时间复杂度为

A)

B) C) D)

参考答案:C

二分法查找也称拆半查找,能使用二分法查找的线性表必须满足两个条件,用顺序存储结构以及线性表有序。利用二分法查找元素X的过程如下:将X与线性表的中间项比较,如果X的值与中间项的值相等,则查找成功,结束查找;如果X小于中间项的值,则在线性表的前半部分以二分法继续查找;如果X大于中间项的值,则在线性表的后半部分以二分法继续查找。可以证明,对于长度为n的有序线性表,在最坏情况下,二分法查找需比较次,故时间复杂度为。故选择A选项。

6、某二叉树共有730个结点,其中度为1的结点有30个,则叶子结点个数为 A) 不存在这样的二叉树 B) 351 C) 1 D) 350

参考答案:A

在树结构中,一个结点所拥有的后件个数称为该结点的度,所有结点中最大的度称为树的度。对任何一棵二叉树,度为0的结点总是比度为2的结点多一个。

如果有一棵二叉树,结点总数为730,假设度为0的结点个数为n,则有n+30+n-1=730,n=350.5,由于结点个数必须是整数,所以不可能存在题目中这样的二叉树。故选A选项。

7、软件开发中需求分析的主要任务是

A) 定义和描述目标系统\做什么\B) 获取需求

C) 给出软件解决方案 D) 需求评审 参考答案:A

需求分析阶段的工作可以分为4个方面:需求获取、需求分析、编写需求规格说明书和需求评审。需求分析的任务是发现需求、求精、建模和定义需求的过程,是描述\做什么\的软件开发阶段。故选A选项。

8、软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。下面属于系统软件的是

A) 学生成绩管理系统 B) ERP系统

C) 办公自动化系统 D) UNIX系统 参考答案:D

系统软件是管理计算机的资源,提高计算机的使用效率,为用户提供各种服务的软件。应用软件是为了应用于特定的领域而开发的软件。

选项A属于系统软件,选项B、C、D属于应用软件。故选D选项。

9、医生可以为病人开不同的药,而同一种药也可由不同医生开给病人,则实体医生和实体药之间的联系是 A) 多对多 B) 一对一 C) 多对一 D) 一对多

参考答案:A

实体集之间通过联系来建立联接关系分为三类:一对一联系(1:1)、一对多联系(1:m)、多对多联系(m:n)。

由于医生可以为病人开不同的药,而同一种药也可由不同医生开给病人,所以两者的联系属于多对多。故选A选项。

10、学生选课成绩表的关系模式是SC(S#,C#,G),其中S#为学号,C#为课号,G为成绩,检索课号为2且成绩及格的学生学号的表达式为

A)

B)

C)

D)

参考答案:A

表示针对属性进行的投影运算,表示针对元组进行的选择运算,''表示交运算,''表示并运算。

要求检索结果为关系模式中的学生学号S#,首先在几种属性中选择学生学号,其次要在其中选择满足条件的元组,条件是课号为2且成绩及格,即为\,故完整表达式为。本题选A选项。

11、若想定义int型变量a,b,c,d并都赋值为1,以下写法中错误的是 A) int a=b=c=d=1;

B) int a=1, b=1, c=1, d=1; C) int a,b,c,d; a=b=c=d=1; D) int a,b,c,d=1; a=b=c=d; 参考答案:A

C语言赋值运算符的结合方向是从右向左,使用的变量必须都是已经定义了的,int

a=b=c=d=1; 本条语句首先执行赋值运算d=1,由于b并未定义,故编译不通过,提示没有定义标识符b、c、d,故A项错误。答案为A选项。

12、若有定义:char c; double d; 程序运行时输入: 1 2<回车>,能把字符1输入给变量c、数值2输入给变量d的输入语句是 A) scanf(\B) scanf(\C) scanf(\D) scanf(\ 参考答案:B

%lf是针对double的,如果仅用%f,输入的数据可能没有被完全接收,数据的精度可能不足,选项C,D错误。%f主要针对float类型的变量的输入。%d主要针对整型数据的输入, %c主要针对字符类型的数据的输入,选项A错误。故答案为B选项。

13、输出语句:printf(\的输出结果是 A) 20 B) 22 C) 022 D) 021

参考答案:A

printf(\中,11为十进制,011为八进制形式,打印格式%d表示十进制格式

10

输出,,因此,先将八进制数转化为十进制,011(8)=8*1+1*8=9,相当于printf(\,故答案为20,A选项正确。

14、以下叙述正确的是

A) 有些算法不能用三种基本结构来表达 B) C语言程序不编译也能直接运行

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

D) 如果C语言程序实现的算法很简单,则计算机不进行任何代码转换就能执行程序 参考答案:C

算法的三种基本结构可以表达任何算法,只是不同的实现复杂度不相同。因此选项A错误。C语言是编译型语言,程序必须先编译、链接才能运行,因此选项B错误。C语言是高级程序语言,计算机不能识别除了机器语言以外的任何语言,因此C程序代码转换为机器语言才能在计算机上运行。因此选项D错误。答案为C选项。

15、若有定义: double x;,则表达式:x=0,x+10,x++ 的值是 A) 11.0 B) 10.0 C) 0.0 D) 1.0

参考答案:C

C 语言中,逗号运算符可以把两个以上(包含两个)的表达式连接成一个表达式。逗号运算符的优先级是所有运算符中级别最低的,逗号运算符保证左边的子表达式运算结束后才进行右边的子表达式的运算。也就是说,逗号运算符是一个序列点,其左边所有副作用都结束后,才对其右边的子表达式进行运算,并以最右边表达式值作为整个逗号表达式的值。1、后置自增运算:k++表示先运算,后自加。 2、前置自增运算:++k表示先自加,后运算。因此,表达式x=0,x+10,x++的计算过程为首先赋值x=0,然后将x加10,但是并不对x进行赋值,最后计算x++,并,根据后置自增运算的计算结果,即为x=0.0。,故答案为C选项。

16、有以下程序

#include main()

{ int x=1, y=0, a=0, b=0; switch ( x ) { case 1:

switch(y)

{ case 0: a++; break; case 1: b++; break; }

case 2: a++; b++; break; case 3: a++; b++; }

printf(\ }

程序的运行结果是 A) a=2,b=2 B) a=2,b=1 C) a=1,b=1 D) a=1,b=0 参考答案:B

C语言还提供了一种用于多分支选择的switch语句,计算表达式的值。 并逐个与其后的

本文来源:https://www.bwwdw.com/article/raho.html

Top