ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:28.66KB ,
资源ID:7931614      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7931614.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第四套模拟试题参考答案及解析.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

第四套模拟试题参考答案及解析.docx

1、第四套模拟试题参考答案及解析第四套模拟试题参考答案及解析1. 本题考查的是数据结构的基本概念。 数据的逻辑结构在计算机存储空间中的存放形式形式称为数据的存储结构(也称数据的物理结构)。故本题答案为D。2. 本题考查的是栈和队列。 栈是一种特殊的线性表,这种线性表只能在固定的一端进行插入和删除操作,允许插入和删除的一端称为栈顶,另一端称为栈底。一个新元素只能从栈顶一端进入,删除时,只能删除栈顶的元素,即刚刚被插入的元素。所以栈又称先进后出表(FILO-First In Last Out)。线性表可以顺序存储,也可以链式存储,而栈是一种线性表,也可以采用链式存储结构。故本题答案为B。3. 本题考查

2、的是基本排序算法。 假设线性表的长度为n,则在最坏情况下,冒泡排序需要经过n/2遍的从前往后扫描和n/2遍的从后往前扫描,需要比较次数为n(n-1)/2。快速排序法的最坏情况比较次数也是n(n-1)/2。 故本题答案为D。4. 本题考查的是顺序查找。 在进行顺序查找过程中,如果线性表中的第一个元素就是被查找元素,则只需做一次比较就查找成功,查找效率最高;但如果被查找的元素是线性表中的最后一个元素,或者被查找的元素根本就不在线性表中,则为了查找这个元素需要与线性表中所有的元素进行比较,这是顺序查找的最坏情况。所以对长度为n的线性表进行顺序查找,在最坏情况下需要比较n次。故本题答案为C。5. 本题

3、考查的是线性单链表、双向链表与循环链表的结构及其基本运算。 在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来确定的。故本题答案为A。6. 本题考查的是软件测试的目的。 关于软件测试的目的,Grenford J.Myers再The Art of Software Testing一书中给出了深刻的阐述:软件测试是为了发现错误而执行程序的过程;一个好的测试用例是指很可能找到迄今为止尚未发现的错误的用例;一个成功的测试是发现了至今尚未发现的错误的测试。整体来说,软件测试的目的就是尽可能多地发现程序中的错误。

4、故本题答案为C。7. 本题考查的是软件工程基本概念。 模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。耦合性与内聚性是模块独立性的两个定性标准,耦合与内聚是相互关联的。在程序结构中,各模块的内聚性越强,则耦合性越弱。一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。故本题答案为B。8. 本题考查的是软件工程基本概念。 计算机软件是计算机系统中与硬件相互依存的另一部分,是包括程序、数据及相关文档的完整集合。软件具有以下特点:软件是一种逻辑实体,而不是物理实体,具有抽象性;软件的生产过程与硬件

5、不同,它没有明显的制作过程;软件在运行、使用期间不存在磨损、老化问题;软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致软件移植的问题;软件复杂性高,成本昂贵;软件开发涉及诸多的社会因素。故本题答案为D。9. 本题考查的是数据库系统的基本特点。 数据独立性是数据与程序间的互不依赖性,即数据库中数据独立于应用程序而不依赖于应用程序。也就是说,数据的逻辑结构、存储结构与存取方式的改变不会影响应用程序。选项A、B、C三种说法都是错误的。故本题答案为D。10. 本题考查的是数据模型。 层次模型是最早发展起来的数据库模型,它的基本结构是树形结构。故本题答案为C。11. 本题考查的是常量表

6、示法。 C语言的常量分为整型常量、实型常量和字符型常量。本题中只包含整型常量和实型常量。选项B从形式上来看属于整型常量中的八进制整数,以0开头,但只能用0-7表示八进制数,所以选项B不合法;选项C和D从形式上看属于实型常量,用指数形式表示的实型常量需要注意一点:e(或E)之前必需有数字,且e后面的指数必须为整数,所以选项C和D中e后面为小数和没有数字的形式都不合法;选项A属于实型常量中的十进制小数形式的表示法,是合法的。故本题答案为A。12. 本题考查的是算法的特性。 算法的特性中包括有零个或多个输入及有一个或多个输出这两个特性。输入是指执行算法时从外界取得必要的信息。一个算法可以有两个或多个

7、输入,但也可以没有输入;一个算法得到的结果就是算法的输出,没有输出的算法是没有意义的,所以一个算法必须至少有一个输出。故本题答案为C。13. 本题考查的是算法的特性。 C语言规定标识符只能由字母、数字和下划线三种符号组成,而且第一个字符必须是字母或下划线。注意:大写字母和小写字母被认为是两个不同的字符。所以选项A中Main与主函数名main不同。另外标识符名不能与关键字重名,所以选项D是非法的标识符。故本题答案为D。14. 本题考查的是常量表示法。 本题选项中的几个常量都属于指数形式的实型常量。此种类型的常量要求字母e(或E)之前必需有数字,且e后面的指数必须为整数,所以本题中选项B非法。故本

8、题答案为B。15. 本题考查的是格式输出函数。 变量a,b定义为字符,执行语句printf(%c,b+);后,输出字符变量b的值2(b+是在使用b之后,再将b的值加1),b自加,b的值变成字符3,执行printf(%dn,b-a);,即3-1,故输出的值为数字2。故本题答案为C。16. 本题考查的是变量的自加运算。 +在变量前和变量后的唯一区别就在于在执行+变量所在的语句时,是先将变量加1再执行它所在语句还是先执行它所在的语句再使变量加1,当+在变量后时,也就是变量+,那就是先将变量值代入表达式运算后再使变量加1;而+变量是先使变量加1,再把加1后的结果放入表达式进行运算。这两种情况,在执行完

9、变量所在的语句后,它们在内存中的值都是加过1之后的值了。 本题执行printf(%d%d,m+,+n);后,输出的是m和n+1的值1235,接着使m+1=13,执行printf(%d%dn,n+,+m);输出n和m+1的值3514。故本题答案为A。17. 本题考查的是格式输入函数。 scanf函数中的格式控制后面应当是地址,而不是变量名。对于变量,通过地址运算符&求出内存中的地址;对于数组c10,数组名c即为数组在内存中的地址。故本题答案为B。18. 本题考查的是格式输入函数。 如果在格式控制字符串中除了格式说明以外还有其他字符,则在输入数据时应输入与这些字符相同的字符。根据本题的数据输入形式

10、scanf(m=%dn=%dp=%d,&m,&n,&p);说明在输入数据时,必须输入m=、n=、p=字符,且中间不能含有空格。故本题答案为A。19. 本题考查的是算术运算符。 如果算术运算符/中参与运算的变量都是整型变量,则/表示整除运算,%表示求余。本题中a=d/10%9;的值为25/10%9=2;b=a&(-1);为2&(-1)=1(注意:-1表示真,只有0才表示假),所以a,b的值分别为2,1。故本题答案为B。20. 本题考查的是条件判断语句。 +在变量前和变量后的唯一区别就在于在执行+变量所在的语句时,是先将变量加1再执行它所在语句还是先执行它所在的语句再使变量加1,当+在变量后时,也

11、就是变量+,那就是先将变量值代入表达式运算后再使变量加1;而+变量是先使变量加1,再把加1后的结果放入表达式进行运算。这两种情况,在执行完变量所在的语句后,它们在内存中的值都是加过1之后的值了。另外注意&和|的短路运算。当运算符&左边表达式的值为0时,则右边表达式就不再进行运算,整个表达式的值即为0;当运算符|左边表达式的值为非零时,则右边表达式就不再进行运算,整个表达式的值为1。本题中执行i+=1&(+j=3|k+=3)时,先执行i+=1,由于i+是先运算,后自加,所以表达式i+=1的值为真,其值为1,然后执行括号中的表达式,由于+j是先自加,后运算,所以表达式+j=3 的值为真,根据短路原

12、理,右边的表达式k+=3不再进行运算,直接得出括中表达的值为1,相与后整个表达式的值也为1,输出i,j,k时,由于未执行过k,所以它们的值分别为2,3,3。故本题的答案为D。21. 本题考查的是条件表达式。 条件表达式的一般形式为:表达式1?表达式2:表达式3 条件运算符的执行顺序为:先求解表达式1,若非0则求解表达式2,此时表达式2的值就是整个条件表达式的值,若表达式1的值为0,则求解表达式3,此时表达式3的值就是整个条件表达式的值。本题先求的是ab的值,根据a=1,b=4,故ab的值为真,所以整个表达式ab?a:cd?c:d的值为a的值1。故本题的答案为A。22. 本题考查的是数组。 本程

13、序的作用是求除p0外的其它奇数的和。本题执行过程如下:i=0:i+7的值为真,pi%2即为p1%2,值为0,不执行j+=pi;,所以j=0;i=1:i+7的值为真,pi%2即为p2%2,值为1,执行j+=pi;,所以j=13;i=2:i+7的值为真,pi%2即为p3%2,值为0,不执行j+=pi;,所以j=13;i=3:i+7的值为真,pi%2即为p4%2,值为1,执行j+=pi;,所以j=13+15=28;i=4:i+7的值为真,pi%2即为p5%2,值为0,不执行j+=pi;,所以j=28;i=5:i+7的值为真,pi%2即为p6%2,值为1,执行j+=pi;,所以j=28+17=45;i

14、=6:i+7的值为真,pi%2即为p7%2,值为0,不执行j+=pi;,所以j=45;i=7:i+7的值为假,结束循环,输出j的值45。故本题答案为45。23. 本题考查的是字符串函数的使用。 C语言中以0作为字符串的结束符,且strlen()函数计算的是0字符前的所有字符的个数。故本题中strlen(a)应为2。数组定义以后系统就为其分配相应大小的内存空间,而不论其中有没有内容。sizeof()函数是计算变量或数组所分配到的内存空间的大小。所以本题的sizeof(a)为7。故本题答案为C。24. 本题考查的是数组的定义。 选项A中定义的是5个数组元素,但赋值的时候赋的是6个元素,所以出错;选

15、项C不符合数组定义形式,数组名后应加上;选项D的类型说明符错误,如果用char定义就对了;选项B中的0,1,2,3,4,5分别表示对应字符的ASCII码,所以选项B是正确的。故本题答案为B。25. 本题考查的是函数的调用。 函数f1的功能是返回两个数中比较大的值,f2的功能是返回两个数中比较小的值。具体执行过程如下:1、f1(a,b):即f1(4,3),返回值为4;2、f1(c,d):即f1(5,2),返回值为5;3、e=f2(f1(a,b),f1(c,d):即f2(4,5),返回值为4;4、f2(a,b):即f2(4,3),返回值为3;5、f2(c,d):即f2(5,2),返回值为2;6、f

16、=f1(f2(a,b),f2(c,d):即f1(3,2),返回值为3;7、g=a+b+c+d-e-f;:即g=7。故本题答案为A。26. 本题考查的是数组定义。 C语言规定0为字符串结束标志,系统对字符串常量自动加一个0为结束符。所以char a=xyz的数组长度为4,而b=x,y,z;的数组长度为3(此处的数组长度与strlen函数所求的长度不同,此处的长度是指数组占内存空间的大小),故a数组长度大于b数组长度。故本题答案为C。27. 本题考查的是函数的调用。 本程序中函数f的作用是交换指针变量x和y所指向的存储单元的值。在主函数中,能过p=a;q=&a7;将指针变量p指向了数组的第一个元素

17、,指针变量q指向了数组的最后一个元素。通过f(p,q)调用函数f进行对称的数组元素的交换。当while循环4次(即p=q)后,a数组中各元素的值分别为87654321,所以程序输出的结果为8,7,6,5,4,3,2,1,。故本题答案为D。28. 本题考查的是指针变量对数组的引用。 本题通过for(i=0;i=8不成立,判断a%2=1成立,a+=5则a=6,continue,执行下一次循环;a=6,b=2:a=8不成立,判断a%2=1不成立,a-=3则a=3,执行下一次循环;a=3,b=3:a=8不成立,判断a%2=1成立,a+=5则a=8,continue,执行下一次循环;a=8,b=4:a=

18、8成立,break,结束整个循环,输出b的值4。故本题答案为B。41. 本题考查的是指针变量对数组的引用。 本题通过p=s将指针变量p指向字符数组s,在第一次输出时,由于+和*为同一优先级,而结合方向为自右向左,所以,*p+相于*(p+)。但又因为+在p的右侧,是后加,所以,先对p的原值进行*运算,得到s0的值,然后使得p加1,p指向s1,故在第二次输出的时候,输出的值为s1的值,所以输出结果为15。故本题答案为A。42. 本题考查的是字符串运算。 字符串的比较规则是对两个字符串自左至右逐个字符相比(按ASCII码值大小比较),直到出现不同的字符或遇到0为止,若全部字符相同,则认为相等;若出现

19、不相同的字符,则以第一个不相同的字符的比较结果为准,该函数就实现了此功能,如果两字符串相等,则返回0,否则返回第一个不等字符串的ASCII码的差值。故本题答案为D。43. 本题考查的是循环的嵌套。 本题程序为二重循环,外循环控制输出数据的行数,内循环控制输出数据的列数。从本题输出的形式来看,程序要求输出的是4行4列。外层循环for(i=0;i4;i+)控制输出4行,内层的第一个for循环控制每行的空格数的输出,第二个for循环用于控制每行数字的输出,由于每一行的数字个数比前一行少1,所以内层的第二个for循环每一次循环的次数需要递减1,那么j的初始必呈递增形式,又因为第一行输出的是4个数,所以

20、空格中填i是正确的。故本题答案为B。44. 本题考查的是指针变量对数组的引用。 在C语言中,函数的参数传递方式采用按值传递(即使是指针变量也是按值传递的),因此不能通过调用函数的方式来改变指针本身的值,只能改变指针所指变量的值,故在point函数中对指针p+=3的运算不能对调用它的函数起作用,所以本题的输出应该是a。故本题答案为A。45. 本题考查的是函数的调用。 题中char (*f1)()=fun定义了f1是一个指向函数fun的指针变量,即将函数fun的入口地址赋给了指针变量f1,这时f1和fun都指向函数的开头,调用*f1就是调用函数fun,注意,此时用函数指针变量调用函数时,只需将(*

21、f1)代替函数名fun即可,再在(*f1)之后的括弧中根据需要写上实参,所以(*f1)(a);就相当于fun(a),故选项A是正确的。 故本题答案为A。46. 本题考查的是链表。 本题定义了结构体类型的指针变量p,q,r,并各自有两个成员变量data和next,data用于存放数据,next用于存放下一个结点的地址,所以,要想将q所指结点从链表中删除,同时保持链表的连续,必需使p结点的next指向r,在四个选项中,只有选项D不能做到。故本题答案为D。47. 本题考查的是结构体。 选项A中typedef的作用是声明一个新的类型名AA代替已有的结构体类型名struct aa,然后用AA定义了结构体

22、类型的变量td;选项B直接用结构体类型名struct aa定义了结构体类型的变量td;选项C中的aa本身就为结构体变量名,所以不能再用它来定义结构体变量,故此种定义方法是错误的。选项D中省去了结构体名,直接将td定义成了结构体变量。故本题答案为C。48. 本题考查的是文件操作函数。 fseek函数用于改变文件的位置指针。调用的形式为:fseek(文件类型指针,位移量,起始点),起始点用0、1、2代替。0(SEEK_SET):文件开始;1(SEEK_CUR):文件当前位置;2(SEEK_END):文件末尾。位移量是指以起始点为基点,向前移动的字节数。本题中fseek(fp,0L,SEEK_SET

23、)的作用是将位置指针移到文件头。与此作用相同的函数是rewind(fp):使位置指针重新返回文件的开头。feof的作用是判断文件是否已指到了文件末尾,如果已指到文件的末尾,则返回值为非零,否则为零。ftell的作用是得到流式文件中的当前位置,用相对于文件开头的位移量来表示。fgets的作用是指定文件读入一个字符串。故本题答案为D。49. 本题考查的是文件操作。 题中fopen(fn,w)的作用是打开fn所指向的文件,使用文件方式为写入;fputs(str,fp)的作用是将字符str的值输出到fp所指向的文件中去。在程序中,两次使用写入的方式打开同一个文件,在第二次打开时,文件指针指向文件头,所以此次写入的数据覆盖了文件原有的数据,故本题中t1.dat的内容为end。故本题答案为B。50. 本题考查的是算法的特性。 有穷性、确定性、有零个或多个输入、有一个或多个输出、有效性是算法的五大特性。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1