14对于一个正常运行的C程序,以下叙述中正确的是( )。
A.程序的执行总是从main函数开始,在程序的最后一个函数中结束
B.程序的执行总是从程序的第一个函数开始,在main函数结束
.C.程序的执行总是从main函数开始、
D.程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束
参考答案:C
参考解析:任何一个c程序都是从主函数main开始,至主函数main结束,所以选择c选项。
15下列选项中属于面向对象设计方法主要特征的是( )。
A.继承B.自顶向下C.模块化D.逐步求精
参考答案:A
参考解析:面向对象基本方法的基本概念有对象、类和实例、消息、继承与多态性,所以选择A。
16有以下程序:
程序运行后的输出结果是( )。
A.1,2,3,0,0,0,0,0,0,0,
B.1,2,3,1,2,3,0,0,0,0,
C.123,0,0,0,0,123,0,0,0,0,
D.1,2,3,0,0,1,2,3,0,0,
参考答案:D
参考解析:本题考查文件操作函数,两次fwrite后,币文件中已经写入l,2,3,O,0,l,2,3,0,0然后将文件币中的内容重新写人数组a中,最后输出a为1。2,3,0,0,1,2,3,0,0,所以选项D正确。
17有三个关系R、S和T如下:
则由关系R和s得到关系T的操作是( )。
A.自然连接B.并C.交D.差
参考答案:D
参考解析:关系T中的元组是关系R中有面关系s中没有的元组的集合,即从关系R中除去与关系s中相同元组后得到的关系T。所以做的是差运算。
18有三个关系R、S和T如下:
则由关系R和s得到关系T的操作是( )。
A.自然连接B.交C.投影D.并
参考答案:A
参考解析:自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉,所以根据T中元组可以判断R和s做的是自然连接操作。
19对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是( )。
A.快速排序B.冒泡排序C.直接插入排序D.堆排序
参考答案:D
参考解析:除了堆排序算法的比较次数是O(nlog2n),其他的都是n(n-1)/2。
20以下叙述中正确的是( )。;
A.当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失
B.打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖
C.在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第1个数据
D.c语言中的文件是流式文件,因此只能顺序存取数据
参考答案:A
参考解析:B选项中打开一个已存在的文件并进行了写操作后,原有文件中的全部数据不一定被覆盖,也可以对源文件进行追加操作等。C选项中在一个程序中当对文件进行了写操作后,不用先关闭该文件然后再打开,才能读到第l个数据,可以用fseek()函数进行重新定位即可。D选项中,C语言中的文件可以进行随机读写。
21有以下程序:
程序运行后的输出结果是( )。
A.4B.34C.31D.32
参考答案:C
参考解析:本题重点考察二维数组名作为实参进行参数传递,在主函数中调用了fun函数,实参为二维数组名a和两个整数4.0,这样对应定义fun函数首部有三种形式,这里采用了第一种形式——行指针,这样在fun函数对s[i][j]进行操作实际上就是对主函数中的a[i][j]进行操作,再分析fun函数的作用便可知,是求二维数组第0列中最大的那个元素。因此C选项正确。
22下列叙述中正确的是( )。
A.在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化
B.在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化
C.在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化