第十一套模拟试题参考答案及解析
1. 算法的设计可以避开具体的计算机程序设计语言,但算法的实现必须借助程序设计语言中提供的数据类型及其算法。数据结构和算法是计算机科学的两个重要支柱。它们是一个不可分割的整体。算法在运行过程中需辅助存储空间的大小称为算法的空间复杂度。算法的有穷性是指一个算法必须在执行有限的步骤以后结束。
本题答案为C。
2. 所谓完全二叉树是指除最后一层外,每一层上的结点数均达到最大值;在最后一层上只缺少右边的若干结点。
具有n个结点的完全二叉树,其父结点数为int(n/2),而叶子结点数等于总结点数减去父结点数。本题n=699,故父结点数等于int(699/2)=349,叶子结点数等于699-349=350。
本题答案是B。
3. 要形成良好的程序设计风格,主要应注重和考虑下述一些因素:符号名的命名应具有一定的实际含义,以便于对程序功能的理解;正确的注释能够帮助读者理解程序;程序编写应优先考虑清晰性,除非对效率有特殊要求,程序编写要做到清晰第一,效率第二。
本题答案为A。
4. 关系数据库管理系统能实现的专门关系运算,包括选择运算、投影运算、连接运算。
本题答案为B。
5. 确认测试的任务是验证软件的功能和性能及其他特性是否满足了需求规格说明中的确定的各种需求,以及软件配置是否完全、正确。
本题答案为A。
6. 数据库概念设计的过程中,视图设计一般有三种设计次序,它们是:
1、自顶向下。这种方法是先从抽象级别高且普遍性强的对象开始逐步细化、具体化与特殊化。
2、由底向上。这种设计方法是先从具体的对象开始,逐步抽象,普遍化与一般化,最后形成一个完整的视图设计。
3、由内向外。这种设计方法是先从最基本与最明显的对象着手逐步扩充至非基本、不明显的其它对象。
本题答案为D。
7. 数据流相当于一条管道,并有一级数据(信息)流经它。在数据流图中,用标有名字的箭头表示数据流。数据流可以从加工流向加工,也可以从加工流向文件或从文件流向加工,并且可以从外部实体流向系统或从系统流向外部实体。
本题答案为C。
8. 软件设计包括软件结构设计、数据设计、接口设计和过程设计。其中结构设计是定义软件系统各主要部件之间的关系;数据设计是将分析时创建的模型转化为数据结构的定义;接口设计是描述软件内部、软件和操作系统之间及软件与人之间如何通信;过程设计则是把系统结构部件转换成软件的过程性描述。
本题答案为B。
9. 当数据表A中每个元素距其最终位置不远,说明数据表A按关键字值基本有序,在待排序序列基本有序的情况下,采用插入排序所用时间最少。
本题答案为B。
10. 在文件系统中,相互独立的记录其内部结构的最简单形式是等长同格式记录的集合,
1 / 11
易造成存储空间大量浪费,不方便使用。而在数据库系统中,数据是结构化的,这种结构化要求在描述数据时不仅描述数据本身,还要描述数据间的关系,这正是通过采用特定的数据模型来实现的。
本题答案为D。
11. 本题的考查点是C语言的特点。 C语言主要有如下一些特点:
1、语言简洁、紧凑,使用方便、灵活; 2、运算符丰富;
3、数据结构丰富,具有现代化语言的各种数据结构; 4、具有结构化的控制语句;
5、语法限制不太严格,程序设计自由度大;
6、C语言允许直接访问物理地址,能进行位操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。
7、生成目标代码质量高,程序执行效率高; 8、用C语言写的程序可移植性好。
但是所有的语言都不可能没有任何缺点,C语言也不例外,C语言是高级语言,需要通过编译才能被计算机识别。
本题答案为C。
12. 本题的考查点是程序的基本结构。 结构化程序由若干个基本结构组成。每一个基本结构可以包含一个或若干个语句。有三种基本结构:
1、顺序结构,先执行A操作,再执行B操作,两者是顺序执行的关系;
2、选择结构,P代表一个条件,当P条件成立时执行A,否则执行B。只能执行A或B之一。
3、循环结构,有两种循环结构:
(1)当型循环结构,当P条件成立(\真\)时,反复执行A操作。直到P为\假\时才停止循环。
(2)直到型循环结构,先执行A操作,再判断P是否为\假\,若P为\假\,再执行A,如此反复,直到P为\真\为止。 故本题答案为A。
13. 本题的考查点是main函数。
一个C程序中必须有且只能有一个用\命名的主函数,其它函数由用户自行命名。main函数可以在任何地方出现。
故本题答案为B。
14. 本题的考查点是C语言中的基本数据类型。 数据类型是所允许的数据及其操作的集合,是高级语言的重要特征。程序设计中可以利用数据类型发现程序中的某些错误。
C语言提供了三大类数据类型,即基本类型、复合类型和地址类型 1、基本类型只代表单个数据;
2、复合类型由基本类型组合而成,可代表一批数据; 3、地址类型可直接表示内存中的地址。 C语言支持的五种基本数据类型: 字符型:表示单个字符;
整型:表示整数,包括基本整型、短整型、长整型和无符号整型; 浮点型:表示实数,精度为6-7位有效数字; 双精度型:表示实数,精度为15-16位有效数字; 无值类型:表示无返回值的函数或无定向指针。
2 / 11
故本题答案为D。
15. 本题的考查点是C语言中的标识符。
标识符是C语言中用来表示变量名、数组名、函数名、指针名、结构名、联合名、枚举常数名、用户定义的数据类型名、语句标号等用途的字符序列。标识符可以由字母、数字和下划线组成,字母和下划线可以出现在用户标识符的开头,数字不可以。
故本题答案为B。
16. 本题的考查点是不同类型数据的输入输出。 printf()函数的一般格式如下所示:
printf(\格式控制字符串\输出项清单) 格式控制字符串中包括: 1、格式转换说明符:以\开头后跟一个格式字符,它用于输出数据格式的转换与控制; 2、转义字符:以\开头,后跟一个字符,用于输出某些特殊意义的字符和不可显示字符;
3、其他字符:用于照原样显示的字符。 printf()格式转换说明符:
\按实际位数输出十进制整数; \按实际位数输出八进制整数。
本题中,因为m定义为整数,即默认的十进制数,n定义为八进制数,所以照原样输出。
故本题答案为A。
17. 本题的考查点是自增、自减运算符。
自增、自减运算符的作用是使变量的值增1或减1,只能用于变量,包括char型变量、int型变量和float型变量,而不能用于常量或表达式。
故本题答案为D。
18. 本题的考查点是不同类型数据的输入输出。 printf()函数的一般格式如下所示:
printf(\格式控制字符串\输出项清单) 格式控制字符串中包括: 1、格式转换说明符:以\开头后跟一个格式字符,它用于输出数据格式的转换与控制; 2、转义字符:以\开头后跟一个字符,用于输出某些特殊意义的字符和不可显示字符; 3、其他字符:用于照原样显示的字符。printf()格式转换说明符:\按实际位数输出十六进制整数。本题因为m,n都定义为十六进制整数,且m-=n;的意思是将m与n的差值重新赋给m,所以m为0。 故本题答案为C。
19. 本题主要考查格式输入输出函数scanf()和printf()。
格式控制字符%d用来输入/输出十进制整数,%c用来输入/输出单个字符,在给出的程序中,整型变量m和n初始化为0, 字符变量c初值为字符a,系统按照m、c、n所在的内存地址将输入的m、c、n的值存进去,即把10赋给m,字符变量c重新赋值为A,10赋给n,所以打印结果是10,A,10。
故本题答案为A。
20. 本题的考查点是switch语句。
switch语句在执行时先计算表达式i的值,当表达式i的值与某一个case中的常量表达式的值相等时,就执行该case后面的语句系列,接着再执行后面各个case中的语句序列,一直到执行完default后面的语句序列,然后结束switch。如果所有case中的常量表达式的值都没有与表达式i的值相匹配,就只执行default后面的语句序列。break语句与switch语句配合使用,可以强行控制程序流程退出switch。
3 / 11
由于本题没有与break语句配合使用,因此在执行完\以后,还要继续执行\和\。
当i=0时,执行defult语句,输出0;
当i=1时,执行case 1语句,输出1,因为没有break控制程序流程退出,所以继续执行下面的语句,输出11,以此类推。
故本题答案为A。
21. 本题的考查点是逻辑表达式。
形如(表达式 1)&&(表达式 2)&&...的逻辑表达式在计算时,先计算表达式1,如果其值是逻辑\真\或非0,就接着计算表达式2,直至计算到第一个为逻辑\假\的表达式时,就可判定整个逻辑表达式为逻辑\假\,其后的表达式将不再计算。
形如(表达式 1)||(表达式 2)||...的逻辑表达式在计算时,先计算表达式1,如果其值是逻辑\假\或0,就接着计算表达式2,直到计算到第一个为逻辑\真\的表达式时,就可判定整个逻辑表达式为逻辑\真\,其后的表达式将不再计算。
根据以上的描述可知,本题中j++值为2,为真,k++不被计算,然后计算i++为2,所以i=2,j=2,k=2。
故本题答案为C。
22. 本题的考查点是关系表达式和逻辑表达式。
关系表达式用来进行两个数据的比较,比较的结果为逻辑\真\或逻辑\假\。C语言不提供逻辑型数据,而是用整数0表示逻辑\假\,即比较不成立;用整数1表示逻辑\真\,即比较成立。
和关系表达式一样,逻辑表达式的值也是用整数1表示逻辑\真\,用整数0表示逻辑\假\。
本题中\即相当于\,因为a>b成立,所以其值为1,然后比较1与c的大小,1>c不成立,所以不执行printf语句,然后判断\成立,此时执行printf语句,打印d+1=3。
故本题答案为B。
23. 本题的考查点是while循环语句。 while语句是先判断后执行。
i=0时,i<7为真,p[0]%2=11%2=1为真,k=k+p[0]=11;
i=1时,i<7为真,p[1]%2=13%2=1为真,k=k+p[1]=11+13=24; i=2时,i<7为真,p[2]%2=14%2=0为假,结束循环。 所以打印输出24。
故本题答案为D。
24. 本题的考查点是do-while循环语句。 do-while的一般格式如下所示: do
{语句;
}while(测试表达式);
do-while语句是先执行后判断,其执行流程是: 1、执行循环体;
2、计算测试表达式,若为非0,转向执行do,否则执行while下面的一条语句; 3、执行do-while后面的语句,即退出do-while循环。 本题中,当i=0时,i%2=0,为假不执行{i++;continue;},接着往下执行i++,此时i=1,s=s+i=1,因为i=1符合条件i<7继续循环执行,i=1时以此类推,直到i>=7时结束循环。最后得出s=16。
故本题答案为A。
4 / 11
25. 本题的考查点是自增、自减运算。 作用是使变量的值增1或减1,如:
++i,--i (在使用i之前,先使i的值加(减)1) i++,i-- (在使用i之后,使i的值加(减)1)
故本题答案为B。
26. 本题的考查点是字符常量。
C中的字符常量是用单引号(即撇号)括起来的一个字符。如'a'、'x'、'D'、'?'、'$'等都是字符常量。除了以上形式的字符常量外,C还允许用一种特殊形式的字符常量,就是以一个\开头的字符序列。'\\ddd'表示1到3位8进制数所代表的字符,不足3位就在前面加0;'\\xhh'表示 1到2位16进制数所代表的字符。而a='\\';和 c='\\0xab';是不正确的。
故本题答案为D。
27. 本题的考查点是条件运算符。
条件运算符要求有三个操作对象,称三目(元)运算符,它是C语言中唯一的一个三目运算符。条件表达式的一般形式为 表达式1?表达式2:表达式3
条件运算符的执行顺序:先求解表达式1,若为非0(真)则求解表达式2,此时表达式2的值就作为整个条件表达式的值。若表达式1的值为0(假),则求解表达式3,表达式3的值就是整个条件表达式的值。
本题答案为C。
28. 本题的考查点是值的传递。
在main函数中用\,在函数调用开始时,a 的值传送给x,b的值传送给y。执行完f函数后,如果x 故本题答案为D。 29. 本题的考查点是指针变量的引用。 由于指针变量q赋值为NULL,即空地址,如果给空地址所指向的存储空间赋值的话,系统会出错,提示为:Null point assignment!。 故本题答案为A。 30. 本题的考查点是指针变量作为函数参数。 f是用户定义的函数,它的作用是返回变量值小的那个。f函数的两个形参x,y是指针变量。程序开始执行时,先初始化a和b的值,然后将a,b的地址分别赋给指针变量p和q,使p指向a,q指向b。接着执行f函数,注意p和q是指针变量,在函数调用开始时,实参变量将它的值传送给形参变量。采取的依然是\地址传递\方式。因此虚实结合后形参x的值为&a,y的值为&b。这时x和p都指向变量a,y和q都指向b。接着执行f函数的函数体,输出*x和*y小的那个值。函数调用结束后,x和y不复存在,最后在main函数中输出的*r的值,即a和b小的那个值7赋给指针变量r所指向的存储单元,但主函数中输出的*p,*q的值未变。 故本题答案为B。 31. 本题的考查点是通过指针引用数组元素。 p=s[1];是指p的初始值为&s[1],C规定p+1指向数组的下一个元素(而不是将p值简单地加1),*(p+1)为s[1]中的第2个元素,即为w;s[0]指s数组中的第0个元素,即为one。 故本题答案为C。 5 / 11