1.升序排列下列数值: 。
2.写出下列函数的返回值
int func(int x=300){
int y=0;
while(x){
y++;
x=x&(x-1);
}
return y;
}
3.写出下面代码的输出
#include<stdio.h>
int main(){
char *p="abcdef";
char str[]="123456";
printf("d%\n",*(p+4));
printf("c%\n",p[4]);
printf("c%\n",*(str+4));
printf("c%\n",str[4]);
return 0;
}
4.使用C语言写出存储内容为整数的单链表数据类型定义,并使用自己定义的单链表数据类型定义,完成下面的算法,要求优化时间与空间复杂度。
算法要求:合并两个已经排序的单链表为一个排序的单链表,相同内容只保留一个
如:单链表a:1->2->3->4
单链表b:3->4->5
输出:1->2->3->4->5
5.编写程序,把一个有序整数数组放到以整数为元素的二叉树中,生成一个平衡排序二叉树。设计并变成实现一种遍历方法,,是这种遍历方法的输出正好是输入数据的次序。
如数组 a:{1,2,3,4,5,6,7}
生成的二叉树:
4
/ \
2 6
/\ /\
1 3 5 7
6.编写程序,在原字符串中把尾部m个字符移动到字符串的头部,要求:长度为n字符串操作时间复杂度为O(n),时间复杂度为O(1)。
如:原字符串为”Ilovebaofeng”,m=7,输出结果:”baofengIlove”
7.暴风影音的片源服务器上保存着两个文件a和b,各存放50亿条URL,每条URL占用64字节,内存限制是4G,让你找出a,b文件共同的URL。要求:算法设计。