您当前所在位置:
88好学网范文常识招聘应聘笔试华为C语言笔试题集合» 正文

华为C语言笔试题集合

[10-20 23:53:58]   来源:http://www.88haoxue.com  笔试   阅读:680

概要:1。大意如下:38头牛中选出3头跑得最快的,使用一个每次只能供6头比赛的场地,要求用最快的方法。(我给一个最傻瓜的答案,因为我发现一起笔试的有且恰好有38个人,不知道**什么意思?)2。大意如下:公司职员知道老板的年龄,不知道他女儿的年龄,老板3个女儿的年龄相加为13,相乘为老板年龄,且只有一个女儿的年龄大于5岁,求这4个的年龄?(网上有一大堆答案!)3。原题是2002年以前的一道大学生数学建模竞赛的题,是说一个学生冒雨从宿舍去食堂吃饭,200米的距离内,问是走着少淋雨还是跑着少?(该题简化了大部分的假设,只剩下一点点问题要你解决,做着没劲!)⑥华为最新笔试题及其分析1.printf的输出问题printf("%d",total);//this is rightprintf(total);//this is wrongprintf("hello");//but this is right2.整数类型的长度char 1个子节,8位unsigned short [int][signed] short intshort 2个字节,16

华为C语言笔试题集合,标签:笔试大全,http://www.88haoxue.com

  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);

  /* 内存块重叠吗?如果重叠,就使用memmove */

  ASSERT(pbTo>=pbFrom+size || pbFrom>=pbTo+size);

  while(size-->0)

  *pbTo++ == *pbFrom++;

  return(pvTo);

  }

  -----------------------

  常见函数编程:

  char *strcpy(char *strDest, const char *strSrc)

  {

  ASSERT(strDest != NULL && strSrc != NULL);

  char *addr = strDest;

  while(*strDest++=*strSrc++)

  NULL; //NULL可以省略,但更有利于编译器发现错误

  }

  return addr;

  }

  void *memcpy(void *dest, const void *src, int count)

  {

  ASSERT(dest!= NULL && src!= NULL);

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

  {

  dest = src;

  }

  }

  int strcmp(const char*str1, const char *str2)

  {

  while (str1 != NULL && str2 != NULL)

  {

  if(*str1 < *str2) return -1;

  else if(*str1 > *str2) return 1;

  else { str1++; str2++;}

  }

  if(str1 == NULL && str2 != NULL)

  return -1;

  else if(str1 != NULL && str2 == NULL)

  return 1;

  else return 0;

  }

  //way2: more compact

  int strcmp(const char*str1, const char *str2)

  {

  int i = strlen( str1 );

  int j;

  for(j=0; j<=i; j++)

  {

  if(str1[j] > str2[j]) return 1; //if str2 terminates, then str2[j]=0, str1[j]>str2[j], return 1;

  else if(str1[j] < str2[j]) return -1;

  else if(str1[j] == '') return 0;

  }

  }

  //way3: optimize again.

  int strcmp(const char * str1, const char * str2 )

  {

  while(1)

  {

  if(*str1 > *str2) return 1;

  else if(*str1 < *str2) return -1;

  else if(*str1 == '') return 0;

  str1++;str2++;

  }

  }

  一道华为笔试题

  题目:请在小于99999的正整数中找符合下列条件的数,它既是完全平方数,又有两位数字相同,如:144,676。用c语言编写(不能用数字转换成字符串)。

  #include

  #include

  //函数havesamenum确认num是否满足条件

  int havesamenum(int num)

  {

  int i=0,j;

  char a[10] = {0};

  while(num>0)

  {

  j=num%10;

  a[j]+=1;

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


Tag:笔试笔试大全招聘应聘 - 笔试
》《华为C语言笔试题集合》相关文章