A、 O(n1.5)
B、 O(nlog2n)
C、 O(n(n-1)/2)
D、 O(log2n)
答案:B
解析:【解析】堆排序是指利用堆积树这种数据结构所设计的一种排序算法,属于选择排序。在对长度为n的线性表排序时,最坏情况下,冒泡排序、快速排序、直接插入排序的时间复杂度均为O(n2),而堆排序时间复杂度为O(nlog2n),复杂度最小。答案选择B选项。
A、 O(n1.5)
B、 O(nlog2n)
C、 O(n(n-1)/2)
D、 O(log2n)
答案:B
解析:【解析】堆排序是指利用堆积树这种数据结构所设计的一种排序算法,属于选择排序。在对长度为n的线性表排序时,最坏情况下,冒泡排序、快速排序、直接插入排序的时间复杂度均为O(n2),而堆排序时间复杂度为O(nlog2n),复杂度最小。答案选择B选项。
A. C语言程序是由过程和函数组成的
B. C语言函数可以嵌套调用,例如:fun(fun(x))
C. C语言函数不可以单独编译
D. C语言中除了main函数,其他函数不可以作为单独文件形式存在
解析:【解析】以嵌套调用的。A项错误,C语言程序只有函数构成,没有过程;C项错误,编译系统的任务在于检查语法错误,只要符合语法规则的C程序都可以通过编译,就算是单独的函数也可以;D项错误,在C语言中除main()函数以外的其他函数可以和main()函数在同一个C文件中,也可以单独处于其他的C文件,只要在使用到这些函数的main()函数的C文件中用预编译指令“#include”包含进来即可。答案选择B选项。
A. if(a>b)c=a,a=b,b=c;
B. if(a>b){c=a,a=b,b=c}
C. if(a>b)c=a;a=b;b=c;
D. if(a>b){c=a;a=b;b=c}
解析:【解析】
A. 笛卡儿积
B. 交
C. 并
D. 自然连接
解析:【解析】R与S有公共的属性B,可通过公共属性的相等值进行连接,这就是自然连接。A项错误,R与S的笛卡儿积是一个4元关系,有4个元素;BC两项错误,交和并运算要求关系R和S具有相同的属性。答案选择D选项。
A. 对长度为n的有序链表进行查找,最坏情况下需要的比较次数为n
B. 对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)
C. 对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n)
D. 对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(nlog2n)
解析:【解析】对于顺序查找,在最坏的情况下查找的是链表的最后一个元素,或者查找的元素不在表中,此时需要比较n次,A项正确。对分查找只适用于顺序存储的有序表,对于长度为n的有序线性表,最坏情况只需比较log2n次,BCD三项错误。答案选择A选项。
A. -20
B. -10
C. 0
D. 10
解析:【解析】单目加运算符优先级高于赋值运算符,所以先做x+x结果为20,再做x-
A. 3344
B. 2050
C. 3040
D. 0304
解析:【解析】main函数的主体是一个for循环语句,for循环中包含一个switch语句,如果判断条件为0则进入第二个switch语句,如果判断语句为1则执行“a[i]=0”, 后将数组顺序输出。所以程序功能是将数组下标为奇数的项设为0,数组下标为偶数的项,如果对应的元素为偶数则加1,如果对应的元素为奇数则减1。答案选择C选项。
A. 1,3
B. 2,3
C. 1,4
D. 1,2
解析:【解析】语句p=p+1;只改变指针p的地址,与p的内容无关,所以m值没有改变,而语句*q=*q+1;是改变该指针所指地址中的内容,所以n变为3,m不变,仍为1,答案选择A选项。
A. 项错误,数据的逻辑结构反映数据元素之间逻辑关系,与存储的物理结构并没有一一对应关系;
B. 项错误,线性结构和非线性结构是关于逻辑结构的两种不同分类,存储结构上没有线性和非线性之分 ;
C. 项,利用数组也能处理非线性结构,比如用数组存储二叉树。答案选择
D. 选项。
解析:【解析】
A. 6
B. 8
C. 9
D. 12
解析:【解析】R为n元关系,有p个元组S为m元关系,有q个元组。两个关系笛卡儿积是一个n+m元的关系,元组个数是q×p。所以T的元组的个数为9个。答案选择C选项。