国家二级C语言机试(选择题)模拟试卷355
选择题
1.下列叙述中正确的是(B)
A. 有一个以上根结点的数据结构不一定是非线性结构
B. 只有一个根结点的数据结构不一定是线性结构
C. 循环链表是非线性结构
D. 双向链表是非线性结构
解析:在数据结构中,树这类的数据结构只有一个根结点,但它不是线性结构。
2.在快速排序法中,每经过一次数据交换(或移动)后( )。(B)
A. 只能消除一个逆序
B. 能消除多个逆序
C. 不会产生新的逆序
D. 消除的逆序个数一定比新产生的逆序个数多
解析:在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序。快速排序的思想是:从线性表中选取一个元素,设为T,将线性表中后面小于T的元素移到前面,而前面大于T的元素移到后面,结果就将线性表分成两部分(称两个子表),T插入到其分割线的位置处,这个过程称为线性表的分割,然后再用同样的方法对分割出的子表再进行同样的分割。快速排序不是对两个相邻元素进行比较,可以实线通过一次交换而消除多个逆序,但由于均与T(基准元素)比较,也可能会产生新的逆序。
3.设有以下程序段:
int x=2009,y=2010;
printf(\\(D)
A. 输出语句中格式说明符的个数少于输出项的个数,不能正确输出
B. 运行时产生错误信息
C. 输出值为2009
D. 输出值为2010
解析:程序段中的输出项是一个逗号表达式(x,y),其值就是右边变量y的值,因此输出项的个数和控制转换说明符的个数相等,输出为2010。C语言规定,若输出格式说明符的个数少于输出项的个数时,多余的输出项不予输出;若输出格式说明符的个数多余输出项的个数时,则缺少的输出项输出不定值,并不产生出错信息。
4.层次型、网状型和关系型数据库划分原则是( )。(D)
A. 记录长度
B. 文件的大小
C. 联系的复杂程度
D. 数据之间的联系方式
解析:层次模型的基本结构是树形结构,网状模型是一个不加任何条件限制的无向图,关系模型采用二维表来表示,所以3种数据库的划分原则是数据之间的联系方式。
5.下面选项中合法的字符常量是(C)
A. X
B. ’abc’
C. ’X’
D. ’\’
解析:在程序中用单引号把一个字符括起来作为字符常量。但是为了表示字符“\”要用两个“\\”表示一个反斜杠。
6.函数rewind(fp)的作用是( )。(A)
A. 使fp指定的文件的位置指针重新定位到文件的开始位置
B. 将fp指定的文件的位置指针指向文件中所要求的特定位置
C. 使fp指定的文件的位置指针向文件的末尾
D. 使fp指定的文件的位置指针自动移至下一个字符位置
解析:位置指针重返文件头函数rewind()的调用形式为:rewind(fp)。其中,“fp”是指向文件的文件型指针。rewind(fp)的功能是:使fp指定的文件的位置指针重新定位到文件的开始位置。
7.结构化程序由三种基本结构组成,三种基本结构组成的算法(A)
A. 可以完成任何复杂的任务
B. 只能完成部分复杂的任务
C. 只能完成符合结构化的任务
D. 只能完成一些简单的任务
解析:结构化程序由3种基本结构组成:顺序结构、选择结构和循环结构。已经得到证明,由3种基本结构组成的算法结构可以解决任何复杂的问题。
8.表达式:(int)((double)9/2)-9%2的值是(C)
A. 0
B. 4
C. 3
D. 5
解析:这个表达式的计算过程为,首先求出9除以2的商等于4,再把其强制转化为实型数据为4.0,然后再强制转4,减去9对2求余数1,得到其结果等于3。
9.下面描述中,不属于软件危机表现的是(A)
A. 软件过程不规范
B. 软件开发生产率低
C. 软件质量难以控制
D. 软件成本不断提高
解析:软件危机主要表现在以下6个方面:
①软件需求的增长得不到满足。
②软件开发成本和进度无法控制。
③软件质量难以保证。
④软件不可维护或维护程度非常低。
⑤软件的成本不断提高。
⑥软件开发生产率的提高赶不上硬件的发展和应用需求增长。
10.有如下说明:
int array[10]={1,2,3,4,5,6,7,8,9,10},*p=array;
则数值为9的表达式是________。(D)
A. p+8
B. *p+9
C. *p+=9
D. *(p+8)
解析:指针P指向数组array,9所在的元素是array[8],与array[0]的地址差值为8,所以正确的访问形式是*(p+8)或p[8]。
11.定义学生选修课程的关系模式如下:
S(S#,Sn,Sd,Sa)(其属性分别为学号、姓名、所在系、年龄);
C(C#,Cn,P#)(其属性分别为课程号、课程名、先选课);
SC(S#,C#,C)(其属性分别学号、课号和成绩)。
检索选修课程名为“操作系统”的成绩在90分以上(含90分)的学生姓名的表达式是( )。
(A)
A.
B.
C.
D.
解析:课程名“操作系统”需要在C表中进行查找,成绩在“90分以上(含90分)”需要在SC表中查找,“学生姓名”需要在S表中查找,所以必须对上述三个表进行连接后再进行操作。具体操作是:先从C表中选出课程名是“操作系统”的行σCn=“操作系统”(C),但是只要“课程”列πC#(σCn=“操作系统”(C)),得到筛选结果的一个小表;在SC表中找出“90分以上(含90分)”的行σG>=90(SC),得到第二个小表;两个小表进行连接操作并从结果中取“学号”列πS#(πC#(σCn=“操作系统”(C))σG>=90(SC));这样得到的结果再与S表连接并从结果中只取“姓名”列πSn(πS#(πC#(σCn=“操作系统”)(C))
σG>=90(SC))
12.以下程序的输出结果是( )。
#include
int m=13;
int fun(int x,int y)
本文档预览:3600字符,共11325字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载