计算机软件技术 知识点
.计算机软件技术是与软件设计、实施和使用相关的多种技术的统称。
.我们把具有共同属性、共同操作性质的对象的集合定义为类
.计算机软件分为两大类:系统软件和应用软件。
.递归调用必须用到的数据结构是栈。
.需求分析阶段的研究对象是用户要求
.系统软件包括操作系统、语言开发系统和测试工具等。
.软件测试的目的是发现错误,降低软件带来的风险
.计算机程序简称程序,是指计算机的指令序列。
.若只需要利用形参间接访问实参指针所指向的对象,而形参本身具有相应的存储空间,则应把形参变量说明为指针参数。
.可执行程序是指包含了计算机可以直接指向的指令文件,为了与源代码区别,可执行程序又被称为二进制代码。
.当利用大小为N的数组顺序存储一个栈时,假定用top==N表示栈空,则向这个栈插入一个元素时,首先应执行top语句修改top指针。
.需求分析阶段,系统分析人员要确定对问题的综合需求,其中最主要的是功能需求。
.栈和队列的共同特点是只允许在端点处插入和删除元素。
.需求分析阶段产生的最重要的文档是需求说明书。
.进程在3个基本状态中的转换,肯定不会有的转换是阻塞态→运行态
.数据流图反映系统“做什么”,不反映“如何做”,因此箭头上的数据流名称只能是名词或名词短语,整个图中不反映加工的执行顺序。
.在二级目录结构中,同一个用户不同文件的文件名一定不同
.属于需求分析阶段的文档是需求说明书。
.E—R方法的三要素是实体,属性,联系
.操作系统是一种系统软件。
.一棵有124个叶结点的完全二叉树,最多有248个结点。
.详细设计的基本任务是确定每个模块的算法设计。
.若从二叉树的任一结点出发到根的路径上所经过的结点序列按其关键字有序,则该二叉树是堆
.SQL语言中,删除一个表的命令是DROP。
.如果只想得到1000个元素组成的序列中第5个最小元素之前的部分排序的序列,用快速排序方法最快。
.测试用例应由输入数据和预期的输出数据两部分组成。
.若要尽可能快地完成对实数数组的排序,且要求排序是稳定的,则应选归并排序
.程序设计语言C++是 结构化程序设计语言 。
.在数据结构中,从逻辑上数据结构可分为线性结构、非线性结构两大类。
.进程是程序的执行过程,程序是代码的集合;进程是动态的,程序是静态的一个;进程是一个独立的运行单位,而一个程序段不能作为一个独立的运行单位。
.进程的三种状态分别是等待状态、阻塞状 和运行状态。
.进程状态的转换,不能实现的是就绪状态转到阻塞状态
.SQL语言中,如果想删除一个表中的数据,应该用的命令是DELETE。
.关于进程控制块的说法中,进程控制块的内容、格式及大小均相同错误是的。
.数据结构在计算机内存中的表示是指数据的物理结构。
.引入多道程序的目的在于充分利用CPU,减少CPU等待时间
.从未排序序列中依次取出一个元素与已排序序列中的元素依次进行比较,然后将其放在已排序序列的合适位置,该排序方法称为插入排序排序法。
.并发性是指若干事件在同一时间间隔发生。
.算法的计算量大小称为算法的复杂度。
.链表不具备的特点是可随机访问任一结点。
.结构化程序的最本质的控制结构有顺序、条件分支和迭代 。
.软件设计可分为概要设计和详细设计。
.软件工程生存周期发中,一般将程序设计阶段分为概要设计和详细设计两个阶段。
.执行完语句for(i=0;i<4;i++);后,循环变量i的值是4。
.软件生存周期包括需求分析、程序设计、编码、测试与排错等阶段。
.修改是数组的基本运算。
.所有对象都可以划分为不同的对象类,每个对象类都定义了一组数据和一组方法
.树最适合用来表示元素之间具有分支层次关系的数据。
.文件的存取方法有顺序存取和随机存取
.二分法查找是一种高效率的查找方法,在使用二分法查找前,查找表必须有序。
.主关键字是由 表中一列或多列组成的,可唯一标识表中 的一行数据记录。
.排序方法中,从未排序序列中依次取出元素与已排序列初始时取第一个元素中的元素进行比较,将其放入已排序序列的正确位置上的方法,称为插入排序。
.下列数据在C语言中属于“字符串常量”的是‘a’。
.为了表示关系x≥y≥z,应该使用的C语言表达式是(x>=y) && (y>=z)。
.常用的计算机网络拓扑结构主要有总线型、星型、环型、网状四种。
.一个栈的进栈序列是a,b,c,d,e,则不可能的出栈序列是dceab。
.栈和队列没有共同点。
.进程通信可分为互斥和同步两类。
.数据库系统DBS: 数据库系统是研究如何妥善地保存和科学地管理数据的计算机系统,由数据库、数据库管理系统、应用程序、数据库管理员、用户等构成的人机系统。
.数据库应用系统主要包括数据库、数据库管理系统、数据库应用程序。
.虚拟局域网:所谓的虚拟局域网就是将局域网上的用户或结点划分成若干个“逻辑工作组”,逻辑组的用户或结点可以根据功能、部门、应用等因素划分而无须考虑它们所处的物理位置。
.没有反映数据库系统优点的是数据面向应用程序。
.设有变量定义语句char c1=’a’, c2=’d’;,测对表达式c2-c1的描述正确的是值为3。
.关系中的元组没有先后顺序,属性也没有先后顺序。
.满二叉树是 一定是完全二叉树 。。
.完整的计算机系统应该包括五部分组成: 1.人员 2.数据 3.设备 4.程序 5.规程
.SQL语言的一次查询结果是一个表。
.数据的存储结构主要有数据的存储结构,向量和链表两种;它们之间的本质区别是
向量是连续存放的,其存储空间是静态分配的,以存放顺序来表达元素的前后件的关系。链式存储结果不需要一组连续的存储单元,其数据元素可以分散存放在存储空间中,其元素关系由指针来指向。
.程序测试和软件调试是 不一样 的。
.常用的三种数据模型分别是:层次模型、网状模型和关系模型。
.在软件的生存周期中,需求分析阶段应准确地确定软件系统必须做什么和必须具备哪些功能。
.结构化设计方法的目标是使模块间联系尽可能小,模块内联系尽可能大。
.在单链表中结点*p后插入结点*s的指令序列为 s—>next=p—>next;p—>next=s。
.TCP是传输控制协议,IP是网际协议。TCP/IP是一组计算机通信协议的集合。
与OSI的异同: TCP/IP也采用分层模式,但它是由四个层次组成:应用层、传输层、网间网层、网络接口层。它们都采用了层次结构的概念,在传输层中二者定义了相似的功能。但是,二者在层次划分与使用的协议上,有很大区别。
.数据字典:指对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明。
.结构化分析的基本思想是采用自顶向下、逐层分解的方法,有效地控制系统开发的复杂性。
.在数据库操作中,select完成查询功能,insert完成插入功能,update成更新功能,delete完成删除功能。
.递归算法:递归是构造计算机算法的一种基本方法。如果一个过程直接或间接地调用它自身,则称该过程是递归,递归过程必须有一个递归终止条件,即存在“递归出口”。无条件的递归是毫无意义的。
. 数据库编程:
给定下列三个关系模式:S(SNO,SN,SEX,AGE,DEPT);C(CNO,CN,TNAME);SC(SNO,CNO,GRADE)。其中:
S:学生表;C:课程表;SC:学生选课表。
SNO:学号;SN:姓名;SEX:性别;AGE:年龄;DEPT:学生所在系。
CNO:课程编号;CN:课程名称;TNAME:代课教师姓名。
GRADE:学生所选课成绩。
注:本题中男生字段值为‘M’,女生字段值为‘W’,课程字段值直接用课程中文,如数学课字段值‘数学’,学生和老师的名字字段值直接用其名字的中文,年龄字段值为年龄的整数值。
请写出以下问题的SQL计算机序列(注:采用SQL92标准)。
1)给出年龄在17~19岁之间的学生学号和姓名。
2)往基本表S中插入一个学生元组(‘990750’,‘钱江’,18)。
3)查询所有学生的姓名、年龄和所选课程的名称和成绩。
4)检索选修课程包含所有姓王的老师所授课程的学生学号。
程序如下:
1)SELECT SNO, SN FROM S
WHERE AGE BETWEEN 17 AND 19
(WHERE AGE IN(17,18,19))(WHERE AGE>17 AND AGE <19)
2)INSERT INTO S(SNO,SN,SEX,AGE,DEPT)
VALUES(‘990750’,‘钱江’,,18)
3)SELECT S.SN, S.AGE, C.CN,C.GRADE FROM S, C, SC
WHERE S.SNO =SC.SNO AND C.CNO =SC.CNO
4)SELECT SNO FROM SC
WHERE CNO IN(SELECT CNO FROM C WHERE TNAME =‘王%’)
(SELECT SNO FROM SC, C
WHERE C.CNO =SC.CNO AND C.TNAME =‘王%’)
.数组的存储结构是一种 顺序存取结构。
.数据结构主要研究数据的逻辑结构、数据的存储结构和在这些结构上定义的运算这三个方面的内容。
.进程:一个具有一定独立功能的程序关于某个数据集合的一次运行活动。
.数据的存储结构常用的存储方法有顺序存储方法;链式存储方法;索引存储方法和散列存储方法四种。
.软件测试中, 可以 输入不合理的数据来进行测试。
.对于给定的n个元素,可以构造出的逻辑结构有:集合;线性结构;树形结构;和图或网状结构四种。
.栈的特点是先进后出,队列的特点是先进先出,栈和队列都是操作受限的线性表。
.数组的存储结构采用顺序存储方式。
.队列:是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。
.操作系统是位于计算机系统中的硬件和软件之间的接口,负责管理和协调计算机硬件的操作和计算机有限资源共享。
.文件的两种存取方法:根据记录编号,对每一条记录固定位置存取,实现随机存取;利用链表指针,实现随机操作。
.作业:用户在一次运算过程中,或一次事务处理中要求计算机所做的全部工作的总和。
.计算机软件技术的主要范畴是:软件工程技术、程序设计技术、软件工具环境技术、系统软件技术、数据库技术、实时软件技术、网络软件技术、与实际工作相关的软件技术等
.软件危机是指软件开发技术的进步未能满足发展的要求,在计算机软件开发过程中遇到的一系列问题,如开发周期延长,成本增加,可靠性降低等。软件危机是由软件产品本身的特点以及开发软件的方式、方法、技术和人员引起的。具体原因如下:(1)软件规模越来越大,结构越来越复杂;(2)软件开发管理困难而复杂;(3)软件开发费用不断增加;(4)软件开发技术落后;(5)软件生产方式落后;(6)软件开发工具落后,生产率提高缓慢。
设计一个求结点x在二叉树中的双亲结点算法。
算法如下:
typedef struct node {datatype data; struct node *lchild,*rchild;} bitree;
bitree *q[20]; int r=0,f=0,flag=0;
void preorder(bitree *bt, char x)
{
if (bt!=0 && flag==0)
if (bt->data==x) { flag=1; return;}
else {r=(r+1)% 20; q[r]=bt; preorder(bt->lchild,x); preorder(bt->rchild,x); }
}
void parent(bitree *bt,char x)
{
int i;
preorder(bt,x);
for(i=f+1; i<=r; i++) if (q[i]->lchild->data==x || q[i]->rchild->data) break;
if (flag==0) printf("not found x\n");
else if (i<=r) printf("%c",bt->data); else printf("not parent");
}
.计算机操作系统的发展经历的阶段:操作系统的酝酿阶段、操作系统的形成阶段、操作系统的理论化和标准化阶段
.解除死锁的常用的两种方:剥夺资源。从其它进程剥夺足够数量的资源给死锁进程,以解除死锁状态;撤消进程。最简单的撤消进程方法,是使全部死锁进程都夭折掉;稍微温和一点的方法是按照某种顺序逐个地撤消进程,直至有足够的资源可用死锁状态消除为止。
.计算机开发系统的发展经历的阶段:机器语言阶段、汇编语言阶段、高级语言阶段、面向对象语言和可视化语言阶段
.数据流图简称DFD,是SA(结构化分析)方法中用于表示系统逻辑模型的一种工具,它以图形的方式描绘数据在系统中流动和处理的过程。由于它只反映系统必须完成的逻辑功能,因此它是一种功能模型。
何谓客户机/服务器模式是把网络应用程序分为两部分,称为前端和后端。前端程序装载在客户机上,它负责执行客户要求服务的可执行程序,并将服务器返回的内容反馈给客户;后端程序装载在服务器上,在服务器上运行着繁重的数据处理程序,为多个客户并发地提供各种服务,因此它还具有并发控制、保证数据完整等功能。 优点:在服务器的应用中,应用程序和数据都集中在共享文件服务器上,当用户需要服务时,相应的应用程序和数据文件就整个地从文件服务器下载到用户计算机上,这样如果大量用户要求类似服务,将会灾难性地增加网络的通信量。现在由于 服务器能集中处理用户要求的服务,从而使得具有慢速计算机的用户可利用共享服务器提供高速运算能力。
.数据库系统DBS:数据库系统是研究如何妥善地保存和科学地管理数据的计算机系统,由数据库、数据库管理系统、应用程序、数据库管理员、用户等构成的人机系统。
.某银行计算机储蓄系统的功能是:将储户填写的存款单或取款单输入系统,如果是存款,则系统记录存款人的姓名、住址、存款类型、存款日期、利率等信息,并打印出存款单给储户;如果是取款,则系统计算并打印清单给储户。请用DFD描述该系统功能。
答:
.现已设计好一个客户表如下表所示。该表是否存在数据冗余?如何解决?
客户号 |
客户姓名 |
客户电话 |
业务员号 |
业务员姓名 |
业务员电话 |
1001 |
张强 |
(29)87420174 |
110 |
杨兰 |
(29)83220164 |
1002 |
李宁 |
(29)82031344 |
306 |
刘晓东 |
(29)83431448 |
1003 |
高大山 |
(29)84342323 |
110 |
杨兰 |
(29)83220164 |
…… |
…… |
…… |
…… |
…… |
…… |
答:
一个业务员可能有多个客户,这样每记录一个客户都要写上业务员的信息。如果多个客户的业务员相同,那也就多次重复存储该业务员的信息,这样就造成了数据冗余的问题。数据冗余问题要通过分解表的方法来解决。可将上表分解成单独存放客户信息的表、单独存放业务员信息的表以及客户与业务员之间的联系表
.进程和程序有何区别:程序是静止的进程是动态的,进程包括程序和程序处理的对象,进程能得到程序处理的结果,进程和程序并非一一对应的,一个程序运行在不同的数据集上就构成了不同的进程。进程是一个具有独立功能的程序关于某个数据集合上的一次运行活动,程序是具有独立功能的一项指令的集合。
.假设一棵二叉树的中序序列为dbeacf, 后序序列为debfca。请画出该二叉树并写出该二叉树的先序序列。
答:先序序列为:abdecf