程序设计基础复习题参考答案

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《程序设计基础》期末复习

单项选择题

计算机发展的分代史中通常划分时代的标准是以计算机所采用的_A_。

A 逻辑元件

B 程序设计语言

C 操作系统发展

D 硬件运算速度

当前广泛使用的微型计算机是_D_。

A 第一代

B 第二代

C 第三代

D 第四代

我们将组成计算机系统的所有电子和机械装置称为_A_。

A 硬件

B 软件

C 系统

D 机器

当代计算机的体系结构称为是_A_。

A 冯·诺依曼机

B 非冯·诺依曼机C图灵机 D PASCAL机

CPU主要包括_A_。

A 运算器、控制器和寄存器

B 运算器、控制器和存储器

C 控制器

D 运算器和存储器

硬盘是_C_。

A 输入设备

B 输出设备

C 存储设备

D 计算设备

系统软件的核心软件是_A__。

A 操作系统

B 编译程序

C 汇编程序

D 机器语言

下面4句话中,最准确的表述是_D_。

A 程序=算法+数据结构

B 程序是使用编程语言实现算法

C 程序的开发方法决定算法设计

D 算法是程序设计中最关键的因素

程序设计要遵循一定的开发方法及思想,以下有一个不是程序设计过程中应该遵循的开发方法,它是_D_。

A 结构化设计方法

B 模块化程序设计方法

C 面向对象的程序设计方法

D 数据结构优先原则

计算机能直接执行的语言是_A_。

A 机器语言

B 汇编语言

C 高级语言

D 目标语言

汇编程序的任务是_A_。

A 将汇编语言编写的程序转换为目标程序

B 将汇编语言编写的程序转换为可执行程序

C 将高级语言编写的程序转换为汇编语言程序

D 将高级语言编写的程序转换为可执行程序

世界上第一个高级语言是_C_。

A BASIC语言

B C语言

C FORTRAN语言

D PASCAL语言

下面4种程序设计语言中,不是面向过程式语言的是_D_。

A FORTRAN

B ALGOL

C Ada

D C++

下面4种程序设计语言中,不是面向对象式语言的是_D_。

A JAVA

B Object Pascal

C Delphi

D C

C语言中,使用变量的要求是_A_。

A 要先定义后使用

B 要先使用后定义

C 不需要定义,可以直接使用

D 没有明确的要求

不是C语言的基本数据类型是_D_。

A int

B double

C char

D bool

数据结构主要研究下面3方面的内容_A_。

A 数据的逻辑结构、存储结构和运算

B 数据的线性结构、树型结构和图结构

C 数据的顺序存储、链式存储和散列存储

D 数据的线性结构和非线性结构,以及相关运算

数据的逻辑结构分为_A_。

A 线性结构和非线性结构

B 顺序结构和非顺序结构

C 树型结构和图型结构

D 链式结构和顺序结构

数据的存储结构分为_D_。

A 线性存储结构和非线性存储结构

B 有序存储结构和非有序存储结构

C 树型存储结构和图型存储结构

D 链式存储结构和顺序存储结构

线性表的典型特点是各个结点之间是_B_。

A 没有直接关系

B 一对一关系

C 一对多关系

D 多对多关系

线性表表长的含义是_C_。

A 线性表所占用的内存字节数量

B 线性表占用的内存和外存的字节数量

C 线性表中所包含的元素数量

D 线性表在内存中元素的数量

树的典型特点是各个结点之间是_C_。

A 没有直接关系

B 一对一关系

C 一对多关系

D 多对多关系

在存储线性表时,_C_。

A 只能采用顺序存储结构

B 只能采取链式存储结构

C 可以任意采用顺序或链式存储结构

D 没有明确的结论

栈的最主要特点是_B_。

A 先进先出

B 先进后出

C 两端进出

D 一端进一端出

队列的最主要特点是_A_。

A 先进先出

B 先进后出

C 两端进出

D 一端进一端出

下面4句结论中只有一句是错误的,它是_B_。

A 二叉树是树

B 二叉树的左右子树的位置可以颠倒

C 可以使用二叉树的思想对数值进行排序

D 可以采用链表方式存储二叉树

采用链式存储的有序数据要进行查找,可以采用_A_。

A 顺序查找

B 折半查找

C 顺序索引查找

D 顺序或折半查找

螺旋模型中包括需求定义、风险分析、工程实现和评审四个阶段,在开发过程中_A_。

A 每个周期都要包括这四个阶段

B 每个周期可以包括不同的阶段

C 在最后交付使用之前才进行评审

D 开项目开始时才需要进行风

险分析

下面关于测试的结论中只有一个是正确

的,它是_A_。

A 测试工作要贯穿于整个软件开发的全过

B 测试工作是指在编程实现过程中进行的

排错工作

C 测试工作是指在产品完成后用户的验收

工作过程

D 测试工作量的弹性比较大,可以根据时

间进度进行裁减

在软件需求完全确定的情况下,应该采用

的软件开发模型是_A_。

A 瀑布模型

B 渐进式开

发模型 C 原型模型

D 螺旋模型

填空题

世界公认的第一台通用电子数字计算机是

美国宾夕法尼亚大学莫尔学院的莫奇利和

埃克特领导的科研小组建造的,取名为

_ENIAC_。

第一代电子计算机(1946~1958年)采用

的基本逻辑元件是电子管。第二代电子计

算机(1958~1964年)采用的基本逻辑元

件是晶体管。第三代电子计算机

(1964~1974年)采用的基本逻辑元件是半

导体中小规模集成电路。第四代电子计算

机(1974年以后)采用的基本逻辑元件是_

大规模集成电路。

世界上最早的高级程序设计语言是

_FORTRAN_。

计算机按照工作原理进行分类可以分为_

数字计算机_和_模拟计算机_。

当前计算机的最基本原理采用的是_冯·诺

依曼的“存储程序原理”。

计算机存储器一般分为两级,它们是主存

储器和外存储器。

计算机系统中的软件包括所有程序和及相

关的文档。

计算机硬件通常由5大功能部件组成,它

们是:存储器、运算器、控制器、输入设

备和输出设备。

计算机语言有3种类型,它们是机器语言、

汇编语言和高级语言。

高级语言源程序的翻译有两种方式,一种

是解释方式,另一种是编译方式。

微机中常用的高级语言主要有3类:t它们

是面向过程的程序设计语言、面向问题的

程序设计语言和面向对象的程序设计语

言。

程序设计过程的3个阶段是编程阶段、编

译阶段和执行阶段。

最基本的程序控制有三种,它们是顺序执

行、分支控制和循环控制。这三种执行控

制的任意组合和重复、嵌套就可以描述任

意复杂的程序。

C语言中分支语言是if语句和switch语句。

C语言中循环语言是while语句,for语句

和do-while语句。

C语言中自增运算符是++,求余数的运算

符号是%。

C语言中要改变循环语句的流程可以使用

语句break,continue和goto。

数据的逻辑结构是指数据元素之间的逻辑

关系,与数据的存储无关,它独立于计算

机,如用户在电话号码表中的先后次序关

系;数据的存储结构是指数据元素在计算

机存储设备中的存储方式。

数据的存储结构可以用顺序存储方式和链

式存储方式。

数据的逻辑结构可分为线性结构和非线性

结构。

常见的线性结构有线性表,栈和队列等,

其主要特征为各个结点之间“先后”有序。

常见的非线性结构包括树和图型结构。

树型结构的主要特征是结点之间存在着一

种层次的关系,数据元素之间的关系是一

对多的关系。在图型结构中,任何两个结

点之间都可能存在着联系,数据元素之间

存在着多对多的关系。

对于一个线性表来说,如果它的表长为0,

则我们称它为空表。

若循环队列的头指针为front,尾指针为

rear,rear指向队尾元素,front指向当前队

头元素的前一个位置。则队空的条件是

front=rear ,队满的条件是(rear +1) %

maxsize= front ,入队操作时队尾指针应进

行的操作是rear=(rear+1) % maxsize,出队

时队头指针应进行的操作是

front=(front+1) % maxsize。

在下树中:A结点度为3,B结点度为2_,

E结点的度为0,根结点为A,F结点的兄

弟结点是F,F结点的双亲结点是B,树的

深度为4。

算法描述的常见方法是伪码、流程图和N-S

图。

评价算法效率的主要指标是时间复杂度和

空间复杂度。

当前流行的程序设计方法是结构化程序设

计和面对对象程序设计。

软件开发模型大体上可分为两种类型,第

一种是以软件需求完全确定为前提的瀑布

模型。第二种是在软件开发初始阶段只能

提供基本需求时采用的渐进式开发模型,

如原型模型、螺旋模型等。

要编写高质量的程序,判断程序质量的首

要标准是程序的正确性,要保证程序在多

次反复使用过程不发生错误,应该保证程

序的可靠性。

对图进行遍历的方法有两种,它们是深度

优先搜索和广度优先搜索。

简答题

1、名词解释:CAD,CAM,CAI,CPU,

CASE。

CAD:计算机辅助设计(Computer Aided

Design)

CAM:计算机辅助制造(Computer Aided

Manufacturing)

CAI:计算机辅助教学(Computer Aided

Instruction)

CPU:中央处理器

CASE:计算机辅助软件工程

2、简述计算机硬件与软件的关系。

计算机硬件与软件的关系主要体现在以下

三个方面:

(1)互相依存。计算机硬件与软件的产生与

发展本身就是相辅相成、互相促进的,二

者密不可分。硬件是软件的基础和依托,

软件是发挥硬件功能的关键,是计算机的

灵魂。在实际应用中更是缺一不可,硬件

与软件,缺少哪一部分,计算机都是无法

使用的。

(2)无严格界面。虽然计算机的硬件与软件

各有分工,但是在很多情况下软硬件之间

的界面是浮动的。计算机某些功能既可由

硬件实现,也可以由软件实现。随着计算

机技术的发展,一些过去只能用软件实现

的功能,现在可以用硬件来实现,而且速

度和可靠性都大为提高。

(3)相互促进。无论从实际应用还是从计算

机技术的发展看,计算机的硬件与软件之

间都是相互依赖、相互影响、相互促进的。

硬件技术的发展会对软件提出新的要求,

促进软件的发展;反之,软件的发展又对

硬件提出新的课题。

3、简述计算机程序设计语言的分类和各类

的特点。

一般分为三类:机器语言(也称机器指令

集),汇编语言和高级语言。

机器语言是每台计算机出厂时,厂家都为

它配备一套机器语言,不同的计算机,其

机器语言通常是不同的。由于机器语言是

面向具体机器的,所以其程序缺乏通用性,

编写程序的过程繁琐复杂,易出错,错了

又不易查找和修改,编出的程序可读性极

差。

汇编语言是机器语言的符号化形式。用汇

编语言编写的程序(又称源程序)经汇编

器加工处理后,就转换成可由计算机直接

执行的目标程序。汇编语言提高了程序设

计效率和计算机利用率。汇编语言仍属面

向机器的一种低级语言,其程序的通用性

和可读性较差。

高级程序设计语言是指通用性好,不必对

计算机的指令系统有深入的了解就可以编

写程序。采用高级语言编写的程序在不同

型号的计算机上只需做某些微小的改动便

可运行,只要采用这些计算机上的编译程

序重新编译即可。高级语言具有通用性,

与具体的机器无关。

4、冯·诺伊曼原理的主要思想是什么?

“冯·诺伊曼原理”的主要思想就是“存

储程序控制”原理。“存储程序控制”原

理的基本内容是:

用二进制形式表示数据和指令;

将程序(数据和指令序列)预先存放在主

存储器中,使计算机在工作时能够自动高

速地从存储器中取出指令,并加以执行,

这是“存储程序控制”的基本特点;

确立了计算机系统的5大基本部件:存储

器、控制器、运算器、输入设备和输出设

备,同时也规定了5大部件的基本功能。

冯·诺依曼型计算机的两大特征是“程序

存储”和“采用二进制”。

冯·诺伊曼思想实际上是电子计算机设计

的基本思想,奠定了现代电子计算机的基

本结构,开创了程序设计的时代。

5、何谓算法?算法有什么性质?

算法就是为解决一个特定问题而采取的特

定的有限的步骤。一个完整的计算机算法

必须满足下述5个准则或标准:有穷性,

确定性,可行性,输入性,输出性。

具有上述5个特性才能称为算法,而其中

最重要的是算法的有穷性,如果不具备有

穷性的性质,仅具有另外4种性质,只能

称为计算过程或计算方法,而不是算法。

6、执行高级语言编写的程序一般要经过怎

样的编译过程?

高级语言源程序经编译后得到目标码程

序,但它还不能立即装入机器执行,编译

后得到的目标模块还需进行连接。连接程

序找出需要连接的外部模块并到模块库中

找出被调用的模块,调入内存并连接到目

标模块上,形成可执行程序。执行时,把

可执行程序加载到内存中合适的位置(此

时得到的是内存中的绝对地址)就可执行

产生运行结果。

编译

连接执行

7、高级语言解释执行的一般步骤是什么?

解释执行有什么缺点?

解释执行需要有一个解释程序,它将源代

码程序逐句读入,然后直接分析语句的含

义,立刻给出执行结果。

由于解释执行时只看到一个语句,难于优

化、执行效率较低。

8、请简要介绍面向过程式语言中的三种程

序设计的基本结构。

顺序结构是指按先后顺序从前到后

执行的语句序列。这些语句逻辑上可

能有明确的顺序关系,即后一个程序

语句依赖于前一个语句,也可能它们之

间没有明确的顺序关系,即某些语句的先

后顺序并不重要,一个语句逻辑上并不从

属于另一些语句。

选择结构是指根据判定条件控制一些语句

是否执行的语句。选择结构可用if-then、

if-then-else或case(或switch)等语句进行

描述。当判定条件成立时需要执行一组语

句,且不成立时不需要执行这些语句,那

么应当采用if-then语句。当判定条件成立

时需要执行一组语句,否则需要执行另一

组语句时,可采用if-then-else语句。当根

据表达式的取值情况在多个动作中选取其

一执行时,可采用case语句。

循环结构是指可重复执行一组语句(称为循

环体)的程序语句。根据重复方式的不同,

循环结构可分为while型循环、until型循环

和for型循环。while型循环是在指定的条

件(称为循环条件)成立时,重复执行循

环体,其特点是执行循环体前先判定循环

条件,因此可能一次也不执行循环体。

until型循环将重复执行循环体,直到循环

条件成立才结束该重复,其特点是每

执行一次循环体后判定循环条件,因

此至少执行一次循环体。for型循环

将循环体重复执行给定次数,其特点

是循环开始前可确定循环次数。

9、什么是面向过程式语言?有什么特点?

面向过程式语言,也叫命令式语言或强制

式语言,它是通过指明一列可执行的运算

及运算的次序来描述计算过程的语言。

命令式语言以冯·诺依曼式计算机体系结

构为背景。机器语言与汇编语言是最早问

世的命令式语言。FORTRAN,ALGOL,

COBOL,PASCAL,C,Ada等高级语言也

属过程式语言,其变量对应于存储单元,

对变量的访问就是对相应存储单元的访

问。各个语句在程序中的顺序以及转向语

句等控制语句则明确规定了机器的执行步

骤,这就是冯·诺依曼式体系结构的思维

方式在程序设计中的反映。

过程式语言程序的本质是重复地、按步地

计算低级(非抽象)值并将之赋给变量(对

象),这就迫使程序人员去关心比较低级

的细节,而这不适用于设计复杂算法。因

此,几十年来过程式语言一直向着隐蔽低

级机器属性、提高程序层次与抽象性的方

向发展。

10、结构化程序设计方法的主要技术是什

么?

结构化程序设计方法的主要技术是自顶向

下、逐步求精。具体地说,就是在接受一

个任务之后,纵观全局,先设想好整个任

务分为几个子任务,每一个子任务又可以

进行细分,直到不需要细分为止。这种方

法就叫做“自顶向下、逐步求精”。

采用这种方法考虑问题比较周全,结构清

晰,层次分明。用这种方法也便于验证算

法的正确性。在向下一层细分之前应检查

本层设计是否正确,只有上一层是正确的

才可以继续细分。如果每一层设计都没有

问题,则整个算法就是正确的。由于每一

层向下细分时都不太复杂,因此容易保证

整个算法的正确性。检查时也是由上而下

逐层检查,这样做思路清晰,可以有条不

紊地一步一步地进行,既严谨又方便。

11、结构化程序设计的主要特征与风格是

什么?

结构化程序设计的主要特征与风格如下所

述。

(1)一个程序按结构化程序设计方式构造

时,由三种基本控制结构:顺序结构、选

择结构和循环结构构成。

(2)有限制地使用goto语句。鉴于goto语句

的存在使程序的静态书写顺序与动态执行

顺序十分不一致,导致程序难读难理解,

容易存在潜在的错误,难于证明正确性,

有人主张程序中禁止使用goto语句,但有

人则认为goto语句是一种有效设施,不应

全盘否定而完全禁止使用。结构程序设计

并不在于是否使用goto语句,因此作为一

种折衷,允许在程序中有限制地使用goto

语句。

(3)往往藉助于体现结构化程序设计思想的

所谓结构化程序设计语言来书写结构化程

序,并采用一定的书写格式以提高程序结

构的清晰性,增进程序的易读性。

(4)它强调了程序设计过程中人的思维方式

与规律,是一种自顶向下的程序设计策略,

它通过一组规则、规律与特有的风格对程

序设计细分和组织。对于小规模程序设计,

它与逐步精化的设计策略相联系,即采用

自顶向下、逐步求精的方法对其进行分析

和设计;对于大规模程序设计,它则与模

块化程序设计策略相结合,即将一个大规

模的问题划分为几个模块,每一个模块完

成一定的功能。

12、什么是软件?什么是软件工程?

计算机系统中的程序及其文档称为软件。

其中,程序是计算机任务的处理对象和处

理规则的描述;文档是为了理解程序所需

的阐述性资料。细言之,软件一词具有三

层含义。一为个体含义,即指计算机系统

中的程序及其文档;二为整体含义,即指

在特定计算机系统中所有上述个体含义下

的软件的总称,亦即计算机系统中硬件除

外的所有成分;三为学科含义,即指在研

究、开发、维护以及使用前述含义下的软

件所涉及的理论、方法、技术所构成的学

科。

软件工程是应用计算机科学、数学及管理

科学等原理,开发软件的工程。它借鉴了

传统工程的原则、方法,以提高软件质量,

降低开发成本为目的。其中,计算机科学、

数学用于构造模型和算法,工程科学用于

制订规范、设计范型、评估成本等,管理

科学用于计划、资源、质量、成本等管理。

软件工程是一门交叉性学科,迄今为止,

软件工程的研究与应用已取得很大成就,

大大缓解了软件危机,但是软件的开发还

是一项艰巨的任务,对于软件的如何组织

和开发还在不断地发展之中。

13、在软件工程过程中围绕着工程设计、

工程支持和工程管理应当遵循什么基本原

则?

围绕工程设计、工程支持以及工程管理,

提出了以下四条基本原则:

第一条原则是选取适宜的开发模型。该原

则与系统设计有关。在系统设计中,软件

需求、硬件需求以及其它因素之间是相互

制约、相互影响的,经常需要权衡。因此,

必须认识需求定义的易变性,采用适宜的

开发模型予以控制,以保证软件产品满足

用户的要求。

第二条原则是采用合适的设计方法。在软

件设计中,通常要考虑软件的模块化、抽

象与信息隐蔽、局部化、一致性以及适应

性等特征。合适的设计方法有助于这些特

征的实现,以达到软件工程的目标。

第三条原则是提供高质量的工程支持。在

软件工程中,软件工具与环境对软件过程

的支持颇为重要。软件工程项目的质量与

开销直接取决于对软件工程所提供的支撑

质量和效用。

第四条原则是重视开发过程的管理。软件

工程的管理,直接影响可用资源的有效利

用,生产满足目标的软件产品,提高软件

组织的生产能力等问题。因此,仅当软件

过程予以有效管理时,才能实现有效的软

件工程。

14、什么是软件的生存周期?如何划分软

件的生存周期?

软件产品从形成概念开始,经过开发、使

用和维护,直至最后退役的全过程称为软

件生存周期。

根据软件所处的状态、特征以及软件开发

活动的目的、任务可以将生存周期划分为

若干阶段。一般说来,软件生存周期包括

软件定义、软件开发、软件使用与维护三

个部分,并可进一步细分为可行性研究、

需求分析、概要设计、详细设计、实现、

组装测试、确认测试、使用、维护和退役

十个阶段。

15、瀑布模型的主要思想和特点是什么?

瀑布模型也称软件生存周期模型。根据软

件生存周期各个阶段的任务,瀑布模型从

可行性研究(或称系统需求分析)开始,

逐步进行阶段性变换,直至通过确认测试

并得到用户确认的软件产品为止。瀑布模

型上一阶段的变换结果是下一阶段变换的

相关文档
最新文档