共36题,对16题(机器学习和windows内核部分错题未做解答)
题2:以下代码的输出是()
int a[5]={1,2,3,4,5};
int *ptr=(int*)(&a+1);
printf("%d,%d",*(a+1),*(ptr-1));
答案:A:1,2
B:2,5 C:2,1 D:1,5
解析:注意*(a+1)与&a+1的区别,a 代表的是int * 每次步长为一个int,&a 代表的是 int[]* 每次步长为所指向的数组的大小,ptr 指向的是数组a最后一个元素的下一个元素,ptr-1指向的是数组a的最后一个元素,而a+1指向的是数组a的第二个元素
题8:函数fun的声明为int fun(int *p[4]),以下哪个变量可以作为fun的合法参数()
解析:fun函数的形参是一个指针数组,也就是指针指向一个地址,地址中存放的内容也是指针。
答案: A:2和4 B:1和5 C:4和2 D:5和1
解析:注意是循环队列。删除一个元素后,队首指针要加1, front=(front+1)%6,结果为4,每加入一个元素队尾指针加一,即real=(real+1)%6,加入两个元素后变为2
题26:假设某算法的计算时间可用递推关系式T(n)=2T(n/2)+n表示,则该算法的时间复杂度为()
答案:A:O(logn) B:O(n*logn) C:O(n) D:O(n^2)
解析:T(n)=2[2T(n/4)+n\2]+n,
题32:圆内接三角形是锐角三角形概率是多少()
答案:A:1/4 B:1/3 C:1/2 D:2/3
解析:三角形三点在圆上的位置是等概率的。使得最大的那个角必定大于等于60度,三角形是锐角的变化范围是60-90度,钝角的范围是90-180度(90-60)/(180-60)=1/4
题36:下列排序算法的常规实现中,哪些空间复杂度是O(1)
答案:A:冒泡 B:选择 C:归并 D:快排 E:堆排序
解析:归并排序的时间复杂度为O(n),快排的空间复杂度为O(n*logn)