1.用位运算计算两个整数加法。
int add(int a, int b)
{
if(a&b == 0)
return a^b;
else
return add(a^b, ((a&b)<<1));
}
2.写程序判断是大端CPU还是小端CPU
union un
{
short s;
char c[2];
};
un u;
u.s = 0x0102;
if(u.c[0] == 1 && u.c[1] == 2)
printf("big endian\n");
else if(u.c[0] == 2 && u.c[1] == 1)
printf("little endian\n");
3.深度搜索的非递归实现
4.斐波拉契数列实现,要求时间复杂度小于O(n^2)
5.巨大的文件,要求随机输出k行,使k行的概率相同
6.volatile
7.fork()
fork函数调用一次却返回两次;向父进程返回子进程的ID,向子进程中返回0;
返回值:
负数:返回-1,出错,没有创建新的进程,最初的父进程仍然运行。
0:在子进程中,返回0.
正数:在父进程中,返回子进程的PID。