软件技术基础自测一答案

合集下载

软件工程课自测题及答案1

软件工程课自测题及答案1

一、单项选择题1. 软件危机具有下列表现( D )。

I. 对软件开发成本估计不准确II. 软件产品的质量往往靠不住III. 软件常常不可维护IV. 软件成本逐年上升A. I、II和IIIB. I、III和IVC. II、III和IVD. 以上都正确2. 软件生命周期一般都被划分为若干个独立的阶段,其中占用精力和费用最多的阶段往往是( A )。

A. 运行和维护阶段B. 设计阶段C. 代码实现阶段D. 测试阶段3. 下列属于软件的特点的是( D )。

A. 软件是一种逻辑实体,具有抽象性B. 软件在使用过程中没有磨损、老化的问题C. 软件不同于一般程序,它的一个显著特点是规模庞大,复杂程度高D. 以上都正确4. 软件工程的出现是由于( D )。

A. 软件危机的出现B. 计算机硬件技术的发展C. 软件社会化的需要D. 计算机软件技术的发展5. 软件开发技术不包含( D )。

A. 软件开发方法学B. 软件工程环境C. 软件工具D. 软件质量度度量6. 软件工程的课程特点( D )。

I. 学科理论及其知识应用的多维性II. 工程化III. 浓厚的方法学色彩IV. 实践性、指导性强A. I、II和IIIB. I、III和IVC. II、III和IVD. 以上都正确7. 下列属于应用软件的是( B )。

I. 计算机辅助教学软件II. 软件测试工具III. 办公自动化软件IV. 工程与科学计算软件A. I、II和IIIB. I、III和IVC. II、III和IVD. 以上都正确8. 需求分析阶段最重要的技术文档是( B )。

A. 设计说明书B. 需求规格说明书C. 可行性分析报告D. 用户手册9. 以下关于数据流图的说法错误的是( C )。

A. 数据流图舍去了具体的物质,只剩下数据的流动、加工处理和存储B. 数据流图是用作结构化分析的一种工具C. 传统的数据流图中主要由加工、数据源点/终点、数据流、控制流、数据存储组成D. 数据流图的绘制采用自上向下、逐层分解的方法10. 数据字典是软件需求分析阶段的最重要工具之一,其最基本的功能是( C )。

软件测试基础练习题库(附参考答案)

软件测试基础练习题库(附参考答案)

软件测试基础练习题库(附参考答案)一、单选题(共90题,每题1分,共90分)1.下面的哪项测试步骤中需要进行局部数据结构测试()A、单元测试B、系统测试C、集成测试D、确认测试正确答案:A2.()也称功能测试,它是通过测试来检测每个功能是都能正常使用。

A、动态测试B、系统测试C、压力测试D、黑盒测试正确答案:D3.软件生存周期过程中,修改错误最大的阶段是()A、设计阶段B、需求阶段C、发布运行阶段D、编程阶段正确答案:C4.以程序的内部结构为基础的测试用例技术属于()A、白盒测试B、数据测试C、黑盒测试D、灰盒测试正确答案:A5.以下说法正确的是()A、自底向上的集成测试需要测试人员编写测试驱动程序B、非功能质量属性越高越好C、单元测试是对软件基本组成单元进行测试,即测试对象一定是一个函数D、系统备份与恢复中的数据备份与恢复通常只需要针对业务/用户数据正确答案:B6.数据流覆盖关注的是程序中某个变量从其声明、赋值到引用的变化情况,它是下列哪一种覆盖的变种()A、分支覆盖B、语句覆盖C、控制覆盖D、路径覆盖正确答案:D7.软件测试的目的()A、尽可能发现并排出软件中潜藏的错误,提高软件的可靠性B、发现软件开发中出现的错误C、避免软件开发中出现的错误D、修改软件中出现的错误正确答案:B8.下列可以作为软件测试对象的是()A、需求规格说明书B、软件设计规格说明C、源程序D、以上全部正确答案:D9.下面有关软件缺陷的说法中错误的是()A、缺陷就是导致系统程序崩溃的错误B、缺陷开始软件维护过程中存在的错误、毛病等各种问题C、缺陷就是系统所需要实现某种功能的失效和违背D、缺陷就是软件产品在开发中存在的错误正确答案:A10.下列方法中,不属于黑盒测试的是()A、基于场景的测试方法B、边界值分析法C、基本路径测试法D、等价类测试法正确答案:C11.在GB/T17544中,软件包质量要求包括三部分,即产品描述要求、()、程序和数据要求A、用户文档要求B、系统功能要求C、设计要求说明D、软件配置要求正确答案:A12.用黑盒技术设计测试用例的方法之一为()A、循环覆盖B、基本路径测试C、逻辑覆盖D、因果图正确答案:D13.为了提高测试的效率,应该()A、取一切可能的输入数据作为测试数据B、选择发现错误的可能性C、随机的选取测试数据D、在完成编码以后指定软件的测试计划正确答案:B14.CMMI 共有几个级别()A、3个B、4个C、5个D、6个正确答案:C15.软件的六大质量特性包括:()A、功能性、可靠性、可用性、效率、稳定性、可移植B、功能性、可靠性、可拓展性、效率、稳定性、可移植C、功能性、可靠性、兼容性、效率、稳定性、可移植D、功能性、可靠性、可用性、效率、可维护、可移植正确答案:D16.在没有需求文档和产品说明书的情况下只有哪一种测试方法可以进行的()A、语句覆盖测试B、路径分析测试C、条件覆盖测试D、错误推断测试正确答案:D17.在模块测试的过程中,采用自底向上的测试比自顶向下的测试()A、不确定B、好C、差D、一样正确答案:B18.软件测试的目的是()A、修改软件中出现的错误B、尽可能发现并排除软件中潜藏的错误,提高软件的可靠性C、发现软件开发中出现的错误D、避免软件开发中出现的错误正确答案:C19.下列关于测试方法的叙述中不正确的是()A、对功能的测试通常是要考虑程序的内部结构B、结构测试属于白盒测试C、功能测试属于黑盒测试D、从某种角度上讲,白盒测试与黑盒测试都属于动态测试正确答案:A20.功能测试的目的是()A、保证软件的功能符合软件需求B、保证系统没有错误C、保证用户方便使用D、保证软件性能符合设计的要求正确答案:A21.Excel软件可用于()A、文字处理B、幻灯片制作C、电子表格处理D、设计程序正确答案:C22.软件可靠性是指在指定的条件下使用时,软件产品维持规定的性能级别的()A、可靠性依从性B、容错性C、易恢复性D、成熟性正确答案:B23.下列关于软件测试的叙述中,选择出全部正确的一组()1)用黑盒测试时,测试用例是根据程序内部逻辑设计的2)尽量用公共过程或子程序去代替重复的代码段3)测试是为了验证该软件已正确的实现了用户的要求4)对于连锁型分支结构,若有n个判定语句,则有2n条路径5)尽量采用复合的条件测试,以避免嵌套的分支结构6)语句概念简单,使用方便,在某些情况下,保留GOTO语句反能使写出的程序更加简洁 7)发现错误多的程序模块,残留在模块中的错误也多8)黑盒测试方法中最有效的是因果图法9)在做程序的单元测试时,桩(存根)模块比驱动模块容易编写10)程序效率的提高主要应通过选择高效的算法来实现A、4)5)6)7)10)B、1)2)4)5)7)C、2)4)5)7)9)D、以上描述全部正确正确答案:A24.下列软件属性中,软件产品首要满足的应该是()A、容错纠错能力B、功能需求C、性能需求D、可扩展性和灵活性正确答案:B25.黑盒测试是从()观点出发的测试,而白盒测试是从()观点出发的测试A、用户、开发人员B、用户、管理人员C、开发人员、管理人员D、开发人员、用户正确答案:A26.坚持在软件的各个阶段实施下列哪种质量保障措施,才能在开发过程中尽早发现和预防错误,把出现的错误克服在早期()A、管理评审B、技术评审C、改正程序错误D、程序测试正确答案:B27.SQL语言中删除一个表的语句是()A、Drop tableB、Delete tableC、destroy tableD、remove table正确答案:A28.以下哪一种选项不属于软件缺陷()A、软件实现了产品规格说明所要求的功能但因受性能限制而未考虑可移植性问题B、软件中出现了产品规格说明不应该出现的功能C、软件没有实现产品规格说明所要求的功能D、软件实现了产品规格没有提到的功能正确答案:A29.下面有关测试原则的说法正确的是()A、程序最好由编写该程序的程序员自己来测试B、使用测试用例进行测试是为了检查程序是否做了它该做的事C、测试用例应由测试的输入数据和预期的输出结果组成D、测试用例只需选取合理的输入数据正确答案:C30.对程序的测试最好由谁来做,对程序的调试最好由谁来做()A、程序开发组/程序开发组B、程序开发组/程序员C、第三方测试机构/程序员D、程序员/第三方测试机构正确答案:C31.为了提高测试的效率,正确的做法是()A、随机选取测试用例B、使用测试用例测试是为了检查程序是否做了应该做的事C、在完成程序的编码之后再制定软件的测试计划D、选择发现错误可能性大的数据作为测试用例正确答案:D32.集成测试对系统内部的交互以及集成后系统功能检验了何种质量特性()A、正确性B、可靠性C、可维护性D、可使用性正确答案:A33.黑盒测试法是根据产品的()来设计测试用例的A、功能B、内部逻辑C、输入数据D、应用范围正确答案:A34.单元测试中用来模拟被测模块调用者模块是()A、子模块B、父模块C、桩模块D、驱动模块正确答案:D35.大多数实际情况下,性能测试的实现方法是()A、白盒测试B、静态分析C、黑盒测试D、可靠性测试正确答案:C36.正式的技术评审FTR(Formal Technical Review)是软件工程师组织的软件质量保证活动,下面关于FTR指导原则中错误的是()A、要有严格的评审计划,并遵守日程安排B、限制参与者人数,并要求评审会之前做好准备C、评审产品,而不是评审生产者的能力D、对评审中出现的问题要充分讨论,以求彻底解决正确答案:D37.在进行单元测试时,常用的方法是()A、只使用白盒测试B、采用白盒测试,辅之以黑盒测试C、只使用黑盒测试D、采用黑盒测试,辅之以白盒测试正确答案:A38.单元测试中设计测试用例的依据是()A、用户需求规格说明书B、详细设计规格说明书C、项目计划说明书D、概要设计规格说明书正确答案:B39.下列项目中不属于测试文档的是()A、测试报告B、程序流程图C、测试用例D、测试计划正确答案:B40.测试ATM取款功能,已知取款数只能输入正整数,每次取款数要求是100的倍数且不能大于500,下面哪个是正确的无效等价类()A、<li>(0,100)、(100,200)、(200,300)、(300,400)、(400,500)、(500,+∞)</pre></li>B、<li>(500,+∞)</pre></li>C、<li>(500,+∞)、任意大于0小于500的非100倍数的整数</pre></li>D、<li>(-∞,100)、(100,200)、(200,300)、(300,400)、(400,500)、(500,+∞)</pre></li>正确答案:C41.在数据结构中,从逻辑上可以把数据结构分成()A、内部结构和外部结构B、线性结构和非线性结构C、紧凑结构和非紧凑结构D、动态结构和静态结构正确答案:B42.经验表明,在程序测试中,某模块与其他模块相比,若该模块已发现并改正的错误较多,则该模块中残存的错误数目与其他模块相比,通常应该()A、较少B、相似C、较多D、不确定正确答案:C43.通常可分为白盒测试和黑盒测试。

软件技术基础试题(含答案)

软件技术基础试题(含答案)

《操作系统》选择题:(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)。

《计算机软件技术基础》习题及参考答案

《计算机软件技术基础》习题及参考答案
A. 存储结构 B. 物理结构 C. 逻辑结构 D. 物理和存储结构
4.以下数据结构中不属于线性数据结构的是______。
A. 队列 B. 线性表 C . 二叉树 D. 栈
5.在计算机中,算法是指______。
A. 查询方法 B. 加工方法 C. 解题方案的准确而完整的描述 D. 排序方法
6.在下列选项中,哪个不是一个算法一般应该具有的基本特征______。
B. 随机存取的存储结构、顺序存取的存储结构
C. 随机存取的存储结构、随机存取的存储结构
D. 任意存取的存储结构、任意存取的存储结构
14.下列关于栈的描述中错误的是。
A.栈是先进后出的线性表B.栈只能顺序存储
C.栈具有记忆作用D.对栈的插入和删除操作中,不需要改变栈底指针
15.栈底至栈顶依次存放元素A、B、C、D,在第五个元素E入栈前,栈中元素可以出栈,则出栈序列可能是______。
A. 程序的规模 B. 程序的易读性 C. 程序的执行效率 D. 程序的可移植性
30.对建立良好的程序设计风格,下面描述正确的是______。
A. 程序应简单、清晰、可读性好 B. 符号名的命名要符合语法
C. 充分考虑程序的执行效率 D. 程序的注释可有可无
31.下面对对象概念描述错误的是______。
A. 任何对象都必须有继承性 B. 对象是属性和方法的封装体
C. 对象间的通讯靠消息传递 D. 操作是对象的动态性属性
32.在面向对象方法中,一个对象请求另一对象为其服务的方式是通过发送______。
A. 调用语句 B. 命令 C. 口令 D. 消息
33.面向对象的设计方法与传统的的面向过程的方法有本质不同,它的基本原理是______。

《计算机软件技术基础》试题及答案

《计算机软件技术基础》试题及答案

计算机软件技术基础试题1.线性表的链式存储结构与顺序存储结构相比优点是 CD ; A. 所有的操作算法实现简单 B. 便于随机存取 C. 便于插入和删除D. 便于利用零散的存储器空间 2.线性表是具有n 个 C 的有限序列;A. 表元素B. 字符C. 数据元素D. 数据项E. 信息项3.若长度为n 的线性表采用顺序存储结构,在其第I 个位置插入一个新元素的算法的时间复杂度为 C ;1≤I ≤n+1 A. O0 B. O1 C. OnD. On 24.设A 是一个线性表a 1,a 2,…,a n ,采用顺序存储结构,则在等概率的前提下,平均每插入一个元素需要移动的元素个数为 B ,平均每删除一个元素需要移动的元素个数为 A ;若元素插在a i 与a i+1之间0≤I ≤n-1的概率为)1()(2+-n n i n ,则平均每插入一个元素所要移动的元素个数为 C ;A. 21-n B. 2n C. 312+nD. 413+n5.下列函数中,按它们在∞→n 时的无穷大阶数,最大的是 D ;A. log nB. nlog nC. 2n/2D. n6.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 combinelinklisttype ha, linklisttype hb{linklisttype h, p;h = linklisttype mallocsizeoflinklisttype;h->next = NULL;p = h;whileha = NULL && hb = NULLifha->data>=hb->data{ /较大的元素先插入/p->next = 1 ;p = 2 ;3 ;}else{p->next = 4 ;p = 5 ;6 ;}ifha==NULL 7 ;ifhb==NULL 8 ;ha = h->next;freeh;}参考答案: 1 ha 2 p->next 3 ha=ha->next4 hb5 p->next6 hb=hb->next7 p->next=hb 8 p->next=ha9.如果表A中所有元素a1,a2,…,a n与表B的一个顺序子表b k,b k+1,…b k+n-1完全相同即a1=b k,a2=b k+1,…a n=b k+n-1,则称表A包含在表B中;设ha,hb为带头结点的单链表,分别表示有序表A和B,下面的函数用于判别表A 是否包含在表B中,若是,则返回true,否则返回false;提示:用递归实现define true 1define false 0define NULL 0typedef struct node{int data;struct node next;}node, linklisttype;int inclusionlinklisttype ha, linklisttype hb{linklisttype pa, pb;pa = ha->next;pb = hb->next;1 ;while 2ifpa->data=pb->data 3 ;else 4 ;5 ;}参考答案:1 ifpa==NULL returntrue2 pb=NULL && pa->data>=pb->data3 returninclusionpa, pb4 pb = pb->next;5 returnfalse10.在本题的程序中,函数create_link_listn建立一个具有n个结点的循环链表;函数josephusn,I,m 对由create_link_listn所建立的具有n个结点的循环链表按一定的次序逐个输出,并删除链表中的所有结点;参数nn>0指明循环链表的结点个数,参数I1≤I≤n指明起始结点,参数mm>0是步长,指明从起始结点或前次被删除并输出的结点之后的第m个结点作为本次被输出并删除的结点;例如,对于下图所示的具有6个结点的循环链表,在调用josephus6,3,2后,将输出5,1,3,6,4,2;请在空框处填上适当内容,每框只填一个语句;define NULL 0typedef struct node{int data;struct node next;}node, linklisttype;linklisttype create_link_listint n{linklisttype head, p, q;int I;head = NULL;ifn>0{head = linklisttype mallocsizeoflinklisttype;p = head;forI=1;I<=n-1;I++{ /此循环用于建立一个链表,链表的内容从1至n-1/p->data = I;q = linklisttype mallocsizeoflinklistttype;1 ;2 ;}p->data = n;3 ; /建立从尾链到首的环形结构/}returnhead;}void Josephusint n, int j, int m{linklisttype p, q;int j;p = create_link_listn;for;I>1;I-- p = p->next;4 ;whilej<n{forI=1;I<=m-1;I++ p = p->next;5 ;printf“%8d”,q->data;6 ;freeq;j=j+1;}}参考答案:1 p->next = q;2 p = q;3 p->next = head4 j=05 q=p->next;6 p->next = q->next11.在下列程序中,函数differenceA,B用于求两集合之差C=A-B,即当且仅当e是A中的一个元素,且不是B中的元素时,e是C中的一个元素;集合用有序链表实现,用一个空链表表示一个空集合,表示非空集合的链表根据元素之值按递增排列,执行C=A-B之后,表示集合A和B的链表不变,若结果集合C非空,则表示它的链表应根据元素之值按递增序排列;函数append用于在链表中添加结点;include <stdio.h>define NULL 0typedef struct node{int data;struct node next;}NODE;NODE appendNODE last, int x{last->next=NODE mallocsizeofNODE;last->next->data=x;returnlast->next;}NODE differenceNODE A ,NODE B{NODE C,last;C=last=NODE mallocsizeofNODE;while 1ifA->data < B->data{last=appendlast,A->data;A=A->next;}elseif 2 {A=A->next;B=B->next;}else3 ;while 4 {last=appendlast,A->data;A=A->next;}5 ;last=C;C=C->next;freelast;returnC;}参考答案:1 A=NULL & B=NULL2 A->data==B->data3 B=B->next;4 A=NULL5 last->next=NULL;12.阅读以下算法,填充空格,使其成为完整的算法;其功能是在一个非递减的顺序存储线性表中从下标1处开始存储,删除所有值相等的多余元素;define MAXSIZE 30typedef struct{int elemMAXSIZE;int length;/表长/}sqlisttype;void exam21sqlisttype L{int I,j;I=2,j=1;while 1 {ifL->elemI<>L->elemj{2 ;3 ;}I++;}4 ;}参考答案:1 i<=L->length23 j++;413.用单链表表示的链式队列的队头在链表的 A 位置;A. 链头B. 链尾C. 链中14.若用单链表表示队列,则应该选用 B ;A. 带尾指针的非循环链表B. 带尾指针的循环链表C. 带头指针的非循环链表D. 带头指针的循环链表15.在解决计算机主机与打印机之间速度不匹配问题时,通常设置一个打印数据缓冲区,主机将要输出的数据依次写入该缓冲区,而打印机则从该缓冲区中取出数据打印,先放入打印缓冲区的数据先被打印;该缓冲区应该是一个 B 结构;A. 堆栈B. 队列C. 数组D. 线性表16.若用一个大小为6的数组来实现循环队列,且当前rear和front的值分别为0和3;当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为 B ;A. 1和5B. 2和4C. 4和2D. 5和117.设栈的输入序列为1,2,…,10,输出序列为a1,a2,…,a10,若a5=10,则a7为 C ;A. 4B. 8C.不确定D.718.设栈的输入序列是1,2,3,4,则 D 不可能是其出栈序列;A. 1243 B. 2134 C. 1432 D. 431219.以下 D 是C语言中”abcd321ABCD”的子串;A. abcdB. 321ABC. “abcABC”D. “21AB”20.若串S=”software”,其子串的数目是 C ;A. 8B. 37C. 36D. 921.将一个A1:100,1:100的三对角矩阵,按行优先存入一维数组B1:298中,A中元素A66,65即该元素的下标在B数组中位置k为 B ;A. 198B. 195C. 197D. 19622.设高为h的二叉树只有度为0和2的结点,则此类二叉树的结点数至少为 B ,至多为F ;高为h的完全二叉树的结点数至少为 E ,至多为 F ;A. 2h B. 2h-1 C. 2h+1 D.h+1E. 2h-1F. 2h-1G. 2h+1-1H. 2h+123.一棵有124个叶结点的完全二叉树,最多有 B 个结点;A. 247B. 248C. 249D. 25124.若从二叉树的任一结点出发到根的路径上所经过的结点序列按其关键字有序,则该二叉树是C ;A. 满二叉树B. 哈夫曼树C. 堆D. 二叉查找树25.前序遍历和中序遍历结果相同的二叉树为 F ;前序遍历和后序遍历结果相同的二叉树为B ;A. 一般二叉树B. 只有根结点的二叉树C. 根结点无左孩子的二叉树D. 根结点无右孩子的二叉树E. 所有结点只有左孩子的二叉树F. 所有结点只有右孩子的二叉树26.具有n 个结点的完全二叉树,已经顺序存储在一维数组A1..n 中,下面的算法是将A 中顺序存储变为二叉链表存储的完全二叉树;请填写适当语句在下面的空格内,完成上述算法; define MAXSIZE 30 typedef struct btnode{ int data;struct btnode lchild, rchild;}BTN;void createtreeBTN p,int A, int I,int n{ 1 ; p->data=AI; if 2 3 ; elsep->lchild=NULL;if 4 createtree 5 ; elsep->rchild=NULL; }void btreeBTN p ,int A,int n{ createtreep,A,1,n; }参考答案:1 p=BTN mallocsizeofBTN2 2I<=n3 createtreep->lchild,A,2I,n4 2I+1<=n5 p->rchild,A,2I+1,n27.若在线性表中采用折半查找法查找元素,该线性表应该 C ; A. 元素按值有序B. 采用顺序存储结构C. 元素按值有序,且采用顺序存储结构D. 元素按值有序,且采用链式存储结构28.在分块检索中,对256个元素的线性表分成 16 块最好,每块的最佳长度是 16 ;若每块的长度为8,其平均检索长度为 21 ;29.假定有K 个关键字互为同义词,若用线性探测法把这K 个关键字存入散列表中,至少要进行 D 次探测; A. K-1次 B. K 次 C. K+1次D. KK+1/2次30.在n 个记录的有序顺序表中进行折半查找,最大的比较次数是⎣⎦1log 2+n ;31.Hash 技术广泛应用于查找过程,选择Hash 函数的标准是 和 ;处理冲突的技术有优有劣,其共同标准是 ;32.在下述排序算法中,所需辅助存储空间最多的是 B ,所需辅助存储空间最小的是 C ,平均速度最快的是 A ; A.快速排序B. 归并排序C. 堆排序33.在文件局部有序或文件长度较小的情况下,最佳内部排序的方法是 A ;A. 直接插入排序B. 冒泡排序C. 简单选择排序34.快速排序在最坏情况下时间复杂度是On2,比 A 的性能差;A. 堆排序B. 冒泡排序C. 简单选择排序35.若需在Onlogn的时间内完成对数组的排序,且要求排序是稳定的,则可选择的排序方法是C ;A. 快速排序B. 堆排序C. 归并排序D. 希尔排序36.如果只想得到1000个元素组成的序列中第5个最小元素之前的部分排序的序列,用B 方法最快;A. 冒泡排序B. 快速排序C. 希尔排序D. 堆排序E. 简单选择排序37.以下结点序列是堆的为 A ;A. 100,90,80,60,85,75,20,25,10,70,65,50B. 100,70,50,20,90,75,60,25,10,85,65,8038.若要尽可能快地完成对实数数组的排序,且要求排序是稳定的,则应选 C ;A. 快速排序B. 堆排序C. 归并排序D. 希尔排序39.从未排序序列中依次取出一个元素与已排序序列中的元素依次进行比较,然后将其放在已排序序列的合适位置,该排序方法称为 A 排序法;A. 插入排序B. 交换排序C. 选择排序D. 归并排序40.直接插入排序在最好情况下的时间复杂度为 B ;A. OlognB. OnC. OnlognD. On241.下面函数是将任意序列调整为最大堆的算法,请将空白部分填上:将任意序列调整为最大堆通过不断调用adjust函数,即fori=n/2;i>0;i-- adjustlist, i, n;其中list为待调整序列所在数组从下标1开始,n为序列元素的个数;void adjustint list, int root, int n{/将以root为下标的对应元素作为待调整堆的根,待调整元素放在list数组中,最大元素下标为n/ int child,rootkey;rootkey = 1 ;child = 2root;whilechild < n{ifchild<n && listchild<listchild+12 ;ifrootkey > listchildbreak;else{list 3 =listchild;4 ;}}list 5 =rootkey;}参考答案:1 listroot2 child++;3 child/24 child = 2;5 child/241.表是一种数据结构,链表是一种 1 ;队列和栈都是线性表,栈的操作特性是 2 ,队列的操作特性是 3 ;今有一空栈S,对下列待进栈的数据元素序列a,b,c,d,e,f依次进栈、进栈、出栈、进栈、进栈、出栈的操作,则此操作完成后,栈S的栈顶元素为 4 ,栈底元素为5 ;供选答案:1: A. 非顺序存储线性表 B. 非顺序存储非线性表C. 顺序存储线性表D. 顺序存储非线性表2: A. 随机进出 B. 先进后出C. 先进先出D. 出优于进3: A. 随机进出 B. 先进后出C. 后进后出D. 进优于出4: A. f B. cC. aD. b5: A. b B. cC. aD. d答案:ABCBC42.操作系统主要是对计算机系统全部 1 进行管理,以方便用户、提高计算机使用效率的一种系统软件;它的主要功能有:处理机管理、存储管理、文件管理、 2 管理和设备管理等;Windows 和Unix是最常用的两类操作系统;前者是一个具有图形界面的窗口式的 3 系统软件,后者是一个基本上采用 4 语言编制而成的的系统软件;在 5 操作系统控制下,计算机能及时处理由过程控制反馈的信息并作出响应;供选答案:1: A. 应用软件 B. 系统软硬件C. 资源D. 设备2: A. 数据 B. 作业C. 中断D. I/O3: A. 分时 B. 多任务C. 多用户D. 实时4: A. PASCAL B. 宏C. 汇编D. C5: A. 网络 B. 分时C. 批处理D. 实时答案:CBBDD43.本程序从键盘读入整数,并按从大到小的顺序输出输入整数中互不相等的那些整数;程序一边读入整数,一边构造一个从大到小顺序链接的链表,直至不能从键盘读入整数,然后顺序输出链表上各表元的整数值;主函数每读入一个整数,就调用函数insert,函数insert将还未出现在链表上的整数按从大到小的顺序插入到链表中;为了插入方便,链表在表首有一个辅助表元;阅读下列C代码,在 n 处填入相应的字句以完成上述功能;include <stdio.h>include <malloc.h>define NULL 0typedef struct node{int val;struct node next;}NODE;void insertNODE list,int x{NODE u, v, p;u = list; v = u->next;while 1 && x < v->val{ /寻找插入位置/u=v;v=u->next;}ifv==NULL || 2 { /判断是否要插入表元/p = NODE mallocsizeofNODE;p->val = x; /生成新表元/3 = v;4 = p; /插入新表元/}}main{int x;NODE head, p;/首先建立只有辅助表元的空链表/head = NODE mallocsizeofNODE;5 =NULL;printf“Enter Integers:\n”;whilescanf“%d”,&x == 1 /反复读入整数插入链表/inserthead,x;forp=head->next;p=NULL;p=p->next /输出链表/printf“%d\t”,p->val;printf“\n”;}答案:1 v = NULL或v2 x > v->val 或 x = v->val3 p->next4 u->next5 head->next44.计算机数据处理的对象是具有不同结构的各种数据,可以访问的最小数据信息单位是1 ,可以引用的最小命名数据单位是2 ;线性表是最简单的一种数据结构,有顺序和链接两种存储方式;线性表按链接方式存储时,每个结点的包括 3 两部分;线性表的查找有 4 和 5 两种,但 5 只能用于顺序存储的情况; 供选答案:1: A. 数字 B. 字符C. 数据元素D. 数据项2: A. 结点 B. 记录C. 数据元素D. 数据项3: A. 数据值与符号 B. 数据与指针C. 数据与表名D. 头地址与尾地址4: A. 随机查找 B. 顺序查找C. 二分法查找D. 浏览5: A. 随机查找 B. 顺序查找C. 二分法查找D. 浏览答案:CDBBC45.本程序用于从链盘读入整数,插入到链表,或从链表删除一个整数;阅读下面的C代码,将应填入 n 处的字名写在答卷的对应栏内;include <stdio.h>include <malloc.h>typedef struct node{int val;struct node next;}NODE;NODE insNODE list, int x{ /将x按从小到大的次序插入链表/NODE u, v=list, p;for; v = NULL && x < v->val ; v = v->next;/寻找插入位置/ifv = NULL && x == v->val returnlist; /已有,被忽略/p = NODE mallocsizeofNODE;p->val=x; /生成新表元/ifv == list list = p;else 1 ;2 ;return list;}NODE delNODE list, int x{ /从链表中删除值为x的表元/NODE u, v;forv = list; v = NULL && x < v->valu; u=v;v=v->next;ifv = NULL && x == v->val{ /找到值为x的表元/ifv == list list = list->next;else 3 ;4 ; /释放空间/}else p rintf“没有找到\n”;returnlist;}main{int x,ans;NODE list=NULL, p;while1{printf“\n输入1:将整数插入到链表;\n输入2:从链表删除一个整数;\n”;printf“其它整数,结束程序;\n\t请输入选择”;scanf%d,&ans;if 5 return;printf“输入整数:”;scanf“%d”,&x;ifans==1 list=inslist,x;else list=dellist,x;forp=list;p=NULL;p=p->nextprintf“%4d”,p->val;}}答案:1 u->next = p;2 p->next = v3 u->next = v->next4 freev5 ans = 1 && ans = 246. 从未排序的序列中,依次取出元素,与已排序序列的元素比较后,放入已排序序列中的恰当位置上,这是 1 排序;从未排序的序列中,挑选出元素,放在已排序序列的某一端位置,这是 2 排序;逐次将待排序的序列中的相邻元素两两比较,凡是逆序则进行交换,这是 3 排序;如果整个排序过程都在内存中进行,称为4 排序;排序算法的复杂性与排序算法的5 有关;供选答案:1: A. 选择 B. 插入C. 比较D. 归并2: A. 选择 B. 插入C. 比较D. 归并3: A. 冒泡 B. 交换C. 比较D. 散列4: A. 外部 B. 内部C. 外存D. 内存5: A. 运算量大小与占用存储多少B. 运算量大小与处理的数据量大小C. 并行处理能力和占用存储多少D. 占用存储多少和处理的数据量大小答案:BAABA47.操作系统是对计算机资源进行的 1 系统软件,是 2 的接口;在处理机管理中,进程是一个重要的概念,它由程序块、 3 和数据块三部分组成,它有3种基本状态,不可能发生的状态转换是 4 ;虚拟存储器的作用是允许程序直接访问比内存更大的地址空间,它通常使用 5 作为它的一个主要组成部分;供选答案:1: A. 输入和输出 B. 键盘操作C. 管理和控制D. 汇编和执行2: A. 软件和硬件 B. 主机和外设C. 高级语言和机器语言D. 用户和计算机3: A. 进程控制块 B. 作业控制块C. 文件控制块D. 设备控制块4: A. 运行态转换为就绪态 B. 就绪态转换为运行态C. 运行态转换为等待态D. 等待态转换为运行态5: A. 软盘 B. 硬盘C. CDROMD. 寄存器答案:CDADB48. A 是信息的载体,它能够被计算机识别、存储和加工处理;A. 数据B. 数据元素C. 结点D. 数据项49.下列程序段的时间复杂度为 C ;fori=1;i<n;i++{y=y+1;forj=0;j<=2n;j++ x++;}供选答案:A. On-1B. O2nC. On2D. O2n+150.下面程序段的时间复杂度为 D ;i=1;whilei<=n i=i2;供选答案:A. O1B. OnC. On2D. Olog2n51.下面程序段的时间复杂度为 B ;a=0;b=1;fori=2;i<=n;i++{s=a+b;b=a;a=s;}供选答案:A. O1B. OnC. Olog2nD. On252.数据结构是一门研究非数值计算的程序设计问题中,计算机的 A 以及它们之间的关系和运算等的学科;A.操作对象B. 计算方法C. 逻辑存储D. 数据映象53.在数据结构中,从逻辑上可以把数据结构分成 C ;A. 动态结构和静态结构B. 紧凑结构和非紧凑结构C. 线性结构和非线性结构D. 内部结构和外部结构54.算法分析的目的是 C ;A. 找出数据结构的合理性B. 研究算法中输入和输出的关系C. 分析算法的效率以求改进D. 分析算法的易懂性和文档性55.算法分析的两个主要方面是 4 ;A. 间复杂性和时间复杂性B. 正确性和简明性C. 可读性和文档性D. 数据复杂性和程序复杂性56.一个线性顺序表第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址为B ;A. 110B. 108C. 100D. 12057.若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为P1,P2,P3,…,P n,若P1=n,则P i为 C ;A. iB. n-iC. n-i+1D.不确定58.对于一个栈,给出输入项A,B,C;如果输入项序列由A,B,C所组成,则不可能产生的输出序列是A ;A. CABB. CBAC. ABCD. ACB59.设有如下的单链表的按序号查找的算法,其时间复杂度为 B ;LinkNode GetNodeLinklist head, int i{int j;ListNode p;P = head; j=0;whilep->next && j<i{p = p->next;j++;}ifi==jreturnp;elsereturnNULL;}供选答案:A. On2B. O2nC. On3D. Ologn60.二维数组A mn按行序为主顺序存放在内存中,每个数组元素占1个存储单元,则元素a ij的地址计算公式是 C ;A. LOCa ij = LOCa11+i-1m+j-1B. LOCa ij = LOCa11+j-1m+i-1C. LOCa ij = LOCa11+i-1n+j-1D. LOCa ij = LOCa11+j-1n+i-161.以下哪一个不是队列的基本运算 C ;A. 从队尾插入一个新元素B. 从队列中删除第i个元素C. 判断一个队列是否为空D. 读取队头元素的值62.在一个长度为n的顺序表中,向第i个元素之前插入一个新元素,需向后移动 B 个元素;A. n-iB. n-i+1C. n-i-1D. i63.从一个长度为n的顺序表中删除第i个元素时,需向前移动 A 个元素;A. n-iB. n-i+1C. n-i-1D. i64.在具有n个单元的顺序存储的循环队列中,假定front和rear分别为队首指针和队尾指针,则判断队空的条件是 B ;A. front=rear+1B. front=rearC. front+1=rearD. front=065.从一个具有n个结点的单链表中查找其值等于x的结点时,在查找成功的情况下,需平均比较 D 个结点;A. nB. n/2C. n-1/2D. n+1/266.一个栈的入栈序列是a,b,c,d,e,则栈不可能的输出序列是 C ;A. edcbaB. decbaC. dceabD. abcde67.栈结构通常采用的两种存储结构是 A ;A. 顺序存储结构和链表存储结构B. 散列方式和索引方式C. 链表存储结构和数组D. 线性存储结构和非线性存储结构68.判断一个顺序栈ST最多元素为mo为空的条件是 B ;A. ST->top<>0B. ST->top=0C. st->top<>moD. st->top==mo69.不带头结点的单链表head为空表的判定条件是 A ;A. head==NILLB. head->next==NULLC. head->next==headD. head = NULL70.在一个单链表中,已知q所指结点是p所指结点的前驱结点,若在p和q之间插入s结点,则应执行C ;A. s->next = p->next; p->next=s;B. p->next = s->next; s->next=p;C. q->next = s; s->next=p;D. p->next = s; s->next=q;71.假设双向链表结点的类型如下:typedef struct Linknode{int data;struct Linknode lLink; /前驱结点指针/struct Linknode rLink; /后继结点指针/}下面给出的算法是要把一个q所指新结点,作为非空双向链表中的p所指的结点前驱结点插入到该双向链表中,能正确完成要求的算法段是 C ;A.q->rLink=p; q->lLink=p->lLink; p->lLink=q; p->lLink->rLink=q;B. p->lLink=q, q->rLink=p; p->lLink->rLink=q; q->lLink=p->lLink;C. q->lLink=p->lLink; q->rLink=p;p->lLink->rLink=q;p->lLink=q;D. 以上均不对72.串是一种特殊的线性表,其特殊性体现在 B ;A. 可以顺序存储B. 数据元素是一个字符C. 可以链接存储D. 数据元素可以是多个字符73.设有两个串p和q,求q在p中首次出现的位置的运算称作 B ;A. 连接B. 模式匹配C. 求子串D. 求串长74.设串s1=”ABCDEFG”,s2=”PQRST”,函数conx,y返回x和y串的连接串,subss,I,j返回串s的从序号i的字符开始的j个字符组成的子串,lens返回串s的长度,则consubs1,2,lens2,subs1,lens2,2的结果是 D ;A. BCDEFB. BCDEFGC. BCPQRSTD. BCDEFEF75.常对数组进行的两种基本操作是 C ;A. 建立和删除B. 索引和修改C. 查找和修改D. 索引和查找76.稀疏矩阵一般的压缩存储方法有两种,即C ;A. 二维数组和三维数组B. 三元组和散列C. 三元组和十字链表D. 散列和十字链表77.对下图所示的二叉表,按先根次序遍历得到的结点序列为 B ;A. ABCDHEIFGB. ABDHIECFGC. HDIBRAFCGD. HIDBEFGAC78.在一棵二叉树上,度为0的结点个数为n0,度为2的结点数为n2,则n0= A ;A. n2+1B. n2-1C. n2D. n2/279.某二叉树前序遍历结点的访问顺序是ABCDEFG,中序遍历结点的访问顺序是CBDAFGE,则其后序遍历结点的访问顺序是 A ;A.CDBGFEA B. CDGFEABC. CDBAGFED. CDBFAGE80.在下列存储形式中, D 不是树的存储形式;A. 双亲表示法B. 孩子链表表示法C. 孩子兄弟表示法D. 顺序存储表示法81. 已知一棵二叉树的中序序列为cbedahgijf,后序序列为cedbhjigfa,则该二叉树为B ;82. 已知一棵权集W={2,3,4,7,8,9}的哈夫曼树,其加权路径长度WPL为C ;A. 20B. 40C. 80D. 16083.已知一棵度为m的树中有n1个度为1的结点,n2个度为2的结点,…,n m个度为m的结点,问这棵树中叶子结点为C ;A. 1+n i I-1B. 1+n i I+1C. n1+n2+…+n mD. m·n m84.如下图所示的4棵二叉树中, C不是完全二叉树;85.设高度为h的二叉树上只有度为0或度为2的结点,则此类二叉树中所包含的结点数至少为B ;A. 2hB. 2h-1C. 2h+1D. h+186.如下图所示的二叉树的中序遍历序列是C ;A. abcdgefB. dfebagcC. dbaefcgD. defbagc87.已知某二叉树的后序遍历序列是dabec,中序遍历序列是debac,则其前序遍历序列为D ;A. acbedB. decabC. deabcD. cedba88.如果T2是由有序树T转换而来的二叉树,则T中结点的前序就是T2中结点的 A ;A. 前序B. 中序C. 后序D. 层次序89.树的基本遍历策略可分为先根遍历和后根遍历;二叉树的基本遍历策略可分为先序遍历、中序遍历和后序遍历;这里,我们把由树转化得到的二叉树叫做这棵树对应的二叉树;下面结论正确的是A ;A. 树的先根遍历序列与其对应的二叉树的先序遍历序列相同B. 树的先根遍历序列与其对应的二叉树的后序遍历序列相同C. 树的先根遍历序列与其对应的二叉树的中序遍历序列相同D. 以上均不对90. 深度为5的二叉树至多有C个结点;A. 16B. 32C. 31D. 1091. 在一非空二叉树的中序遍序序列中,根结点的右边 A ;A. 只有右子树的所有结点B. 只有右子树的部分C. 只有左子树的部分结点D. 只有左子树的所有结点 92. 树最适合用来表示 C ;A. 有序数据元素B. 无序数据元素C. 元素之间具有分支层次关系的数据D. 元素之间无联系的数据93. 设n,m 为一棵二叉树上的两个结点,在中序遍历时,n 在m 前的条件是 C ; A. n 在m 的右方 B. n 是m 的祖先 C. n 在m 的左方D. n 是m 的子孙94.对一个满二叉树,m 个树叶,n 个结点,深度为h,则 D ;A. n=h+mB. h+m=2nC. m=h-1D. n=2h-1 95.如果某二叉树的前序为stuwv,中序为uwtvs,则该二叉树后序为 C ;A. uwvtsB. vwutsC. wuvtsD. wutsv96.设待排序的记录为20,16,13,14,19,经过下列过程将这些记录排序;20,16,13,14,19 16,20,13,14,19 13,16,20,14,19 13,14,16,20,19 13,14,16,19,20所用的排序方法是 A ; A. 直接插入排序 B. 冒泡排序 C. 希尔排序D. 堆排序97.对下列4个序列用快速排序的方法进行排序,以序列的第一个元素为基础进行划分,在第一趟划分过程中,元素移动次数最多的是 A 序列; A. 70,75,82,90,23,16,10,68 B. 70,75,68,23,10,16,90,82 C. 82,75,70,16,10,90,68,23 D. 23,10,16,70,82,75,68,9098.用快速排序的方法对包含几个关键字的序列进行排序,最坏情况下,执行的时间为 D ; A. OnB. Olog 2nC.Onlog 2nD. On 299.在所有排序方法中,关键码即关键字比较的次数与记录的初始排列次序无关的是 D ; A. 希尔排序B. 冒泡排序C. 直接插入排序D. 直接选择排序100.在归并排序过程中,需归并的趟数为 C ; A. nB. nC. ⎣⎦n n 2logD. ⎣⎦n 2log101.一组记录的排序代码为{46,79,56,38,40,84},则利用堆排序的方法建立的初始堆为 B ;A. {79,46,56,38,40,80}B. {84,79,56,38,40,46}C. {84,79,56,46,40,38}D. {84,56,79,40,46,38}102.一组记录的排序代码为{46,79,56,38,40,84},则利用快速排序的方法,以第一个记录为基准得到的一次划分结果为 C ;A. {38,40,46,56,79,84}B. {40,38,46,79,56,84}C. {40,38,46,56,79,84}D. {40,38,46,84,56,79}103.每次把待排序的区间划分为左、右两个子区间,其中左区间中元素的排序码均小于等于基准元素的排序码,右区间中元素的排序码均大于等于基准元素的排序码,此种排序方法叫做 B ;A. 堆排序B. 快速排序C. 冒泡排序D. 希尔排序104.一组记录的排序码为一个字母序列{Q,D,F,X,A,P,N,B,Y,M,C,W},按归并排序方法对该序列进行一趟归并后的结果为 D ;A. D,F,Q,X,A,B,N,P,C,M,W,YB. D,F,Q,A,P,X,B,N,Y,C,M,WC. D,Q,F,X,A,P,N,B,Y,M,C,WD. D,Q,F,X,A,P,B,N,M,Y,C,W105.一组记录的排序码为{25,48,16,35,79,82,23,40,36,72},其中,含有5个长度为2的有序表,按归并排序方法对该序列进行一趟归并后的结果为 A ;A. 16,25,35,48,23,40,79,82,36,72B. 16.25,35,48,79,82,23,36,40,72C. 16,25,48,35,79,82,23,36,40,72D. 16,25,35,48,79,23,36,40,72,82106.设有1000个无序的元素,希望用最快的速度挑选出其中前10个最大的元素,最好选用C排序法;A. 冒泡排序B. 快速排序C. 堆排序D. 希尔排序107.在待排序的元素序列基本有序的前提下,效率最高的排序方法是 A ;A. 插入排序B. 选择排序C. 快速排序D. 归并排序108.用某种排序方法对线性表{25,84,21,47,15,27,68,35,20}进行排序时,元素序列的变化情况如下:1 25,84,21,47,15,27,68,35,202 20,15,21,25,47,27,68,35,843 15,20,21,25,35,27,47,68,844 15,20,21,25,27,35,47,68,84则所采用的排序方法是 D ;A. 选择排序B. 希尔排序C. 归并排序D. 快速排序109. 快速排序方法在C情况下最不利于发挥其长处;A. 要排序的数据量太大B. 要排序的数据中含有多个相同值C. 要排序的数据已基本有序D. 要排序的数据个数为整数110. 设有一个已按各元素的值排好序的线性表,长度大于2,对给定的值K,分别用顺序查找法和二分查找法查找一个与K相等的元素,比较的次数分别为s和b;在查找不成功的情况下,正确的s和b的数量关系是 B ;A. 总有s=bB. 总有s>bC. 总有s<bD. 与k值大小有关111. 如果要求一个线性表既能较快地查找,又能适应动态变化的要求,则可采用的方法是A ;A. 分块法B. 顺序法C. 二分法D. 哈希法112. 哈希表的地址区间为0-17,哈希函数为Hk=k mod 17;采用线性探测法处理冲突,并将关键字序列{26,25,72,38,8,18,59}依次存储到哈希表中;那么,元素59存放在哈希表中的地址是 D ; A. 8 B. 9C. 10D. 11113. 哈希表的地址区间为0-17,哈希函数为Hk=k mod 17;采用线性探测法处理冲突,并将关键字序列{26,25,72,38,8,18,59}依次存储到哈希表中;如果要访问元素59,则需要的搜索次数是C ;A. 2B. 3C. 4D. 5114.在计算机系统中,允许多个程序同时进入内存并运行,这种方法称为 D ;A. Spodling技术B. 虚拟存储技术C. 缓冲技术D. 多道程序设计技术115.分时系统追求的目标是 C ;A. 高吞吐率B. 充分利用内存C. 快速响应D. 减少系统开销116.引入多道程序的目的是 D ;A. 提高实时响应速度B. 增强系统交互能力C. 为了充分利用主存储器D. 充分利用CPU,减少CPU等待时间117.若把操作系统看作计算机系统资源的管理者,下列 D 不属于操作系统所管理的资源; A. 程序 B. 内存C. CPUD. 中断118. A 不属于多道程序设计的概念;A. 多个用户同时使用一台计算机的打印设备B. 多个用户同时进入计算机系统,并要求同时处于运行状态C. 一个计算机系统从宏观上进行作业的并行处理,但在微观上仍在串行操作D. 多个作业同时存放在主存并处于运行状态119.操作系统的CPU管理主要是解决 C ;A. 单道程序对CPU的占用B. 多道程序对CPU的占用C. 多道程序对CPU的分配D. 多道程序或单道程序对CPU的争夺120.分时操作系统是指 B ;A. 多个用户分时使用同一台计算机的某一个终端B. 多道程序分时共享计算机的软、硬件资源C. 多道程序进入系统后的批量处理D. 多用户的计算机系统121. A 不是实时系统的特征;A. 很强的交互性B. 具有对用户信息的及时响应性C. 具有很强的可靠性D. 有一定的交互性122.工业过程控制系统中,运行的操作系统最好是 B ;A. 分时系统B. 实时系统C. 分布式操作系统D. 网络操作系统123. 对处理事件有严格时间限制的系统是 B ;A. 分时系统B. 实时系统C. 分布式操作系统D. 网络操作系统。

软件技术基础试题及答案

软件技术基础试题及答案

软件技术基础系班级姓名成绩一、填空题(每空1分,共25分)1.数据结构作为一门学科,主要研究数据的、存储结构以及三方面内容。

2.当对一个线性表经常进行插入或删除操作时,则宜采用存储结构;而经常进行的是访问操作,而很少进行插入或删除操作时,则宜采用存储结构。

3.在线性结构中,首结点有个前驱结点,其余每个结点有且只有个前驱结点。

4.限定在表的一端进行插入,在表的另一端进行删除的线性表称为;限定在表的一端进行插入和删除运算的线性表称为。

5.一个8阶的下三角矩阵B按行优先顺序压缩存储在一维数组中,则数组的大小应设为。

6.按照二叉树的定义,具有3个结点的二叉树形态有种;具有65个结点的完全二叉树其深度为 ; 深度为10的完全二叉树最多有个结点7.在长度为n的顺序表的第i个位置上插入一个元素,元素的移动次数为;删除第i个元素时,需要从前向后依次前移个元素。

(1≤i≤n+1)8.顺序存储结构的循环队列中,设front 和rear分别为队头和队尾指示器,该队列中能存放的最大元素的个数为M AX-1,则判断队列为满的条件为,而判断队列为空的条件是。

9.设D={A,B,C,D,E},R={<A,B>,<C,D>,<D,B>,<C,E>},结构(D,R)描述的数据结构是。

10.系统出现死锁一定是同时保持了,,和环路条件这四个必要条件。

11.操作系统通过记载、跟踪、控制进程的执行,它是进程存在的唯一.标志。

作业调度程序是从处于状态的作业中选取一个作业并把它装入主存。

12A.软件生命周期瀑布模型一般可分为问题分析、、、和软件维护五个阶段。

,二、选择题(每小题1分,共10分)1.已知: int x; 下列语句正确的是()。

A. int *p=&x;B. int *p=x;C. int p=&x;D. int *p=*x;2.int a[ ]={1,2,3,4,5},b[5],*p; 则下列语句中不正确的语句是()。

2024年软件资格考试程序员(初级)(基础知识、应用技术)合卷试题及解答参考

2024年软件资格考试程序员(初级)(基础知识、应用技术)合卷试题及解答参考

2024年软件资格考试程序员(基础知识、应用技术)合卷(初级)自测试题(答案在后面)一、基础知识(客观选择题,75题,每题1分,共75分)1、软件工程的基本原则中,强调通过变更来提高软件可维护性的原则是:A. 单一职责原则B. 开放封闭原则C. 依赖倒置原则D. 迪米特法则2、在软件开发生命周期中,以下哪个阶段不属于软件设计阶段?A. 需求分析B. 系统设计C. 详细设计D. 编码实现3、题目:在软件开发过程中,哪个阶段是确定系统需求和规格说明的阶段?A、需求分析阶段B、设计阶段C、编码阶段D、测试阶段4、题目:在面向对象编程中,下列哪个术语表示将一个对象的方法和数据封装在一起?A、继承B、多态C、封装D、抽象5、在软件开发过程中,以下哪个阶段主要关注软件需求的分析和定义?A. 需求分析阶段B. 设计阶段C. 实现阶段D. 测试阶段6、以下关于面向对象编程(OOP)的描述,哪项是错误的?A. 面向对象编程通过封装、继承和多态实现软件重用。

B. 在面向对象编程中,对象是数据和行为(方法)的封装。

C. 继承是面向对象编程中的一种机制,用于实现代码复用。

D. 面向对象编程中的类是对象的抽象,而对象是类的实例。

7、在面向对象编程中,以下哪个不是面向对象的基本特征?A. 封装B. 继承C. 多态D. 静态8、以下哪个不是Java中的数据类型?A. intC. booleanD. string9、在面向对象编程中,以下哪个原则强调的是将不同的职责分配给不同的对象,以降低对象之间的耦合度?A. 单一职责原则(Single Responsibility Principle,SRP)B. 开放封闭原则(Open/Closed Principle,OCP)C. 依赖倒置原则(Dependency Inversion Principle,DIP)D. 接口隔离原则(Interface Segregation Principle,ISP)11、以下哪个操作不是C语言中的基本输入输出函数?A. printf()B. scanf()C. getchar()D. putchar()13、题目:以下关于软件开发生命周期的说法中,错误的是:A. 软件开发生命周期包括需求分析、设计、编码、测试和维护阶段B. 需求分析阶段主要是确定用户需求,设计阶段是根据需求进行系统设计C. 编码阶段是将设计转换为程序代码,测试阶段是验证程序的正确性和性能D. 软件开发生命周期中,每个阶段都需要进行文档编写,但文档的详细程度不同15、题目:以下哪个选项不是Java中的基本数据类型?A. intB. floatD. String17、以下关于面向对象程序设计(OOP)的描述中,错误的是:A. 面向对象程序设计是一种程序设计范式,它将数据和行为封装在一起B. 面向对象程序设计中的对象具有属性和方法C. 在面向对象程序设计中,继承是实现代码复用的关键机制D. 面向对象程序设计中的多态是通过方法重载来实现的19、在面向对象编程中,以下哪个是封装的典型体现?A. 数据和方法的分离B. 数据的封装和私有化C. 类的继承D. 方法重载21、在软件开发过程中,以下哪个不是常见的软件开发模型?A. 水晶模型B. 瀑布模型C. V型模型D. 研发模型23、以下哪种说法不属于面向对象程序设计的基本特征?()A. 封装B. 继承C. 多态D. 静态25、在软件开发过程中,以下哪个阶段是需求分析的输出结果?A. 系统设计B. 系统测试C. 程序编码D. 系统实现27、以下哪个选项是关于面向对象编程(OOP)中继承的概念的正确描述?A. 继承允许一个类使用另一个类的成员变量和方法,而不需要重新定义。

《计算机软件技术基础》试题答案

《计算机软件技术基础》试题答案

《计算机软件技术基础》试题答案一、选择题(每题5分,共30分)1. 下列关于软件工程的描述,错误的是(D)。

A. 软件工程是计算机科学的一个分支B. 软件工程的目标是提高软件质量和生产率C. 软件工程包括软件开发、维护和管理等方面D. 软件工程只关注大型软件的开发2. 下列哪种编程范式主要用于描述程序逻辑和数据的结构?(B)A. 面向过程编程B. 面向对象编程C. 函数式编程D. 逻辑编程3. 下列关于软件测试的描述,错误的是(C)。

A. 软件测试是软件开发过程中的重要环节B. 软件测试的目的是发现和修正软件中的错误C. 软件测试无需考虑软件的性能和稳定性D. 软件测试分为单元测试、集成测试和系统测试等阶段4. 下列关于软件维护的描述,正确的是(B)。

A. 软件维护是指对软件进行升级和优化B. 软件维护包括纠正软件错误、改进软件性能和增加新功能等C. 软件维护不需要考虑软件的可维护性D. 软件维护仅限于软件开发完成后5. 下列关于软件项目管理工具的描述,错误的是(D)。

A. 软件项目管理工具可以协助项目经理进行项目规划B. 软件项目管理工具可以协助项目经理进行项目监控C. 软件项目管理工具可以协助项目经理进行项目沟通D. 软件项目管理工具无法协助项目经理进行项目风险管理二、填空题(每题5分,共30分)1. 软件生命周期可以分为______、______、______、______和______五个阶段。

答案:需求分析、设计、实现、测试、维护2. 在面向对象编程中,一个对象通常包括______和______两部分。

答案:属性、方法3. 软件测试的目的是______、______和______。

答案:发现错误、修正错误、提高软件质量4. 软件维护的类型包括______、______、______和______。

答案:纠错性维护、适应性维护、完善性维护、预防性维护5. 软件项目管理工具主要包括______、______、______和______。

软件工程基础(一)有答案

软件工程基础(一)有答案

软件工程基础(一)一、选择题1. 软件工程学的提出起源于软件危机,而其目的应该是最终解决软件的______ 问题。

A.质量保证B.生产危机C.生产工程化D.开发效率答案:C2. 软件生命周期分为几个阶段,需求分析属于______ 阶段的任务。

A.定义B.开发C.维护D.编码答案:A3. 软件工程方法是在实践中不断发展的方法,而早期的软件工程方法主要是指______。

A.结构化方法B.面向对象方法C.二者都对D.二者都不对答案:A4. 软件生命周期一般可以分为3大的阶段,它们分别是______ 。

A.分析、设计和维护B.定义、开发和测试C.分析、编码和测试D.定义、开发和维护答案:D5. 软件工程上常用的表达工具有______ 。

A.图形工具B.表格工具C.语言工具D.以上全是答案:D6. 软件工程环境一般应具有某些特征,下列叙述中______ 不是它必须具备的特征。

A.一组工具的集合B.按方法或模式组合的工具C.提供完善的移植工具D.支持全周期或阶段的工具答案:C7. 结构化分析方法(SA) 是一种______ 。

A.自顶向下逐层分解的分析方法B.自底向上逐层分解的分析方法C.面向对象的分析方法D.以上都不对答案:A8. 自顶向下设计把下列______ 结合起来交叉进行。

A.设计、编码、维护B.设计、编码、测试C.设计、编码、调试D.模块设计、程序设计、算法设计答案:C9. 数据流图是进行软件需求分析常用的工具,其中最基本的图符是:变换、数据流、数据存储和外部实体,其中用______ 图符来代表图中的数据池(数据最终的目的地)。

A.变换B.数据流C.数据存储D.外部实体答案:D10. 由事务型数据流图映射为软件结构的设计首先应设计一个______ ,它有两个功能:接收事务数据,根据事务类型调度相应的处理模块。

A.总控模块B.事务中心C.变换中心D.事务调度答案:B11. 面向数据流的设计方法把______ 映射成软件结构。

“软件技术基础”考题(含答案)

“软件技术基础”考题(含答案)

第三十二次一、是非判断题(每小题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. 数据在计算机内存中的表示是指数据的存储结构。

软件技术基础第一次作业题及答案.doc

软件技术基础第一次作业题及答案.doc

第1次作业一、单项选择题(本大题共100分,共40小题,每小题2.5分)1. 若执行以下程序段,其运行结果是()char c [[二{'a', ' b', ' \0', ' c', ' \0'} ; printf (,,%s\n ,/, c ); A. ab cB. 'a''b'C. abcD. ab2. 一个C 语言程序是由()组成A.主程序B.子程序C.函数D.过程3. 已知各变量定义如下:int i 二& a, b; double x=l. 42, y=5. 2;则以下符合C 语言语法的表达式是 ()A. a+二a -二(b 二4) * (a 二3)B. ei 二a*3二2C. x%(-3)D.(y+i )++ 4. 下列程序的输岀结果为()void main () { int &□二{1, 2, 3, 4, 5}, *p;P=a; * (p+4)+=5;printf %d\n\ *p, * (p+4)); } A. 4,10 B. 10,4 C. 1,4 D. 1, 105. 下列数据屮,属于“字符串常量”的是()A. Abcddd B. 〃3bcddd 〃 C. ,abcddd , D. <a ,6. 以下语句或语句组中,能正确进行字符串赋值的是()A. char*sp;*sp 二〃right!" B. char s[10];s 二〃right!〃 C. char s[10];*s 二〃right!〃 D. char *sp 二〃right!"7. 已知 long a=-2L ; printf (z ,%d\ n ,z , a );则有()A.赋值不合法 B. 输出值为-2 C.输出为不确定值D.输出值为2&在C 语言屮,类型名char 表示的数据类型是()A.实型B.字符型C. 整型D.双精度实型9. 判断char 型变量cl 是否小写字母的正确表达式为()A.,a<=cl<=z ,B. (cl>二'a')&&(cl 〈二'z') C. (cl>=a )&&(cl<=z ) D.(务‘〈二cl ) | | ('z'>二cl )10. 下列有关共同体说法正确的是()A.任一时刻,只有一个分量有效,其他 分量无意义B.共同体变量可以用作函数参数C.结构变量可以出现在共同体 类型中,而共同体变量不能出现在结构类型中D.在定义共同体变量时不能为 其初始化11・以下程序的输岀结果是()void main () {int x=020^ y=0x20^ z=20; 32, 16, 20 C. 16, 32, 20 D. 20, 32, 20printf 冷 * z) ; } A. 20, 20, 20 B.12.若有运算符:>、*二、==、%、sizeof,则它们按优先级(由低至高)的正确排列次序为()A. *二-> ==->>->% -> sizeof B. == -> *二->>->% -> sizeof C. *二-〉 > -〉二二-〉sizeof -> % D. *二-〉 > -〉二二 -〉% -> sizeof13.char s[]二” student”,*(s+2)的值是()A.,u,B. <d,C. “s' D. 't'14.用C语言编写的源程序,必须经过编译、连接和运行才能得到结果。

[软件基础考试答案]软件技术基础考试答案

[软件基础考试答案]软件技术基础考试答案

[软件基础考试答案]软件技术基础考试答案第1章数据结构与算法1.1算法1.算法的基本概念*(1)定义:指为了解决某类问题而规定的一个有限长度的操作序列。

或者说是一组严谨地定义运算顺序的规则。

问题处理方案的正确而完整的描述称为算法。

A(8)B(6)TEMP(8)*(2)算法的特征:可行性;确定性;有穷性;拥有足够的情报。

(3)算法的基本要素。

对数据的运算和操作;算法的控制结构。

(4)基本运算和操作有:算术运算(+-*/%);逻辑运算(与,或,非)C:&&||!VF:.And..or..not.;关系运算(比较)(>=,>,);数据传输(a=10,a=b)。

(5)描述算法的工具:传统流程图、N-S(盒图)结构化流程图、算法描述语言等。

(伪码)定义变量TT=AA=BB=T定义变量TT=AA=BB=T输出AB输入AB输入A,BTA>BTF??????*(6)算法的基本控制结构3种:顺序、选择(if-else判断、分支)、循环(重复for,while,dowhile)。

(7)算法设计的基本方法:列举法,归纳法,递推法,递归法,减半递推法,回溯法。

列举法:a+b=100a=0b=100,a=1b=99,a=100b=0fora=0to100b=100-anextab+ba=100fora=1to9forb=1to9ifa*10+b+b*10+a=100abc 递归法S100=1+2+3+….+100S100=100+S99S99=99+S98S1=13710(8)算法设计的要求:正确性,可读性,健壮性,效率与低存储量要求。

*2.算法的复杂度(1)算法的复杂度包括(时间复杂度)和(空间复杂度)。

***(2)时间复杂度是指执行算法所需要的计算工作量。

(基本运算次数)。

不是时间长短(3)空间复杂度是指执行算法所需要的内存空间。

(包括算法程序所占的空间,输入初始数据所占空间,算法执行过程中所需要的额外空间。

2024年软件资格考试程序员(初级)(基础知识、应用技术)合卷试卷与参考答案

2024年软件资格考试程序员(初级)(基础知识、应用技术)合卷试卷与参考答案

2024年软件资格考试程序员(基础知识、应用技术)合卷(初级)自测试卷(答案在后面)一、基础知识(客观选择题,75题,每题1分,共75分)1、题目:在软件开发过程中,需求分析和设计阶段的主要目的是?A. 实现软件功能B. 确定软件开发的方法和技术C. 预测软件的性能和可扩展性D. 明确软件的功能和用户需求,为编程阶段做准备2、题目:以下是关于面向对象编程(OOP)的概念,哪一项是错误的?A. 封装是指在面向对象程序设计中将数据和操作数据的方法捆绑在一起。

B. 继承是指一个类可以继承另一个类的属性和方法。

C. 多态是指同一个操作作用于不同的对象,可以有不同的解释和表现。

D. 面向对象程序设计没有考虑数据库操作。

3、下列关于计算机指令系统的描述,错误的是:A、指令系统是计算机硬件的语言系统B、指令由操作码和操作数组成C、不同计算机的指令系统完全不同,相互不兼容D、指令的功能是控制计算机进行某种操作4、下列关于计算机网络的描述,正确的是:A、计算机网络仅指通过有线方式连接起来的计算机集合B、计算机网络的主要功能是资源共享和信息传递C、计算机网络中,各计算机之间不能直接通信,必须通过服务器中转D、计算机网络的拓扑结构仅包括总线型、星型和环型5、关于面向对象编程中的继承机制,下列描述错误的是:A)继承可以实现代码重用,提高开发效率。

B)子类可以继承父类的所有属性和方法。

C)子类可以添加新的方法或属性,以扩展父类的功能。

D)子类不能重写父类的方法来改变其行为。

6、关于数据库事务的ACID特性,下列哪一项不是事务的基本要求?A)原子性(Atomicity)B)一致性(Consistency)C)隔离性(Isolation)D)分布性(Distribution)7、题目:在软件工程中,以下哪个阶段不属于软件开发生命周期?A. 需求分析B. 设计C. 编码D. 测试E. 维护8、题目:在面向对象编程中,以下哪个概念与“封装”相对应?A. 继承B. 多态C. 抽象D. 封装9、在计算机科学中,RAM 是指什么?•A) 随机存取存储器•B) 硬盘存储器•C) 只读存储器•D) 光盘存储器 10、IPv4 地址由多少个二进制位组成?•A) 8 位•B) 16 位•C) 32 位•D) 64 位11、题目:在Java编程语言中,以下哪个不是关键字?A. classB. extendsC. finalD. int12、题目:在C++编程语言中,以下哪个函数用于动态分配一份数据空间,使得其大小足够存储n个类型为T的元素?A. malloc(n * sizeof(T))B. new[]T[n]C. memcpy(n, sizeof(T))D. strcpy(n, sizeof(T))13、下列关于数据库事务处理的说法中,错误的是()。

计算机软件技术基础所有题目答案-自学

计算机软件技术基础所有题目答案-自学

数据结构习题答案 2 第一节概论 2 第二节线性表 5 第三节栈和行列16 第五节树19 第七节查找25 第八节排序29 操作系统练习题参照答案32数据结构习题答案第一节概论一、选择题1.要求同一逻辑结构的所有数据元素拥有相同的特征,这意味着( )。

A.数据元素拥有同一的特色~B.不单数据元素包含的数据项的个数要相同,并且对应数据项的种类要一致 C.每个数据元素都相同 D.数据元素所包含的数据项的个数要相等2.数据结构是一门研究非数值计算的程序设计问题上当算机的( (1) )以及它们之间的( (2) )和运算的学科。

(1) ~A.操作对象 B.计算方法 C.逻辑储存 D.数据映像(2) A.结构~B.关系 C.运算 D.算法3.数据结构被形式地定义为(D,R),此中D是( (1) )的有限会合,R是D上( (2) )的有限会合。

(1) A.算法~B.数据元素 C.数据操作 D.逻辑结构(2)A.操作 B.映像 C.储存~D.关系4.在数据结构中,从逻辑上能够把数据结构分为( )。

A.动向结构和静态结构 B.紧凑结构和非紧凑结构~C.线性结构和非线性结构 D.内部结构和外面结构5.线性表的次序储存结构是一种( )的储存结构。

~A.随机存取 B.次序存取 C.索引存取 D.Hash存取6.算法剖析的目的是( )。

A.找出数据结构的合理性 B.研究算法中的输入和输出的关系~C.剖析算法的效率以求改良D.剖析算法的易懂性和文档性7.计算机算法指的是( (1) ),它一定具备输入、输出和( (2) )等五个特色。

(1) A.计算方法 B.排序方法~C.解决某一问题的有限运算序列 D.调动方法(2) A.可行性、可移植性和可扩大性~B.可行性、确立性和有穷性 C.确立性,有穷性和稳固性 D.易读性、稳固性和安全性8.线性表若采纳链表储存结构,要求内存中可用储存单元的地点( )。

A.一定是连续的 B.部分一定是连续的 C.必定是不连续的~D.连续不连续都能够9.在以下的表达中,正确的选项是( )。

软件测试技术基础试题及答案

软件测试技术基础试题及答案

s软件测试技术基础-在线作业_2交卷时间2020-12-20 16:03:45一、单选题(每题4分,共20道小题,总分值80分)1.对象实现了数据和操作的结合,使数据和操作()于对象的统一体中。

(4分)A 结合B 隐藏C 封装D 抽象纠错正确答案C☜✔✔✔解析知识点s软件测试技术基础2.数据字典是对数据定义信息的集合,它所定义的对象都包含于()(4分)A 数据流图B 程序框图C 软件结构D 方框图纠错正确答案A☜✔✔✔解析知识点s软件测试技术基础3.下列几种类型中,耦合性最弱的是()。

(4分)A 内容型B 控制型C 公共型D 数据型纠错正确答案D☜✔✔✔解析知识点s软件测试技术基础4.软件开发中常采用的结构化生命周期方法,由于其特征而一般称其为()(4分)A 瀑布模型B 对象模型C 螺旋模型D 层次模型纠错正确答案A☜✔✔✔解析知识点s软件测试技术基础5.面向对象的开发方法中,()将是面向对象技术领域内占主导地位的标准建模语言。

(4分)A Booch方法B UML语言C OMT方法D Coad方法纠错正确答案B☜✔✔✔解析知识点s软件测试技术基础6.为改正软件系统中潜藏的错误而进行的维护活动称为()。

1501 (4分)A 纠错性维护B 适应性维护C 改善性维护D 预防性维护纠错正确答案A☜✔✔✔解析知识点s软件测试技术基础7.瀑布模型把软件生命周期划分为八个阶段:问题的定义、可行性研究、软件需求分析、系统总体设计、详细设计、编码、测试和运行、维护。

八个阶段又可归纳为三个大的阶段:计划阶段、开发阶段和()。

(4分)A 详细计划B 可行性分析C 运行阶段D 测试与排错纠错正确答案C☜✔✔✔解析知识点s软件测试技术基础8.通过执行对象的操作改变对象的属性,但它必须通过()的传递。

(4分)A 接口B 消息C 信息D 操作纠错正确答案B☜✔✔✔解析知识点s软件测试技术基础9.在面向对象软件开发方法中,类与类之间主要有以下结构关系()(4分)A 继承和聚集B 继承和一般C 聚集和消息传递D 继承和方法调用纠错正确答案A☜✔✔✔解析知识点s软件测试技术基础10.以下哪一项不是软件危机的表现形式()(4分)A 成本高B 生产率低C 技术发展快D 质量得不到保证纠错正确答案C☜✔✔✔解析知识点s软件测试技术基础11.需求分析的任务不包括()。

《软件技术基础》试题A4答案

《软件技术基础》试题A4答案

一、填空题:(30分,每空0.5分)1、计算机软件的发展经历了程序设计阶段、程序系统阶段和软件工程阶段三个发展阶段。

(程序、软件、软件产品)2、软件维护包括纠错性维护、完善性维护、适应性维护和预防性维护。

3、软件开发时期通常由总体设计、详细设计、编码和单元设计、综合测试四个阶段组成。

其中前两个阶段又称为系统设计,后两个阶段又称为系统试验。

4、由数据元素组成数据的方式有顺序、选择和重复三种基本类型。

5、对于软件系统的逻辑模型应从经济可行性、技术可行性、法律可行性和操作可行性研究每种解法的可行性。

6、必须严格验证需求的正确性。

一般说来,应该从一致性、完整性、现实性和有效性四个方面进行验证。

7、软件的总体设计分为:系统设计和结构设计两个阶段。

8、模块的最重要特征是:抽象、信息隐藏。

9、模块的独立程度可以由两个定性标准度量,即内聚(块内联系)和耦合(块间联系)。

10、在层次图和结构图中,矩形框代表模块,矩形框之间的连线表示模块间的调用关系。

11、信息流可分为交换流、事务流两种类型。

12、程序设计方法论可分为:自顶向下的程序设计方法、自底向上的程序设计方法。

13、数据库系统由硬件系统、数据库集合、数据库管理系统及相关软件、数据库管理员和用户五部分组成。

14、数据库管理系统应该提供数据定义功能、数据操纵功能、数据库运行控制功能和数据字典几个方面的功能。

15、算法具有的主要性质有:有穷性、确定性、可行性、和拥有足够的情报(有输入数据和确定的输出结果)。

16、基本算法设计方法包括:枚举法(列举法)、归纳法、回溯法、数字模拟法和数值法。

17、数据是信息的载体,是数据元素的集合,数据结构包括数据的逻辑结构和物理(存储)结构。

18、有数据序列:ACBKHJ,若该序列为入队序列,则其出队序列为ACBKHJ,若该序列为入栈序列,则出栈序列为JHKBCA。

二、简答题(40分,每个5分)1、软件工程的基本原理有哪些?答:(1) 用分阶段的生命周期计划严格管理(2) 坚持进行阶段评审(3) 实行严格的产品控制(4) 采用现代程序设计技术(5) 结果应能清楚地审查(6) 开发小组的人员应该少而精(7) 承认不断改进软件工程实践的必要性2、什么是数据字典?简要说明其主要内容及用途。

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

《软件技术基础》课程自测题一一、单项选择题(每题2分,共40分)● 采用二元描述法可描述任意数据结构为(K ,R ),其中K 和R 分别代表(C )的集合A 算法和操作B 逻辑结构和存储结构C 数据元素和关系D 结构和算法● 计算机算法指的是(C )A 计算方法B 程序C 解决问题的方法和步骤D 调度方法● 一个栈的元素进栈顺序是1、2、3、4、5,则出栈顺序不可能是(C )A 1、2、3、4、5B 2、3、1、5、4C 4、3、5、1、2D 4、5、3、2、1● 一个队列的入队序列是1、2、3、4,则队列的输出顺序为(B )A 4、3、2、1B 1、2、3、4C 1、2、4、3D 2、1、3、4● 在链接式队列中删除结点时,执行的操作为(B )A rear = front->nextB front = front->nextC front = rear->nextD rear = rear->next● 如图所示的二叉树中,(C )不是完全二叉树● 具有4个结点的二叉树的形状有(A )种。

A 16B 5C 80D 20● 一个有n 个顶点的无向图最多有(D )条边A n -1B n +1C n (n +1)/2D n (n -1)/2● 线性表必须先(C )后,才能对线性表进行折半检索。

A 元素连续存放B 元素链接式存放C 元素按关键值大小排列D 元素按存放地址高低排列 ● 从未排序子表中依次取出元素放入到已排序子表的正确位置上的方法是(D )A 简单选择排序B 快速排序C 冒泡排序D 简单插入排序● 一个计算机系统由(D )组成A CPU 、存储器B CPU 和外设C 操作系统和用户程序D 硬件和软件● 在SPOOLing 技术中,系统实际上将(B )分配给用户进程A 设备的信号量B 磁盘上的一块区域,即虚拟设备C 设备的一段使用时间D 设备的缓冲区● 分页式存储管理是基于(D )实现的。

A 固定分区B 动态分区C 静态重定位D 动态重定位● 进程的状态转换不可以是(A )A 从阻塞态到执行态B 从执行态到阻塞态C 从阻塞态到结束态D 从阻塞态到就绪态 ● 原语是一段程序,它和普通程序本质不同在于(B )A 原语提供系统服务B 原语具有不可中断性C 原语程序很短D 原语执行不同的指令集 ● 假设有5个进程J1~J5同时到达系统,它们的运行时间为10,6,2,4和8分钟,它们的优先级分别为3,5,2,1和4(5为最低优先级),若采用优先级调度算法,假设进程是依次执行完毕的,则平均周转时间为(C )A 20分钟B 6分钟C 16分钟D 10分钟● 虚拟设备技术是一种(D )A把共享设备改为某作业的独占设备,集中完成I/O请求B 把I/O请求交给多个物理设备分散完成 C 把I/O信息先放在外存,然后由一台物理设备分批完成 D 利用外存作为缓冲,将作业与外存交换信息和外存与物理设备交换信息两者独立起来,并使它们并行工作●系统总是选择(A)状态的进程占用处理器A 就绪B 等待C 阻塞D 挂起●存储管理的目的是(B)A 方便用户B 提高内存利用率C 扩充内存实际容量D 减少系统开销●文件的物理结构通常有以下几种(B)A 记录式文件、流式文件B 连续文件、链接文件C 顺序存取文件、随机存取文件D 可读文件、可写文件二、判断题(每题1分,共10分)(T)二维数组可以看作是数据元素为线性表的线性表。

(F)若某二叉树的先序遍历和中序遍历序列相同,则此二叉树一定有且仅有一个结点(F)顺序存储方式只能用于存储线性结构(T)如果已知二叉树先序遍历和中序遍历序列,可以得到该二叉树的后序遍历顺序。

(T)一个元素集合形成的二叉排序树不是唯一的,但根据一个元素序列形成的二叉排序树是唯一的。

(F)无论采用哪种存储管理方式,程序的逻辑地址均是连续的。

(F)程序是计算机操作系统中能独立运行的基本单位。

(T)利用信号量机制不能预防死锁的发生。

(T)OS的设计必须要保证进程的执行结果具有可再现性。

(T)通道是特殊的处理机,能够与CPU并行工作以提高效率。

三、填空题(每题1分,共15分)●利用二维数组a存放元素,设元素个数为M,分为I行和J列,每个元素占8字节空间,则共需要 8M 字节,第4行和第5列的元素加起来占用(I+J-1)×8 字节空间,如果按照行优先存放,元素a34存放位置与按照列优先存放的元素的行号和列号分别为(2×J+4)%I、(2×J+4)/I+1 存放位置相同。

●在双链表中,每个节点具有两个指针。

●分块查找算法中,块间元素的排列是有序的,块内元素的排列是无序的。

●存储管理应实现的功能是:主存空间的分配与释放,地址变换,主存空间的共享和保护,虚拟存储管理●分时系统追求的目标是人机交互,实时系统追求的目标是即时响应●在操作系统中,可以利用低级通信方式在进程间传递控制信息;利用高级通信方式在进程间传递大量数据●分页式存储管理中,页表是用来指出逻辑页与主存块之间的对应关系。

●从人机交互方式来看,操作系统是用户与计算机之间的接口四、简答与简单应用题(共20分)●简述下列术语:树结点的度、树的度、图顶点的度,如果把树看作是有向图,则树结点的度是否等于图顶点的度?答:树结点的度指结点子树的数量,树的度是树上各结点度的最大值,无向图中顶点的度是该顶点边的数量,有向图顶点的度是以该顶点为弧头(入度)和以该顶点为弧尾(出度)的弧的总和。

如果将树看作是有向图,则树结点的度仅仅是出度。

●已知一个有序表 ( 15, 26, 34, 39, 45, 56, 58, 63, 74, 76, 83, 94 ) 顺序存储于一维数组a[12]中,根据折半搜索过程填写成功搜索下表中所给元素34, 56, 58, 63, 94时的比较次数。

答:元素值3456586394比较次数21345●请画出分页存储管理方式下的地址变换结构并简要描述其过程答:地址变换过程如下:1)将程序的逻辑地址形成有效地址,页号+页内地址形式2)根据页表始址和页号找到页表并查询页表相应表项;3)得到物理块号,将块号放入物理地址寄存器;4)将页内地址作为块内地址填入物理地址寄存器5)根据块号和块内地址访问内存●什么是死锁,死锁产生的原因和必要条件有哪些?答:当两个或两个以上进程因竞争资源而无休止地处于相互等待状态,称为死锁。

死锁是由于多个进程竞争资源,系统资源不够,且进程推进顺序不当而引起。

产生死锁的必要条件有:互斥条件、不剥夺条件、部分分配条件和环路条件,死锁产生缺一不可。

解决死锁的办法有哪些?(请简要描述这些方法的基本原理)答:有死锁的预防,通过破坏死锁产生的四个必要条件的一个或几个,具体有资源静态分配、按序分配、剥夺资源和进程一次申请所有的资源等方法;避免死锁,在系统运行过程中,尽力避免进入不安全状态,即将导致死锁的状态;检测死锁和解除,系统不断检测当前是否出现死锁,然后以一定方法解除进程间的死锁,如撤销进程或剥夺资源。

●请简要描述几个常用的页面置换(淘汰)算法基本原理答:常见的页面淘汰算法有:FIFO算法、LRU算法和LFU算法。

FIFO算法:选择进程当前页面中最先进入内存的页面淘汰LRU算法:选择进程当前页面中最近一段时间最久没有使用过的页面LFU算法:选择进程当前页面中最近一段时间使用频率最小的页面五、应用题(共15分)●已知一棵二叉树的中序和先序序列如下,中序序列:c,b,d,e,a,g,I,h,j,f先序序列:a,b,c,d,e,f,g,h,I,j(1)求该二叉树的后序遍历序列,(2)试构造该二叉树。

答:本题先构造二叉树,再完成后序遍历更容易后序遍历:c,e,d,b,I,j,h,g,f,a●下面是用C语言写的单链表直接选择排序算法,排序的结果是单链表按关键字值升序排列。

算法中有若干处语句和判断条件空缺,请在空缺处填上适当的语句或条件。

(提示:该算法的基本思想是,每次从链表p中找出最大的元素,从链表取下元素,放在新链表t的第一个位置,如此反复,t链表就成为一个升序排列的链表)typedef struct node{int key;struct node *next;}node;node *selectsort(node *head){node *p,*q,*r,*s,*t;t=NULL;while(head!=NULL){p=head;q=NULL;s=head;r=NULL;while(p!=NULL){if( ){;;}q=p;p=p->next;}if(s= =head) head=head->next;else;s->next=t;t=s;}head=t;return(head);}答:p->key > s->keys = pr = qr->next = s->next。

相关文档
最新文档