首页 > 教育知识 > 题目解答 > 2016华为机试题目

2016华为机试题目

时间:2018-03-11   来源:题目解答   点击:

【www.gbppp.com--题目解答】

2016华为机试题目 第一篇_2016年2月 华为机试整理v1.0

要求

考试要求(实际考试时,要仔细看一下考试要求,可能有变动)。

1、考虑可能出现的异常情况,空指针,下标越界,数字转换等异常

2、控制台不能打印任何的提示信息

3、代码提交必须包含主函数和其所有子函数

4、使用标准输入new Scanner(System.in)和输出system.out.println(); 注意代码规范:

1,TAB符

2,魔鬼数字:在代码中使用魔鬼数字(没有具体含义的数字、字符串等)将会导致代码难以理解,应该将数字定义为名称有意义的常量。

3,运算符前后空格

4,if、for等关键字后的空格

程序格式参照示例程序:

import java.util.Scanner;

/**

* 类注释

*/

public class Main {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

while(sc.hasNext()){

int num = sc.nextInt();

//调用实现方法并

//控制台输出

}

}

/**

* 实现方法注释

* 简述

* 详述

* 参数

* 返回类型

*/

public 返回类型 method(参数列表);

{

//具体实现代码

}

}

2016年2月18日华为机试题目

1、将十六进制的字符串转换成十进制字符串

要求:

1、以0x或0X开头

2、十六进制范围小于2的32次方:位数不超过8位,同时不能全为FFFFFFFF

3、A-F大小写都可以

输入:0xA 输出:10

package com.huawei.test.zj.v1;

import java.util.Scanner;

/**

* 将十六进制的字符串转换成十进制字符串

* 1、以0x或0X开头

* 2、十六进制范围小于2的32次方:位数不超过8位,同时不能全为FFFFFFFF

* 3、A-F大小写都可以

* 输入:0xA 输出:10

* 输入0xad32 输出:44338

* 输入:0xFFFF 输出:65535

*/

publicclass Main1 {

publicstaticvoid main(String[] args) { } public String tranString(String input){ if(input == null || "".equals(input)) if(!input.startsWith("0x") && !input.startsWith("0X")) input = input.substring(2,input.length()); char[] arrayCh = input.toCharArray(); if(arrayCh.length> 8 || "FFFFFFFF".equals(input.toUpperCase())) if(!input.matches("[a-fA-F0-9]")) return"invalid input"; return"invalid input"; return"invalid input"; return"invalid input"; Scanner sc = new Scanner(System.in); String input = sc.nextLine(); Main1 m = new Main1(); System.out.println(m.tranString(input)); System.out.println(m.tranString2(input));

} } int sum = 0; for (int i = 0; i < arrayCh.length; i++) return String.valueOf(sum); sum = computer(arrayCh[i],sum); privateint computer(char ch, int sum) { } public String tranString2(String input){ } if(input == null || "".equals(input)) if(!input.startsWith("0x") && !input.startsWith("0X")) input = input.substring(2,input.length()); if(input.length() > 8 || "FFFFFFFF".equals(input.toUpperCase())) if(!input.matches("[a-fA-F0-9]")) int sum = 0; try{ } return String.valueOf(sum); sum = Integer.parseInt(input,16); return"invalid input"; }catch(Exception e){ return"invalid input"; return"invalid input"; return"invalid input"; return"invalid input"; int num = 0; if (ch >= 48 && ch <= 57){ } sum = sum *16 + num; return sum; num = ch - '0'; ch = Character.toLowerCase(ch); num = ch - 87; }else {

2、对于abcd…n字符串,求字符串((((a*31+b)*31+c)*31+…)*31+n

例如字符串abcd 输出对应的hashcode值是一个整数。

输入:abc 输出:96354

输出结果hashcode可能超过32位,考虑使用64位整数。

package com.huawei.test.zj.v1;

import java.util.Scanner;

/**

* 对于abcd…n字符串,求字符串((((a*31+b)*31+c)*31+…)*31+n

* 例如字符串abcd输出对应的hashcode值是一个整数。

* 输入:abc输出:96354

* 输出结果hashcode可能超过32位,考虑使用64位整数

*/

publicclass Main2 {

}

publicstaticlong computerHashCode(String input){ } char[] arrayCh = input.toCharArray(); long sum = 0; for(int i = 0; i < arrayCh.length; i++){ } return sum; sum = String.valueOf(arrayCh[i]).hashCode() + sum * 31; publicstaticvoid main(String[] args) { } //TODO:1、是否需要判断计算结果超出64位;2、字符串是不是一定小写;3、字符串范围是Scanner sc = new Scanner(System.in); String input = sc.nextLine(); if(input.matches("^[a-n]+")){ System.out.println(computerHashCode(input)); }else{ } System.out.println("非法输入"); a~n?

原版本题目

1:按规定重排给定字符串

实要求:输入一个字符串,字符串是字母和数字的组合,(非字母数字直接删除)

现输出一个新的字符串,要求字母在前面,数字在后面,顺序不变 用例1:

输入字符串:a1b2c3d4e5

期望结果:abcde12345

用例2:

输入:a-1%b2&c3~d4e5~

期望结果:abcde12345

用例3:

输入:a-0%A2&c3~Z4e5z9~

期望结果:aAcZez023459

package com.huawei.test.zj.v1;

import java.util.Scanner;

/**

* 按规定重排给定字符串

* 要求:输入一个字符串,字符串是字母和数字的组合,(非字母数字直接删除) * 实现输出一个新的字符串,要求字母在前面,数字在后面,顺序不变 * 例1:输入字符串:a1b2c3d4e5 期望结果:abcde12345 *

*

*/

publicclass Test01_ResetString {

publicstaticvoid main(String[] args) {

Scanner sc = new Scanner(System.in);

while(sc.hasNext()){

String str = sc.nextLine();

String result = resetString(str); System.out.println("重排结果:"+result); } } publicstatic String resetString(String str) {

2016华为机试题目 第二篇_2016华为硬件机试题库

华为硬件机试题目(2016版本)

1.(判断题)DRAM上电时存储单元的内容是全0,而Flash上电时存储单元的内容是全1。(4分)

A.正确

B.错误

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.不变

10.(单选题)8086CPU内部包括哪些单元(4分)

A.ALU,EU

B.ALU,BIU

C.EU,BIU

D.ALU,EU,BIU

11.(单选题)为了避免50Hz的电网电压干扰放大器,应该用那种滤波器:(4分)

A.带阻滤波器

B.带通滤波器

C.低通滤波器

D.高通滤波器

12.(单选题)关于SRAM和DRAM,下面说话正确的是:(4分)

A.SRAM需要定时刷新,否则数据会丢失

B.DRAM使用内部电容来保存信息【2016华为机试题目】

C.SRAM的集成度高于DRAM

D.只要不掉点,DRAM内的数据不会丢失【2016华为机试题目】

13.(单选题)在RS232串口中,采用哪一种校验方式:(4分)

A.CRC校验

B.海明码校验

C.多种校验方式的组合

D.奇偶校验

14.(单选题)对于D触发器来说,为了保证可靠的采样,数据必须在时钟信号的上升沿到来之前继续稳定一段时间,这个时间称为:(4分)

A.保持时间

B.恢复时间

C.稳定时间

D.建立时间

15.(单选题)本征半导体中加入()元素可形成N型半导体(4分)

A.五价

B.四价

C.三价

D.二价

16.(单选题)模拟信号数字化的过程是(4分)

A.采样->量化->编码

B.采样->编码->量化

C.编码->采样->量化

D.量化->编码->采样

17.(单选题)在Buck电路中,不能起到减小纹波作用的措施是(4分)

A.采用多项并联的模式

B.开关管内置,提高电源的开关频率

C.输出滤波电容由陶瓷电容改为容量电解电容

D.增大输出滤波电感量

18.(单选题)图示电路中a、b端的等效电阻Rab在开关K打开与闭合时分别为:

(4分)

A.10Ω,8Ω

B.8Ω,10Ω

C.10Ω,10Ω

D.10Ω,16Ω

19.(单选题)关于PCI总线的描述,错误的是:(4分)

A.PCI总线是一个16位宽的总线

B.PCI的地址线与数据线是复用的

C.PCI是一种独立于处理器的总线标准,可以支持多种处理器

D.PCI支持即插即用功能

20.(单选题)中继器、以太网交换机、路由器分别工作在OSI模型的哪位层次上:(4分)

A.物理层、链路层、网络层

B.物理层、网络层、链路层

C.物理层、链路层、传输层

D.链路层、链路层、网络层

21.(单选题)某电路,对100KHz以下低频信号干扰敏感,为减少干扰,应采用()滤波器。(4分)

A.高通

B.低通

C.带阻

D.带通

22.(单选题)捕捉毛刺用最佳触发方式()进行触发(4分)

A.Width

B.Edge

C.Glitch

D.State

23.(单选题)以下哪种信号异常能用逻辑分析仪测试(4分)

A.信号占空比超标

B.信号上升缓慢

C.6个信号的异常组合

D.信号抖动过大

24.(单选题)8421码10010111表示的十进制数是()(4分)

A.98

B.151

C.97

D.227

25.(单选题)晶体管能够放大的外部条件是(4分)

A.发射结反偏,集电结正偏

B.发射结正偏,集电结正偏

C.发射结反偏,集电结反偏

D.发射结正偏,集电结反偏

第二套

1.(单选题)以下哪种信号异常能用逻辑分析仪测试(4分)

A. 信号抖动过大

B.6个信号的异常组合

C.信号上升缓慢

D.信号占空比超标

2.(判断题)眼图可以用来分析高速信号的码间干扰、抖动、噪声和衰减。(4分)

A.正确

B.错误

3.(单选题)通常情况下,电磁波在介质中的传播速度比在真空中的传播速度要(4分)

A.快

B.一样

C.慢

4.1mV等于0dBmV,等于30dBuV(4分)

A.对

B.错

5.(单选题)中继器、以太网交换机、路由器分别工作在OSI模型的哪位层次上:(4分)

A.物理层、链路层、网络层

B.物理层、网络层、链路层

C.物理层、链路层、传输层

D.链路层、链路层、网络层

6.中继器工作在数据链路层上,网络层工作在物理层上,路由器工作在网络层上。(4分)

A.正确

B.错误

7.(单选题)设计一个同步十进制计数器,需要多少个触发器:(4分)

A.3

B.4

C.6

D.5

8.(单选题)下面的逻辑工艺中,哪一种速度最快(4分)

A.CMOS

B.ECL

C.TTL

D.NMOS

9.(单选题)对于D触发器来说,为了保证可靠的采样,数据必须在时钟信号的上升沿到来之前继续稳定一段时间,这个时间称为:(4分)

A.恢复时间

B.建立时间

C.保持时间

D.稳定时间

10.(单选题)某数模转换器的输入为8为二进制数字信号(D7-D0),输出为0-25.5V的模拟电压。若数字信号的最低三位是“1”其余各位是“0”,则输出的模拟电压为

A.1.4V

B.2.8V

C.0.7V

D.0.35V

11.将两输入的或非门当非门使用时,另一端的揭发应该是:

A.悬空

B.接低电平

C.接高电平

12.3-8译码器属于:

A.组合逻辑电路

B.时序逻辑电路

13.两个TTL电平输出的信号可以采用线与的方式实现这两个信号相与的功能

A.正确

B.错误

14.采用奇偶校验可以发现两个比特的数据错误

A.正确

B.错误

15.(单选题)关于PCI总线的描述,错误的是:(4分)

A.PCI总线是一个16位宽的总线

B.PCI支持即插即用功能

C.PCI的地址线与数据线是复用的

D.PCI是一种独立于处理器的总线标准,可以支持多种处理器

16.指令MOV AX,[3070H]中,源操作数的寻址方式为

A.直接寻址

B.寄存器间接寻址

C.立即寻址

D.变址寻址

17.I/O设备必须通过适配器(接口)才能接到系统总线上和CPU进行信息交换

A.正确

B.错误

2016华为机试题目 第三篇_2016华为上机试题汇总

2016华为机试题目 第四篇_2016届华为研发上机题

#include <stdio.h> #include <string.h> #include <malloc.h> typedef struct node {

char *name; int num; struct node *pnext; }NODE,*PNODE; int main()

{

char input[30]; PNODE head = (PNODE)malloc(sizeof(NODE)); PNODE p = head; char vote[15];

scanf("%s", input); while (input[0] == 'a') { } strcpy(vote, input); PNODE tmp = (PNODE)malloc(sizeof(NODE)); tmp->num = 0; tmp->name = input+13; tmp->pnext = NULL; p->pnext = tmp; p = tmp; scanf("%s", input); while (strcmp(vote, "getVoteResult")) { PNODE p = head->pnext; while (NULL != p) { } if (!strcmp(vote+5, p->name)) { } p = p->pnext; (p->num)++; break; if (p == NULL)

} } } scanf("%s", vote); no++; PNODE r = head->pnext; while(NULL != r) { } printf("%d\n", no); return 0; printf("%s %d\n", r->name, r->num); r = r->pnext;

2016华为机试题目 第五篇_2016年华为在机考试题目(2015.9.28日)

计算重复字符个数

描述: 输入一行字符串。如果字符是英文字母,则输出为输入的英文字符+连续出现的次数,例如“ABBCCCC”->“A1B2C4”;否则,丢弃该字符,不输出。

运行时间限制: 无限制【2016华为机试题目】

内存限制: 无限制

输入: 输入的字符串,长度小于1024

输出: ?输入的英文字符以及其重复的次数

?

样例输入: ABBC67%%%CCCAA99

样例输出: A1B2C4A2

答案提示:

洞穴逃生

描述: 精灵王子爱好冒险,在一次探险历程中,他进入了一个神秘的山洞。在洞穴深处,精灵王子不小心触动了洞穴内暗藏的机关,整个洞穴将很快塌陷,精灵王子必须尽快逃离洞穴。精灵王子的跑步速度为17m/s,以这样的速度可能是无法逃出洞穴的。庆幸的是精灵王子拥有闪烁法术,可在1s内移动60m,不过每次使用闪烁法术都会消耗魔法值10点。精灵王子的魔法值恢复的速度为4点/s,只有处在原地休息状态时才能恢复。

现在已知精灵王子的魔法初值M,他所在洞穴中的位置与洞穴出口之间的距离S,距离洞穴塌陷的时间T。你的任务是写一个程序帮助精灵王子计算如何在最短的时间内逃离洞穴。若能逃出,输出"Yes",并输出逃出所用的最短时间;若不能逃出,则输出"No",同时输出精灵王子在剩下的时间内能走的最远距离。注意字母大小写。注意:精灵王子跑步、闪烁或休息活动均以秒(s)为单位。且每

次活动的持续时间为整数秒。距离的单位为米(m)。

注:M、S、T均是大于等于0的整数。由输入保证取值合法性,考生不用检查。

提醒:

如果输入的S为0,则说明本身已经在出口,输出应为:Yes 0

如果输入的T为0(且S不为0),则说明已经没有时间了,输出应为:No 0

运行时间限制: 无限制

内存限制: 无限制

输入: 输入格式:

M

S

T

输出: 输出格式:

Yes 逃出洞穴所用的最短时间

No 在洞穴塌陷前能逃跑的最远距离

样例输入: 10

50

5

样例输出: Yes 1

答案提示:

电梯系统

描述: 考生需要模拟实现一个简单的电梯控制系统,对各个楼层的上下楼请求进行处理,给出电梯的模拟运行轨迹(依次输出电梯每次开门时所在的楼层号)。

规则

1.系统中仅有1部电梯运行。

2.楼层最高是8楼,电梯在[1,8]楼间运行,电梯所在的初始楼层号由输入设定。

3.电梯载客不考虑人数限制。

4.乘客对电梯的请求集成在一条Request命令(详见后面的解释)中,与实际生活电梯的请求方式不一样。

5.如果电梯状态为上行,并且电梯当前所在楼层存在上行请求或电梯当前楼层以上的楼层存在请求,则在这些请求全部处理完成前电梯保持运行状态为上行。

如果电梯状态为下行,并且电梯当前所在楼层存在下行请求或电梯当前楼层以下的楼层存在请求,则在这些请求全部处理完成前电梯保持运行状态为下行。

例如:电梯由5楼上行到6楼,如果6楼有请求A(要求从6楼到8楼)和B(要求从6楼到2楼),两者的命令输入时间都小于或者等于电梯到达6楼的时间,则此时只会处理请求A,不会处理请求B,请求B需要等到电梯下行时才处理。

6.电梯停靠上下客不消耗时间,仅有电梯移动才消耗时间。电梯移动(上或下)一个楼层消耗1个时间单位。系统初始时间为1。

8.乘客进出电梯严格按照输入命令进行,未到目的楼层中途出电梯的情形不需要考虑。

命令格式说明

(1)Request的格式为:

SrcFloor-DestFloor-ReqTime

解释:

SrcFloor:乘客所在源楼层号,取值范围[1,8]的正整数

DestFloor:乘客希望到达的目标楼层号,取值范围[1,8]的正整数

ReqTime:乘客发起请求的时间,取值为正整数。

SrcFloor、DestFloor、ReqTime之间以“-”隔开

(2)请求列表的格式为:

Request1,Request2,Request3,…,RequestN

各Request之间以英文逗号隔开。

由输入保证以下内容(考生不需要检查):

(1) 命令格式的合法性,输入数值的合法性;

(2) 请求列表中,后面请求的时间大于前面请求的时间;

(3) Request的起始楼层和目标楼层不同。

运行时间限制: 无限制

内存限制: 无限制

输入: 电梯初始楼层号

请求列表

输出: 电梯的运行轨迹(即依次输出电梯每次开门时所在的楼层号,各楼层号间以“-”分隔)

样例输入: 1

3-5-1,8-1-2,5-2-3

样例输出: 3-5-8-5-2-1

答案提示:

2016华为机试题目 第六篇_2016年华为笔试题及答案

这些题目相比其他公司的试题,较为基础,全部为C语言,没有涉及C++,但如果不细心,是很难得到较高分数的。另外大家转贴不要去掉我的个人信息啊。互相宣传下网站嘛。

1. 找错 void test1()

{

char string[10]; char* str1="0123456789"; strcpy(string, str1); }

答:表面上并且编译都不会错误。但如果string数组原意表示的是字符串的话,那这个赋值就没有达到意图。最好定义为char string[11],这样最后一个元素可以存储字符串结尾符'\0';

void test2()

{

char string[10], str1[10];

for(int I=0; I<10;I++)

{

str1[I] ='a'; }

strcpy(string, str1);

}

答:strcpy使用错误,strcpy只有遇到字符串末尾的'\0'才会结束,而str1并没有结尾标志,导致strcpy函数越界访问,不妨让str1[9]='\0',这样就正常了。

void test3(char* str1)

{

char string[10];

if(strlen(str1)<=10)

{

strcpy(string, str1); }

}

答:这又会出现第一道改错题的错误了。strlen(str1)算出来的值是不包含结尾符'\0'的,如果str1刚好为10个字符+1结尾符,string就得不到结尾符了。可将strlen(str1)<=10改为strlen(str1)<10。

2. 找错

#define MAX_SRM 256

DSN get_SRM_no()

{

static intSRM_no;

int I;

for(I=0;I<max_srm;i++,srm_no++)

{

SRM_no %= MAX_SRM;

if(MY_SRM.state==IDLE)

{

break;

}

}

if(I>=MAX_SRM)

return (NULL_SRM);

else

return SRM_no;

}

答:我不知道这段代码的具体功能,但明显有两个错误

1,SRM_no没有赋初值

2,由于static的声明,使该函数成为不可重入(即不可预测结果)函数,因为SRM_no变量放在程序的全局存储区中,每次调用的时候还可以保持原来的赋值。这里应该去掉static声明。

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;I<5;I++)

{

printf("%d,", sum(a));

}

}

答:8,10,12,14,16

该题比较简单。只要注意b声明为static静态全局变量,其值在下次调用时是可以保持住原来的赋值的就可以。

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

插播广告啦:版权所有:朱科欢迎光临我的网站:,各位转贴别删,劳动成果啊

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

-------

4.

intfunc(int a)

{

int b;

switch(a)

{

case 1: b=30;

case 2: b=20;

case 3: b=16;

default: b=0;

本文来源:http://www.gbppp.com/jy/426343/

推荐访问:华为概念机2016 2016华为旗舰机

热门文章