五套模拟试题详细答案及解析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第五套模拟试题参考答案及解析
1.所谓算法的时间复杂度,是指执行算法所需要的计算工作量。
为了能够比较客观地反映出一个算法的效率,在度量一个算法的工作量时,不仅应该与所使用的计算机、程序设计语言以及程序编制者无关,而且还应该与算法实现过程中的许多细节无关。为此,可以用算法在执行过程中所需基本运算的执行次数来度量算法的工作量。
本题答案是C。
2.根据数据结构中各数据元素之间前后间关系的复杂程度,一般将数据结构分为两大类型:线性结构与非线性结构。
如果一个非空的数据结构满足下列两个条件:(1)有且只有一个根结点;(2)每一个结点最多有一个前件,也最多有一个后件。则称该数据结构为线性结构,又称线性表。
所以线性表、栈与队列、线性链表都是线性结构,而二叉树是非线性结构。
本题答案是A。
3.所谓完全二叉树是指除最后一层外,每一层上的结点数均达到最大值;在最后一层上只缺少右边的若干结点。
具有n个结点的完全二叉树,其父结点数为int(n/2),而叶子结点数等于总结点数减去父结点数。本题n=699,故父结点数等于int(699/2)=349,叶子结点数等于699-349=350。
本题答案是B。
4.结构化程序设计主要强调的是结构化程序清晰易读,可理解性好,程序员能够进行逐步求精、程序证明和测试,以保证程序的正确性。
本题答案为B。
5.通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。也就是说,软件产品从考虑其概念开始,到该软件产品不能使用为止的整个时期都属于软件生命周期。
软件生命周期的主要活动阶段为:
(1)可行性研究和计划制定。确定待开发软件系统的开发目标和总的要求,给出它的功能、性能、可靠性以及接口等方面的可能方案,制定完成开发任务的实施计划。
(2)需求分析。对待开发软件提出的需求进行分析并给出详细定义,即准确地确定软件系统的功能。编写软件规格说明书及初步的用户手册,提交评审。
(3)软件设计。系统设计人员和程序设计人员应该在反复理解软件需求的基础上,给出软件的结构、模块的划分、功能的分配以及处理流程。
(4)软件实现。把软件设计转换成计算机可以接受的程序代码。即完成源程序的编码,编写用户手册、操作手册等面向用户的文档,编写单元测试计划。
(5)软件测试。在设计测试用例的基础上,检验软件的各个组成部分。编写测试分析报告。
(6)运行和维护。将已交付的软件投入运行,并在运行使用中不断地维护,根据新提出的需求进行必要而且可能的扩充和删改。
本题答案是D。
6.本题答案为A。
7.软件的需求分析阶段的工作,可以概括为四个方面:需求获取、需求分析、编写需求规格说明书和需求评审。
需求获取的目的是确定对目标系统的各方面需求。涉及到的主要任务是建立获取用户需求的方法框架,并支持和监控需求获取的过程。
需求分析是对获取的需求进行分析和综合,最终给出系统的解决方案和目标系统的逻辑模型。
编写需求规格说明书作为需求分析的阶段成果,可以为用户、分析人员和设计人员之间的交流提供方便,可以直接支持目标软件系统的确认,又可以作为控制软件开发进程的依据。
需求评审是对需求分析阶段的工作进行复审,验证需求文档的一致性、可行性、完整性和有效性。
本题答案是B。
8.由于数据的集成性使得数据可为多个应用所共享,特别是在网络发达的今天,数据库与网络的结合扩大了数据关系的应用范围。数据的共享自身又可极大地减少数据冗余性,不仅减少了不必要的存储空间,更为重要的是可以避免数据的不一致性。所谓数据的一致性是指在系统中同一数据的不同出现应保持相同的值,而数据的不一致性指的是同一个数据在系统的不同拷贝处有不同的值。
本题答案是A。
9.在关系数据库中,关系模型采用二维表来表示,简称"表"。二维表是由表框架及表元组组成。
在表框架中,按行可以存放数据,每行数据称为元组。
本题答案是A。
10.数据库设计可分为概念设计与逻辑设计。
数据库概念设计的目的是分析数据间内在语义关联,在此基础上建立一个数据的抽象模型。
数据库逻辑设计的主要工作是将ER图转换为指定的RDBMS中的关系模型。
本题答案是A。
11.本题的考查点是格式输入函数scanf()的使用。
scanf函数输入形式为:scanf(格式控制,地址表列);
选项B中,p=(long *)malloc(8)是分配8个字节的long型存储单元,所以能通过scanf语句正确给输入项读入数据;
选项C中,p=&a,求出变量a的内存地址并赋给p;
选项D中,能正确给输入项读入数据;
而选项A中,选项A中将没有对指针p进行正确的初始化,它将p所指空间的内容赋值为a的地址。所以,p记录的便是a的地址的地址,所以,选项A不能正确地读入数据。
故本题答案为A。
12.本题的考查点是格式输入、输出函数。
scanf( )把用户从键盘录入的数字的第1、2位存储入整型变量a,把第3、4、5位存储入单精度实型变量b,把第6、7、8、9位存储入单精度实型变量c,用户录入的第10位被scanf( )遗弃,这时变量a、b、c的值分别为:98、765.000000、4321.000000。
故本题答案为C。
13.本题的考查点是while()语句。
程序中使用的是while循环,为"当型"循环结构,即当条件为真时循环,将值代入循环,当num为3时,循环的条件已经为假,将不再循环。
本题答案为C。
14.本题的考查点是赋值语句。
选项A没有用分号表示语句结束,不合法;
选项B为i=i+1;,这并不是赋值语句;
选项D,函数名和C语言的关键字重名,不合法。
故本题答案为C。
15.本题的考查点是函数的调用。
sub()函数的作用是将形参y和x的差赋给了z指向的那个内存地址,所以在sub(10,5,&a),10和5属于值传递,直接将数值10和5分别传递给了变量x和y,而对于a是属于地址传递,也就是a与z指向了同一个存储单元,在执行函数后,a的值随*z变化,但b,c值并不改变,所以此次函数被调用后,a的值为y-x=-5,同理可知,在sub(7,a,&b)后,b的值发生变化,其值为-5-7=-12,在sub(a,b,&c)后,c的值发生变化,其值为-12-(-5)=-7。
故本题答案为B。
16.本题的考查点是C语句。
本题在编译时将出现以下错误:Statement mising ; in function main,这是因为在第三句的printf()函数后没有加上分号,在C语言中一定要在语句的末尾加上分号,否则编译不能通过。
故本题答案为D。
17.本题的考查点是逗号表达式。
在(x,y)中的","是一个特殊的运算符,叫做逗号运算符,它的一般形式为:表达式1,表达式2,求解过程为:先求解表达式1,再求解表达式2,整个表达式的值是表达式2的值,(x,y)的值为200,所以输出结果为200。
故本题答案为A。
18.本题的考查点是赋值表达式。