华为校园招聘笔试题大全

华为校园招聘笔试题大全
华为校园招聘笔试题大全

★笔试题大全★

1.static有什么用途?(请至少说明两种)

1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。

2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。

3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用

2.引用与指针有什么区别?

1) 引用必须被初始化,指针不必。

2) 引用初始化以后不能被改变,指针可以改变所指的对象。

3) 不存在指向空值的引用,但是存在指向空值的指针。

3.描述实时系统的基本特性

在特定时间内完成特定的任务,实时性与可靠性。

4.全局变量和局部变量在内存中是否有区别?如果有,是什么区别?

全局变量储存在静态数据库,局部变量在堆栈。

5.什么是平衡二叉树?

左右子树都是平衡二叉树且左右子树的深度差值的绝对值不大于1。

6.堆栈溢出一般是由什么原因导致的?

没有回收垃圾资源。

7.什么函数不能声明为虚函数?

Constructor(构造函数)函数不能声明为虚函数。

8.冒泡排序算法的时间复杂度是什么?

时间复杂度是O(n^2)。

9.写出float x 与“零值”比较的if语句。

if(x>0.000001&&x<-0.000001)

10.Internet采用哪种网络协议?该协议的主要层次结构?

Tcp/Ip协议

主要层次结构为:应用层/传输层/网络层/数据链路层/物理层。

11.Internet物理地址和IP地址转换采用什么协议?

ARP (Address Resolution Protocol)(地址解析協議)

12.IP地址的编码分为哪俩部分?

IP地址由两部分组成,网络号和主机号。不过是要和“子网掩码”按位与上之后才能区分哪些是网络位哪些是主机位。

13.用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出。写出C程序。

循环链表,用取余操作做

14.不能做switch()的参数类型是:

switch的参数不能为实型。

上海华为的一道关于指针方面的编程题

int A[nSize],其中隐藏着若干0,其余非0整数,写一个函数int Func(int* A, int nSize),使A把0移至后面,非0整数移至数组前面并保持有序,返回值为原数据中第一个元素为0的下标。(尽可能不使用辅助空间且考虑效率及异常问题,注释规范且给出设计思路)

华为笔试题含答案 [软件工程题]

写一个程序, 要求功能:求出用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<

上面这个程序一共要循环100*50*20次,效率实在是太低了

事实上,这个题目是一道明显的数学问题,而不是单纯的编程问题。我的解法如下:

因为x+2y+5z=100

所以x+2y=100-5z,且z<=20 x<=100 y<=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, 1

z=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 (int m=0;m<=100;m+=5)

{

number+=(m+2)/2;

}

cout<

这个程序,只需要循环21次, 两个变量,就可以得到答案,比上面的那个程序高效了许多

倍----只是因为作了一些简单的数学分析

这再一次证明了:计算机程序=数据结构+算法,而且算法是程序的灵魂,对任何工程问

题,当用软件来实现时,必须选取满足当前的资源限制,用户需求限制,开发时间限制等种

种限制条件下的最优算法。而绝不能一拿到手,就立刻用最容易想到的算法编出一个程序了事——这不是一个专业的研发人员的行为。

那么,那种最容易想到的算法就完全没有用吗?不,这种算法正好可以用来验证新算法

的正确性,在调试阶段,这非常有用。在很多大公司,例如微软,都采用了这种方法:在调

试阶段,对一些重要的需要好的算法来实现的程序,而这种好的算法又比较复杂时,同时用

容易想到的算法来验证这段程序,如果两种算法得出的结果不一致(而最容易想到的算法保

证是正确的),那么说明优化的算法出了问题,需要修改。

可以举例表示为:

#ifdef DEBUG

int simple();

#end if

int optimize();

......

in a function:

{

result=optimize();

ASSERT(result==simple());

}

这样,在调试阶段,如果简单算法和优化算法的结果不一致,就会打出断言。同时,在程

序的发布版本,却不会包含笨重的simple()函数。——任何大型工程软件都需要预先设计良

好的调试手段,而这里提到的就是一种有用的方法。

一个学生的信息是:姓名,学号,性别,年龄等信息,用一个链表,把这些学生信息连在一起,给出一个age, 在些链表中删除学生年龄等于age的学生信息。

#include "stdio.h"

#include "conio.h"

struct stu{

char name[20];

char sex;

int no;

int age;

struct stu * next;

}*linklist;

struct stu *creatlist(int n)

{

int i;

//h为头结点,p为前一结点,s为当前结点

struct stu *h,*p,*s;

h = (struct stu *)malloc(sizeof(struct stu));

h->next = NULL;

p=h;

for(i=0;i

{

s = (struct stu *)malloc(sizeof(struct stu));

p->next = s;

printf("Please input the information of the student: name sex no age \n"); scanf("%s %c %d %d",s->name,&s->sex,&s->no,&s->age);

s->next = NULL;

p = s;

}

printf("Create successful!");

return(h);

}

void deletelist(struct stu *s,int a)

{

struct stu *p;

while(s->age!=a)

{

p = s;

s = s->next;

}

if(s==NULL)

printf("The record is not exist.");

else

{

p->next = s->next;

printf("Delete successful!");

}

}

void display(struct stu *s)

{

s = s->next;

while(s!=NULL)

{

printf("%s %c %d %d\n",s->name,s->sex,s->no,s->age); s = s->next;

}

}

int main()

{

struct stu *s;

int n,age;

printf("Please input the length of seqlist:\n"); scanf("%d",&n);

s = creatlist(n);

display(s);

printf("Please input the age:\n");

scanf("%d",&age);

deletelist(s,age);

display(s);

return 0;

}

2、实现一个函数,把一个字符串中的字符从小写转为大写。

#include "stdio.h"

#include "conio.h"

void uppers(char *s,char *us)

{

for(;*s!='\0';s++,us++)

{

if(*s>='a'&&*s<='z')

*us = *s-32;

else

*us = *s;

}

*us = '\0';

}

int main()

{

char *s,*us;

char ss[20];

printf("Please input a string:\n");

scanf("%s",ss);

s = ss;

uppers(s,us);

printf("The result is:\n%s\n",us);

getch();

}

随机输入一个数,判断它是不是对称数(回文数)(如3,121,12321,45254)。不能用字符串库函数

/***************************************************************

1.

函数名称:Symmetry

功能:判断一个数时候为回文数(121,35653)

输入:长整型的数

输出:若为回文数返回值为1 esle 0

******************************************************************/

unsigned char Symmetry (long n)

{

long i,temp;

i=n; temp=0;

while(i) //不用出现长度问题,将数按高低位掉换

{

temp=temp*10+i%10;

i/=10;

}

return(temp==n);

}

方法一

/* --------------------------------------------------------------------------- 功能:

判断字符串是否为回文数字

实现:

先将字符串转换为正整数,再将正整数逆序组合为新的正整数,两数相同则为回文数字

输入:

char *s:待判断的字符串

输出:

返回:

0:正确;1:待判断的字符串为空;2:待判断的字符串不为数字;

3:字符串不为回文数字;4:待判断的字符串溢出

---------------------------------------------------------------------------- */ unsigned IsSymmetry(char *s)

{

char *p = s;

long nNumber = 0;

long n = 0;

long nTemp = 0;

/*判断输入是否为空*/

if (*s == \'\\0\')

return 1;

/*将字符串转换为正整数*/

while (*p != \'\\0\')

{

/*判断字符是否为数字*/

if (*p<\'0\' || *p>\'9\')

return 2;

/*判断正整数是否溢出*/

if ((*p-\'0\') > (4294967295-(nNumber*10)))

return 4;

nNumber = (*p-\'0\') + (nNumber * 10);

p++;

}

/*将数字逆序组合,直接抄楼上高手的代码,莫怪,呵呵*/ n = nNumber;

while(n)

{

/*判断正整数是否溢出*/

if ((n%10) > (4294967295-(nTemp*10)))

nTemp = nTemp*10 + n%10;

n /= 10;

}

/*比较逆序数和原序数是否相等*/

if (nNumber != nTemp)

return 3;

return 0;

}

方法二

/* --------------------------------------------------------------------------- 功能:

判断字符串是否为回文数字

实现:

先得到字符串的长度,再依次比较字符串的对应位字符是否相同

输入:

char *s:待判断的字符串

输出:

返回:

0:正确;1:待判断的字符串为空;2:待判断的字符串不为数字;

3:字符串不为回文数字

---------------------------------------------------------------------------- */ unsigned IsSymmetry_2(char *s)

{

char *p = s;

int nLen = 0;

/*判断输入是否为空*/

if (*s == \'\\0\')

return 1;

/*得到字符串长度*/

while (*p != \'\\0\')

{

/*判断字符是否为数字*/

if (*p<\'0\' || *p>\'9\') return 2;

nLen++;

p++;

}

/*长度不为奇数,不为回文数字*/ if (nLen%2 == 0)

return 4;

/*长度为1,即为回文数字*/

if (nLen == 1)

return 0;

/*依次比较对应字符是否相同*/

p = s;

i = nLen/2 - 1;

while (i)

{

if (*(p+i) != *(p+nLen-i-1))

return 3;

i--;

}

return 0;

}

求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米的距离内,问是走着少淋雨还是跑着少?(该题简化了大部分的假设,只剩下一点点问题要你解决,做着没劲!)

选择题:(每题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、在V.35和V.24规程中,控制信号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、以下对STORE AND FORWARD描述正确的是()

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、DIR S*

19、第一次配置路由器时可以使用的方法为()

A、使用CON口本地配置

B、使用CON口远程配置

C、使用AUX口远程配置

D、使用TELNET远程配置

20、在何种状态下可以为路由器改名()

A、普通模式

B、超级模式

C、全局模式

D、接口模式

21、某公司申请到一个C类IP地址,但要连接6个的子公司,最大的一个子公司有 26台计算机,每个子公司在一个网段中,则子网掩码应设为()。

A、255.255.255.0

B、255.255.255.128

C、255.255.255.192

D、255.255.255.224

22、与10.110.12.29 mask 255.255.255.224属于同一网段的主机IP地址是()。

A、10.110.12.0

001-华为公司应届生试题-研发软件类(第1套)

说明:本份试题满分100分,完成时间为90分钟。请将答案写在答题纸上,不要写在试卷上,答题完毕将试卷、答题纸和草稿纸一起上交。 一、单选题(共20题计40分) 1、输入序列为ABC,可以变为CBA时,经过的栈操作为() A. push,pop,push,pop,push,pop B. push,push,push,pop,pop,pop C. push,push,pop,pop,push,pop D. push,pop,push,push,pop,pop 2.线程和进程最主要的区别在于 A. 进程是UNIX下的概念,线程是Windows下的概念 B. 进程的效率比线程低 C. 在进程中可以创造线程,但线程中不能生成进程 D. 进程由自己独立的运行空间,线程的运行空间是共享的 3. IP路由发生在TCP/IP体系结构中的哪一层 A. 物理层 B. 数据链路层 C. 网络层 D. 传输层 4. 假设一个IP主机地址为而子网掩码为那么该主机的网络号为_________ 5.120 C 、遍历是树形结构的一种重要运算。若已知一棵二叉树的前序序列是BEFCGDH,中序序列是FEBGCHD,则它的后序序列必是______。供选择的答案 A) E F G H B C D B) F E G H D C B C) B C D E F G H D) E F G C H D B 6、五层完全二叉树有___个节点。 A. 16 B. 32 C. 31 D. 33 7、用链接方式存储的非循环单向队列,在进行删除运算时,_____。 A) 头、尾指针可能都要修改 B) 仅修改头指针 C) 仅修改尾指针 D) 头、尾指针都要修改 8、如果在排序过程中,每次均将一个待排序的记录按关键字大小加入到前面已经有序的子表中的适当位置,则该排序方法称为() A.插入排序B.归并排序 C.冒泡排序D.堆排序 9、对下列关键字序列用快速排序法进行排序时,速度最快的情形是:( ) (A){25、23、30、17、21、5、9} (B){21、9、17、30、25、23、5} (C){21、25、5、17、9、23、30} (D){5、9、17、21、23、25、30}

华为招聘笔试、面试 试题及经验

第一部分,不定向选择 第二部分,填空题 1. 什么是UML?分哪两类? 2. OS一般的两种进程调度策略 3. 进程间的四种通讯方式 4. 一棵二叉树的前序,中序,后序遍历结果 第三部分,问答题 1. 通常递归所采用的数据结构?递归和循环的区别? 2. 将一个单链表逆序。 3. A,B,C,D四个进程,A向一个缓冲区写数据,B,C,D从该缓冲区读数据,A 要等到B,C,D都已经读好才能写下一个。用p,v操作实现通讯。 4. C 程序写运行结果。 class A { public: void f1() { printf("A::f1\r\n"); } virtual void f2() { printf("A::f2\r\n"); } void callfunc() { printf("A::callfunc\r\n");

f1(); f2(); } }; class B :public A { public: void f1() { printf("B::f1\r\n"); } void f2() { printf("B::f2\r\n"); } void callfunc() { printf("B::callfunc\r\n"); f1(); f2(); } }; int main() { B *pB=new B; pB->callfunc(); A *pA=pB; pA->callfunc(); return 0; } 、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、 前面已经有人写了,hehe,我写一下稍微详细的版本:中断优先级排序 补码:写出0,-1,-5的二进制补码

华为校招·硬件技术工程师机考试题及答案

精品文档 1.(判断题)DRAM上电时存储单元的内容是全0,而Flash上电时存储单元的内容是全1。(4分) A.正确 B.错误 FLASH可保存 2.(判断题)眼图可以用来分析高速信号的码间干扰、抖动、噪声和衰减。(4分) A.正确 B.错误 3.(判断题)以太网交换机将冲突域限制在每个端口,提高了网络性能。(4分) A.正确 B.错误 4.(判断题)放大电路的输出信号产生非线性失真是由于电路中晶体管的非线性引起的。(4分) A.正确 B.错误 5.(判断题)1的8位二进制补码是0000_0001,-1的8位二进制补码是1111_1111。(4分) A.正确 B.错误 6.(判断题)洗衣机,电冰箱等家用电器都使用三孔插座,是因为如果不接地,家用电器是不能工作的。(4分) A.正确 B.错误 7.(判断题)十进制数据0x5a与0xa5的同或运算结果为:0x00。(4分) A.正确 B.错误 8.(判断题)硅二极管的正向导通压降比锗二极管的大(4分) A.正确 B.错误 9.(单选题)一空气平行板电容器,两级间距为d,充电后板间电压为u。然后将电源断开,在平板间平行插入一厚度为d/3的金属板。此时电容器原板间电压变为(4分) A.U/3 B.2U/3 C.3U/4 D.不变但电容的大小不是由 Q(带电量)或U(电压)决定的,即: C=εS/4πkd。其中,ε是一个常数, S为电容极板的正对面积, d为电容极板的距离, k则是静电力常量。而常见的平行板电容器 电容为C=εS/d.(ε为极板间介质的介电常数, S 为极板面积, d为极板间的距离。) 3电容器的电势能计算公式: E=CU^2/2=QU/2 10.(单选题)8086CPU内部包括哪些单元(4分) A.ALU,EU B.ALU,BIU C.EU,BIU D.ALU,EU,BIU 80x86从功能上分执行单元EU(Execution Unit),和总线接口单元BIU(Bus Interface Unit),执行单元由8个16位通用寄存器,1个16位标志寄存器,1个16位暂存寄存器,1个16位算术逻辑单元ALU及EU控制电路组成。 总线接口单元由4个16位段寄存器(CS,DS,SS,ES),1个16位的指令指针寄存器,1个与EU通信的内部暂存器,1个指令队列,1个计算20位物理地址的加法器∑及总线控制电路构成。 11.(单选题)为了避免50Hz的电网电压干扰放大器,应该用那种滤波器:(4分) A.带阻滤波器 B.带通滤波器 C.低通滤波器 D.高通滤波器 12.(单选题)关于SRAM和DRAM,下面说话正确的是:(4分) A.SRAM需要定时刷新,否则数据会丢失 B.DRAM使用内部电容来保存信息 C.SRAM的集成度高于DRAM D.只要不掉点,DRAM内的数据不会丢失 【解析】SRAM和DRAM都是随机存储器,机器掉电后,两者的信息都将丢失。它们的最大区别就是:DRAM是用电容有无电荷来表示信息0和1,为防止电容漏电而导致读取信息出错,需要周期性地给电容充电,即刷新;而SRAM是利用触发器的两个稳态来表示信息0和1,所以不需要刷新。另外,SRAM 的存取速度比DRAM更高,常用作高速缓冲存储器Cache。

最全的华为校园招聘笔试题

最全的华为校园招聘笔试题 华为笔试 1.局部变量能否和全局变量重名? 答:能,局部会屏蔽全局。要用全局变量,需要使用 “::“ 局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。 2.如何引用一个已经定义过的全局变量? 答:extern 可以用引用头文件的方式,也可以用extern关键字,如果用引用头文件方式来引用某个在头文件中声明的全局变理,假定你将那个变写错了,那么在编译期间会报错,如果你用extern方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报错。 3.全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么? 答:可以,在不同的C文件中以static形式来声明同名全局变量。 可以在不同的C文件中声明同名的全局变量,前提是其中只能有一个C文件中对此变量赋初值,此时连接不会出错。

4.语句for( ;1 ;)有什么问题?它是什么意思? 答:无限循环,和while (1)相同。 5.do……while和while……do有什么区别? 答:前一个循环一遍再判断,后一个判断以后再循环。 6.请写出下列代码的输出内容#i nclude main() { int a,b,c,d; a=10; b=a++; c=++a; d=10*a++; printf(“b,c,d:%d,%d,%d“,b,c,d); return 0; } 答:10,12,120 一.判断题(对的写T,错的写F并说明原因,每小题4分,共20分) 1.有数组定义int a[2][2]={{1},{2,3}};则a[0][1]的值为0。() 2.int (*ptr) (),则ptr是一维数组的名字。() 3.指针在任何情况下都可进行>, =, =MAX_SRM) return (NULL_SRM); else return SRM_no; } 3. 写出程序运行结果 int sum(int a) { auto int c=0; static int b=3; c+=1; b+=2; return(a+b+C); } void main() { int I; int a=2; for(I=0;Inext = NULL; p=h; for(i=0;inext = s; printf(“Please input the information

华为笔试试题大全

华为笔试试题大全 (陈远跃/整理) 1.static有什么用途?(请至少说明两种) 1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。 2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。 3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用 2.引用与指针有什么区别? 1) 引用必须被初始化,指针不必。 2) 引用初始化以后不能被改变,指针可以改变所指的对象。 3) 不存在指向空值的引用,但是存在指向空值的指针。 3.描述实时系统的基本特性在特定时间内完成特定的任务,实时性与可靠性。 4.全局变量和局部变量在内存中是否有区别?如果有,是什么区别? 全局变量储存在静态数据库,局部变量在堆栈。 5.什么是平衡二叉树? 左右子树都是平衡二叉树且左右子树的深度差值的绝对值不大于1。 6.堆栈溢出一般是由什么原因导致的? 没有回收垃圾资源。 7.什么函数不能声明为虚函数? constructor函数不能声明为虚函数。 8.冒泡排序算法的时间复杂度是什么? 时间复杂度是O(n^2)。 9.写出float x 与“零值”比较的if语句。 if(x>0.000001&&x<-0.000001) 10.Internet采用哪种网络协议?该协议的主要层次结构? Tcp/Ip协议 主要层次结构为:应用层/传输层/网络层/数据链路层/物理层。 11.Internet物理地址和IP地址转换采用什么协议?

ARP (Address Resolution Protocol)(地址解析協議) 12.IP地址的编码分为哪俩部分? IP地址由两部分组成,网络号和主机号。不过是要和“子网掩码”按位与上之后才能区分哪些是网络位哪些是主机位。 13.用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出。写出C程序。 循环链表,用取余操作做 14.不能做switch()的参数类型是: switch的参数不能为实型。 上海华为的一道关于指针方面的编程题 int A[nSize],其中隐藏着若干0,其余非0整数,写一个函数int Func(int* A, int nSize),使A把0移至后面,非0整数移至数组前面并保持有序,返回值为原数据中第一个元素为0的下标。(尽可能不使用辅助空间且考虑效率及异常问题,注释规范且给出设计思路) 华为笔试题含答案 [软件工程题] 写一个程序, 要求功能:求出用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<

华为面试笔试题

华为软件测试笔试题 Posted on 2010年04月1日, 22:29, by admin, under Test. 华为软件测试笔试题 前面几道大题是基础形的判断、选择、阅读理解题,涉及到网络、通信、软件工程等等,都是大英文。不过不难,CET4的水平就差不多了,但是重要的还是计算机方面的一些基础知识。后面的几道大题如下: 1、有A、B两个水杯,都没有刻度,也不允许做刻度。A杯装满水是5升,B杯装满水是3升。不借助别的任何工具,只用这两个杯子如何精确的得到4升水? A满5 B空 A将B满 A2 清空B A2移于B A满5 A5满B A4 2、软件工程中,根据软件开发的 V 模型,有哪些基本的阶段划分? 3、软件测试方法有哪些分类?各有什么特点?设计测试用例的主要方法有哪些? 4、网络安全方面,简述Syn_FLOOD攻击的原理。你还知道哪些类型的网络攻击? 一、根据一张“策略—收获”图,张三可以选择横向的方案A和方案B,李四可以选择纵向的方案1、方案2、方案3。两人选择方案的交叉点就是两人各自的收获。比如张三选择方案B,李四选择方案1,交叉点是(50,80),则张三收获50元,李四收获80元。两人都想让自己的收获尽可能的高,选择方案时两人均不知对方的选择。问两人最终的收获各是多少?

二、桌上排列着一行乒乓球,一共100个。两个人轮流拿球装入口袋,拿到第100个球的人是胜利者。每次拿球最少拿1个,最多拿5个。如果你先开始拿球,你要拿几个?以后你要怎样拿球,才能保证你能拿到第100个? 三、冒泡排序。用C 或 Java 语言。(从小到大排序) C #include void main() { int a[10]; int temp; int i; int j; int x; a[0] = 3; a[1] = 4; a[2] = 54; a[3] = 654; a[4] = 77; a[5] = 8; a[6] = 9; a[7] = 366; a[8] = 90; a[9] = 32; for( i=0;i<9;i++) { for( j =0; j<9-i;j++)

华为笔试题大全(史上最齐全)

华为 1.static有什么用途?(请至少说明两种) 1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。 2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。 3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用 2.引用与指针有什么区别? 1) 引用必须被初始化,指针不必。 2) 引用初始化以后不能被改变,指针可以改变所指的对象。 3) 不存在指向空值的引用,但是存在指向空值的指针。 3.描述实时系统的基本特性在特定时间内完成特定的任务,实时性与可靠性。 4.全局变量和局部变量在内存中是否有区别?如果有,是什么区别? 全局变量储存在静态数据库,局部变量在堆栈。 5.什么是平衡二叉树? 左右子树都是平衡二叉树且左右子树的深度差值的绝对值不大于1。 6.堆栈溢出一般是由什么原因导致的? 没有回收垃圾资源。 7.什么函数不能声明为虚函数? constructor函数不能声明为虚函数。 8.冒泡排序算法的时间复杂度是什么? 时间复杂度是O(n^2)。 9.写出float x 与“零值”比较的if语句。 if(x>0.000001&&x<-0.000001) 10.Internet采用哪种网络协议?该协议的主要层次结构? Tcp/Ip协议 主要层次结构为:应用层/传输层/网络层/数据链路层/物理层。 11.Internet物理地址和IP地址转换采用什么协议? ARP (Address Resolution Protocol)(地址解析協議) 12.IP地址的编码分为哪俩部分? IP地址由两部分组成,网络号和主机号。不过是要和“子网掩码”按位与上之后才能区分哪些是网络位哪些是主机位。

华为工程师面试题总结(有答案) 80%参考

本题库是华为集团工程师面试 -内部真实评分标准, -内部真实面试案例,后面有工程师考试试卷和答 案。物超所值,学会本文面试通过率提高80% 华为集团面试经验总结: 华为集团是4轮 一面组长,会问到一些这样问题,为什么会离职,为什么来华为集团婚姻状况,与此同时有没有想问面试官的问题。 二面经理,偏向于部门业务服务。有业务上的试卷需要考试。 三面经理,这一轮会谈到一些业务目标和工作中可能出现的一些问题。大概聊一下工作的想 法,部门的价值和目标,对这个岗位的期望等等以及华为集团和行业的情况。聊天的内容与面试者个人有关,可多可少。(二三是交叉面试防止作弊), 四面职业通道委员会,这一轮的面试非常专业,为技术专家面,目的是定级。确定你面试者的水平大概在什么位置。直接影响后面的收入。各个击中要害。不要想着有简单跳过的部分。在介绍工作内容的过程中,要先介绍自己在组织团队所处的位置,发挥的作用,工作绩效等,条例要清楚。这一轮的面试专业性最强。最后是HR谈薪资的部分,因为行业都有规则,所以时间不会太长。 5面背景调查,主要是面试者在填写简历时提供的名字和联系方式,其中包含领导。HR最后offer。 步骤四、五、六每个一个星期,比如三面完后得到职业通道委员会的面试的通知约一周,四面完后,得到通过与否的消息是一个星期。如果某一步一个星期多没消息,那就是没戏了。

面试的重点分享: 面试的气氛需要注意的: 1面试不能一脸严肃,显得很紧张,要适当微笑。给面试官的印象好。 2面试官提问的问题,不能对抗反驳提问。即使面试官的问题比较苛刻。 细节决定成败,面试如同相亲,面试官会注意到每个细节,身上有没有烟味,头发是不是整齐,说话条例要清晰,一定要集中精神,面试等待的时候也不能看手机。自我介绍的时候要强调身体健康可以加班。可以在最后自己介绍的时候,表示出强烈的来工作,一展抱负的意思。让面试官感受你的积极一面。 面试最重要的3点 1要高度认同面试公司的工作文化和理念。 2要强调自己不断学习。不断成长,能承受压力。 3千万不能说因为自己考试,希望的工作是轻松的,清闲的。 最重要的2点要高度认同面试公司的工作文化和理念。面试前要上公司网站查看下这个公司的文化理念,如果在面试过程把这个点说出来,是要加分非常多的。 收尾阶段 面试官一般会问:“你还有什么问题想问我们?”这个时候千万别不问,有啥没啥的都一定要问两个问题,一个问题可以涉及技术层面,另一个可以涉及应聘职位的发展问题. 前公司的离职原因是必问的问题,不能说前公司太多的不好,可以说因为其他原因, 离职原因:优秀回答: A:原来公司亏损,减员,所以申请离职。 B:原来的公司,更换股东,战略有调整,人员调整。 C 原来的公司,因为搬家,搬家到很远的地方,过去不方便。 D 原来的公司,调整作息时间,周二放假,周日上班。 E 自己想要成长,希望可以更换岗位,挑战新的岗位,新的工作。 自我介绍: 是被面试者在纸面之外最能够呈现能力的一个地方。一般情况下,也是被面试者在整个面试过程中惟一一次主动展示自我的机会 第一,考察自我介绍内容和递交简历内容是否相冲突?如果简历是真实的,口述自我介绍就不会有明显出入。如果简历有假,自我介绍阶段一般就会漏马脚。如被面试者反问:“我的经历在简历里都写了”,面试官会认为这人得瑟,印象分一下子降为负数。 第二,考察被面试者基本的逻辑思维能力、语言表达能力,总结提炼概括能力。 第三,考察被面试者是否聚焦,是否简练和精干,现场的感知能力与把控能力。 第四,考察被面试者初步的自我认知能力和价值取向。因为被面试者要叙述职业切换关键节

华为笔试题(答案)

笔试题 选择题 1、以下程序的输出结果是: #include int main() { int n =4; while(n--) { printf("%d ", --n); } printf("\r\n"); return0; } 答案:2 0 2、设有以下宏定义: #define N 4 #define Y(n) ((N+1)*n) 则执行语句:Y(5+1)为: 答案:26 3、 enum ENUM_A { x1, y1, z1 =5, a1, b1 }; enum ENUM_A enumA =y1; enum ENUM_A enumB =b1; 请问enumA和enumB的值是多少? 答案:1, 7

4、若有函数max(a,b),并且函数指针变量p已经指向函数,当调用该函数时正确的调用方法是: 答案:(*p)(a,b)或者p(a,b) 5、对栈S进行下列操作:push(1), push(5), pop(), push(2), pop(), pop(), 则此时栈顶元素是: 答案:没有元素,栈空。 6、在一个32位的操作系统中,设void *p = malloc(100),请问sizeof(p)的结果是: 答案: 32位操作系统的寻址大小是32位,即4字节。 7、若已定义: int a[9], *p = a;并在以后的语句中未改变p的值,不能表示 a[1]地址的表达式是: A)p+1 B)a+1 C) a++ D) ++p 答案:C 8、设有如下定义: unsigned long pulArray[] = {6,7,8,9,10}; unsigned long*pulPtr; 则下列程序段的输出结果是什么? pulPtr = pulArray; *(pulPtr + 2) += 2; printf("%d, %d\r\n", *pulPtr, *(pulPtr + 2)); A) 8, 10 B) 6, 8 C) 7, 9 D) 6, 10 答案:D 9、以下程序运行后,输出结果是什么? void main() { char*szStr = "abcde"; szStr += 2; printf("%1u\r\n", szStr); return; } A) cde B) 字符c的ASCII码值 C) 字符c的地址 D) 出错 答案:C

2020华为校园招聘笔试真题题库精选答案解析(南研所)

2020华为校园招聘笔试真题题库精选答案解析(南研所) 1 局部变量能否和全局变量重名 2 如何引用一个已经定义过的全局变量 3 全局变量可不可以定义在可被多个.C文件包含的头文件中为什么 4 语句for( ;1 ;)有什么问题它是什么意思 5 do……while和while……do有什么区别 6 请写出下列代码的输出内容 以下是引用片段: #include main() { int a,b,c,d; a=10; b=a++; c=++a; d=10*a++; printf("b,c,d:%d,%d,%d",b,c,d); return 0; } 7 static全局变量与普通的全局变量有什么区别static局部变量和普通局部变量有什么区别static函数与普通函数有什么区别? 8 程序的局部变量存在于()中,全局变量存在于()中,动态申请数据存在于()中。 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));的执行结果是:_______ 10 队列和栈有什么区别? 写出下列代码的输出内容 以下是引用片段: #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;

《华为新员工转正考试笔试题(附答案)》

华为新员工转正笔试题!(超值) 绝对超值~!~!!~ 【第一部分公司篇】 1、华为公司的全称为() A、深圳市华为技术有限公司 B、华为技术有限公司 C、华为公司 D、我司 (答案:B,答A、C者酌情给分,答D者立即辞退,我司三令五申禁止使用该华为内部土语,屡禁不止,老员工不可教也,只好从新员工抓起,格杀勿论) 2、华为公司的企业性质是() A、民营 B、私营 C、国营 D、上市公司 (答案:A,本题主要让考生了解公司的性质) 3、华为公司的商标象征() A、红太阳 B、菊花 C、扇贝 (答案:B,答A者酌情给分,答C者立即辞退,天天就想着吃) 4、从下列选项中选择出公司的常务副总裁() A、任正非 B、孙亚芳 C、李一男 D、郑宝用 E、张燕燕 (答案:BD,答C者立即辞退,让他到李一男的公司去报到吧) 5、华为公司的年终奖一般是在每年的什么时候发() A、元旦后 B、春节前 C、7月下旬或8月上旬 D、劳动节前 E、国庆节前 (答案:C,切记,因为是年中奖,而不是年终奖) 6、华为公司的配给你的股票是() A、**发的 B、用自己的奖金去买 (答案:B) 7、老板常说的土八路,是指() A、老板自己的革命年代的光辉历史 B、本地化的用服兄弟 C、季度考核为D的兄弟

(答案:B) 【第二部分部门篇】 1、你所在的一级部门为() A、技术支援部 B、国际技术支援部 C、国际技术支援部国内分部 D、用服 (答案:B,答A、C者酌情给分,答D者作不合格处理,为了提高技术支援部形象,公司早就取消用服这个字眼,而且于2001年春节后悄悄地将技术支援部前加“国际”二字) 2、你所在的二级部门为() A、传输产品技术支援管理部 B、传输工程部 C、传输用服工程中心 D、光网络产品技术支援管理部 (答案:A,首先得把自己的部门搞清楚,答D者,有远见,有潜力,可以酌情给分,很可能在2001年未就改成这个名字,因为市场中研已经改了,就差技术支援部了) 3、传输的商标为() A、SBS B、SDH C、OptiX D、Metro (答案:C,答A者酌情给分,最起码还知道老商标) 4、技术支援部与国际技术支援部的关系() A、国际技术支援部是技术支援部下面的一个部门,负责海外 B、技术支援部是国际技术支援部下面的一个部门,负责国内 C、技术支援部是国际技术支援部的前身 D、国际技术支援部是技术支援部的前身 (答案:C) 【第三部分业务篇】 1、SBS是() A、传输产品的老商标 B、同步骨干系统 C、傻不傻的拼音缩写 D、帅不帅的拼音缩写

2014华为校园招聘笔试算法题汇总

华为2014笔试算法题汇总 1.通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。 比如字符串“abacacde”过滤结果为“abcde”。 要求实现函数:void stringFilter(const char *pInputStr, long lInputLen, char *pOutputStr); 【输入】pInputStr:输入字符串 lInputLen:输入字符串长度 【输出】pOutputStr:输出字符串,空间已经开辟好,与输入字符串等长; 【注意】只需要完成该函数功能算法,中间不需要有任何IO的输入输出 示例 输入:“deefd”输出:“def” 输入:“afafafaf”输出:“af” 输入:“pppppppp”输出:“p” main函数已经隐藏,这里保留给用户的测试入口,在这里测试你的实现函数,可以调用printf打印输出 当前你可以使用其他方法测试,只要保证最终程序能正确执行即可,该函数实现可以任意修改,但是不要改变函数原型。 一定要保证编译运行不受影响 [cpp] view plaincopy ////////////////////////////////////////////////////////////////////////// #include #include

using namespace std; bool g_flag[26]; void stringFilter(const char *pInputStr, long lInputLen, char *pOutputStr) { assert(pInputStr != NULL); int i = 0; if (pInputStr == NULL || lInputLen <= 1) { return; } const char *p = pInputStr; while(*p != '\0') { if (g_flag[(*p - 'a')]) { p++; }else{ pOutputStr[i++] = *p; g_flag[*p - 'a'] = 1; p++; } }

华为2012校园招聘软件上机笔试题+准确答案

2012华为校园招聘上机试题+准确答案 1.给定一个字符串,把字符串内的字母转换成该字母的下一个字母,a换成b,z换成a, Z换成A,如aBf转换成bCg,字符串内的其他字符不改变,给定函数,编写函数void Stringchang(const char*inpu,char*output) 其中input是输入字符串,output是输出字符串 答案: void Stringchang (char *input,char *output) { int len=strlen(input); for(int i=0;i='A')||(input[i]<='z'&&input[i]>='a')) output[i]=input[i]+1; else output[i]=input[i]; } } 2.求一个整型数字中有没有相同的部分,例如12389756123这个整型数字中相同的部分是 123,相同的部分至少应该是2位数,如果有相同部分返回1,如果没有则返回0。方法是先将整型数字转换到数组中,再判断。 函数为int same(int num) 其中num是输入的整型数字 答案:参考第三题很容易写出代码! 3.求两个字符串的乘积,结果存到字符串中,例如字符串一中存的“657891”,字符串二 中存的“521”,分别将字符串中的字符转换成整型数字,进行计算后,再转换成字符类型存储起来 函数为void mul(char *input1,int n,char *input2, int m,char *output) 其中input1和input2是输入,n是input1的长度,n2是input2的长度。Output是输出答案: void mul(char *input1,int n,char *input2, int m,char *output) { int num1=StrToNum(input1,n); int num2=StrToNum(input2,m); int muti=num1*num2; NumToStr(muti,output); cout<=0;i--) {num+=(input[i]-delta)*pow(10.0,len-i-1);} return num; } void NumToStr(int num,char *output) //int型变量转为字符串 { int len=0; while(1)

华为招聘笔试题目

华为招聘笔试题目 华为是很多求职者都想要进入的,下面是搜集整理的华为招聘笔试题目,欢迎阅读,供大家参考和借鉴! 华为笔试题一:基础知识 1、string 是最基本的数据类型吗? 2、int 和 integer 有什么区别 3、string 和 stringbuffer 的区别 4、运行时异常与一般异常有何异同? 5、说出 servlet 的生命周期,并说出 servlet 和 cgi 的区别。 华为笔试题二:专业知识 6、说出 arraylist,vector, linkedlist 的存储性能和特性

7、ejb 是基于哪些技术实现的?并说出 sessionbean 和entitybean 的区别,statefulbean 和statelessbean 的区别。 8、collection 和 collections 的区别。 9、&和&&的区别。 10、hashmap 和 hashtable 的区别。 华为笔试题三:知识拓展 11、final, finally, finalize 的区别。 12、sleep() 和 wait() 有什么区别? 13、overload 和 override 的区别。overloaded 的方法是否可以改变返回值的类型? 14、error 和 exception 有什么区别? 15、同步和异步有何异同,在什么情况下分别使用他们?举例说明。

16、abstract class 和 interface 有什么区别? 一、判断题(对的写T,错的写F并说明原因,每小题4分, 共20分) 1、有数组定义int a[2][2]={{1},{2,3}};则a[0][1]的值 为0。( ) 2、int (*ptr) (),则ptr是一维数组的名字。( ) 3、指针在任何情况下都可进行>, <, >=, <=, = =运算。( ) 4、switch(c) 语句中c可以是int, long, char, float,unsigned int 类型。( ) 5、#define print(x) printf("the no, "#x",is ") 二、填空题(共30分) 1、在windows下,写出运行结果,每空2分,共10分。 char str[ ]= "Hello";

届华为校园招聘上机考试题

2012届华为校园招聘上机考试题目(9月6日下午1点场) 分类:华为准备2011-09-08 15:10 281人阅读评论(0) 收藏举报 在网上看到华为在有的地方已经开始机试了,于是决定自己先编着试试。下面是题目和自己写的代码。 1、选秀节目打分,分为专家评委和大众评委,score[] 数组里面存储每个评委打的分数,judge_type[] 里存储与score[] 数组对应的评委类别,judge_type[i] == 1,表示专家评委,judge_type[i] == 2,表示大众评委,n表示评委总数。打分规则如下:专家评委和大众评委的分数先分别取一个平均分(平均分取整),然后,总分= 专家评委平均分* 0.6 + 大众评委* 0.4,总分取整。如果没有大众评委,则总分= 专家评委平均分,总分取整。函数最终返回选手得分。 函数接口int cal_score(int score[], int judge_type[], int n) view plaincopy to clipboardprint? 1. #include 2. #include 3. #include 4. #include 5. #define N 5 6. 7. i nt cal_score(int score[], int judge_type[], int n) 8. 9. { 10. int expert=0; 11. int dazhong=0; 12. int zongfen=0; 13. int i; 14. int number=0; 15. 16. for(i=0;i

华为java笔试面试题

华为Java笔试题+数据库题 一、单项选择题 1.Java是从( B)语言改进重新设计。 A.Ada B.C++ C.Pasacal D.BASIC 2.下列语句哪一个正确(B ) A. Java程序经编译后会产生machine code B. Java程序经编译后会产生byte code C. Java程序经编译后会产生DLL D.以上都不正确 3.下列说法正确的有(C ) A. class中的constructor不可省略 B. constructor必须与class同名,但方法不能与class同名C. constructor在一个对象被new时执行 D.一个class只能定义一个constructor 4.提供Java存取数据库能力的包是( A) A.java.sql B.java.awt C.https://www.360docs.net/doc/db6178369.html,ng D.java.swing 5.下列运算符合法的是( A) A.&& B.<> C.if D.:= 6.执行如下程序代码 a=0;c=0; do{ --c; a=a-1; }while(a>0); 后,C的值是(C ) A.0 B.1 C.-1 D.死循环 7.下列哪一种叙述是正确的( D) A. abstract修饰符可修饰字段、方法和类 B.抽象方法的body部分必须用一对大括号{ }包住 C.声明抽象方法,大括号可有可无 D.声明抽象方法不可写出大括号 8.下列语句正确的是( C) A.形式参数可被视为local variable B.形式参数可被字段修饰符修饰 C.形式参数为方法被调用时,真正被传递的参数 D.形式参数不可以是对象 9.下列哪种说法是正确的(A ) A.实例方法可直接调用超类的实例方法 B.实例方法可直接调用超类的类方法 C.实例方法可直接调用其他类的实例方法 D.实例方法可直接调用本类的类方法 二、多项选择题 1.Java程序的种类有(BCD ) A.类(Class) B.Applet C.Application D.Servlet 2.下列说法正确的有( BCD) A.环境变量可在编译source code时指定

华为笔试试题

写一个程序, 要求功能:求出用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<

因为x+2y+5z=100 所以x+2y=100-5z,且z<=20 x<=100 y<=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, 1 z=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

华为校园招聘电子科大上机题目

华为校园招聘电子科大上机题目 一.题目描述(60分):通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个 相同的字符,将非首次出现的字符过滤掉。 比如字符串“abacacde”过滤结果为“abcde”。 要求实现函数:void stringFilter(const char *pInputStr, long lInputLen, char *pOutputStr); 【输入】 pInputStr:输入字符串 lInputLen:输入字符串长度 【输出】 pOutputStr:输出字符串,空间已经开辟好,与输入字符串 等长;【注意】 只需要完成该函数功能算法,中间不需要有任何IO的输入输 出示例输入:“deefd” 输出:“def” 输入:“afafafaf” 输出:“af” 输入:“pppppppp” 输出:“p” main函数已经 隐藏,这里保留给用户的测试入口,在这里测试你的实现函数, 可以调用printf打印输出当前你可以使用其他方法测试,只要 保证最终程序能正确执行即可,该函数实现可以任意修改,但是 不要改变函数原型。一定要保证编译运行不受影响。 二.题目描述(40分):通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席 的重复字母进行压缩,并输出压缩后的字符串。

压缩规则: 1.仅压缩连续重复出现的字符。比如字符串“abcbc“由于无连续重复字符,压缩后的字符串还是“abcbc“。 2.压缩字段的格式为“字符重复的次数+字符“。例如:字符串“xxxyyyyyyz“压缩后就成为“3x6yz“。 要求实现函数: void stringZip(const char *pInputStr, long lInputLen, char *pOutputStr); 【输入】 pInputStr:输入字符串 lInputLen:输入字符串长度 【输出】 pOutputStr:输出字符串,空间已经开辟好,与输入字符串等长;【注意】 只需要完成该函数功能算法,中间不需要有任何IO的输入输出示例输入:“cccddecc” 输出:“3c2de2c” 输入:“adef” 输出:“adef” 输入:“pppppppp” 输出:“8p” 三.题目描述(50分):通过键盘输入100以内正整数的加.减运算式,请编写一个程序输出运算结果字符串。 输入字符串的格式为:“操作数1 运算符操作数2”,“操作数”与“运算符”之间以一个空格隔开。 补充说明: 1.操作数为正整数,不需要考虑计算结果溢出的情况。 2.若输入算式格式错误,输出结果为“0”。

相关文档
最新文档