《软件》课后习题答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《软件》课后习题答案
第一章
1.什么是程序,程序有哪些特性?
程序:是一个用计算机语言描述的某一问题的解决步骤,它的表示是静态的。
特性:静态与动态属性,由程序语言抽象的符号表达,是对数据施行算法的过程,是分层嵌套的。2.软件有哪些特性?
特性:功能、性能相对完备的程序系统,具有使用性能的软设备,软件是信息商品,易大批量生产、成本低,是极具竞争性的商品,投入的资金主要是人工费,是只有过时而无“磨损”的商品。
3.什么是群件,目前常见的群件产品有哪些?
群件:是近几年开发的一种基于电子邮件的应急系统软件,它拓
宽了电子邮件的的内涵,涵盖了很多通信协调功能。目前常见的群件产品有:IBM公司的lotus Note、Microsoft公司的Exchange Server 、Novell公司的Group Wise等
4.计算机的软件是由哪几部分组成的,各自的作用是什么?
软件由:软件程序(解题步骤)+数据(描述事物的属性和状态)+文档(功能性能的说明性信息)组成。
5.什么是程序开发环境,常见的开发环境有那些?
程序开发环境:即现在作用到的编程语言,一般以一个集成环境的形式出现。
此环境中包含了语言编辑器,调试工具,编译工具,运行工具,图标图像制作工具等。
6.常见的Internet工具有哪些?
Web服务器软件、web浏览器、文件传送工具FTP、远程访问工具Telnet、邮件软件、网络聊天、多媒体等。
7.操作系统的作用(功能)是什么?
1、处理器管理
2、存储器管理
3、设备管理
4、文件管理
5、作业管理。
8.文件系统足以支持程序运行,数据库的作用是什么?
克服文件系统的缺陷。
9.软件开发的核心是编制可运行的程序,还有比这跟重要的工作么?
系统分析和数据分析。
10.程序设计语言本身是软件么?
是,而且是系统软件。
第二章
1.程序设计语言有哪两种实现方式,各有什么优缺点?
方式一:编译(优:可进行优化,目标码效率很高。缺:费时)方式二:解释(优:可以逐句读入源代码,比较灵活,小巧。解释器不大,工作空间也不大,且能根据程序的执行情况决定下一步需做什么。缺:一句一句的难于优化,效率低)
2.结构化程序设计语言有那几种基本控制结构?
顺序、选择、循环。
3.为什么要引进过程,过程和函数的区别有哪些?
引进了过程或函数可以让程序语言更清晰,可以多次调用。使用过程还可以降低程序的复杂性,使程序结构变得清晰明了。过程是不带返回值,函数是带返回值。
4.什么是全局变量,什么是局部变量?
全局变量:出了程序便失去定义,作用范围,整个程序。
局部变量:局部的程序块中有定义。
5. 什么是指针变量?
指向数据的地址的变量。
6.过程参数传递的方式有哪几种,各有什么特点?
传值:优:很安全,不会改变全局变量的值。缺:占用双倍存储单元,传值时不能带回值。
引用:优:能带返回值,存储空间小。缺;局部有可能改变全局变量的值。
7.简述变量的生命期及变量的种类.
程序中变量的生命期随其声明时所在的程序块而异。程序执行完它的所有数据变量后均会失去意义。
种类:持久变量,全局变量,静态局变量,自动变量,循环控制变量。
8.简述面对对象程序设计语言的基本特点。
类和对象
9.到目前为止,程序设计语言一共分为4代,试简述每一代语言的特点并举出有代表性的语言。
把面向机器编程的第一代语言:机器码、汇编语言排除在外。第二代语言:早期的高级程序设计语言。第三代语言:结构化程序设计语言(面向算法过程的)。第四代语言:数据库查询语言(只描述程序应“做什么”,而不必编写“怎么做”的实现模块)
10.简述Internet环境编程语言的一些基本特性。
1、平台无关
2、编译—解释执行3更为纯粹的面向程序语言4、支持网络安全5、支持多线程6、接口作为类型7、支持网络上分布式应用。
11.简述程序分裂出过程(子例程)、过程/函数的型构和体的显示分离以及接口类和类分离对软件技术发展的影响。
12.为什么说Java的即时编译是当前编译技术的最新发展?
对于多次重复或耗时较长的段落进行编译后,作为模块暂存,下次遇到时则直接执行目标码。
第三章
1.算法、数据结构和程序
程序=算法+数据结构
2.什么是算法,它所包含的两个要素是什么?
算法:一个有穷规则的集合,规定了解决某段问题的运算序列。它是有穷的、确定的、能行的,并有0到多个1到多个输出。
所包含的两个要素:方法,步骤。
3.算法的控制结构有哪些形式?
算法的控制结构的形式:顺序、选择、循环。
4.算法的表述有哪几种方式?
自然语言、伪代码、流程图。
5.什么是数据结构,它所研究的内容包括几方面?
数据结构是相互有关联的数据元素的集合。
方面:算法、逻辑结构和物理结构,数据结构的图形表示。
6.线性和非线性数据结构的主要区别是什么,各包括哪些数据结构?
线性:栈、队、链表、顺序表。
非线性:树、图、文件。
7.试用类VC语言写出单链表的插入及删除算法。
8.一棵度为2的树与一棵二叉树有何区别?
度为2的树:树的最大结点的度为2
二叉树:不存在度大于2的结点.五种基本形态:空二叉树,仅有根节点的二叉树,左子树为空的二叉树,右子树为空的二叉树,左右子树均不为空的二叉数
10.已知某二叉树的前序遍历序列为ABDEGCFHIJ,中序遍历为DBGEAHFIJC,写出该二叉树后序遍历的序列
DGEBHJIFCA
11.试用VC语言写出起泡排序的算法
#include
int sort(int n)
{ int i,j,temp;
for (i=1;i<n;i++)< p="">
for (j=0;j<n-i;j++)< p="">
if (a[j]>a[j+1]) {temp=a[j];a[j]=a[j+1];a[j+1]=temp;}
}
int main(void)
{ int i,n;
scanf("%d",&n);
int *a=new int[n];
for (i=0;i<n;i++)< p="">
scanf("%d",&n);
sort(n);
for (i=0;i<n;i++)< p="">
printf("%d ",a[i]);
return 0;
}
12.试分别说明堆栈、队列和数组之间的相同于不同点。
相同:都是线性。不同:堆栈只在一端操作。
第五章