资源描述
第八套模拟试题参考答案及解析
1. 计算机算法是指解题方案的准确而完整的描述,它有以下几个基本特征:可行性、确定性、有穷性和拥有足够的情报。
本题答案为C。
2. 栈和队列都是一种特殊的操作受限的线性表,只允许在端点处进行插入和删除。二者的区别是:栈只允许在表的一端进行插入或删除操作,是一种"后进先出"的线性表;而队列只允许在表的一端进行插入操作,在另一端进行删除操作,是一种"先进先出"的线性表。
本题答案为C。
3. 依据后序遍历序列可确定根结点为c;再依据中序遍历序列可知其左子树由deba构成,右子树为空;又由左子树的后序遍历序列可知其根结点为e,由中序遍历序列可知其左子树为d,右子树由ba构成。求得该二叉树的前序遍历序列为选项A。
本题答案为A。
4. 快速排序的基本思想是,通过一趟排序将待排序记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,再分别对这两部分记录继续进行排序,以达到整个序列有序;插入排序的基本操作是指将无序序列中的各元素依次插入到已经有序的线性表中,从而得到一个新的序列;选择排序的基本思想是:扫描整个线性表,从中选出最小的元素,将它交换到表的最前面(这是它应有的位置),然后对剩下的子表采用同样的方法,直到表空为止;归并排序是将两个或两个以上的有序表组合成一个新的有序表。
本题答案为D。
5. 滥用goto语句将使程序流程无规律,可读性差;添加的注解行有利于对程序的理解,不应减少或取消;程序的长短要依照实际需要而定,并不是越短越好。
本题答案为A。
6. 调试的关键在于推断程序内部的错误位置及原因。主要的调试方法有强行排错法、回溯法和原因排除法。
本题答案为B。
7. 软件需求规格说明书(SRS,Software Requirement Specification)是需求分析阶段的最后成果,是软件开发中的重要文档之一。它有以下几个方面的作用:① 便于用户、开发人员进行理解和交流;② 反映出用户问题的结构,可以作为软件开发工作的基础和依据;③ 作为确认测试和验收的依据。
本题答案为D。
8. 数据流相当于一条管道,并有一级数据(信息)流经它。在数据流图中,用标有名字的箭头表示数据流。数据流可以从加工流向加工,也可以从加工流向文件或从文件流向加工,并且可以从外部实体流向系统或从系统流向外部实体。
本题答案为C。
9. 结构化查询语言(Structured Query Language,简称SQL)是集数据定义、数据操纵和数据控制功能于一体的数据库语言。
本题答案为C。
10. 视图设计一般有3种设计次序,它们分别是自顶向下、自底向上和由内向外,它们又为视图设计提供了具体的操作方法,设计者可根据实际情况灵活掌握,可以单独使用也可混合使用。
本题答案为B。
11. 本题的考查点是逻辑与及位与运算。
从整个表达式来看是个逻辑表达式,而与运算符"&&"的右边的子表达式中由于z的值为"A",而A的ASCII码的值小于a的ASCII码值,所以这个子表达式的值为真,即1;在与运算符"&&"的左边的子表达式是个基于位运算的子表达式,将x的值与15做位与运算,表达式值不为零,所以两个子表达式的与值应当为1。
故本题答案为B。
12. 本题的考查点是字符串的比较。
在字符串比较中,大小的确定是各个字符串相应位置字符的ASCII码的大小决定的,两个串的第一位分别为"A"和"D",A的ASCII码值小于D的ASCII码,所以如果让比较的结果为真,应当使用"<"运算符。
故本题答案为B。
13. 本题的考查点是函数的调用。
函数fun3()的作用是将形参x与3的和返回,所以fun3(k)的返回值为5,此时fun3()中局部静态变量a的值变为5并保留了下来,这样当执行fun3(m)时,返回值应当为5+1=6,所以最后的打印结果应当为6。
故本题答案为C。
14. 本题的考查点是共用体的长度。
sizeof(x)为一个运算符,它运算的结果是x型的数据结构占用的内存字节数。题目中定义了一个共用体,共用体变量在内存中所占的长度等于最长的成员的长度,所以共用体MYTYPE需要8个字节的存储空间,由它定义的变量的长度当然也是8。
故本题答案为C。
15. 本题的考查点是C语言中的关键字。
选项A和D中第一个字母大写,不正确;
选项C是PASCAL中的整型关键字,不是C语言中的关键字。
故本题答案为B。
16. 本题考查C语言数据类型。
C语言中长整型数为在数值后加上一个L或l字符。
本题答案为A。
17. 本题考查C语言标识符。
C语言的标识符的定义为:以字母或下划线开头的由字母、数字字符、下划线组成的字符串。而且标识符不能与关键字相同。
本题答案为C。
18. 本题考查C语言字符常量。
C语言中,字符常量是以单引号括起来的单个字符,或为以"\"与三位八进制数值或两位十六进制数值代替单个字符。
本题答案为B。
19. 本题考查C语言数据类型。
本题中X,Y为双精度浮点型数,3/2为整型相除结果为1,所以本题结果为3.000000。
本题答案为D。
20. 本题考查C语言的赋值语句。
本题中的选项A与D都缺少语句结束标志";",而选项C中,表达式是不能独立成为语句的,选项B使用了C语言的自减运算符,它相当于D=D-1,所以选项B为合法的赋值语句。
本题答案为B。
21. 本题主要考查C语言的自减运算符。
C语言的自减运算符有前置与后置两种形式。当自减运算符前置时,变量先自减一后再参与表达式运算;而后置时,变量先参与表达式运算后再自身减一。
本题答案为D。
22. 本题考查C语言的格式化输入语句。
C语言中没有INPUT与read语句,scanf()函数的格式为:
scanf("格式字符串",变量地址1,变量地址2,...);
本题答案为B。
23. 本题考查C语言的赋值运算符。a+=b就等于a=a+b,a-=b就等于a=a-b。所以"a+=a-=a*a"相当于先算"a-=a*a",此时a=3-3*3=-6,然后计算a+=-6,所以a=-6+(-6)=-12。
本题答案为D。
24. 本题考查C语言的比较运算符与逻辑运算符。
C语言中比较表达式的运算结果为0或1。0代表不成立,1表示成立。
本题答案为A。
25. 本题考查C语言中的自增(++)与自减(--)运算符。
C语言中"++"与"--"运算符有前置与后置两种形式,前置时变量先自增一或自减一后再参与表达式的运算,后置时变量先参与表达式的运算后再自增一或自减一。
本题答案为B。
26. 本题考查C语言的条件运算符。
C语言中条件运算符的表达式为:
表达式?表达式1:表达式2
当表达式为非零时,条件运算符的表达式的值为表达式1的值,否则为表达式2的值。
本题答案为D。
27. 本题考查C语言的while循环语句。
本题的t=1是一个赋值表达式,其值为变量的值,所以while语句的循环控制表达式的值为1。
本题答案为B。
28. 本题考查C语言的while循环语句。
题中num的初值为0,由while循环条件为num<=2,所以得出while共循环3次,在输出函数printf之前,由于有语句num++,所以第一次循环输出的num的值为1,第二次为2,第三次为3,
故本题答案为B。
29. 本题考查C语言的类型定义。
C语言中可以使用typedef来重新定义已有的数据类型,相当于为数据类型取个别名。
本题答案为C。
30. 本题考查C语言函数的参数的传值方式。
C语言函数中的参数传递方式是按值传递,指将实参的值复制一份传递给形参,形参的改变而不影响实参,即为单向传递。
本题答案为B。
31. 本题考查C语言函数的缺省的函数类型。
C语言中,如果函数前不加任何数据类型时,缺省函数的类型为整型,函数的类型就是函数返回值的类型。
本题答案为A。
32. 本题考查的是C语言的静态数据类型。静态数据类型的变量的值在退出了函数时依然存放在内存中,且只初始化一次。
本题答案为A。
33. 本题考查C语言的字符变量与整数的运算。
C语言中,可以将字符变量看成是一个整型变量,可以与整数运算,运算使用其ASCII值参与运算。
本题答案为A。
34. 本题考查C语言的字符常量与转义字符。
C语言中字符常量是以单引号括起来的单个字符,或为以"\"与三位八进制数值或两位十六进制数值代替单个字符。
本题答案为C。
35. 本题考查C语言中指针赋值运算。
指针是一种特殊的变量,它是用来存放变量地址的变量。指针定义时可以为其赋初值。只有指针被赋了值后才能对其使用。
本题答案为B。
36. 本题考查C语言数组的定义与初始化。
一维数组的定义方式为:类型说明符 数组名[常量表达式];其中,常量表达式中可以包括常量和符号常量,不能包括变量。也就是说,C不允许对数组的大小作动态定义,即数组的大小不依赖于程序运行过程中变量的值。
本题答案为D。
37. 本题考查C语言的数组的定义。
C语言中可以为数组赋初值,或部分赋初值。当数组定义后,系统就为其分配内存空间,不论其中有没有内容。本题虽然只给数组x赋了3个初值,但系统仍为数组x分配了10个内存空间。所以数组x在内存中所占字节数为2*10=20。
本题答案为D。
38. 本题是通过循环语句给数组元素赋值。
C语言中for循环语句的一般形式为:
for(表达式1;表达式2;表达式3)
{
语句部分;
}
本题答案为C。
39. 本题考查C语言的数组定义与数组的初始化。
C语言中多维数组赋初值时可以部分赋值,如果对全部元素赋初值,则定义数组时对第一维的长度可以不指定,但第二维的长度不能省。
本题答案为D。
40. 本题考查C语言中的二维数组的初始化。对未给出初始值的整数数组元素,被缺省初始化为零。
本题答案为A。
41. 本题主要考查C语言的字符串与库函数。
C语言中字符串是以'\0'字符结束的,且strlen()函数计算的是'\0'字符前的所有字符的个数。本题中strlen(st)应为5。数组定义以后系统就为其分配相应大小的内存空间,而不论其中有没有内容。sizeof()函数是计算变量或数组的所分配到的内存空间的大小。所以本题的sizeof(st)为20。
本题答案为B。
42. 本题考查C语言的字符数组和字符串的概念。
C语言中不能将字符串常量直接赋给一数组。但在赋初值时可以。
本题答案为A。
43. 本题主要考查的是指针与数组的操作。
可以用malloc()函数为指针分区内存空间,用free()函数释放指针变量所用内存空间。
本题答案为A。
44. 本题考查的是C语言中结构体与链表。
本题中是一个含有两个结点的循环链表。
C语言中结构体的定义为:
struct 结构体类型名
{
成员项表;
};
本题答案为D。
45. 本题主要考查continue语句和break语句的区别:continue语句只结束本次循环,而不是终止整个循环的执行。而break语句则是结束整个循环过程,不再判断执行循环的条件是否成立。本题中for循环语句共执行3次,所以a的值累加3次,结果为4。
本题答案为D。
46. 本题主要考查C语言中构造类型,联合体与结构体。
结构体中的成员使用各自的存储区,而联合体中的成员使用共同的存储区。所以,当给联合体中的成员变量k赋值后,联合体中的成员u.x也被覆盖,因为它们占用的是同一存储单元。
本题答案为D。
47. 本题主要考查的是C语言中的变量作用域。
全程变量是可以在子函数中对其值作改变,且它也可作为函数间的值传递。当函数或子函数中定义了与全程变量名称相同的局部变量,则全程变量将被屏蔽。所以本题主函数的局部变量a,b把同名的全程变量屏蔽了。
本题答案为B。
48. 本题考查C语言的宏定义。
C语言的宏定义包括不带参数的宏定义与带参数的宏定义。本题为带参数的宏定义,其形式为:
#define 宏名(形参表) 字符串
本题的M(a+b,b+c,c+a)被字符串a+b*b+c+c+a代替。
所以答案为D。
49. 本题考查C语言的逻辑运算符。
"||"为或运算符,当其左右表达式中只要一个为非零则整个表达式的值1。|是按位或,&是按位与,^是按位异或,这三个位运算符是按值的二进制位来比较的。
本题答案为D。
50. 本题主要考查考生对C语言中的文件操作方面的知识。
C语言中文件有文本文件与二进制文件,对文件的使用前必须先打开,打开方式有只读、写入、读写等方式。
本题答案为A。
51. 算法的复杂性是指对一个在有限步骤内终止算法和所需存储空间大小的估计。算法所需存储空间大小是算法的空间复杂性,算法的计算量是算法的时间复杂性。
标准答案为:空间复杂度和时间复杂度
52. 数据结构包括3个方面,即数据的逻辑结构、数据的存储结构及对数据的操作运算。
标准答案为:存储结构
53. 继承的优点:相似的对象可以共享程序代码和数据结构,从而大大减少了程序中的冗余,提高软件的可重用性。
标准答案为:可重用性 或 重用性 或 复用性 或 可复用性
54. 面向对象模型中,最基本的概念是对象和类。对象是现实世界中实体的模型化;将属性集和方法集相同的所有对象组合在一起,可以构成一个类。
标准答案为:类
55. 软件维护活动包括以下几类:改正性维护、适应性维护、完善性维护和预防性维护。改正性维护是指在软件交付使用后,为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,应当进行的诊断和改正错误的过程;适应性维护是指为了使软件适应变化,而去修改软件的过程;完善性维护是指为了满足用户对软件提出的新功能与性能要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性;预防性维护是为了提高软件的可维护性、可靠性等,为以后的进一步改进软件打下良好基础。
标准答案为:完善性
56. 本题主要考查考生对C语言的语法的掌握。
在C语言中使变量增1的方法有:自增运算符与赋值语句。其中自增运算符有前置与后置方式,赋值语句也有两种类型。
本题中的主要增1方式有:X++;、++X;、X=X+1;、X=1+X;、X+=1;。
标准答案为:X+=1;
57. 本题主要考查考生对C语言的语法的掌握。
判断变量的奇数的方法有用变量与2取模,判断结果是为1或不为0。本题的方法为:Y%2==1或Y%2!=0或Y&1或Y%2。
标准答案为:Y%2==1 或 Y%2!=0 或 Y&1 或 Y%2
58. 本题主要考查C语言do-while语句。
do-while语句的形式为:
do
{
语句;
while(条件表达式)
当条件表达式为非零时,继续进入循环语句,直到条件表达式为零时退出循环。
标准答案为:52
59. 本题主要考查考生对C语言的循环语句的掌握。
本题的程序的功能是将输入的整数反向输出。
标准答案为:8921
60. 本题主要考查的是静态成员变量。
函数的定义形式为:
函数类型 函数名(形参表)
{
类型说明语句;
执行语句;
}
本题中函数的功能是:与for语句一起求一个整数的阶乘。
标准答案为:120
61. 本题主要考查考生对C语言函数的掌握。
函数的定义形式为:
函数类型 函数名(形参表)
{
类型说明语句;
执行语句;
}
本题中函数的功能是:累积变量以求得变量的Y次方。
标准答案为:x
62. 本题主要考查考生对C语言中的指针的使用。
指针是一种数据类型,这种数据类型的变量用来存放内存中分配的存储单元的首地址。
指针的定义:
类型说明符 *指针变量名;
在表达式中引用指针所指向的值的格式:
*指针变量名
标准答案为:0 与 7
63. 本题主要考查考生对C语言函数的掌握。
函数的定义形式为:
函数类型 函数名(形参表)
{
类型说明语句;
执行语句;
}
本题中函数的功能是:给数组中的元素依次赋值。
标准答案为:a[i-1] 或 *(a+i-1) 与 a[10-i-1] 或 *(a+10-i-1) 或 a[9-i] 或 *(a+9-i) 或 a[-i-1+10] 或 a[9-i] 或 a[-i+9]
64. 本题主要考查考生对C语言中的指针的使用。
指针是一种数据类型,这种数据类型的变量用来存放内存中分配的存储单元的首地址。本题当第一次执行for循环时,p=s,输出指针变量p所指向的存储单元的内容,即9876;当p=s+1时,输出的是指针变量s+1起所指向的存储单元的内容,即876;当p=+2时,不符合循环条件,程序执行结束。
标准答案为:9876
876
65. 本题主要考查C语言的while语句与数组。
本题中为了能实现字符串的拷贝,需要使字符数组s从头到尾依次遍历其所有元素。本题应使用i的自增后置来实现。
标准答案为:s[i++]
66. 本题主要考查考生对C语言中结构体的掌握。
结构体类型是构造数据类型,是用户自已定义的一种类型。
结构体类型的定义:
struct 结构体类型名
{
成员项表;
};
单向链表的建立只需要在结构体类型的定义中加入一项自身类型的指针成员变量。
如:
struct stru
{
成员项表;
struct stru *next;
};
标准答案为:struct STRU *
67. 本题主要考查考生对C语言中结构体的掌握。
结构体类型是构造数据类型,是用户自已定义的一种类型。
结构体类型的定义:
struct 结构体类型名
{
成员项表;
};
定义结构体变量的的形式为:
struct 结构体类型名 变量1,变量2,...
其中变量包括:一般变量、指针变量、数组变量等。
标准答案为:struct STRU
68. 本题主要考查考生对C语言的文件方面的知识的掌握。
C语言中的文件分为:ASCII文件与二进制文件。文件在使用前打开,使用后要关闭。
打开文件的函数为:fopen(),调用形式为:
fp=fopen("文件名","使用文件方式");
关闭文件的函数为:fclose(),调用形式为:
fclose(fp);
其中fp为文件指针。
标准答案为:fopen
9 / 9
展开阅读全文