您的位置:首页 > 职场人生

几道面试题

2009-06-17 17:04 253 查看
1.for(i=0;i <5;i++)
if(fork()==0)
continue;

一共会生成多少个进程?

http://blog.csdn.net/hikaliv/archive/2009/06/17/4276758.aspx

2.unsigned char * p1;
unsigned char * p2;

p1=(unsigned char *)0x01000;
p2=(unsigned char *)0x10000;

p1+15=?
p2+10=?

p1+15=0x0100F
p2+10=0x1000A

3.unsigned int zero=0;
unsigned int compzero=0xFFFF;

这两个有什么问题?修改

sizeof(unsigned int) 可能等于2也可能等于4

所以应该改成 unsigned short int

//系统多少位不知道,所以用~0表示
unsigned int compzero=~0;

4.用位运算编写函数实现下面的功能:
(1)a为char型,设置某一位
(2)a为char型,判断一位是否为1
(3)取出一个字节中的高四位,并转换成整数返回。

//(1)a为char型,设置某一位
char setBit(char a,int n,int d)
{
if(d==1) a|=(1<<(n-1));
else
{
char ch=1<<(n-1);
a&=(~ch);
}
return a;
}

//(2)a为char型,判断一位是否为1
int testBit(char a,int n)//返回0代表该位为0,非0代表该位为1
{
a&=(1<<(n-1));
return a;
}

//(3)取出一个字节中的高四位,并转换成整数返回。
int getHighFour(char a)
{
int b=a>>4;
return b;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: