当前位置:七七学习网文档大全求职指南求职笔试面试面试问题2017年华为招聘考题集锦及答案» 正文

2017年华为招聘考题集锦及答案

[05-11 15:20:13]   来源:http://www.77xue.com  面试问题   阅读:8365
概要:9、设有以下说明和定义:typedef union {long i; int k[5]; char c;} DATE;struct data { int cat; DATE cow; double dog;} too;DATE max;则语句 printf("%d",sizeof(struct date)+sizeof(max));的执行结果是:___52____答:DATE是一个union, 变量公用空间. 里面最大的变量类型是int[5], 占用20个字节. 所以它的大小是20data是一个struct, 每个变量分开占用空间. 依次为int4 + DATE20 + double8 = 32.所以结果是 20 + 32 = 52.当然...在某些16位编辑器下, int可能是2字节,那么结果是 int2 + DATE10 + double8 = 2010、队列和栈有什么区别队列先进先出,栈后进先出11、写出下列代码的输出内容以下是引用片段:#includeint
2017年华为招聘考题集锦及答案,标签:面试问题汇总,英语面试问题及答案,http://www.77xue.com

  9、设有以下说明和定义:

  typedef union {long i; int k[5]; char c;} DATE;

  struct data { int cat; DATE cow; double dog;} too;

  DATE max;

  则语句 printf("%d",sizeof(struct date)+sizeof(max));的执行结果是:___52____

  答:DATE是一个union, 变量公用空间. 里面最大的变量类型是int[5], 占用20个字节. 所以它的大小是20

  data是一个struct, 每个变量分开占用空间. 依次为int4 + DATE20 + double8 = 32.

  所以结果是 20 + 32 = 52.

  当然...在某些16位编辑器下, int可能是2字节,那么结果是 int2 + DATE10 + double8 = 20

  10、队列和栈有什么区别

  队列先进先出,栈后进先出

  11、写出下列代码的输出内容

  以下是引用片段:

  #include

  int inc(int a)

  {

  return(++a);

  }

  int multi(int*a,int*b,int*c)

  {

  return(*c=*a**b);

  }

  typedef int(FUNC1)(int in);

  typedef int(FUNC2) (int*,int*,int*);

  void show(FUNC2 fun,int arg1, int*arg2)

  {

  INCp=&inc;

  int temp =p(arg1);

  fun(&temp,&arg1, arg2);

  printf("%d\n",*arg2);

  }

  main()

  {

  int a;

  show(multi,10,&a);

  return 0;

  }

  答:110

  12、请找出下面代码中的所以错误

  说明:以下代码是把一个字符串倒序,如“abcd”倒序后变为“dcba”

  以下是引用片段:

  1、#include"string.h"

  2、main()

  3、{

  4、 char*src="hello,world";

  5、 char* dest=NULL;

  6、 int len=strlen(src);

  7、 dest=(char*)malloc(len);

  8、 char* d=dest;

  9、 char* s=src[len];

  10、 while(len--!=0)

  11、 d++=s--;

  12、 printf("%s",dest);

  13、 return 0;

  14、}

  答:

  方法1:

  以下是引用片段:

  int main()

  {

  char* src ="hello,world";

  int len = strlen(src);

  char* dest = (char*)malloc(len+1);//要为\0分配一个空间

  char* d = dest;

  char* s = &src[len-1];//指向最后一个字符

  while( len-- != 0 )

  *d++=*s--;

  *d = 0;//尾部要加\0

  printf("%s\n",dest);

  free(dest);// 使用完,应当释放空间,以免造成内存汇泄露

  return 0;

  }

  方法2:

  以下是引用片段:

  #include

  #include

  main()

  {

  char str[]="hello,world";

  int len=strlen(str);

  char t;

  for(int i=0; i

  {

  t=str;

  str=str[len-i-1]; str[len-i-1]=t;

  }

  printf("%s",str);

  return 0;

  }

  1.-1,2,7,28,,126请问28和126中间那个数是什么 为什么

  第一题的答案应该是4^3-1=63

  规律是n^3-1(当n为偶数0,2,4)n^3+1(当n为奇数1,3,5)

  答案:63

  2.用两个栈实现一个队列的功能 要求给出算法和思路!

  设2个栈为A,B, 一开始均为空.

  入队:

  将新元素push入栈A;

  出队:

  (1)判断栈B是否为空;

  (2)如果不为空,则将栈A中所有元素依次pop出并push到栈B;

上一页  [1] [2] [3]  下一页


Tag:面试问题面试问题汇总,英语面试问题及答案求职指南 - 求职笔试面试 - 面试问题
联系我们 | 网站地图 | 范文大全 | 管理知识 | 教学教育 | 作文大全 | 语句好词
Copyright http://www.77xue.com--(七七学习网) All Right Reserved.
1 2 3 4 5 6 7 8 9 10