设为首页 加入收藏

TOP

华为笔试题,是我在华为面试时遇到的,里面有我的解答思路及面试心得体会,希望对大家有所帮助(二)
2014-11-23 23:29:02 来源: 作者: 【 】 浏览:10
Tags:华为 试题 面试 遇到 里面 解答 思路 心得体会 希望 大家 有所 帮助
一个节点上,基于TCP和UDP的应用端口号可以重叠




1、请指出下面程序的错误


unsigned char i = 10;
char b = 100;
char *p
void f(void)
{
while(–i >= 0)
{
*(p++) = b;
}
}




2、下面函数要实现打印hello world的功能,请问程序中有何错误?


void* GetMemory()
{
char str[] = ”hello world”;
return str;
}


void Test()
{
char *str = NULL;
str = (char*) GetMemory();
printf(str);
}




3、请问如下代码有什么错误?


#define MAX_SIZE 1000
#define NULL 0
#define TRUE 1
#define FALSE 0
struct XXX
{
unsigned short a;
unsigned short b;
};


int demo(struct XXX *p, unsigned long size)
{
struct XXX *temp;
temp=(struct XXX*)malloc(sizeof(struct XXX)*MAX_SIZE);
if (NULL == temp)
{
return FALSE;
}


memcpy(temp, p, sizeof(struct XXX)*size);


/*其他操作*/


free (temp);
return TRUE;
}




4、如下程序用于把“blue”字符串返回,请指出其中的错误。


char *GetBlue()
{
char* pcColor;
char* pcNewColor;


pcColor = ”blue”;
pcNewColor = (char*)malloc(strlen(pColor));
strcpy(pcNewColor, pcColor);


return pcNewColor;
}




5、请问如下程序段有什么错误?


main()
{
unsigned long i = 0, *p, *p1;
p = (unsigned long *)malloc(10000);
p1 = p;
for(i = 0; i < 9999; i++)
{
*p1 = 0×100;
p1++;
}


/*其他操作*/


free(p);
}


1、对称数判断问题


请编写一段程序,判断一个正整数是否为对称数(对称数即左右对称的数字,如3、22、121、1331、34543等),不允许利用C语言将数字转换为字符转的库函数。




2、排队队列问题


n个人,排成1队,(p1,p2,p3…pn)从第一个人开始从1报数,报数到3的人离开队列,队列里的下一个人继续从1开始报数,以此反复,当数到队列尾时,从队列头部继续报数,这样周而复始,知道队列剩一人。


给一个简单的例:


报数结果如下:


1,2,4,5,7,第一轮,3、6离开队列,7报数1,然后从队列头部继续报数,那么第一个人报数2,如此1,4,5,这样第二轮,位置2和位置7离开队列,并且从队列头部继续报数,第一个人报数1,因为队列尾部的7恰好报数到3.


1,2,这样第三轮,5被淘汰;


然后开始位置1的人报数1,最后位置1正好报数3,于是离开队列,最后剩下的人是2。


这样给定7个人,原始位置2的人是剩下的人。


请事先一个简单程序,实现上述问题,程序输入n,输出那个最后剩下的人的原始位置。




首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇java常见面试问题(个人总结) 下一篇super关键字和this关键字的作用

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: