首页 > 就业 > 笔试

华为笔试经验分享(2)

华为笔试经验分享(2)



华为笔试经验分享(2)

  篇中提及的问题的解答:

  1、1到100之间的所有素数之和;

  int i = 1;

  int j = 0;

  bool change= 1;

  int sum = 0;

  for (i=1; i<100; i++)

  {

  for (j=2; j

  {

  if(i%j==0)

  {

  change = 0;

  break;

  }

  }

  if(change==1)

  sum +=i;

  change = 1;

  }

  printf("%d\n",sum);

  2、队列的实现;(用数组或者链表,定义好输入和输出即可)

  3、选首领(有一群人围在一圈,从第一个人开始数1、2、3,数到3者退出,用循环链表实现)

  n个人围成一圈,从第一个人开始依次从1到m循环报数,当报到m的时候此人出圈,直到圈 中只剩一人为止.求最后一个人的原始编号。

  int yuesefu(int n,int m)

  {

  int i,r=0;

  for (i=2;i<=n;i++) r=(r+m)%i;

  return r+1;

  }

  4、字符串匹配问题(int countABC(* s) 输入任何一串字符串,计算机其中有连续ABC子字符 串的个数)

  int countABC(* s)

  {

  int i = 0;

  int j = 0;

  int num = 0;

  scanf("%s",s);

  int len = strlen(s);

  for (i=0; i

  {

  j = strcmp(s+i,"ABC");

  if(j==0)

  num++;

  }

  }

  5、用数组存储超大数的问题。

  这是数组得一个应用,思想是我们定义一个数组,让每一个元素得值都是从后到前以十 进制得方式存贮得,如过到了9下一位就要让前一个元素进位为1,9变为0同时。

  下面这个例子是要求一个40位的 n!的值

  int data[40];//存储40位书的整数数组

  int digit;//数据位数变量

  int i,j,r,k;

  int n;//用户输入值

  for(i=1; i<40+1; i++)

  data[i]=0;

  data[0]=data[1]=1;

  digit=1;

  printf("enter a number :");

  scanf("%d",n);

  for(i=1; i

  {

  for(j=1; j

  data[j]*=i;

  for(j=1; j

  {

  if(data[j]>10)

  {

  for(r=1; r

  {

  if(data[digit]>10)//大于10时候位数加1

  digit++;

  data[r+1]+=data[r]/10;//进位增加

  data[r]=data[r]%10;//去掉进位后得值

  }

  }

  }

  printf("%d! = ",i);

  for(k =digit; k>0; k--)

  printf("%d",data[k]);

  printf("\n");

  }

  6、询问我操作系统的进程和线程的区别

  进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元 实现系统对应用的并发性。进程和线程的区别,简而言之:

  一个程序至少有一个进程,一个进程至少有一个线程.

  线程的划分尺度小于进程,使得多线程程序的并发性高。

  另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大 地提高了程序的运行效率。

  =========================================

  1、ping命令使用的是哪种报文?

  PING命令使用ICMP的哪种code类型:Echo reply(回显请求报文)

  2、OSI分哪几个层,IP是在哪个层?

  osi:物理层、链路层、网络层、传输层、会话层、管理层、应用层。

  tcp/ip:主机网络层、互联层、传输层、应用层。ip是在互联层

  3、哈希表的问题

  主要用于快速查找检索方面

  4、为什么要采取二叉树这种数据结构?

  他折半查找,可以减少查找比较次数

  5、五元组

  二元组的定义:

  三元组的定义:

  五元组的定义:

  V是值的集合,O是操作的集合,G是构成名字的文法,M是存储的集合,S是从G能构成的名字 几个到M的映射.

  iP报文中的五元组(即源IP地址,源端口号,目的IP地址,目的端口,协议)。

  半相关

  综上所述,网络中用一个三元组可以在全局唯一标志一个进程:

  (协议,本地地址,本地端口号)

  这样一个三元组,叫做一个半相关(half-association),它指定连接的每半部分。

相关内容

热门阅读
随机推荐