软件技术基础考卷
全国计算机软件技术考试试题及答案

全国计算机软件技术考试试题及答案考试科目:计算机软件技术基础试题一问题描述:编写一个程序,实现输入一个整数,输出该整数的阶乘。
答案:def factorial(n):if n == 0:return 1else:return n * factorial(n-1)n = int(input("请输入一个整数:"))print("阶乘为:", factorial(n))试题二问题描述:编写一个程序,实现输入一个字符串,输出该字符串中字符出现次数最多的字符及其出现次数。
答案:def most_frequent_char(s):char_count = {}max_count = 0most_frequent_char = ''for char in s:if char in char_count:char_count[char] += 1else:char_count[char] = 1if char_count[char] > max_count:max_count = char_count[char]most_frequent_char = charreturn most_frequent_char, max_counts = input("请输入一个字符串:")char, count = most_frequent_char(s)print("出现次数最多的字符为:", char, ",出现次数为:", count)试题三问题描述:编写一个程序,实现输入一个整数,输出该整数的所有因数。
答案:def print_factors(n):factors = []for i in range(1, n + 1):if n % i == 0:factors.append(i)print("因数为:", factors)n = int(input("请输入一个整数:"))print_factors(n)以上为三道试题的答案,希望能够帮助您顺利通过全国计算机软件技术考试。
软件技术基础试题库

软件技术基础试题库软件技术基础(21次)一、是非判断题(10分)1.应用程序在执行过程中,需要通过打印机输出数据时,一般先形成一个打印作业,将其存放在硬盘中的一个指定队列中。
当打印机空闲时,就会按先来后服务的方式从中取出待打印的作业进行打印。
(F)2.若无进程处于运行状态,则就绪队列和等待队列均为空。
(F)3.多道程序设计是指在一台处理机上并发运行多个程序。
(T)4.黑盒法是软件测试方法中的静态测试方法之一。
(T)5.软件的详细设计就是要编写出具体的程序。
(F)6.软件生命周期中花费最多的阶段是软件维护。
(T)7.WINDOWS是单用户多任务操作系统,UNIX是多用户多任务操作系统。
(T)8.进程把程序作为它的运行实体,没有程序也就没有进程。
(T)9.在结构化分析中,用于是描述加工逻辑的主要工具有三程,即:结构化语言、判断表和判定树。
(T)10.作业调度程序从后备队列中选一个作业装入主存后,决定能否占用处理机的是设备调度程序。
(F)二.单项选择题(5分)1.交换技术是在()之间交换程序和数据。
A.主内存与CPUB.CPU与外设C.主内存与外存D.外存与CPU2.以下的工具中哪个不是软件详细设计中使用的工具()A.数据流图B.N-S图C.PDA图D.PDL语言注:软件开发阶段包括需求分析、总体设计、详细设计、编码和测试五个阶段。
其中需求分析阶段常用的工具是数据流程图和数据字典。
3.任何两个并发进程之间()A.一定存在互斥关系B.一定存在同步关系C.一定彼此独立无关D.可能存在同步或互斥关系4.进程从运行状态进入就绪状态的原因可能是()A.被选中占有处理机B.等待某一事件C.等待的事件已发生D.时间片用完5.算法指的是()A.计算机程序B.解决问题的有限运算序列C.排序算法D.解决问题的计算方法软件技术基础模拟试题(第二十次省统考)一、是非判断题(正确选填A,错误选填B)(每小题1分,共10分)1、数据元素是数据的基本单位,数据项是数据的最小单位。
“软件技术基础”考题(含答案)(精)

第三十次:一、是非判断题(每小题 1分,共 10分( 判断下列各题是否正确,如正确,在客观答题纸上对应编号选 A ,否则选 B1. 能影响中断响应次序的技术是中断优先级和中断屏蔽。
( 12. 线性结构中元素的关系是一对一,树形结构中元素的关系也是一对一。
( 23. 在操作系统中,进程是一个具有独立运行功能的程序在某个数据集合上的一次运行过程。
( 34. 操作系统的存储器管理部分负责对进程进行调度。
( 45. 分时操作系统通常采用时间片轮转策略为用户服务。
( 56. 作业与进程的主要区别是前者是由用户提交,后者是由系统自动生成。
( 67. 顺序查找只适用于存储结构为顺序存储的线性表。
( 78. 栈顶的位置是随着进栈和退栈操作而变化的。
( 89. 结构化程序设计主要强调的是程序的易读性。
( 9 10. 在结构化分析中,用于描述加工逻辑的主要工具有三种,即:结构化语言、判定表、判定树。
( 10 参考答案 :二、选择题 (每小题 1分,共 5分1. 分页式存储管理的主要特点是(11 。
11 (A 要求作业全部同时装入内存 (B 不要求作业装入到内存的连续区域(C 要求扩充外存容量 (D 不要求处理缺页中断2. 进程从运行状态进入就绪状态的原因可能是(12 。
12 (A 被选中占有处理机 (B 等待某一事件(C 等待的事件已发生 (D 时间片用完3. 多道程序设计是指(13 。
13 (A 在实时系统中并发运行多个程序 (B 在分布系统工程中同一时刻运行多个程序 (C 在一台处理机上同一时刻运行多个程序 (D 在一台处理机上并发运行多个程序 4. 需求分析中开发人员主要从用户那里了解(14 。
14 (A 软件如何做 (B 软件数据结构(C 软件做什么 (D 软件模块大小5. 对象实现了数据和操作的结合,使数据和操作 (15 于对象的统一体中。
15 (A 结合 (B 隐藏(C 封装 (D 抽象参考答案 :第二十九次:一、是非判断题(每小题 1分,共 10分( 判断下列各题是否正确,如正确,在客观答题纸上对应编号选 A ,否则选 B1. 在设备管理中通道是处理输入、输出的软件。
软件技术基础试题(含答案)

《操作系统》选择题:(bs30)1. 分页式存储管理的主要特点是(B)。
(A) 要求作业全部同时装入内存(B) 不要求作业装入到内存的连续区域(C) 要求扩充外存容量(D) 不要求处理缺页中断(bs30)2. 进程从运行状态进入就绪状态的原因可能是(D)。
(A) 被选中占有处理机(B) 等待某一事件(C) 等待的事件已发生(D) 时间片用完(bs30)3. 多道程序设计是指(D)。
(A) 在实时系统中并发运行多个程序(B) 在分布系统工程中同一时刻运行多个程序(C) 在一台处理机上同一时刻运行多个程序(D) 在一台处理机上并发运行多个程序(bs29)2. 进程从运行状态进入就绪状态的原因可能是( A )。
(A) 时间片用完(B) 等待某一事件(C) 等待的事件已发生(D) 被选中占有处理机(bs29)4. 以下(D)不是实时操作系统的特点。
(A) 高可靠性(B) 及时响应(C) 高效性(D) 通用性(bs28)3. 任何两个并发进程之间( A )。
(A) 可能存在同步或互斥关系(B) 一定存在同步关系(C) 一定彼此独立无关(D) 一定存在互斥关系(bs28)4. 以下的哪个特征不是分时操作系统的主要特征(B)。
(A) 分时性(B) 独占性(C) 交互性(D) 多路性(bs27)2. 以下(D)不是实时操作系统的特点。
(A) 高可靠性(B) 及时响应(C) 中断管理(D) 独立性(bs27)3. 若当前进程因时间片用完而让出处理机时,该进程应转变为(B)状态。
(A) 运行(B) 就绪(C) 等待(D) 完成(bs26)3. 在多道程序设计系统中,处于后备状态的作业要经过(D)调度后才能真正执行。
(A) 作业调度(B) 作业调度和设备调度(C) 进程调度(D) 作业调度和进程调度(bs25)1. 把高级语言的源程序翻译成二进制代码的过程称为:(A)。
(A) 编译(B) 连接(C) 运行(D) 重定位(bs25)2. 把逻辑地址转变为内存的物理地址的过程称作(D)。
软件技术基础总复习题及参考答案

软件技术基础总复习题及参考答案软件技术基础总复习题及参考答案一、选择题1、线性表若是采用链式存储结构时,要求内存中可用存储单元的地址 D 。
A、必须是连续的B、部分地址必须是连续的C、一定是不连续的D、连续或不连续都可以2、栈和队列都是B 。
A、顺序存贮的线性结构B、限制存取点的线性结构C、链接存贮的线性结构D、限制存取点的非线性结构3、与线性表的链接存贮不相符合的特性是 C 。
A、便于插、删运算B、存贮空间动态分配C、需要连续的存贮空间D、只能顺序查找4、设二叉树的根为第一层,则第i 层上的结点数最多有B。
A、2i B、2i +1D、2i -1C、2-1i 5、如将一棵有n 个结点的完全二叉树按顺序存放方式,存放在下标编号为0, 1,…, n-1 的一维数组中,设某结点下标为k(k>0),则其双亲结点的下标是A。
A、(k-1)/2B、(k+1)/2C、k/2D、k-16、权值分别为3,8,6,2,5 的叶子结点生成一棵霍夫曼树,它的带权路径长度为A。
A、53 B、48 C、72 D、247、设I 和O 分别表示入栈和出栈操作,栈的初态和终态都为空,则下列操作序列合法的有_ D_ _。
A、IOIOOIOIB、IOOIOIIOC、IIIOIOIOOD、IIOIIOOO 8、二叉树的前序序列为EFHIGJK,中序序列为HFIEJKG,则二叉树的根为C 。
A、K B、G C、E D、H 9、对有序表{ -1, 0, 1, 3, 4, 6, 8, 10, 12 }进行折半查找,则查找12 需要比较的次数为 B 。
A、3 B、4 C、5 D、6 10、在一个单链表中,若q 结点是p 结点的前驱结点,若在q 与p 之间插入结点s,则执行 D 。
A、s→link = p→link; p→link = s; B、p→link= s; s→link = q; C、p→link = s→link; s→link = p; D、q→link = s; s→lin k = p; 11、一个栈的入栈序列为a,b,c,则出栈序列不可能的是C 。
《计算机软件技术基础》试题及答案

《计算机软件技术基础》试题1.线性表的链式储存结构与次序储存结构对比优点是CD 。
A.所有的操作算法实现简单B.便于随机存取C.便于插入和删除D.便于利用零落的储存器空间2.线性表是拥有n个 C 的有限序列。
A.表元素B.字符C.数据元素D.数据项E.信息项3.若长度为n的线性表采纳次序储存结构, 在其第I个地点插入一个新元素的算法的时间复杂度为 C 。
(1≤I≤n+1)A.O(0)B.O(1)C.O(n)D.O(n2)4.设A是一个线性表(a1,a2,…,an), 采纳次序储存结构, 则在等概率的前提下, 均匀每插入一个元素需要挪动的元素个数为 B , 均匀每删除一个元素需要挪动的元素个数为A ;若元素插在ai与ai+1之间(0≤I≤n-1)的概率为, 则均匀每插入一个元素所要挪动的元素个数为 C ;A. B.C. D.5.以下函数中, 按它们在时的无量大阶数, 最大的是 D 。
A.lognB.nlognC.2n/2D.n!6.将以下图所示的s所指结点加到p所指的结点以后, 其语句应为: D 。
A.s->next=p+1.p->next=s;B.(*p).next=s.(*s).next=(*p).next;C.s->next=p->next.p->next=s->next;D.s->next=p->next.p->next=s;7.将两个各有n个元素的有序表合并为一个有序表时, 其最少的比较次数是A 。
A.nB.2n-1C.n-1D.2n8.下边的程序段是合并两个无头结点链表(ha和hb)为一个无头结点链表ha的过程, 作为参数的两个链表都是按结点的data域由大到小链接的。
合并后新链表的结点仍按此方式链接。
请填写下述空框, 使程序能正确运转。
#define NULL 0typedef struct node{int data;struct node *next;}node, linklisttype;void combine(linklisttype *ha, linklisttype *hb){linklisttype *h, *p;h = (linklisttype *)malloc(sizeof(linklisttype));h->next = NULL;p = h;while(ha != NULL && hb != NULL)if(ha->data>=hb->data){ /*较大的元素先插入*/p->next = (1) ;p = (2) ;(3) ;}else{p->next = (4) ;p = (5) ;(6) ;}if(ha==NULL) (7) ;if(hb==NULL) (8) ;ha = h->next;free(h);}参照答案: (1) ha (2) p->next (3) ha=ha->next(4) hb (5) p->next (6) hb=hb->next(7) p->next=hb (8) p->next=ha9.假如表A中所有元素(a1,a2,…,an)与表B的一个次序子表(bk,bk+1,…bk+n-1)完好同样(即a1=bk,a2=bk+1,…an=bk+n-1), 则称表A包含在表B中。
软件技术基础试题1.docx

7、对J一个头指针为head的带头结点的单链表,判定该表为空的条件是( )。
(A) head=NULL;(B) head->next=NULL;(C) head->next=head;(D) head!=NULL;8、假定利用数组a[N]顺序存储一个栈,用top表示栈顶指针,top=-l表示栈空,已知栈未空,则退栈并返回栈顶元素时所执行的操作为( )。
(A) return a[一top]: (B) return a [top一];(C) return a[++top]: (D) return a[top++]:9、在一个长度为n的顺序存储的线性表中,向第i个元素(IWiWn+l)位置插入一个新元素时,需要从后向前依次后移( )元素。
(A) n-i (B) n-i+1 (C) n-i-1 (D) i10、采用分段存储管理的系统中,若地址用24位表示,其中8位表示段号,则允许每段的最大长度是( )。
(A) 224(B) 216(C) 28(D) 23211、若根据查找表建立长度为m的线性哈希表,假定对一个元素第一次计算的地址为d,如冲突,则下一次的地址为( )。
(A) d (B) d+1 (C) (d+1) /m (D) (d+1) mod m12、表达式a/ (b-d) +c的波兰表示式为( )。
(A) abdc/-+ (B) abd-/c+ (C) abd/-c+ (D) +-/abdc13、在一个单链表中,若要在P所指向的结点之后插入一个新结点,则需要相继修改( )个指针域的值。
(A) 1 (B) 2 (C) 3 (D)414、将两个各有n个元素的有序表归并为一个有序表时,其最少的比较次数是( )(A) n (B) 2n-l (C) n-1 (D) 2n15、设计一个判别表达式中左、右括号是否配对出现的算法,采用( )数据结构最佳。
(A)线形表的顺序存储结构(B)队列(C)线形表的链式存储结构(D)栈计算机软件技术基础()试 题一、单项选择题(第1-15题,每小题2分,共30分)1、 已知三对角矩阵A[1..9, 1..9]的每个元素占2个单元,现将其三条对角线上的元素逐行存储在起始地址为1000的连续内存单元中则元 素A[7, 8]的地址为()。
“软件技术基础”考题(含答案)

第三十二次一、是非判断题(每小题1分,共10分)( 判断下列各题是否正确,如正确,在客观答题纸上对应编号选A,否则选B )1. 在程序设计中,常用一维数组来表示线性表的顺序存储空间。
( 1 )2. 软件测试的目的是为用户提供没有错误的程序。
( 2 )3. 栈顶的位置只能进行进栈操作不能进行退栈操作。
( 3 )4. 处于等待状态的进程,若其等待的事件已发生,就立即转入运行状态。
( 4 )5. 线性表若采用链式存储表示时其结点之间的存储单元地址可以不连续。
( 5 )6. 在进行插入排序时,其数据比较次数与数据的初始排列有关。
( 6 )7. 数据的逻辑结构是从逻辑关系上描述数据,它与数据的存储结构无关,是独立于计算机的。
( 7 )8. 在操作系统中,进程最基本的特征是静态性和并发性。
( 8 )9. 软件危机是由于软件产品过多而产生的。
( 9 )10.面向过程系统需求分析使用的主要工具是数据流图和数据字典。
( 10 ) 参考答案:ABBBA AABBA二、选择题(每小题1分,共5分)1. 进程从运行状态进入就绪状态的原因可能是(11 )。
11 (A) 时间片用完(B) 等待某一事件(C) 等待的事件已发生(D) 被选中占有处理机2. 需求分析中开发人员主要从用户那里了解(12 )。
12 (A) 软件怎样做(B) 软件做什么(C) 输入的信息(D) 软件的测试3. 队列的操作原则是(13 )。
13 (A) 先进后出(B) 先进先出(C) 只进不出(D) 只出不进4. 在需要经常查找结点的前驱后后继的情况下,使用(14 )比较合适。
14 (A) 单链表(B) 循环链表(C) 双链表(D) 顺序表5. 任何两个并发进程之间(15 )。
15 (A) 一定存在互斥关系(B) 一定存在同步关系(C) 一定彼此独立无关(D) 可能存在同步或互斥关系参考答案:ABBCD第三十一次一、是非判断题(每小题1分,共10分)( 判断下列各题是否正确,如正确,在客观答题纸上对应编号选A,否则选B )1. 数据在计算机内存中的表示是指数据的存储结构。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件技术基础考卷2014-2015年一、论述软件测试与调试的异同点(10分)二、说明软件模块化的思想和优劣点(10分)基本思想:在系统建立之前信息就能被充分理解。
它要求严格划分开发阶段,用规范的方法与图表工具有步骤地来完成各阶段的工作,每个阶段都以规范的文档资料作为其成果,最终得到满足用户需要的系统。
优点:(1)逻辑设计与物理设计分开(2)开发过程中形成一套规范化的文档,便于后期的修改和维护缺点:(1)开发周期长(2)系统难以适应环境的变化(3)开发过程复杂繁琐三、(15分)1设计算法,对链表方式存储的二叉树T,判断该树T是否为排序二叉树。
2设计算法,找到无向图中度最大的结点。
(20分)四、(15分)在同义词词典程序的设计中,需要存贮同义词。
根据功能设计存储机构,以类C语言描述存储结构并给出注释说明,并给出查找给定词word所有同义词的算法。
2011—2012年一、评价程序的方法二、软件设计中,需求分析阶段所用方法三、设计算法实现哈希排序四、设计算法输出图中节点的入度和出度五、设计算法将十进制数以八进制数输出六、求二叉树的叶节点数2009-2010 学年第一学期期末试卷学号姓名成绩考试日期:2009年12月 23 日考试科目:《软件技术基础》(A卷)注意事项:1、考试时间120分钟题目:一、论述问题(本题共 40 分)1、在一个算法中,时间与空间往往构成一对矛盾体,论述并举例说明解决时间的有效方法。
(本小题15分)论述解决时间的有效方法:1)增加存储空间是解决问题的一种方法2)有效的算法是解决问题的有效方法举例:任何例子,能反映算法有效性都可以。
2、论述并举例说明软件工程中的测试与调试之间的相同点与不同点?(本小题10分)答题要点及分数:1)软件调试是编码过程中校正代码的过程2)软件测试是软件工程中一个评价软件的过程3)相同点在于试图考证程序的正确与否4)不同点在于组织方式,实施方法以及结果处理等几个方面组织方式:调试工作由程序员完成,测试需要独立的小组实施方法:调试基于代码级,测试可以是白盒子也可以是黑盒子结果处理:调试中发现的错误要改正,测试中只记录测试结果3、阐述图与二叉树的相同点和不同点,在此基础上,阐述二叉树的前序遍历算法与图的深度优先遍历算法的相同点和不同点?(本小题15分)1)图与二叉树都是非线性结构2)图与二叉树之间的不同点是:二叉树中不同点的后继集合不相交,而图则不然3)遍历算法中的相同点:访问当前结点,然后访问该结点的后继结点(邻结点)。
4)遍历算法中的不同点:对于图的访问,访问结点时需要记录已访问标志,访问结点的邻结点时需要判断是否已访问;对于二叉树而言,访问邻结点时,不需要记录与判断。
二、假设在数组A[N]中存贮N个整数,设计算法change(int *A, int *B, int N),其中N为数组A中元素的个数,该算法将数组A中整数移动到数组B中,使得数组B中的元素呈现小、大、小、大间隔的形式,即B[0]<B[1], B[1]>B[2], B[2]<B[3], B[3]>B[4],……,而且相邻两元素值之间的差的绝对值随下标值的增加呈现不增加趋势,例如|B[0]-B[1]|≥|B[1]-B[2]|≥|B[2]-B[3]| (本题20分)1、排序用冒泡排序法对数组A排序:数组A的元素两两比较,大的放在后面(即若前面的大于后面的,交换两元素的为止)。
循环执行直到不交换为止。
2、移动定义两个变量i,j。
初始i= 0;j = N- 1。
定义一个变量m ,初值为0。
循环执行以下操作:B[m] = A[i];B[m+1] = A[j];m += 2;i++;j--;直到i >= j最后if(i == j)B[m] = A[i];算法的核心是对数组A实现从小到大的排序,然后从A数组的左右两端分别取数据,顺序放入B数组。
三、假设每个人的信息仅包括姓名,年令和性别,在某信息管理系统中,经常需要查找同令人的姓名,设计物理存贮结构,使得查找过程方便快速,并给出相应的查找给定年令的算法,分析该算法的性能。
(本题 20 分)存储结构的核心是:以年令age为关键字的hash散列,散列函数是age-1;冲突的解决方法是链表。
分数安排如下:1)存贮结构:画图,类C描述,文字描述都可以以年龄age为关键字,哈希散列函数为H = age – 1;冲突解决办法为链表如图:2) 查找算法:函数原型描述(即假设的已知条件),算法描述(包括根据年令访问数组,单向链表的访问)LPFIND(int age ,CString name){H(age)= age – 1;p = H(age);if(p == NULL) return NULL;while(p != NULL){if(p->name == name)retutn p;p = p->next;}3)算法分析:给出平均比较次数的概念根据age 查找同龄人的姓名(由哈希查找的特点),不需要比较直接由哈希散列函数求出。
假设某年龄age的人数为n,即有n人同龄。
那么查找第i个人需要比较的次数为i次。
又假设查找每个人的概率相同,均为1/n;i,i = 1,2,… ,n;那么平均比较次数为: )/1*(n= (1+n)/2四、假定二叉树存贮对象是整数,修改二叉树非递归前序遍历算法,使其能求得二叉树中最大元素。
(本题20 分)1)写出算法:包括函数原形,算法内容2)将遍历算法中访问结点的语句改为求最大值的比较语句int Max(BTREE T){int temp;BTREE stack[M],p;int top = -1;if(T != NULL){temp = T->data;p = T;while(p!= NULL||top != -1){while(p!=NULL){if(p->data > temp)temp = p->data;if(p->rchild != NULL)stack[++top] = p->rchild;p = p->lchild;}p = stack[top --];}}return temp;}2007-2008年一、简述软件工程中几个阶段,分别描述各阶段的主要工作二、程序设计中时空性经常会出现矛盾,这种矛盾是如何体现的,你认为解决和优化时间和空间的方法是什么三、设计程序,求二叉树的叶节点个数四、修改Dijkstra的求最短路径的算法,使其能求出图中任意两点之间的最短距离和最短距离所在的路径五、设计一种数据结构用于存储一组人的姓名、年龄及月收入,要求在该结构上能方便地查找同龄人,计算同龄人的月平均收入,给出查找同龄人和计算月平均收入的两个算法。
六、给出利用堆栈模拟队列的方法,即假设已知堆栈的运算,如压栈,出栈,栈空判断,模拟实现队列的入队,出对及队空算法复习题一、名词解释:1. 数据结构——数据结构就是数据的组织形式,也可看成是包含数据结构的数据表,说明数据之间存在着一定的相互关系或约束。
2. 逻辑结构——我们把只表现元素之间逻辑关系,而不涉及它们在计算机中的表示,只是理论的、反映在纸面上的东西,这种抽象的数据结构称为逻辑结构。
3. 物理结构——抽象的数据结构在计算机内的表示,也就是映射在存储空间上的、具体的数据结构在计算机内表示,也就是映射在存储空间上的、具体的数据结构。
二、问答题:1.简述“软件工程”的工程化的思想。
答:软件工程就是应用一些科学理论和工程上的技术来指导软件开发。
软件工程将研制软件的全过程分为六个阶段:问题说明,需求分析,系统设计,编写程序,测试工作,运行与维护。
软件工程的基本原则是:划分软件生命期,运行计划评审,编制软件文档。
2.说明对程序进行评价时,“时间”与“空间”之间的关系。
答:时间性和空间性是程序的效率问题。
时间效率决定于:源程序转换为目标程序的时间和目标程序执行的时间。
时间效率与编译质量有关,与算法的简化程度有关,还与用户对语言的熟练程度有关,其中,算法的效率起主要作用。
空间效率一般指程序花费的内存空间的问题。
对于同等复杂程度的程序:一般时间效率越高的程序,占用的内存就越大,空间效率就越低;一般时间效率越低的程序,占用的内存就越小,空间效率就越高。
两者具有一定的矛盾性。
但是随着内存容量的不断增大,往往会牺牲空间性来提高时间性。
3.依照“软件工程”的思想,叙述软件生命周期的不同阶段及各阶段的主要工作内容。
答:在软件工程中,把从软件的计划开始,经历问题的说明(定义),需求分析,设计代码,测试与维护,直到软件报废为止的整个期间,称为软件的生命周期。
在软件生命周期中,除了最后的运行与维护属于运行期,其它都称为开发期。
1)问题说明:对研究的问题进行完整而且适当的说明。
2)需求分析:根据问题说明,确定软件必须具有的功能。
不是具体解决问题,而是明确必须“做什么”。
3)系统设计:将反映用户要求的逻辑模型转换为一个具体的设计方案,使用伪码来描述算法。
4)编写程序:将伪码转换为高级语言的形式。
5)测试工作:检查程序和系统的其他部分是否满足设计要求。
6)运行与维护:将验收后的软件交付用户使用,通过实际运行环境的检验,对不适应的部分进行修改和扩充。
4.拓扑排序中使用了那些数据结构——共使用了数组,链表,图和堆栈四种数据结构。
三、求二叉树的叶节点的个数:algorithm countleaf( Tree *t, int count ){if( t != null ){if( t->lchild == null && t->rchild == null )count++;coutleaf( t->lchild, count );coutleaf( t->rchild, count );}}四、求二叉树深度的算法:algorithm depth( Tree *t ){if( t == null )return( 0 );else{hl = depth( t->lchild );hr = depth( t->rchild );if( hl > hr )return( hl + 1 );elsereturn( hr + 1 );}}五、将二叉树的左右孩子交换的算法:algorithm swap( Tree *b ){Tree *t;if( b == null )return;else{t = b->lchild;b->lchild = b->rchild;b->rchild = t;swap( b->lchild );swap( b->rchild );}}六、用两个栈模拟一个队列:algorithm 用两个栈模拟一个队列{stack s1, s2; // 容量都为n。