全国计算机二级C语言 - 公共基础120题文库

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

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

全国计算机二级C语言_公共基础120题文库.txt和英俊的男人握握手,和深刻的男人谈谈心,和成功的男人多交流,和普通的男人过日子。公共基础知识120题详解篇 (1) 下面叙述正确的是______。

A. 算法的执行效率与数据的存储结构无关

B. 算法的空间复杂度是指算法程序中指令(或语句)的条数 C. 算法的有穷性是指算法必须能在执行有限个步骤之后终止 D. 以上三种描述都不对 (1) [答案]C

[考点]程序设计基础 [评析]

时间复杂度:在运行算法时所耗费的时间为f(n)(即 n的函数)。 空间复杂度:实现算法所占用的空间为g(n)(也为n的函数)。 A应为有关。

(2) 以下数据结构中不属于线性数据结构的是______。 A. 队列 B. 线性表 C. 二叉树 D. 栈 (2) [答案]C

[考点]数据结构与算法 [评析]

一棵二叉树的一个结点下面可以有2个子结点,故不是线性结构(通俗地理解,看是否能排成条直线)。

A是先进先出的线性表;B是宏观概念,包括顺序表、链表、堆栈、队列…;D是先进后出的线性表

(3) 在一棵二叉树上第5层的结点数最多是______。 A. 8 B. 16 C. 32 D. 15 (3) [答案]B

[考点]数据结构与算法

[评析]依次从上到下,可得出: 第1层结点数为1; 第2层结点数为2*1=2; 第3层结点数为2*2=4;

第n层结点数为2的n-1次幂,如图所示

(4) 下面描述中,符合结构化程序设计风格的是______。

A. 使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑 B. 模块只有一个入口,可以有多个出口

C. 注重提高程序的执行效率 D. 不使用goto语句 (4) [答案]A

[考点]程序设计基础 [评析]

B没这规定,模块之间的可以通过多个接口来耦合 C结构化程序设计提倡程序的可读性(可理解性),超过程序执行效率的要求

D结构化程序设计限制goto语句的使用,因为goto语句的功能可以用三种基本的控制结构来代替,但也不是绝对不能用,只是限制使用(少用)。 (5) 下面概念中,不属于面向对象方法的是______。 A. 对象 B. 继承 C. 类

D. 过程调用 (5) [答案]D

[考点]软件工程基础 [评析]

面向对象=对象+类+继承+通过消息的通信 对象:一组属性及其上的操作的封装体 类:一组有相同属性和操作的对象的集合

继承:一个类为另一个类上的扩充的方式,子类继承父类,主要目的是代码复用 消息:对象间通信的手段

D是结构化程序设计或过程式(函数式)语言中的,一般的面向对象程序设计语言兼容这种方式,但不是其特征,故最佳选项为D

(6) 在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是______。 A. 可行性分析 B. 需求分析 C. 详细设计 D. 程序编码 (6) [答案]B

[考点]软件工程基础 [评析]

分析员对用户的要求作出分析,并画出数据流程图,该图通俗易懂,不涉及到如何在计算机上实现,这是需求分析阶段。 软件工程中的瀑布模型:

问题定义,可行性研究,需求分析,概要设计,详细设计,编码,测试,运行和维护 相关链点:

层次图和HIPO图是概要设计中的工具图;程序流程图、N-S图、问题分析PAD图、设计程序语言PDL是详细设计中的工具图

(7) 在软件开发中,下面任务不属于设计阶段的是______。 A. 数据结构设计

B. 给出系统模块结构 C. 定义模块算法

D. 定义需求并建立系统模型 (7) [答案]D

[考点]软件工程基础 [评析]

A、B为概要设计中的,C为详细设计中的,D为分析阶段中的 (8) 数据库系统的核心是______。 A. 数据模型

B. 数据库管理系统 C. 软件工具 D. 数据库 (8) [答案]B

[考点]数据库设计基础 [评析]

数据库管理系统DBMS是数据库系统的核心,上层与用户打交道,底层与操作系统接口 注意点:数据库系统与数据库管理系统的区别

前者指的一整套业务系统,包括用户、应用程序、DBMS及操作系统的支持 (9) 下列叙述中正确的是______。

A. 数据库是一个独立的系统,不需要操作系统的支持 B. 数据库设计是指设计数据库管理系统

C. 数据库技术的根本目标是要解决数据共享的问题

D. 数据库系统中,数据的物理结构必须与逻辑结构一致 (9) [答案]C

[考点]数据库设计基础 [评析]

晕倒,数据库管理系统是人人都可设计的吗?那SYBASE和ORACLE等不都没饭吃了?普通人的数据库设计就是在DBMS的支持下设计几张表格,命几个名而已;D也错了的,数据库具有物理独立性和逻辑独立性,比如QQ是一个完整的数据库系统,我们使用的只是客户端应用程序,其数据库在腾讯的服务器上,物理独立性呢指的是数据库的底层结构改变了,而QQ的客户端不用变,对应地,逻辑独立性是指QQ的客户端改变了,数指据库的结构不用变了,否则,这么多QQ版本,那腾讯的服务器不是乱了套?

(10) 下列模式中,能够给出数据库物理存储结构与物理存取方法的是______。 A. 内模式 B. 外模式 C. 概念模式 D. 逻辑模式 (10) [答案]A

[考点]数据库设计基础 [评析]

通过前些题可知道,数据库的物理结构最底层,即对应内模式,对应的模式映像为内模式/模式(概念模式映像),逻辑独立性则对应于模式/外模式映像 (11) 算法的时间复杂度是指______。 A. 执行算法程序所需要的时间 B. 算法程序的长度

C. 算法执行过程中所需要的基本运算次数 D. 算法程序中的指令条数 (11) [答案]C

[考点]数据结构与算法 [评析]

算法的复杂度分时间复杂度和空间复杂度。

时间复杂度:在运行算法时所耗费的时间为f(n)(即 n的函数)。 空间复杂度:实现算法所占用的空间为g(n)(也为n的函数)。 称O(f(n))和O(g(n))为该算法的复杂度。

简单的例子比如常见的顺序结构时间复杂度为O(1),1层循环里面次数为n,时间复杂度就是O(n),2层循环for i=1 to n,for j=1 to n算法时间复杂度为O(n2)(里面为n的平方),复杂度主要用于算法的效率比较与优化,比如排序,查找… (12) 下列叙述中正确的是______。 A. 线性表是线性结构 B. 栈与队列是非线性结构 C. 线性链表是非线性结构 D. 二叉树是线性结构 (12) [答案]A

[考点]数据结构与算法 [评析]

一棵二叉树的一个结点下面可以有2个子结点,故不是线性结构(通俗地理解,看是否能排成条直线)。

此题与(2)题类似

(13) 设一棵完全二叉树共有699个结点,则在该二叉树中的叶子结点数为______。 A. 349 B. 350 C. 255 D. 351 (13) [答案]B

[考点]数据结构与算法 [评析]

完全二叉树:若二叉树中最多只有最下面两层的结点的度可以小于2,并且最下面一层的结点(叶结点)都依次排列在该层最左边的位置上,这样的二叉树为完全二叉树。 比如图:

完全二叉树除叶结点层外的所有结点数(叶结点层以上所有结点数)为奇数,此题中,699

是奇数,叶结点层以上的所有结点数为保证是奇数,则叶结点数必是偶数,这样我们可以立即选出答案为B!

如果完全二叉树的叶结点都排满了,则是满二叉树,易得满二叉树的叶结点数是其以上所有层结点数+1比如图:

此题的其实是一棵满二叉树,我们根据以上性质,699+1=700,700/2=350,即叶结点数为350,叶结点层以上所有结点数为350-1=349。 (14) 结构化程序设计主要强调的是______。 A. 程序的规模 B. 程序的易读性 C. 程序的执行效率 D. 程序的可移植性 (14) [答案]B

[考点]程序设计基础 [评析]

又是结构化的问题,何谓结构化? 简单地比如: VB: If...End If C: if..{...}

Pascle: Begin ...End

我们在\结构\的中间写代码,从哪执行到哪结束我们能很快抓住! 此题中重要性为:B>C>D

(15) 在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是______。 A. 概要设计 B. 详细设计 C. 可行性分析 D. 需求分析 (15) [答案]D

[考点]软件工程基础 [评析]

题中所述为需求分析

可行性研究包括经济可行性、技术可行性、操作可行性,即以最小的代价确定系统的规模是否现实

概要设计的任务是确定软件的总体结构、子结构和模块的划分

详细设计的任务是确定每一模块的实现细节,包括数据结构、算法和接口 也许有人这么久了还不知道什么叫系统,什么叫模块。

晕倒,这里罗嗦一下,软件工程中的系统指的整个软件系统,比如QQ的所有东西,我们用的是客户端程序,实际的东西放在腾讯公司的服务器上,主要是数据库,包括在中间的传输过程,这一整个相关的东东都叫做OICQ的系统;什么叫模块,这里不单指如VB里的\标准模块\、\类模块\,也不单指一个窗体或者一个文件,宏观上讲,软件工程中把一种功能或相关功能把它做成一个模块,这个模块有可能是一个过程,有可能是一个函数…从功能角度度量模

块内的联系为模块的内聚(一般来说越强越好,不易出错);模块之间的联系为耦合,比如我们编程中常用把一实参的值赋给了函数中的形参,使函数完成某一功能,耦合度越低越好,独立性就强;

何谓独立性?比如我们二级编程都有考到全局变量、局部变量,函数中的局部变量独立性很强,函数外无法访问…

何谓变量?晕~~~~~~~如果这都要说,那你可以不用考二级了。 (16) 数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是______。 A. 控制流 B. 加工 C. 数据存储 D. 源和潭 (16) [答案]A

[考点]软件工程基础 [评析]

数据流图用于需求分析阶段,在此阶段我们只考虑大致的数据流流向,而不关心内部具体的处理,以及如何在计算机上实现,不必讨论控制流,我们只关心的:数据流、数据储存、变换/加工(相当于一个黑盒,不关心内部细节)、外部实体,数据流图通俗易懂,因为它远离了计算机,用户(无需懂编程)和软件人员都易接受。 比如一个简单的软件系统逻辑模型:

输入流和输出流即D中的源和潭。

(17) 软件需求分析阶段的工作,可以分为四个方面:需求获取、需求分析、编写需求规格说明书以及______。 A. 阶段性报告 B. 需求评审 C. 总结 D. 都不正确 (17) [答案]B

[考点]软件工程基础 [评析]

评审(复审)每阶段都有,把前三个方面说完了,还剩什么呢? 此题需要记一下,至于各名词的解释,顾名即可思义。 (18) 下述关于数据库系统的叙述中正确的是______。 A. 数据库系统减少了数据冗余 B. 数据库系统避免了一切冗余

C. 数据库系统中数据的一致性是指数据类型的一致 D. 数据库系统比文件系统能管理更多的数据 (18) [答案]A

[考点]数据库设计基础 [评析]

关于数据管理技术的三个阶段如下: 1.人工管理阶段

人工管理数据的特点是: (1)数据不保存。

(2)数据无专门软件进行管理。 (3)数据不共享。

(4)数据不具有独立性。 2.文件系统阶段

该阶段的数据管理具有如下特点: (1)数据可以长期保存。

(2)由文件系统管理数据。文件系统管理数据存在如下缺点: (1)数据共享性差,数据冗余度大。 (2)数据独立性差。 3.数据库系统阶段

与人工管理和文件系统阶段相比较,数据库系统阶段具有如下的特点: (1)数据结构化

(2)数据共享性高、冗余度小、易扩充 (3)数据独立性高

(4)统一的数据管理和控制数据库管理系统必须提供以下几个方面的数据控制和保护功能: (1)数据的安全性(security)保护。 (2)数据的完整性(integrity)控制。 (3)数据库恢复(recovery)。 (4)并发(concurrency)控制。 (5)事务(transaction)支持。

B错,为什么会有关系规范化理论,其主要目的之一是减少数据的冗余,说明数据库系统还存在一定的冗余;C错,数据完整性约束指一组完整性规则的集合,不一定是数据类型的一致性;D项也太菜鸟了吧,数据能管理存放多少数据主要看机子硬盘空间和一些相关的设置,比如在数据库管理系统中设置某个用户的空间最大为多少。 (19) 关系表中的每一横行称为一个______。 A. 元组 B. 字段 C. 属性 D. 码 (19) [答案]A

[考点]数据库设计基础 [评析]

字段:列,属性名

属性:实体的某一特性,如学生表中的学号、姓名… 码(主健):元组(实体)的惟一标识,比如学生有同名的,但学号是惟一的。 比如表:

学号 姓名 性别 院系

0221301 陈朝霞 女 油院矿机

0221310 周建峰 男 西南工业大学机电院

0221326 曾晓明 男 西南工业大学机电院 0221315 郭文广 男 西南工业大学机电院 0123456 茂叶 男 油院机电&软件

(20) 数据库设计包括两个方面的设计内容,它们是______。 A. 概念设计和逻辑设计 B. 模式设计和内模式设计 C. 内模式设计和物理设计

D. 结构特性设计和行为特性设计 (20) [答案]A

[考点]数据库设计基础 [评析]

需求分析--(需求说明)-->概念设计--(概念结构)-->逻辑结构设计--(逻辑结构)-->物理设计--(物理结构)-->

(21) 算法的空间复杂度是指______。 A. 算法程序的长度

B. 算法程序中的指令条数 C. 算法程序所占的存储空间

D. 算法执行过程中所需要的存储空间 (21) [答案]D

[考点]程序设计基础 [评析]

时间复杂度:在运行算法时所耗费的时间为f(n)(即 n的函数)。 空间复杂度:实现算法所占用的空间为g(n)(也为n的函数)。 算法为什么会占用存储存空间?

主要是内存空间,因为算法中的变量、地址等等通常保存在内存中(如果在虚存、缓存,甚至已在CPU中运行,也算占用了存储空间)。 (22) 下列关于栈的叙述中正确的是______。 A. 在栈中只能插入数据 B. 在栈中只能删除数据 C. 栈是先进先出的线性表 D. 栈是先进后出的线性表 (22) [答案]D

[考点]数据结构与算法 [评析]

此题为基本概念,必记,注意:队列是先进先出的线性表,结合起来记不要搞混。 (23) 在深度为5的满二叉树中,叶子结点的个数为______。 A. 32 B. 31 C. 16 D. 15 (23)

[答案]C

[考点]数据结构与算法 [评析]

首先搞清楚满二叉树与完全二叉树之间的区别,前面已解释过。 依次从上到下,可得出: 第1层结点数为1; 第2层结点数为2*1=2; 第3层结点数为2*2=4;

第n层结点数为2的n-1次幂,如图所示

(24) 对建立良好的程序设计风格,下面描述正确的是______。 A. 程序应简单、清晰、可读性好 B. 符号名的命名要符合语法 C. 充分考虑程序的执行效率 D. 程序的注释可有可无 (24) [答案]A

[考点]程序设计基础 [评析]

结构化程序设计中力求程序的可读性(如代码清晰,结构明了,附加注释……),故D错; 如果程序写的都是错的,谈何风格?如果符号名的命名不符合语法,编译会报错,也是很基本的错误,B错;

追求程序的可读性要高于执行效率,C错。 (25) 下面对对象概念描述错误的是______。 A. 任何对象都必须有继承性 B. 对象是属性和方法的封装体 C. 对象间的通讯靠消息传递 D. 操作是对象的动态性属性 (25) [答案]A

[考点]程序设计基础 [评析]

此题为基本概念,必记!这里举几个例子说明以助大家理解: 比如 VB:

Command按纽类是个类,在窗体上画一个名为Command1的按纽即是创建该类的一个实例,也可创建另外一个实例如Command2,他们的属性可以调置为不同的,但是都是Command类的实例。Command1,Command2都是对象,它们封装了属性和方法,都是封装体,比如Name属性,Caption属性……宏观上可说Command1的Move操作是动态属性,对象间的通读靠消息传递,比如在Command1的单击事件中写上: Picture1.Print \消息传递\

Picture1是一个图片框对象,我们还可以调用Form_Load事件等等,都是通过消息传递的,即对象A向对象B发出消息,对象B执行怎样的操作。 C++:

class Base {

Public: Base(){} ~Base(){} ... };

class Derive:Public Base {

Public: ... Print() {

Cout<<\打印函数!\} };

void main() {

Derive a; Base *p; ... }

Base为基类,Derive为基类上的派生类,它继承了基类的一些属性和方法等,a为创建的实例,即是一个对象,它封装了类Derive的所有性性和方法,特别是私有的属性和方法,直接调用它们会失败,这就是类的封装性。对象间的通讯是靠消息传递的,比如我们在内存中删除p所指的一个对象,用delete p语句,会调用类Base的析构函数~Base();我们也可用a.Print()语句来调用Derive类的Print()函数,对象a具有类Derive的属性和方法(在C++中一般用函数来实现,比如Print(),我们可以说这操作是对象a的动态属性) (26) 下面不属于软件工程的3个要素的是______。 A. 工具 B. 过程 C. 方法 D. 环境 (26) [答案]D

[考点]软件工程基础 [评析]

这里阐述一下,以上答案为原稿的答案,有的书上答案应该为B,解释如下:

软件工程包括的三要素是:软件开发方法学、工具和环境支持,而其主体内容是软件开发方法学。

1、软件开发方法,比如根据瀑布模型有结构化分析与设计方法,有原型化开发方法

2、软件开发工具各个瀑存模型阶段都有相关工具,比如需求分析阶段有DFD数据流程图,详细设计阶段有HIPO图或PAD图,编码工具有VC、VB……

3、软件开发环境是全面支持软件开发全过程的软件工具集合。

A. 树结构 B. 网结构 C. 线性表 D. 二维表 (39) [答案]D

[考点]数据库设计基础 [评析]

关系数据库中的关系,用二维表表示,A为层次数据模型的,B为网状数据模型的。 数据库模型分为:

层次模型、网状模型、关系模型、面向对象模型。

(40) 将E-R图转换到关系模式时,实体与联系都可以表示成______。 A. 属性 B. 关系 C. 键 D. 域 (40) [答案]B

[考点]数据库设计基础 [评析]

基本概念题,实体与联系可以表示成关系,关系可以表示成二维表。

(41) 在下列选项中,哪个不是一个算法一般应该具有的基本特征______。 A. 确定性 B. 可行性 C. 无穷性

D. 拥有足够的情报 (41) [答案]C

[考点]程序设计基础 [评析]

算法具有确定性、可行性,并拥有足够的情报。 (42) 希尔排序法属于哪一种类型的排序法______。 A. 交换类排序法 B. 插入类排序法 C. 选择类排序法 D. 建堆排序法 (42) [答案]B

[考点]数据结构与算法 [评析]

Shell排序法 输入:数组名称(也就是数组首地址)、数组中元素个数

思想为:在直接插入排序算法中,每次插入一个数,使有序序列只增加1个节点, 并且对插入下一个数没有提供任何帮助。如果比较相隔较远距离(称为 增量)的数,使得数移动时能跨过多个元素,则进行一次比较就可能消除 多个元素交换。D.L.shell于1959年在以他名字命名的排序算法中实现

了这一思想。算法先将要排序的一组数按某个增量d分成若干组,每组中 记录的下标相差d.对每组中全部元素进行排序,然后再用一个较小的增量 对它进行,在每组中再进行排序。当增量减到1时,整个要排序的数被分成 一组,排序完成。

下面的函数是一个希尔排序算法的一个实现,初次取序列的一半为增量, 以后每次减半,直到增量为1。以C语言为例。 void shell_sort(int *x, int n) {

int h, j, k, t;

for (h=n/2; h>0; h=h/2) /*控制增量*/ {

for (j=h; j

t = *(x+j);

for (k=j-h; (k>=0 && t<*(x+k)); k-=h) {

*(x+k+h) = *(x+k); }

*(x+k+h) = t; } } }

故属于插入类排序法。

(43) 下列关于队列的叙述中正确的是______。 A. 在队列中只能插入数据 B. 在队列中只能删除数据 C. 队列是先进先出的线性表 D. 队列是先进后出的线性表 (43) [答案]C

[考点]数据构与算法 [评析]

队列是先进先出的,栈是先进后出的,2者的区别一定要搞清楚。

(44) 对长度为N的线性表进行顺序查找,在最坏情况下所需要的比较次数为______。 A. N+1 B. N

C. (N+1)/2 D. N/2 (44) [答案]B

[考点]数据结构与算法 [评析]

很简单,我们的二级程序设计语言书中都有此算法,另外还要掌握二分法查找,这也是我们二级中常考的。

那么二分法最坏的情况为多少次呢? >log2 n的最小整数值。

比如n为4,最坏的情况要比较3次; n为18,最坏的情况要比较5次。

二分法适用于已排序的顺序表(我们二级语言中都是数组),考二级书里的,这里不再罗嗦。 (45) 信息隐蔽的概念与下述哪一种概念直接相关______。 A. 软件结构定义 B. 模块独立性 C. 模块类型划分 D. 模拟耦合度 (45) [答案]B

[考点]软件工程基础 [评析]

模块独立性越强,则信息隐蔽性越好。 举个例, VB:

在多重窗体设计时,每个窗体里的变量尽量与其它窗体里变量无关,比如少用Public声明的变量,即全局变量,当多个窗体共享全局变量越多时,窗体的独立性就越差。 C:

头文件里的一些函数,一般不用到全局变量,否则在主程序里出乱子的情况很多,我们在模块化开发时,尽量使每个模块独立,强功能内聚,分工明确,调试程序也要方便得多。 C++:

考此项的朋友估计不用我多讲,类的封装性就是一个很好的说明。

(46) 面向对象的设计方法与传统的的面向过程的方法有本质不同,它的基本原理是______。 A. 模拟现实世界中不同事物之间的联系 B. 强调模拟现实世界中的算法而不强调概念

C. 使用现实世界的概念抽象地思考问题从而自然地解决问题

D. 鼓励开发者在软件开发的绝大部分中都用实际领域的概念去思考 (46) [答案]C

[考点]软件工程基础 [评析]

我们举个例,

从各种语言的结构体类型出发,我们知道,结构体中可以定义很多变量,对每个变量执行相同的操作,挨个挨个写出,很麻烦。假设该结构体有如下变量: 草鱼、田鱼、鲫鱼……

它们都在一口池塘里,现在执行:它们都上来 传统的程序设计是: 草鱼上来 田鱼上来 鲫鱼上来 ……

一条一条都写出,是不是很麻烦? 改进一下,我们用个循环:

n等于从1到10(假设共有10种鱼) 第n种鱼上来

还是很麻烦,现实中我们很易想到用\面向对象的思想\,池塘里所有的鱼都是一个结构体变量,名为鱼,执行: 鱼上来

意思即所有的鱼都上来。

现特定于面象对象语言中的类,鱼,就可以看作为一类。 这就属于 C 项:

使用现实世界的概念抽象地思考问题从而自然地解决问题

这样罗嗦的解释望大家别晕,旨在帮助部分人的确难想通的,为应试,你能背下答案也行。

(47) 在结构化方法中,软件功能分解属于下列软件开发中的阶段是______。 A. 详细设计 B. 需求分析 C. 总体设计 D. 编程调试 (47) [答案]C

[考点]软件工程基础 [评析]

从先到后一排,是:

需求分析、总体设计、详细设计、编程调试

需求分析远离在计算机上的实现,谈不上功能的分解;

有了需求分析的报告,软件设计员可以思考我要让软件怎么做,开始总体设计,其间将软件的功能分解,确定模块之间的接口;

有了每个模块功能的分解,再对每个模块进入详细设计阶段; 接下来再是程序员的任务,编写代码,开始编程调试。 (48) 软件调试的目的是______。 A. 发现错误 B. 改正错误

C. 改善软件的性能 D. 挖掘软件的潜能 (48) [答案]B

[考点]软件工程基础 [评析] 倒!

一个程序调试是为了干什么? 还不是为了改正错误?

发现错误?这只是一个过程,改正错误之前必须先发现错误,总不能目的就仅为发现错误吧。 (49) 按条件f对关系R进行选择,其关系代数表达式为______。 A. R|X|R

B. R|X|R f

C. бf(R) D. ∏f(R) (49) [答案]C

[考点]数据库设计基础 [评析]

C是选择一行,D是投影一列,二者要区分开。

如果不仅谈此题的话,有关关系代数,内容有些多,这里不是一两句能说清,可以看看相关《数据库》的资料中的关系代数,里面写得很详细。为应试,情急之下能记住几个题答案就行。

(50) 数据库概念设计的过程中,视图设计一般有三种设计次序,以下各项中不对的是______。 A. 自顶向下 B. 由底向上 C. 由内向外 D. 由整体到局部 (50) [答案]D

[考点]数据库设计基础 [评析]

通常有如下几种方法:

1、自顶向下。先全局框架,然后逐步细化

2、自底向上。先局部概念结构,再集成为全局结构 3、由里向外。先核心结构,再向外扩张

4、混合策略。1与2相结合,先自顶向下设计一个概念结构的框架,再自底向上为框架设计局部概念结构

(51) 在计算机中,算法是指______。 A. 查询方法 B. 加工方法

C. 解题方案的准确而完整的描述 D. 排序方法 (51) [答案]C

[考点]数据结构与算法 [评析]

A、B、D都过于片面,此题直接选答案也很简单。 (52) 栈和队列的共同点是______。 A. 都是先进后出 B. 都是先进先出

C. 只允许在端点处插入和删除元素 D. 没有共同点 (52) [答案]C

[考点]数据结构与算法 [评析]

栈是先进后出的,队列是先进先出的,共同点是只允许在端点处插入和删除元素。栈都是在一端进与出,而队列是在一端进在另一端出。

(53) 已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是______。 A. cedba B. acbed C. decab D. deabc (53) [答案]A

[考点]数据结构与算法 [评析]

后序又叫后根,一次递归过程是先左再右最后根;中序是先左再根最后右。 比如下图:

前序是:abc 中序是:bac 后序是:bca

题中据后序遍历序列,一眼得知c结点是根,那么据中序deba结点都在一边,或都在根结点左边,或右边;据中序遍历序列得知全在根结点的左边。

接下来据后序得出e结点是紧挨着c结点的左子女,再据中序得知d是e的左子女,ba是右子树。

再据后序得b是e的右子女,再据中序得a是b的右子女。 分析结果得二叉树图示如下:

因为我茂叶数据结构是自学的,分析此类型的题我都是用自己的方法(递归分析的方法),要边分析边画图,一步一步连结起来,最后再根据题中的遍历检查图是否画对,如果都符合题目,最后再可根据图来得所求的遍历。

再次声明,此所有二级公基题全是我一人的思路写的,如果你觉得不可靠,可以看其它的书。

(54) 在下列几种排序方法中,要求内存量最大的是______。 A. 插入排序 B. 选择排序 C. 快速排序 D. 归并排序 (54) [答案]D

[考点]数据结构与算法 [分析]

我们对比一个排序方法的优越性有\平均时间\、\最坏情况时间\和\辅助空间\。其中辅助空间一般是排序中需要额外的内存开销,这些内存开销一般据一些如中间变量(暂存变量)、比较与交换等等来决定。

插入排序和选择排序的辅助空间都是o(1),快速排序是o(nlog2n),归并排序是o(n)。

可知归并排序要求内存量最大,我们也可以从其变量及循环个数也以看出归并排序要求内存量最大。

(55) 在设计程序时,应采纳的原则之一是______。 A. 程序结构应有助于读者理解 B. 不限制goto语句的使用 C. 减少或取消注解行 D. 程序越短越好 (55) [答案]A

[考点]程序设计基础 [评析]

前面的题中已解释过,二级的各种程序设计语言教程都会对结构化程序设有一定的介绍,比如goto语句的限制使用,基本上每本书上都会提到。

其中A,即易读性比程序的效率更显得重要,这是结构化程序设计原则提倡的,也是我们进行开发时非常重要的一点。

(56) 下列不属于软件调试技术的是______。 A. 强行排错法 B. 集成测试法 C. 回溯法 D. 原因排除法 (56) [答案]B

[考点]软件工程基础 [评析]

耍个小聪明:)

我们严格区分调试与测试,调试是已知有错误而来找错误,是被动的;测试有很多种,比如未发现错误但不能保证程序没错而来找BUG,还比如我们运行测试程序是否符合用户的要求,是主动的。不用说答案就是B了 :)

A、C、D都是具体的程序调试方法,而B是宏观的程序测试方法。

测试有单元测试、集成测试、确认测试、系统测试。比如我们在进行单元测试时,发现程序有错误,我们再可以根据A、C、D的方法来找错误。 题外话:

很多人学软件工程时认为软件工程太无聊了,似乎全部都是些背背记记的东西,但对于一个软件构架师,软件工程是非常重要的,这就不能是些背背的东西了,最重要的是理解,要彻底地理解,还得有些开发经验才行。《软件工程》这学科是从实践中得出来的,同样也需要赋予给实践中去,这样才有用!

(57) 下列叙述中,不属于软件需求规格说明书的作用的是______。 A. 便于用户、开发人员进行理解和交流

B. 反映出用户问题的结构,可以作为软件开发工作的基础和依据 C. 作为确认测试和验收的依据 D. 便于开发人员进行需求分析 (57) [答案]D

[考点]软件工程基础 [评析]

A、B、C都是作用,D说法有一定的错误,开发人员包括很多,比如程序员的工作就不是进行需求分析。

(58) 在数据流图(DFD)中,带有名字的箭头表示______。 A. 控制程序的执行顺序 B. 模块之间的调用关系 C. 数据的流向 D. 程序的组成成分 (58) [答案]C

[考点]软件工程基础 [评析]

顾名思义,数据流图就是带有方框(外部实体)、圆圈(变换/加工)和带有名字的箭头以表示数据的流向。需求分析中常用的分析图,它远离计算机上的具体实现,软件人员和用户都能看懂,有益于和用户交流。 (59) SQL语言又称为______。 A. 结构化定义语言 B. 结构化控制语言 C. 结构化查询语言 D. 结构化操纵语言 (59) [答案]C

[考点]数据库设计基础 [评析]

学VF和ACCESS的朋友轻而易举选出答案,考其它的朋友们若没学数据库技术这一章节,则要记一下了。

Structured Query Language 结构化 查询 语言(语句)

(60) 视图设计一般有3种设计次序,下列不属于视图设计的是______。 A. 自顶向下 B. 由外向内 C. 由内向外 D. 自底向上 (60) [答案]B

[考点]数据库设计基础 [评析]

通常有如下几种方法:

1、自顶向下。先全局框架,然后逐步细化

2、自底向上。先局部概念结构,再集成为全局结构 3、由里向外。先核心结构,再向外扩张

4、混合策略。1与2相结合,先自顶向下设计一个概念结构的框架,再自底向上为框架设计局部概念结构

(61) 数据结构中,与所使用的计算机无关的是数据的______。 A. 存储结构 B. 物理结构 C. 逻辑结构

D. 物理和存储结构 (61) [答案]C

[考点]数据结构与算法 [评析]

通过前面的一些题的解释,相信此题对大家也很简单了。

逻辑结构更接近人的思想,比如栈的先进后出的结构,这是逻辑结构,如果研究到了栈在内存中的结构,如地址、地址里的内容等等,这就是物理结构了,我们一般无须过于深入底层地钻研。

(62) 栈底至栈顶依次存放元素A、B、C、D,在第五个元素E入栈前,栈中元素可以出栈,则出栈序列可能是______。 A. ABCED B. DBCEA C. CDABE D. DCBEA (62) [答案]D

[考点]数据结构与算法 [评析]

栈是先进后出的,因为在E放入前,A、B、C、D已经依次放进栈里了,故这四个元素出栈的顺序只能是D、C、B、A,E可是其中排序的任何位置,答案只有D符合了。 (63) 线性表的顺序存储结构和线性表的链式存储结构分别是______。 A. 顺序存取的存储结构、顺序存取的存储结构 B. 随机存取的存储结构、顺序存取的存储结构 C. 随机存取的存储结构、随机存取的存储结构 D. 任意存取的存储结构、任意存取的存储结构 (63) [答案]B

[考点]数据结构与算法 [评析]

顺序存储结构可以以数组为例子,它在内存中的一片连续的储存空间,从第一个元素到最后一个元素,只要根据下标就可以访问。二级的各种程序设计语言都有。 链式存储结构可以以C/C++语言中的链表为例,各个链结点无须存放在一片连续的内存空间,而只需要指针变量指过来指过去,实现随机存取。 (64) 在单链表中,增加头结点的目的是______。 A. 方便运算的实现

B. 使单链表至少有一个结点 C. 标识表结点中首结点的位置

D. 说明单链表是线性表的链式存储实现 (64)

[答案]A

[考点]数据结构与算法 [评析]

举个例子,假如我们写一个实现链表删除一个元素的函数(或过程),供共享用,函数的参数有2个,一个指针变量(指向链表的头结点),一个字符变量(待删除的元素)。通过链表头结点的指针传给函数的第一个指针变量参数,就可方便实现是哪一个链表的操作。 如果你考的科目没有指针,此题答案记一下就行了。

(65) 软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指______。 A. 模块间的关系

B. 系统结构部件转换成软件的过程描述 C. 软件层次结构 D. 软件开发过程 (65) [答案]B

[考点]软件工程基础 [评析]

相当于详细设计,比如N-S图就是一种,它不用具体的某种语言实现,但描述了程序的思路,有了这就可以很轻松转换为某种语言的程序源代码。这是一种系统结构部件转换成软件的过程描述。

(66) 为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为______。 A. PAD图 B. N-S图 C. 结构图 D. 数据流图 (66) [答案]B

[考点]软件工程基础 [评析]

二级科目的很多教程都在前N-S图的例子,比如C语言教程基本上都有,程序流程图大部分科目也有例子。这里再举个例子。 比如:

如果2等于3,则变量a=1,否则a=0。 我们用N-S图表示:

转换成VB: If 2=3 Then a=1 else a=0 End If

转换成C/C++/JAVA: if(2==3) a=1;

else a=0;

(67) 数据处理的最小单位是______。 A. 数据 B. 数据元素 C. 数据项 D. 数据结构 (67) [答案]C

[考点]数据结构与算法 [评析]

此题比较弱智,本来无从解释。

\数据\过于宏观,比如数据库里的所有内容都可叫数据,它是不是数据处理的最小单位呢? \数据元素\中的\元素\,如果要死钻牛角尖,的确没\数据项\说得更合适。 \数据结构\,这个范围又过于大了。

(68) 下列有关数据库的描述,正确的是______。 A. 数据库是一个DBF文件 B. 数据库是一个关系

C. 数据库是一个结构化的数据集合 D. 数据库是一组文件 (68) [答案]C

[考点]数据库设计基础 [评析]

A错,比如ACCESS数据库的文件是mdb格式的。

B错,数据库里可能有很多个二维表,一个二维表就是一个关系。

D错,虽有些数据库底层是些文件组成的,但是从逻辑结构上来说它与文件完全是2个概念,数据库管理比文件管理更容易、效率更高、安全性更强。 (69) 单个用户使用的数据视图的描述称为______。 A. 外模式 B. 概念模式 C. 内模式 D. 存储模式 (69) [答案]A

[考点]数据库设计基础 [评析]

外模式、模式(概念模式)、内模式(存储模式),分别是视图级、概念级、物理级。视图级即是用户使用的数据视图级,主要为局部逻辑结构,因为模式上很多个外模式,外模式到模式的映射定义了局部数据逻辑结构与全局逻辑结构之间的对应关系,表现了数据的逻辑独立性。模式到内模式则表现了数据物理独立性。 (70) 需求分析阶段的任务是确定______。 A. 软件开发方法 B. 软件开发工具

C. 软件开发费用 D. 软件系统功能 (70) [答案]D

[考点]软件工程基础 [评析]

据前面的题的解释,相信大家对需求分析有个理性认识了。

分析员对用户的要求作出分析,并画出数据流程图,该图通俗易懂,不涉及到如何在计算机上实现,这是需求分析阶段,用户也参与,确定软件系统功能是一个重要的任务。 (71) 算法分析的目的是______。 A. 找出数据结构的合理性

B. 找出算法中输入和输出之间的关系 C. 分析算法的易懂性和可靠性 D. 分析算法的效率以求改进 (71) [答案]D

[考点]数据结构与算法 [评析]

为什么要讲各种各样的算法,只要达到功能不就行了吗? 有些场合为了让程序效率更高,必须改进算法。 我们二级熟悉的算法改进,如二分法查找比顺序查找更快,仔细分析这些算法以求效率改进。 再比如选择排序、插值排序、冒泡排序,哪个效率高?

我们分析算法,可知如果序列初始比较有序的情况下,冒泡法效率最高。 各种例子都说明D是正确答案。

(72) n个顶点的强连通图的边数至少有______。 A. n-1 B. n(n-1) C. n D. n+1 (72) [答案]C

[考点]数据结构与算法 [评析]

此题超纲不用看啦!

图这一节超纲,软考的程序员的难度也不考的,等考三级也考不到,只有计算机四级与高级程序员或以上级别才考到。

关于图的概念,我们在这里结合树来讲。

通过前面的一些题,我们了解了树与二叉树,其实树也算是图的一种,树从上到下是一对多关系的,而图不单从上到下,而且可以是任意的多对多联系,它还可以有回路(结点与线合成回路),无方向的叫无向图,有箭头方向的叫有向图。 连通图(又叫弱连通图):有顶点间存在通路(就是2点间有条路径,从这可到那)(如果是有向图,则略去方向)。

强连通图:图中任何两点都可相互到达(有向图不能略去方向)。强连通图一定是弱连通图。 此题问要是强连通图至少应有的边数,我们可以设想个一个环的特例,假设箭头全部是顺时

针(或逆时针),可以构成任何两点都可到达的强连通图,假设有n个顶点,我们很快得出它的边数也为n。

(73) 已知数据表A中每个元素距其最终位置不远,为节省时间,应采用的算法是______。 A. 堆排序

B. 直接插入排序 C. 快速排序 D. 直接选择排序 (73) [答案]B

[考点]数据结构与算法 [评析]

做此题时,我们可以回想一下每个选项的排序原理。

堆排序是边建堆边排序的过程,而建堆排序时的效率元素距其最终位置的远近关系不大。 插入排序是把每个元素挨个比较之前的元素,插入到合适的位置,这种排序的比较次数很不固定,它决定于每个元素距其最终位置。

快速排序的每一趟可确定一个元素的最终位置,但以某个元素为标准的比较次数还是得比较剩下所有的,它的最大的特点是序列初始无序的情况下排序最快。(初始有序并不是每个元素距其最终位置不远,而是有一些最终相邻的元素初始已经相邻了或大致左右的顺序已经好了)。

直接选择排序,就是每一趟选择序列剩下的元素的一个最大值(或最小值)挨个排在首端(或尾端),是人脑最常使用的方法,所以被人脑最易理解。在电脑上,这种排序效率不受其初始位置的影响。

茂叶特注:上述解释都是我自己的理解,书上并没有如此解释,有错误还望大侠们指正! (74) 用链表表示线性表的优点是______。 A. 便于插入和删除操作

B. 数据元素的物理顺序与逻辑顺序相同 C. 花费的存储空间较顺序存储少 D. 便于随机存取 (74) [答案]A

[考点]数据结构与算法 [评析]

我们知道,如果是紧凑排列的话,数组在删除一个其中一个元素时极为不方便,因为它需要把后面的元素都要往前移一个位置(插入的话则往后移)。而用链表就绝然不同了,它只需要改变指针的指向,指向这指向那的,其它元素都不用动。 所以便于插入和删除操作。

(75) 下列不属于结构化分析的常用工具的是______。 A. 数据流图 B. 数据字典 C. 判定树 D. PAD图 (75) [答案]D

[考点]软件工程基础

[评析]

通过前面题的解释,数据流图属于分析阶段相信大家都有所了解了。

数据字典也是一种分析阶段的工具。什么叫数据字典,我们可以这样理解。假设给了你一个数据流图,但上面的文字说明,比如\看书\、\练习\、\考试\、\拿证书\…(假设这些是数据(知识)的处理过程,但可能有些人认为有个\测试\,实际上他的意思是\考试\,如果写在数据流图上,其它人认为是\练习测试\的意思,这就造成了数据流图不一致的理解,而数据流图是开发人员和用户都能看懂的,理解肯定是一致的。所以必须有个数据字典,它标识了数据流图的所有名词述语,就好比我们用英汉词典一样,不会再有不一致的理解了。 判定树和判定表都是加工描述方法,当然也是分析阶段的。

PAD图(问题分析图)是详细设计阶段的工具,它的作用类似于程序流程图和N-S图。 关于程序流图和N-S图,二级很多科目都有介绍,前面的题中我也解释过。 (76) 软件开发的结构化生命周期方法将软件生命周期划分成______。 A. 定义、开发、运行维护

B. 设计阶段、编程阶段、测试阶段 C. 总体设计、详细设计、编程调试 D. 需求分析、功能定义、系统设计 (76) [答案]A

[考点]软件工程基础 [评析]

我们可从一个软件的从无到有的过程来看,就是分析人员先分析,开发人员再开发,最终运行和维护。

(77) 在软件工程中,白箱测试法可用于测试程序的内部结构。此方法将程序看做是______。 A. 循环的集合 B. 地址的集合 C. 路径的集合 D. 目标的集合 (77) [答案]C

[考点]软件工程基础 [评析]

白盒测试,我们要深入源代码的内部;而黑盒测试,我们只关心输入与输出数据是否符合要求。

(78) 在数据管理技术发展过程中,文件系统与数据库系统的主要区别是数据库系统具有______。

A. 数据无冗余 B. 数据可共享

C. 专门的数据管理软件 D. 特定的数据模型 (78) [答案]D

[考点]数据库设计基础 [评析]

文件根据一些压缩技术也可减少冗余,数据库也有冗余,只是比文件少;

文件也可共享,只是比数据库共享性能差; 也有专门的文件管理软件; 数据库发展的模型依次是:

层次模型、网状模型、关系模型、面向对象模型。 其中关系模型目前应用最广泛。

(79) 分布式数据库系统不具有的特点是______。 A. 分布式 B. 数据冗余

C. 数据分布性和逻辑整体性 D. 位置透明性和复制透明性 (79) [答案]B

[考点]数据库设计基础 [评析]

如果论特点,当然是优点,数据冗余是种害处,怎能论特点? 何况分布式数据库还减少了冗余。

(80) 下列说法中,不属于数据模型所描述的内容的是______。 A. 数据结构 B. 数据操作 C. 数据查询 D. 数据约束 (80) [答案]C

[考点]数据库设计基础 [评析]

数据模型的三要素 1.数据结构

数据结构用于描述系统的静态特性。在数据库系统中,通常按照其数据结构的类型来命名数据模型。 2.数据操作

数据操作用于描述系统的动态特征。数据操作是指对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则。操作有检索、插入、删除、修改。 3.数据完整性约束

数据完整性约束是一组完整性规则的集合。完整性规则是给定的数据模型中数据及其联系所具有的制约和储存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效和相容。数据模型应该反映和规定本数据模型必须遵守的、基本的、通用的完整性约束。此外,数据模型还应该提供定义完整性约束的机制,以反映具体应用所涉及的数据必须遵守的特定的语义约束。 40个填空题

(1) 算法的复杂度主要包括______复杂度和空间复杂度。 答:时间

(2) 数据的逻辑结构在计算机存储空间中的存放形式称为数据的______。 答:模式#逻辑模式#概念模式

(3) 若按功能划分,软件测试的方法通常分为白盒测试方法和______测试方法。 答:黑盒

(4) 如果一个工人可管理多个设施,而一个设施只被一个工人管理,则实体\工人\与实体\设备\之间存在______联系。 答:一对多#1:N#1:n

(5) 关系数据库管理系统能实现的专门关系运算包括选择、连接和______。 答:投影

(6) 在先左后右的原则下,根据访问根结点的次序,二叉树的遍历可以分为三种:前序遍历、______遍历和后序遍历。 答:中序

(7) 结构化程序设计方法的主要原则可以概括为自顶向下、逐步求精、______和限制使用goto语句。 答:模块化

(8) 软件的调试方法主要有:强行排错法、______和原因排除法。 答:回溯法

(9) 数据库系统的三级模式分别为______模式、内部级模式与外部级模式。 答:概念#概念级

(10) 数据字典是各类数据描述的集合,它通常包括5个部分,即数据项、数据结构、数据流、______和处理过程。 答:数据存储

(11) 设一棵完全二叉树共有500个结点,则在该二叉树中有______个叶子结点。 答:250

(12) 在最坏情况下,冒泡排序的时间复杂度为______。 答:n(n-1)/2#n*(n-1)/2#O(n(n-1)/2)#O(n*(n-1)/2)

(13) 面向对象的程序设计方法中涉及的对象是系统中用来描述客观事物的一个______。 答:实体

(14) 软件的需求分析阶段的工作,可以概括为四个方面:______、需求分析、编写需求规格说明书和需求评审。 答:需求获取

(15) ______是数据库应用的核心。 答:数据库设计

(16) 数据结构包括数据的______结构和数据的存储结构。 答:逻辑

(17) 软件工程研究的内容主要包括:______技术和软件工程管理。 答:软件开发

(18) 与结构化需求分析方法相对应的是______方法。 答:结构化设计

(19) 关系模型的完整性规则是对关系的某种约束条件,包括实体完整性、______和自定义完整性。

答:参照完整性

(20) 数据模型按不同的应用层次分为三种类型,它们是______数据模型、逻辑数据模型和物理数据模型。 答:概念

(21) 栈的基本运算有三种:入栈、退栈和______。 答:读栈顶元素#读栈顶的元素#读出栈顶元素

(22) 在面向对象方法中,信息隐蔽是通过对象的______性来实现的。 答:封装

(23) 数据流的类型有______和事务型。 答:变换型

(24) 数据库系统中实现各种数据管理功能的核心软件称为______。 答:数据库管理系统#DBMS

(25) 关系模型的数据操纵即是建立在关系上的数据操纵,一般有______、增加、删除和修改四种操作。 答:查询

(26) 实现算法所需的存储单元多少和算法的工作量大小分别称为算法的 ______。 答:空间复杂度和时间复杂度

(27) 数据结构包括数据的逻辑结构、数据的 ______以及对数据的操作运算。 答:存储结构

(28) 一个类可以从直接或间接的祖先中继承所有属性和方法。采用这个方法提高了软件的______。 答:可重用性

(29) 面向对象的模型中,最基本的概念是对象和 ______。 答:类

(30) 软件维护活动包括以下几类:改正性维护、适应性维护、______维护和预防性维护。 答:完善性

(31) 算法的基本特征是可行性、确定性、______和拥有足够的情报。 答:有穷性

(32) 顺序存储方法是把逻辑上相邻的结点存储在物理位置______的存储单元中。 答:相邻

(33) Jackson结构化程序设计方法是英国的M.Jackson提出的,它是一种面向______的设计方法。

答:数据结构

(34) 数据库设计分为以下6个设计阶段:需求分析阶段、______、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。 答:概念设计阶段#数据库概念设计阶段

(35) 数据库保护分为:安全性控制 、______、并发性控制和数据的恢复。 答:完整性控制

(36) 测试的目的是暴露错误,评价程序的可靠性;而______的目的是发现错误的位置并改正错误。 答:调试

(37) 在最坏情况下,堆排序需要比较的次数为______。 答:O(nlog2n)

(38) 若串s=\,则其子串的数目是______。 答:29

(39) 一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体\项目主管\与实体\项目\的联系属于______的联系。 答:1对多#1:N

(40) 数据库管理系统常见的数据模型有层次模型、网状模型和______三种。 答:关系模型

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

Top