模拟试卷一参考答案及评析.doc

上传人:桔**** 文档编号:558933788 上传时间:2023-05-01 格式:DOC 页数:5 大小:52.51KB
返回 下载 相关 举报
模拟试卷一参考答案及评析.doc_第1页
第1页 / 共5页
模拟试卷一参考答案及评析.doc_第2页
第2页 / 共5页
模拟试卷一参考答案及评析.doc_第3页
第3页 / 共5页
模拟试卷一参考答案及评析.doc_第4页
第4页 / 共5页
模拟试卷一参考答案及评析.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《模拟试卷一参考答案及评析.doc》由会员分享,可在线阅读,更多相关《模拟试卷一参考答案及评析.doc(5页珍藏版)》请在金锄头文库上搜索。

1、参考答案及评析一、选择题 (1)D 评析:数据的逻辑结构在计算机存储空间中的存放形式形式称为数据的存储结构(也称数据的物理结构)。 (2)B 评析:栈是一种特殊的线性表,又称先进后出表(FILOFirst In Last Out)。 (3)D 评析:假设线性表的长度为n,则在最坏情况下,冒泡排序需要经过n/2 遍的从前往后扫描和n/2 遍的从后往前扫描,需要比较次数为n(n-1)/2。快速排序法的最坏情况比较次数也是n(n-1)/2。 (4)C 评析:顺序查找过程中,如果被查找的元素是线性表中的最后一个元素,或者元素不在线性表中,则需要与线性表中所有的元素进行比较。对长度为n 的线性表进行顺序

2、查找,在最坏情况下需要比较n 次。 (5)A 评析:在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来确定的。 (6)C 评析:关于软件测试的目的,Grenford J.Myers 再The Art of Software Testing一书中给出了深刻的阐述,整体来说,软件测试的目的就是尽可能多地发现程序中的错误。 (7)B 评析:模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。软件设计,应尽量做到高内聚,低耦合,有利于提高模块的独立性。 (8)D 评析:计算

3、机软件是计算机系统中与硬件相互依存的另一部分,是包括程序、数据及相关文档的完整集合。 (9)D 评析:数据独立性是数据与程序间的互不依赖性,即数据库中数据独立于应用程序而不依赖于应用程序。也就是说,数据的逻辑结构、存储结构与存取方式的改变不会影响应用程序。选项A、B、C 三种说法都是错误的。 (10)C 评析:层次模型是最早发展起来的数据库模型,它的基本结构是树形结构。 (11) B 评析: 有穷性、确定性、有零个或多个输入、有一个或多个输出、有效性是算法的基本特性。 (12) A 评析:C 语言的常量分为整型常量、实型常量和字符型常量。选项A 属于实型常量中的十进制小数形式的表示法,是合法的

4、。 (13) C 评析:算法的特性中包括“有零个或多个输入”及“有一个或多个输出”这两个特性。一个算法得到的结果就是算法的输出,没有输出的算法是没有意义的,所以一个算法必须至少有一个输出。 (14) D 评析: C 语言规定标识符只能由字母、数字和下划线三种符号组成,而且第一个字符必须是字母或下划线。注意:大写字母和小写字母被认为是两个不同的字符。A 中Main 与主函数名main 不同。 (15) B 评析:指数形式的实型常量要求字母e(或E)之前必需有数字,且e 后面的指数必须为整数,所以本题中选项B 非法。 (16) C 评析:执行语句“printf(%c,b+);”后, b 的值变成字

5、符3,执行“printf(%dn,b-a);”,即3-1。 (17)A 评析: 执行“ printf(%d%d,m+,+n); ” 后, 输出的是m 和n+1 的值1235 , 接着执行“printf(%d%dn,n+,+m);”输出n 和m+1 的值3514。 (18) B 评析:scanf 函数中的“格式控制”后面应当是地址,而不是变量名。对于变量,通过地址运算符“&” 求出内存中的地址;对于数组c10,数组名c 即为数组在内存中的地址。 (19) A 评析:根据本题的数据输入形式“scanf(m=%dn=%dp=%d,&m,&n,&p);”说明在输入数据时,必须输入“m=”、“n=”、“

6、p=”字符,且中间不能含有空格。 (20) B 评析:本题中“a=d/10%9;”的值为25/10%9=2;“b=a&(-1);”为2&(-1)=1(注意:-1 表示真,只有0 才表示假),所以a,b 的值分别为2,1。 (21)D 评析: 执行“i+=1&(+j=3|k+=3)”时,表达式“i+=1”的值为真,其值为1,表达式“+j=3” 的值为真,根据短路原理,右边的表达式“k+=3”不再进行运算,括号中表达的值为1,作与运算后整个表达式的值也为1,输出i,j,k 时,由于未执行过k,所以它们的值分别为2,3,3。 (22) A 评析:条件表达式的一般形式为:表达式1?表达式2:表达式3

7、本题先求的是ab 的值,为真,所以整个表达式“ab?a:cd?c:d”的值为a 的值1。 (23) B 评析:本程序的作用是求除p0外的其它奇数的和。 (24) C 评析: C 语言中以0作为字符串的结束符,且strlen()函数计算的是0字符前的所有字符的个数。数组定义以后系统就为其分配相应大小的内存空间,而不论其中有没有内容。 (25) B 评析: 选项A 中定义的是5 个数组元素,但赋值的时候赋的是6 个元素,所以出错;选项C 不符合数组定义形式,数组名后应加上“”;选项D 的类型说明符错误,如果用char 定义就对了;选项B 中的0,1,2,3,4,5 分别表示对应字符的ASCII 码

8、,所以选项B 是正确的。 (26) A 评析: 函数f1 的功能是返回两个数中比较大的值,f2 的功能是返回两个数中比较小的值。 (27)C 评析:C 语言规定0为字符串结束标志。所以“char a=xyz”的数组长度为4,而“b=x,y,z;” 的数组长度为3,数组长度与strlen 函数所求的长度不同,本题是指数组占内存空间的大小。 (28) D 评析:本程序中函数f 的作用是交换指针变量x 和y 所指向的存储单元的值。 (29) D 评析: 本题赋值后,a 的数组元素的值分别为a00=0, a01=1, a02=2, a10=3, a11=4, a12=5, a20=6, a21=7,

9、a22=8, 故本题输出的值为345。 (30) C 评析:在C 语言中,如果出现下标越界的情况,系统不管在编译还是执行时都不会给出“下标越界”的错误提示。 (31) C 评析: 本题函数fun 的作用是将指定的数组元素(从下标n 到下标m)向后移一位。由函数调用“fun(a,2,9);” 可知,函数fun 用于将a2到a9的各元素依次向后移一位,移完后,a 数组中各元素的值分别为1,2,3,3,4,5,6,7,8,9,10,故输出的前5 个数组元素为12334。 (32) B 评析:二维数组a,通过a32=0将数组中的各个元素初始化为0,指针变量ptr,指向包含2 个元素的一维数组。a00=

10、1,a10=2,故本题的输出选B。 (33) B 评析:用数组名作函数实参时,不是把数组的值传递给形参,而是把实参数组的起始地址传递给形参数组,这样两个数组就共同占用同一段内存单元。 (34) A 评析: C 语言规定数组变量名代表数组的首地址,即第0 号元素的地址。本题将a 数组中的值全部输出, 即为1,2,3,4,5,6,7,8,9,0,。 (35) D 评析:return 语句用于从被调函数带回一个函数值。void 关键字表示“无类型”,即不需要从被调函数中带回函数值,所以不需要return 语句,故编译时出错。 (36) C 评析: 按位“与”时,1 & 1=1,其他都等0。因为本题中

11、相与的两个值相等,即对应位上的二进制值相等,所以“与”的结果也即为其值本身。 (37)D 评析: 通常,预处理命令位于源文件的开头,也可以写在函数与函数之间;不能在一行上写多条预处理命令;宏名一般习惯用大写字母表示,以便与变量名相区别,但这并非规定,也可用小写字母。 (38) C 评析: union 是表示共用体的关键字,成员a,b,c 共占用同一个内存空间, data 的每个成员起始地址都相同;共用体变量所占的内存长度等于最长的成员的长度,故变量data 所占的内存字节数与成员c 所占字节数相等;执行“data.a=5;printf(%fn,data.c);” printf 函数只是将内存中

12、的数据以不同的类型输出, 而不能将内存中的整型数据自动转换为等值的浮点数,故C 是错误的。 (39) D 评析: 选项A 定义了字符型的指针变量sp,则*sp 存储的是第一个字符,而给它赋的是字符串,故错; 选项B 表示代表数组的首地址,而题中给它赋的是字符串,所以错误; 选项C 定义了一个字符型的数组s10,再通过*s 给数组元素赋初值,这时是与选项A 相同的错误。 (40) C 评析:typedef 关键字用于声明一个新的类型名代替已有的类型名。 本题中如果没有用typedef 进行定义的话,则struct ST 为结构体类型,现在用typedef 定义后,相当于用NEW 代表了struc

13、t ST 这一结构体类型,故NEW 为结构体类型。 (41) B 评析: break 和continue 的区别是:continue 语句只结束本次循环,而不是终止整个循环的执行;而break 语句则是结束整个循环过程,不再判断执行的条件是否成立。 (42) A 评析: 本题通过“p=s”将指针变量p 指向字符数组s,在第一次输出时,由于+和*为同一优先级,“*p+” 相于“*(p+)”。p 指向s1,输出为s1的值。 (43) D 评析:字符串的比较规则是对两个字符串自左至右逐个字符相比(按ASCII码值大小比较),直到出现不同的字符或遇到0为止,相等,则返回0,否则返回第一个不等字符串的A

14、SCII码的差值。 (44) B 评析: 本题程序为二重循环,外循环控制输出数据的行数,内循环控制输出数据的列数。从本题输出的形式来看,程序要求输出的是4 行4 列。 (45)A 评析: 在C 语言中,函数的参数传递方式采用按值传递,因此不能通过调用函数的方式来改变指针本身的值,只能改变指针所指变量的值。 (46) A 评析: 题中将函数fun 的入口地址赋给了指针变量f1,这时f1 和fun 都指向函数的开头,调用*f1 就是调用函数fun。 (47)D 评析:要想将q 所指结点从链表中删除,同时保持链表的连续,必需使p 结点的next 指向r,在四个选项中,只有选项D 不能做到。 (48)

15、 C 评析: 选项C 中的aa 本身就为结构体变量名,所以不能再用它来定义结构体变量,故此种定义方法是错误的。 (49)D 评析: fseek 函数用于改变文件的位置指针。 本题中“fseek(fp,0L,SEEK_SET)”的作用是将位置指针移到文件头。 feof 的作用是判断文件是否结束,已指到文件的末尾,则返回值为非零,否则为零。 ftell 的作用是得到流式文件中的当前位置,用相对于文件开头的位移量来表示。 fgets 的作用是指定文件读入一个字符串。 (50) B 评析:两次使用“写入”的方式打开同一个文件,在第二次打开时,文件指针指向文件头,所以此次写入的数据覆盖了文件原有的数据,故本题中t1.dat 的内容为end。 二、填空题 (1)【1】19 评析:二叉树的性质

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号