用户名: 密码: 企业 个人
当前位置:89学习网范文文章招聘应聘笔试华为C语言笔试题集合» 正文

华为C语言笔试题集合

[10-16 20:00:41]   来源:http://www.89xue.com  笔试   阅读:90
摘要:}求2~2000的所有素数.有足够的内存,要求尽量快答案:int findvalue[2000]={2};static int find=1;bool adjust(int value){assert(value>=2);if(value==2) return true;for(int i=0;i<=find;i++){if(value%findvalue[i]==0)return false;}findvalue[find++];return true;}④华为最后三个大题1.A,B,C,D四个进程,A向buf里面写数据,B,C,D向buf里面读数据,当A写完,且B,C,D都读一次后,A才能再写。用。
华为C语言笔试题集合,标签:笔试范文,http://www.89xue.com

  }

  求2~2000的所有素数.有足够的内存,要求尽量快

  答案:

  int findvalue[2000]={2};

  static int find=1;

  bool adjust(int value)

  {

  assert(value>=2);

  if(value==2) return true;

  for(int i=0;i<=find;i++)

  {

  if(value%findvalue[i]==0)

  return false;

  }

  findvalue[find++];

  return true;

  }

  ④华为最后三个大题

  1.A,B,C,D四个进程,A向buf里面写数据,B,C,D向buf里面读数据,当A写完,且B,C,D都读一次后,A才能再写。用P,V操作实现。

  2.将单向链表reverse,如ABCD变成DCBA,只能搜索链表一次。

  3.将二叉树的两个孩子换位置,即左变右,右变左。不能用递规(变态!)

  ⑤华为笔试题:2007.03.31华为笔试题之一二

  给大家说几个:(感觉华为不过如此,虽然我的分不高,因为很多题我做给他实在是侮辱我的智商)

  1。大意如下:38头牛中选出3头跑得最快的,使用一个每次只能供6头比赛的场地,要求用最快的方法。(我给一个最傻瓜的答案,因为我发现一起笔试的有且恰好有38个人,不知道**什么意思?)

  2。大意如下:公司职员知道老板的年龄,不知道他女儿的年龄,老板3个女儿的年龄相加为13,相乘为老板年龄,且只有一个女儿的年龄大于5岁,求这4个的年龄?(网上有一大堆答案!)

  3。原题是2002年以前的一道大学生数学建模竞赛的题,是说一个学生冒雨从宿舍去食堂吃饭,200米的距离内,问是走着少淋雨还是跑着少?(该题简化了大部分的假设,只剩下一点点问题要你解决,做着没劲!)

  ⑥华为最新笔试题及其分析

  1.printf的输出问题

  printf("%d",total);//this is right

  printf(total);//this is wrong

  printf("hello");//but this is right

  2.整数类型的长度

  char 1个子节,8位

  unsigned short [int]

  [signed] short int

  short 2个字节,16位

  [signed] int

  unsigned int

  int 型在vc里是4个子节,32位,也可能是16位,2个字节

  long [int]

  unsigned long [int]

  long型都是32位,4个字节

  float 32 ,4

  double 64,8

  long double 128,16

  char 8,一个字节,存放的实际上是字符的ascii码

  3、找出错误并改正

  char *my_cpy(char* src, int len){

  char dest[1024];

  memcpy(dest, src, len);

  return dest;

  }

  上面的函数是否有问题,如果有指出其所在,如果没有,给出函数功能描述。

  答案:

  1。数组应该初始化

  2。memcpy不判断是否越界,所以调用前应该判断是否越界

  3。不应该返回rest,因为这个数组是在函数内部申请的,所以函数结束之后就会消失,指针也会变成“野指针”,所以指向非法地址

  最后一个比较隐蔽

  char *memcpy( char *dest, const char *src,int len )

  {

  char* pDest = (char*)dest;

  char* pSrc = (char*)src;

  int pos;

  for(pos=0;pos

  {

  pDest[pos] = pSrc[pos];

  }

  return (char*)pDest;

  }

  存在地问题就是没有判断指针是否非法assert(dest !=NULL || src != NULL); 条件为 FLASE 显示

  不调用其他函数,写一个memcpy的函数,函数原型为

  void *memcpy(void *dest, void *src, size_t length);

  -----------利用好断言---------

  /* memcpy ─── 拷贝不重叠的内存块 */

  void memcpy(void* pvTo, void* pvFrom, size_t size)

  {

  void* pbTo = (byte*)pvTo;

  void* pbFrom = (byte*)pvFrom;

  ASSERT(pvTo != NULL && pvFrom != NULL);

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]  下一页


Tag:笔试笔试范文招聘应聘 - 笔试