人力资源方案案例华为笔试题大全史上最齐全Word下载.docx
《人力资源方案案例华为笔试题大全史上最齐全Word下载.docx》由会员分享,可在线阅读,更多相关《人力资源方案案例华为笔试题大全史上最齐全Word下载.docx(82页珍藏版)》请在冰豆网上搜索。
![人力资源方案案例华为笔试题大全史上最齐全Word下载.docx](https://file1.bdocx.com/fileroot1/2022-12/12/7abd64b3-484b-4a8b-9096-fb2391f94864/7abd64b3-484b-4a8b-9096-fb2391f948641.gif)
华为笔试题含答案[软件工程题]
写一个程序,要求功能:
求出用1,2,5这三个数不同个数组合的和为100的组合个数。
如:
100个1是一个组合,5个1加19个5是一个组合。
。
请用C++语言写。
答案:
最容易想到的算法是:
设x是1的个数,y是2的个数,z是5的个数,number是组合数注意到0<
=x<
=100,0<
=y<
=50,0<
=z=20,所以可以编程为:
number=0;
for(x=0;
x<
=100;
x++)for(y=0;
y<
=50;
y++)for(z=0;
z<
=20;
z++)if((x+2*y+5*z)==100)number++;
cout<
<
number<
endl;
上面这个程序一共要循环100*50*20次,效率实在是太低了
事实上,这个题目是一道明显的数学问题,而不是单纯的编程问题。
我的解法如下:
因为x+2y+5z=100
所以x+2y=100-5z,且z<
=20x<
=100y<
=50所以(x+2y)<
=100,且(x+5z)是偶数
对z作循环,求x的可能值如下:
z=0,x=100,98,96,...0
z=1,x=95,93,...,1
z=2,x=90,88,...,0
z=3,x=85,83,...,1
z=4,x=80,78,...,0
......
z=19,x=5,3,1z=20,x=0
因此,组合总数为100以内的偶数+95以内的奇数+90以内的偶数+...+5以内的奇数+1,
即为:
(51+48)+(46+43)+(41+38)+(36+33)+(31+28)+(26+23)+(21+18)+(16+13)+(11+8)+(6+3)+1
某个偶数m以内的偶数个数〔包括0〕可以表示为m/2+1=(m+2)/2某个奇数m以内的奇数个数也可以表示为(m+2)/2所以,求总的组合次数可以编程为:
number=0;
for(intm=0;
m<
m+=5)
{
number+=(m+2)/2;
}
cout<
这个程序,只需要循环21次,两个变量,就可以得到答案,比上面的那个程序高效了许多倍----只是因为作了一些简单的数学分析
这再一次证明了:
计算机程序=数据结构+算法,而且算法是程序的灵魂,对任何工程问题,当用软件来实现时,必须选取满足当前的资源限制,用户需求限制,开发时间限制等种
种限制条件下的最优算法。
而绝不能一拿到手,就立刻用最容易想到的算法编出一个程序了事——这不是一个专业的研发人员的行为。
那么,那种最容易想到的算法就完全没有用吗?
不,这种算法正好可以用来验证新算法的正确性,在调试阶段,这非常有用。
在很多大公司,例如微软,都采用了这种方法:
在调试阶段,对一些重要的需要好的算法来实现的程序,而这种好的算法又比拟复杂时,同时用容易想到的算法来验证这段程序,如果两种算法得出的结果不一致〔而最容易想到的算法保证是正确的〕,那么说明优化的算法出了问题,需要修改。
可以举例表示为:
#ifdefDEBUGintsimple();
#endif
intoptimize();
inafunction:
result=optimize();
ASSERT(result==simple());
这样,在调试阶段,如果简单算法和优化算法的结果不一致,就会打出断言。
同时,在程序的发布版本,却不会包含笨重的simple()函数。
——任何大型工程软件都需要预先设计良好的调试手段,而这里提到的就是一种有用的方法。
一个学生的信息是:
姓名,学号,性别,年龄等信息,用一个链表,把这些学生信息连在一起,给出一个age,在些链表中删除学生年龄等于age的学生信息。
#include"
stdio.h"
conio.h"
structstu{charname[20];
charsex;
intno;
intage;
structstu*next;
}*linklist;
structstu*creatlist(intn)
inti;
//h为头结点,p为前一结点,s为当前结点structstu*h,*p,*s;
h=(structstu*)malloc(sizeof(structstu));
h->
next=NULL;
p=h;
for(i=0;
i<
n;
i++)
s=(structstu*)malloc(sizeof(structstu));
p->
next=s;
printf("
Pleaseinputtheinformationofthestudent:
namesexnoage\n"
);
scanf("
%s%c%d%d"
s->
name,&
s->
sex,&
no,&
age);
p=s;
Createsuccessful!
"
return(h);
voiddeletelist(structstu*s,inta)
structstu*p;
while(s->
age!
=a)
p=s;
s=s->
next;
}if(s==NULL)
Therecordisnotexist."
else
p->
next=s->
printf("
Deletesuccessful!
voiddisplay(structstu*s)
while(s!
=NULL)
%s%c%d%d\n"
name,s->
sex,s->
no,s->
s=s->
intmain()
structstu*s;
intn,age;
Pleaseinputthelengthofseqlist:
\n"
%d"
&
n);
s=creatlist(n);
display(s);
Pleaseinputtheage:
deletelist(s,age);
display(s);
return0;
2、实现一个函数,把一个字符串中的字符从小写转为大写。
voiduppers(char*s,char*us)
for(;
*s!
='
\0'
;
s++,us++)
if(*s>
a'
*s<
z'
)
*us=*s-32;
*us=*s;
*us='
char*s,*us;
charss[20];
Pleaseinputastring:
%s"
ss);
s=ss;
uppers(s,us);
Theresultis:
\n%s\n"
us);
getch();
随机输入一个数,判断它是不是对称数〔回文数〕〔如3,121,12321,45254〕。
不能用字符串库函数
/***************************************************************
1.
函数名称:
Symmetry
功能:
判断一个数时候为回文数(121,35653)输入:
长整型的数
输出:
假设为回文数返回值为1esle0
******************************************************************/unsignedcharSymmetry(longn)
longi,temp;
i=n;
temp=0;
while(i)//不用出现长度问题,将数按上下位掉换
temp=temp*10+i%10;
i/=10;
return(temp==n);
方法一
/*---------------------------------------------------------------------------
判断字符串是否为回文数字实现:
先将字符串转换为正整数,再将正整数逆序组合为新的正整数,两数相同则为回文数字输入:
char*s:
待判断的字符串输出:
无返回:
0:
正确;
1:
待判断的字符串为空;
2:
待判断的字符串不为数字;
3:
字符串不为回文数字;
4:
待判断的字符串溢出
----------------------------------------------------------------------------*/
unsignedIsSymmetry(char*s)
char*p=s;
longnNumber=0;
longn=0;
longnTemp=0;
/*判断输入是否为空*/if(*s==\'
\\0\'
)return1;
/*将字符串转换为正整数*/while(*p!
=\'
/*判断字符是否为数字*/if(*p<
\'
0\'
||*p>
9\'
)return2;
/*判断正整数是否溢出*/
if((*p-\'
)>
(4294967295-(nNumber*10)))return4;
nNumber=(*p-\'
)+(nNumber*10);
p++;
/*将数字逆序组合,直接抄楼上高手的代码,莫怪,呵呵*/n=nNumber;
while(n)
if((n%10)>
(4294967295-(nTemp*10)))
return3;
nTemp=nTemp*10+n%10;
n/=10;
/*比拟逆序数和原序数是否相等*/if(nNumber!
=nTemp)
return0;
方法二
先得到字符串的长度,再依次比拟字符串的对应位字符是否相同输入:
字符串不为回文数字
unsignedIsSymmetry_2(char*s)
intnLen=0;
inti=0;
/*得到字符串长度*/while(*p!
nLen++;
p++;
/*长度不为奇数,不为回文数字*/if(nLen%2==0)
return4;
/*长度为1,即为回文数字*/if(nLen==1)
/*依次比拟对应字符是否相同*/p=s;
i=nLen/2-1;
while(i)
if(*(p+i)!
=*(p+nLen-i-1))return3;
i--;
求2~2000的所有素数.有足够的内存,要求尽量快
答案:
intfindvalue[2000]={2};
staticintfind=1;
booladjust(intvalue)
assert(value>
=2);
if(value==2)returntrue;
for(inti=0;
=find;
if(value%findvalue[i]==0)returnfalse;
findvalue[find++];
returntrue;
华为最后三个大题
1.A,B,C,D四个进程,A向buf里面写数据,B,C,D向buf里面读数据,当A写完,且B,C,D都读一次后,A才能再写。
用P,V操作实现。
2.将单向链表reverse,如ABCD变成DCBA,只能搜索链表一次。
3.将二叉树的两个孩子换位置,即左变右,右变左。
不能用递规〔变态!
〕
华为笔试题:
华为笔试题之一二
给大家说几个:
〔感觉华为不过如此,虽然我的分不高,因为很多题我做给他实在是侮辱我的智商〕1。
大意如下:
38头牛中选出3头跑得最快的,使用一个每次只能供6头比赛的场地,要求用最快的方法。
〔我给一
个最傻瓜的答案,因为我发现一起笔试的有且恰好有38个人,不知道**什么意思?
2。
公司职员知道老板的年龄,不知道他女儿的年龄,老板3个女儿的年龄相加为13,相乘为老板年龄,且只有一个女儿的年龄大于5岁,求这4个的年龄?
〔网上有一大堆答案!
3。
原题是2002年以前的一道大学生数学建模竞赛的题,是说一个学生冒雨从宿舍去食堂吃饭,200米的距离内,问是走着少淋雨还是跑着少?
〔该题简化了大局部的假设,只剩下一点点问题要你解决,做着没劲!
选择题:
〔每题2分,共100分〕
1、以下属于物理层的设备是〔〕
A、中继器
B、以太网交换机
C、桥
D、网关
2、在以太网中,是根据〔〕地址来区分不同的设备的。
A、LLC地址
B、MAC地址
C、IP地址
D、IPX地址
3、以下为传输层协议的是〔〕
A、IP
B、ICMP
C、UDP
D、SPX
4、以下对MAC地址描述正确的选项是〔〕
A、由32位2进制数组成
B、由48位2进制数组成
C、前6位16进制由IEEE负责分配
D、后6位16进制由IEEE负责分配
5、以下属于数据链路层功能的是〔〕
A、定义数据传输速率
B、定义物理地址
C、描述网络拓扑结构
D、流控制
6、IEEE802.3u标准是指〔〕
A、以太网
B、快速以太网
C、令牌环网
D、FDDI网
7、如果要将两计算机通过双绞线直接连接,正确的线序是〔〕A、1--1、2--2、3--3、4--4、5--5、6--6、7--7、8--8
B、1--2、2--1、3--6、4--4、5--5、6--3、7--7、8--8
C、1--3、2--6、3--1、4--4、5--5、6--2、7--7、8--8
D、两计算机不能通过双绞线直接连接
8、在和规程中,控制信号RTS表示〔〕
A、数据终端准备好;
B、数据准备好;
C、数据载体检测;
D、请求发送;
E、去除发送。
9、路由器作为网络互连设备,必须具备以下哪些特点。
〔〕
A、至少支持两个网络接口
B、协议至少要实现到网络层
C、至少支持两种以上的子网协议
D、至少具备一个备份口
E、具有存储、转发和寻径功能
F、一组路由协议
G、必须有较高的协议处理能力
10、路由器的作用有〔〕
A、异种网络互连
B、子网间的速率适配
C、连接局域网内两台以上的计算机
D、隔离网络,防止网络风暴,指定访问规则〔防火墙〕
E、子网协议转换
F、加快网络报文的传递速度
G、路由〔寻径〕:
路由表建立、刷新、查找
H、报文的分片与重组
11、调用上一条历史命令的快捷键是()
A、CTRL-P
B、CTRL-O
C、ALT-P
D、ALT-O
12、交换机工作在OSI七层的哪一层?
〔〕
A、一层
B、二层
C、三层
D、三层以上
13、以下对CSMA/CD描述正确的选项是〔〕
A、在数据发送前对网络是否空闲进行检测
B、在数据发送时对网络是否空闲进行检测
C、在数据发送时对发送数据进行冲突检测
D、发生碰撞后MAC地址小的主机拥有发送优先权
14、以下对STOREANDFORWARD描述正确的选项是〔〕
A、收到数据后不进行任何处理,立即发送
B、收到数据帧头后检测到目标MAC地址,立即发送
C、收到整个数据后进行CRC校验,确认数据正确性后再发送
D、发送延时较小
E、发送延时较大
15、以下对交换机工作方式描述正确的选项是〔〕
A、可以使用半双工方式工作
B、可以使用全双工方式工作
C、使用全双工方式工作时要进行回路和冲突检测
D、使用半双工方式工作时要进行回路和冲突检测
16、VLAN的主要作用有〔〕
A、保证网络平安
B、抑制播送风暴
C、简化网络管理
D、提高网络设计灵活性
17、在交换机中用户权限分为几个级别〔〕
A、1
B、2
C、3
D、4
18、在路由器的配置过程中查询以S开头所有命令的方法是〔〕
A、直接使用?
B、S?
C、S?
D、DIRS*
19、第一次配置路由器时可以使用的方法为〔〕
A、使用CON口本地配置
B、使用CON口远程配置
C、使用AUX口远程配置
D、使用TELNET远程配置
20、在何种状态下可以为路由器改名〔〕
A、普通模式
B、超级模式
C、全局模式
D、接口模式
21、某公司申请到一个C类IP地址,但要连接6个的子公司,最大的一个子公司有26台计算机,每个子公司在一个网段中,则子网掩码应设为〔〕。
A、
B、
C、
D、
22、与10.110.12.29mask255.255.255.224属于同一网段的主机IP地址是〔〕。
23、ARP协议的作用是〔〕
A、将端口号映射到IP地址
B、连接IP层和TCP层
C、播送IP地址
D、将IP地址映射到第二层地址
24、当路由器接收的IP报文的TTL值等于1时,采取的策略是〔〕
A、丢掉该分组
B、将该分组分片
C、转发该分组
D、以上答案均不对
25、在NetWare网络中,客户需要访问某个类型的效劳器时,首先要发送一个〔〕播送报文来寻找效劳器
A、Rip
B、Sap
C、Gns
D、Arp
26、IPX地址网络地址有〔〕个字节
A、10
B、8
C、4
D、6
27、对于帧中继描述正确的选项是〔〕
A、使用具有本地意义的DLCI描述PVC
B、使用具有全局意义的DLCI描述PVC
C、使用具有本地意义的DLCI