华为机试试题汇总全解

合集下载

华为测试工程师机试真题

华为测试工程师机试真题

华为测试工程师机试题目汇总-附答案1.计算字符串最后一个单词的长度,单词以空格隔开。

输入:hello world 输出:5a=input().split()print(len(a[-1])if len(a)>1elselen(a[0]))Python3.x 中input() 函数接受一个标准输入数据,返回为string 类型。

import sysfor line in sys.stdin:#读入数据a = line.split()print len(a[-1])2.写出一个程序,接受一个由字母和数字组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。

不区分大小写。

a=input().lower()b=input().lower()print(a.count(b))注:Python lower() 方法转换字符串中所有大写字符为小写。

3.明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。

然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。

请你协助明明完成“去重”与“排序”的工作(同一个测试用例里可能会有多组数据,希望大家能正确处理)。

while True:try:n=int(input()) #读入第一行:随机整数的个数res=set()for i in range(n):res.add(int(input()))# 读入第n行:n个随机整数组成的数组for i in sorted(res):print(i)except:break注:set是一个无序且不重复的元素集合。

4.•连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组;•长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。

def printStr(string):if len(string) <= 8:print(string + "0" * (8 - len(string)))else:while len(string) > 8:print(string[:8])string = string[8:]print(string + "0" * (8 - len(string)))a=input()b=input()printStr(a)printStr(b)5.写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。

华为面试试题及答案

华为面试试题及答案

华为面试题及答案1、局部变量能否和全局变量重名答:能,局部会屏蔽全局。

要用全局变量,需要使用"::"局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。

对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。

2、如何引用一个已经定义过的全局变量答:extern可以用引用头文件的方式,也可以用extern关键字,如果用引用头文件方式来引用某个在头文件中声明的全局变理,假定你将那个变写错了,那么在编译期间会报错,如果你用extern方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报错。

3、全局变量可不可以定义在可被多个.C文件包含的头文件中为什么答:可以,在不同的C文件中以static形式来声明同名全局变量。

可以在不同的C文件中声明同名的全局变量,前提是其中只能有一个C文件中对此变量赋初值,此时连接不会出错4、语句for( ;1 ;)有什么问题它是什么意思答:和while(1)相同。

5、do……while和while……do有什么区别答:前一个循环一遍再判断,后一个判断以后再循环6、请写出下列代码的输出内容以下是引用片段:#includemain(){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,1207、static全局变量与普通的全局变量有什么区别static局部变量和普通局部变量有什么区别static函数与普通函数有什么区别全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。

全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式。

这两者在存储方式上并无不同。

华为16道经典面试题

华为16道经典面试题

华为16道经典面试题面试过程中,面试官会向应聘者发问,而应聘者的回答将成为面试官考虑是否接受他的重要依据。

对应聘者而言,了解这些问题背后的“猫腻”至关重要。

本文对面试中经常出现的一些典型问题进行了整理,并给出相应的回答思路和参考答案。

读者无需过分关注分析的细节,关键是要从这些分析中“悟”出面试的规律及回答问题的思维方式,达到“活学活用”。

问题一:“请你自我介绍一下”■思路:1、这是面试的必考题目。

2、介绍内容要与个人简历相一致。

3、表述方式上尽量口语化。

4、要切中要害,不谈无关、无用的内容。

5、条理要清晰,层次要分明。

6.最好是提前以单词的形式背下来。

问题二:“谈谈你的家庭情况”■思路:1.情况对了解应聘者的性格、观念、心态有一定的作用,这也是用人单位问这个问题的主要原因。

2、简单地罗列家庭人口。

3、宜强调温馨和睦的家庭氛围。

4、宜强调父母对自己教育的重视。

5、宜强调各位家庭成员的良好状况。

6.强调家庭成员对他们工作的支持是恰当的。

7、宜强调自己对家庭的责任感。

问题三:“你有什么业余爱好?”■思路:1、业余爱好能在一定程度上反映应聘者的性格、观念、心态,这是招聘单位问该问题的主要原因。

2、最好不要说自己没有业余爱好。

3、不要说自己有那些庸俗的、令人感觉不好的爱好。

4、最好不要说自己仅限于读书、听音乐、上网,否则可能令面试官怀疑应聘者性格孤僻。

5、最好能有一些户外的业余爱好来“点缀”你的形象。

问题四:“你最崇拜谁?”■思路:1.最崇拜的人在一定程度上能反映出应聘者的性格、观念和心态,这也是面试官问这个问题的主要原因。

2、不宜说自己谁都不崇拜。

3、不宜说崇拜自己。

4.崇拜一个虚幻的或未知的人是不合适的。

5、不宜说崇拜一个明显具有负面形象的人。

6、所崇拜的人人最好与自己所应聘的工作能“搭”上关系。

7、最好说出自己所崇拜的人的哪些品质、哪些思想感染着自己、鼓舞着自己。

问题五:“你的座右铭是什么?”■思路:1、座右铭能在一定程度上反映应聘者的性格、观念、心态,这是面试官问这个问题的主要原因。

华为机试题目总结(程序篇)

华为机试题目总结(程序篇)

华为机试题目总结(程序篇)自己写的,水平很挫,仅供参考目录1.语言识别问题2.销售网络问题(未完成)3.股票投资问题4.判断手机号码合法性5.元音字母复制6.验证身份证号7.选秀节目打分8.数组最大值放中间,其他依次放其左右(规律未找着,未完成)9.任务调度(解题关键,需要一个容器来承载下标跟值的一一对应关系,最好就是定义一个结构体)10.将某字符变成小写后的某个字符11.链表的逆序12.单词统计13.字符串进行转换,转换成相应的数字已知:yi er san si wu liu qi ba jiu 分别对应,对一段只含有这几种字符的字符串进行转换,转换成相应的数字14.一个数组中比平均数大的个数15.求一个数组中第一大和第二大数16.字符变成整数17.整数变字符18.判断素数问题19(1).约瑟夫环(循环列表)19(2).约瑟夫环(数学方法只能求出最后的胜利者的序号)19(3).约瑟夫环(容器实现)20.判断某个整数是回文。

即这样的,反过来还是21.判断一个字符串是不是回文22.求一个字符串中的最大回文子串,就是从n个字符开始检查是不是回文,知道m个字符符合回文,那么这个就是最大回文23.找出^n的数24.统计一个数二进制表达中的个数25.镜像反转二进制表达式,并输出十进制值26.连续字符统计27.判断一个字符串中()是否配对28.查找子字符串个数29(1).找出一个字符串中是否包含相同(包括连续的)的子字符串(要求子串长度大于等于)并输出出现频率最高的子字符串29(2)找出一个字符串中是否包含连续相同的子字符串,并输出出现频率最高的子字符串30.删除字符窜中字符数最少的字符31.关于数组的循环移位,左移为负,右移为正32.求一个二维数组每列的最小值33.两个字符串,求最长公共子串34.超大整数加法运算,大整数会用字符串或者数组来存,不过注意低位存字符前面几位,高位存后面,存到字符中应该存“”。

华为面试题及答案

华为面试题及答案

华为⾯试题及答案华为⾯试题及答案这是第三次接到华为的⾯试电话了,第⼀交是⾃⼰投的简历,第⼆次及这次都是华为公司通过⽹络搜索到打的电话给我,前⾯两次我都是刚刚找到⼯作,然后就接到电话了,哎,真的是有点背运。

这次千万不能够错过,这是搞IT的⼈梦的都进的企业,我也是⼀样,希望能够去⼀个更好的地⽅,以便更好的发挥⾃⼰。

为了不使⾃⼰⼀点准备就去赴考场,还是先找点东西看看。

我从⽹上找到问题,然后再根据问题到⽹络寻找问题的,谢谢问题的提供者。

Q1:请你分别划划OSI的七层⽹络结构图,和TCP/IP的五层结构图?OSI词条,参见Q2:请你详细的解释⼀下IP协议的定义,在哪个层上⾯,主要有什么作⽤? TCP与UDP呢?UDP,TCP在传输层,IP在⽹络层, TCP/IP是英⽂Transmission Control Protocol/Internet Protocol的缩写,意思是"传输控制协议/⽹际协议"。

TCP/IP协议组之所以流⾏,部分原因是因为它可以⽤在各种各样的信道和底层协议(例如T1和X.25、以太⽹以及RS-232串⾏接⼝)之上。

确切地说,TCP/IP协议是⼀组包括TCP协议和IP协议,UDP(User Datagram Protocol)协议、ICMP(Internet Control Message Protocol)协议和其他⼀些协议的协议组。

TCP/IP协议并不完全符合OSI的七层参考模型。

传统的开放式系统互连参考模型,是⼀种通信协议的7层抽象的参考模型,其中每⼀层执⾏某⼀特定任务。

该模型的⽬的是使各种硬件在相同的层次上相互通信。

这7层是:物理层、数据链路层、⽹路层、传输层、话路层、表⽰层和应⽤层。

⽽TCP/IP通讯协议采⽤了4层的层级结构,每⼀层都呼叫它的下⼀层所提供的⽹络来完成⾃⼰的需求。

这4层分别为:应⽤层:应⽤程序间沟通的层,如简单电⼦邮件传输(SMTP)、⽂件传输协议(FTP)、⽹络远程访问协议(Telnet)等。

华为机试题目全解

华为机试题目全解

华为机试题【2011】1、(stdlib.h里面定义了五种类型、一些宏和通用工具函数。

类型例如size_t、wchar_t、div_t、ldiv_t和lldiv_t;宏例如EXIT_FAILURE、EXIT_SUCCESS、RAND_MAX和MB_CUR_MAX等等;常用的函数如malloc()、calloc()、realloc()、free()、system()、atoi()、atol()、rand()、srand()、exit())#include<stdio.h>#include<stdlib.h>#include<assert.h>#include<string.h>#define LENGTH 13int verifyMsisdn(char *inMsisdn){char *pchar=NULL;assert(inMsisdn!=NULL);if(LENGTH==strlen(inMsisdn)){if(('8'==*inMsisdn)&&(*(inMsisdn+1)=='6')){while(*inMsisdn!='\0'){if((*inMsisdn>='0')&&(*inMsisdn<='9'))inMsisdn++;elsereturn 2 ;}}elsereturn 3;}elsereturn 1;return 0;}int main(){char *pchar=NULL;unsigned char ichar=0;int result;switch(ichar){case 0:pchar="8612345363789";break; case 1:pchar="861111111111111";break; case 2:pchar="86s1234536366"; break; default:break;}result =verifyMsisdn(pchar);printf("result is %d\n",result);}华赛面试:1.char m[]={"I", "LOVE", "CHINA"} char* p=m;printf("%s", *p++);printf("%c", **p);int main(){double x=1;double y;y=x+3/2;printf("%f\n",y);return 0;} //////结果为2.0000003.4.找错unsigned int f(){unsigned char a=123;unsigned char res;while(a-->=0){res+=a;}return res;}//res没有初始化5.struct node{int data;node* pre;node* next;}结构体数组转双向循环链表1. 数组比较(20 分)•问题描述:比较两个数组,要求从数组最后一个元素开始逐个元素向前比较,如果2 个数组长度不等,则只比较较短长度数组个数元素。

华为面试问题汇总(修改版)

华为面试问题汇总(修改版)

1、LTE的架构?⏹eNB功能:●IP头压缩和用户数据流加密●UE附着时的MME选择●用户面数据向S-GW的路由●寻呼消息和广播信息的调度和发送●移动性测量和测量报告的配置⏹MME 功能:●分发寻呼信息给eNB●安全控制●空闲状态的移动性管理●SAE 承载控制●非接入层(NSA)信令的加密及完整性保护⏹S-GW 功能:●终止由于寻呼原因产生的用户平面数据包●支持由于UE移动性产生的用户面切换2、LTE物理信道?3、LTE中三个频段的频点,及计算方法?首先介绍一下频点38050的换算成真实频率的方法。

在TD-LTE协议中给照频段指示分别为32:2545, 33:1900, 34:2010, 35:1850, 36:1930, 37:1910, 38:2570, 39:1880, 40:2300,Offset的取值按照频段指示分别为 32:35700, 33:36000, 34:36200, 35:36350, 36:36950, 37:37550, 38:37750, 39:38250, 40:38650。

可知上图中38050=(P-Low)*10+Offset,经过推算38050为频段指示为38,对应频段为2570MHz~2620MHz,所以Low取值为2570,Offset为37750,计算P=2600MHz,38050对应的中心频点为2600MHz。

4、TTE中RB和RE的关系及计算方法?答:RE:最小资源粒子;RB:物理层数据传输资源分配的频域频域最小单位;1个RB=84个RE(常规CP)1个RB=72个RE(拓展CP)1个RB时域上一个时隙,频域上12个连续的子载波1个RE时域上一个OFDM符号,频域上1个子载波5、速率过低的原因?答:1. 电脑是否已经进行TCP窗口优化;2. 检查测试终端是否工作在TM3模式,RANK2条件下;如不:检查小区配置和测试终端配置;3. 观察天线接收相关性,可以调整终端位置和方向,找到天线接收相关性最好的角度,天线相关性最好小于0.1,最大不超过0.3;4. 更换下载服务器,采用FTP+迅雷双多线程下载的方法来提升吞吐量,如果无改善,可以通过命令检查下行给水量,是否服务器给水量问题;5.尝试使用UDP灌包排查是否是TCP数据问题导致;6.查看RB调度,MCS调制方式6、单站验证的详细流程及需要注意的问题?1、将UE与电脑连接好确保可以上网;7、Probe软件测试流程?1.打开UE驱动2.打开probe,新建一个空的模板3.导入地图4.导入工参5.添加设备(GPS、UE)6.连接设备7.开始测试8、灌包的概念及作用?1、Traffic mode:选择UDP2、Traffic direction:原则:谁灌谁上行。

华为手机笔试题目及答案

华为手机笔试题目及答案

华为手机笔试题目及答案一、单选题(每题2分,共10分)1. 华为手机的操作系统是基于哪个操作系统开发的?A. AndroidB. iOSC. Windows PhoneD. Symbian答案:A2. 华为手机的EMUI系统是哪个版本开始支持多窗口功能的?A. EMUI 9.0B. EMUI 10.0C. EMUI 11.0D. EMUI 12.0答案:B3. 华为手机的“超级快充”技术,其充电功率最高可达多少瓦?A. 40WB. 50WC. 66WD. 100W答案:C4. 华为手机的“智慧分屏”功能允许用户同时打开多少个应用?A. 2个B. 3个C. 4个D. 5个答案:A5. 华为手机的“一碰传”功能是通过哪种技术实现的?A. NFCB. BluetoothC. Wi-FiD. USB答案:A二、多选题(每题3分,共15分)1. 下列哪些是华为手机支持的5G网络频段?A. n41B. n78C. n79D. n1答案:A, B, C, D2. 华为手机的“智慧识屏”功能可以识别以下哪些内容?A. 文字B. 图片C. 二维码D. 语音答案:A, B, C3. 华为手机的“智慧分屏”功能支持以下哪些操作?A. 拖动分屏B. 调整分屏比例C. 切换应用D. 关闭分屏答案:A, B, C, D4. 华为手机的“超级快充”技术包括以下哪些特性?A. 快速充电B. 低温充电C. 智能充电D. 安全充电答案:A, B, C, D5. 华为手机的“一碰传”功能支持以下哪些设备?A. 华为笔记本B. 华为平板C. 华为智能电视D. 华为智能手表答案:A, B, C三、判断题(每题1分,共5分)1. 华为手机的EMUI系统是基于iOS开发的。

(错误)2. 华为手机的“智慧分屏”功能允许用户同时打开5个应用。

(错误)3. 华为手机的“超级快充”技术充电功率最高可达100W。

(错误)4. 华为手机的“智慧识屏”功能可以识别语音。

华为面试试题与答案

华为面试试题与答案

1:请你分别划OSI的七层网络结构图,和TCP/IP的五层结构图?/pic/paper/paper_20_1.gif/ArtImage/20051016/2005101629_1.jpgOSI的七层网络结构图,和TCP/IP的五层结构图OSIOSI是Open System Interconnect的缩写,意为开放式系统互联。

在OSI出现之前,计算机网络中存在众多的体系结构,其中以IBM公司的SNA(系统网络体系结构)和DEC公司的DNA(Digital Network Architecture)数字网络体系结构最为著名。

为了解决不同体系结构的网络的互联问题,国际标准化组织ISO(注意不要与OSI搞混))于1981年制定了开放系统互连参考模型(Open System Interconnection Reference Model,OSI/RM)。

这个模型把网络通信的工作分为7层,它们由低到高分别是物理层(Physical Layer),数据链路层(Data Link Layer),网络层(Network Layer),传输层(Transport Layer),会话层(Session Layer),表示层(Presen tation Layer)和应用层(Application Layer)。

第一层到第三层属于OSI参考模型的低三层,负责创建网络通信连接的链路;第四层到第七层为OSI参考模型的高四层,具体负责端到端的数据通信。

每层完成一定的功能,每层都直接为其上层提供服务,并且所有层次都互相支持,而网络通信则可以自上而下(在发送端)或者自下而上(在接收端)双向进行。

当然并不是每一通信都需要经过OSI的全部七层,有的甚至只需要双方对应的某一层即可。

物理接口之间的转接,以及中继器与中继器之间的连接就只需在物理层中进行即可;而路由器与路由器之间的连接则只需经过网络层以下的三层即可。

总的来说,双方的通信是在对等层次上进行的,不能在不对称层次上进行通信。

华为机试题及答案

华为机试题及答案

华为机试题及答案1、通过键盘输入任意一个字符串序列,字符串可能包含多个子串,子串以空格分隔。

请编写一个程序,自动分离出各个子串,并使用’,’将其分隔,并且在最后也补充一个’,’并将子串存储。

测试:输入:“abc def gh i d"输出:“abc,def,gh,i,d,”#include〈stdio.h〉#include<string.h〉void DivideString(const char *pInputStr,long lInputLen,char *pOutputStr){int i=0,j=0;int flag=0;while(pInputStr[i]==’ '){i++;}for(;i<lInputLen;i++){if(pInputStr[i]==' '){flag=1;continue;}if(flag==1){flag=0;pOutputStr[j++]=’,';}pOutputStr[j++]=pInputStr[i];}pOutputStr[j++]=',’;pOutputStr[j]=’\0’;}int main(){char test[40];char re[40];gets(test);DivideString(test,strlen(test), re);printf(”%s",re);return 0;}2、将输入的字符串(字符串仅包含小写字母‘a’到‘z’),按照如下规则,循环转换后输出:a—>b,b—〉c,…,y—〉z,z->a;若输入的字符串连续出现两个字母相同时,后一个字母需要连续转换2次.例如:aa 转换为bc,zz 转换为ab;当连续相同字母超过两个时,第三个出现的字母按第一次出现算。

测试:输入:char*input="abbbcd” 输出:char*output="bcdcde”#include〈stdio.h〉#include<string.h>void convert(char *input,char*output){int i;for(i=0;i〈strlen(input);i++){if(i==0){output[i]=input[i]+1;if(output[i]==123){output[i]=97;}}else{if(input[i]!=input[i-1]){output[i]=input[i]+1;if(output[i]==123){output[i]=97;}}else{output[i]=input[i]+2;if(output[i]==123){output[i]=97;}if(output[i]==124){output[i]=98;}}}}output[i+1]='\0';}int main(){char in[20]={"asdfzzxzxz"};char on[20];//gets(in);convert(in,on);printf("%s",on);return 0;}3、通过键盘输入一串小写字母(a~z)组成的字符串。

华为最新算法面试题目(3篇)

华为最新算法面试题目(3篇)

第1篇一、题目背景随着信息技术的飞速发展,华为作为全球领先的通信设备供应商,对于算法工程师的要求越来越高。

为了选拔出优秀的人才,华为在面试过程中设置了多轮技术面试,其中算法面试是考察应聘者逻辑思维能力、编程能力和问题解决能力的重要环节。

以下将详细介绍华为最新算法面试题目,帮助广大求职者更好地准备面试。

一、题目一:最大数组和【题目描述】给定一个整数数组,找出一个连续子数组,使其和最大。

返回这个最大和。

【输入】输入为一个整数数组,例如:[-2,1,-3,4,-1,2,1,-5,4]【输出】输出最大连续子数组的和,例如:6【思路】1. 贪心算法:从左到右遍历数组,维护一个变量currentSum,用于记录当前子数组的和。

如果currentSum小于0,则丢弃之前的元素,重新开始计算。

最大和maxSum用于记录遍历过程中遇到的最大和。

2. 动态规划:定义一个数组dp[i],表示以第i个元素结尾的连续子数组的最大和。

dp[i]的值可以通过dp[i-1]与当前元素x的较大值来确定,即dp[i] =max(dp[i-1]+x, x)。

【示例代码】```pythondef maxSubArray(nums):if not nums:return 0currentSum, maxSum = nums[0], nums[0]for x in nums[1:]:currentSum = max(currentSum + x, x)maxSum = max(maxSum, currentSum)return maxSum```二、题目二:换零钱【题目描述】给定一个整数数组arr和一个整数aim,其中arr中的元素表示可用的零钱面额,aim表示需要凑齐的金额。

请找出最少数量的零钱,使得可以凑齐aim元。

【输入】输入为两个整数数组,例如:arr = [1, 2, 5],aim = 11【输出】输出最少数量的零钱,例如:3【思路】1. 动态规划:定义一个数组dp[i],表示凑齐i元需要的最少硬币数。

华为上机题详解

华为上机题详解

今天参加了HW的上级考试,上机考试总共有三道题目,我觉得都是对基本功的考察,所以说基本知识的掌握非常重要,特别是动手写程序的能力,我回来的时候对我的同学说,如果在本科阶段没有自己动手写过上万行的C/C++程序,要想把今天的上机考试题全部做对几乎是不可能的,这只是我个人的感觉,在平时的学习过程中,一定要自己动手去写程序,不要随便拷贝一些程序,否则后悔就来不及了。

第一题是素数的判断,给定一个数字判断是不是素数,这个就非常简单了,假设给定数字是n,从2到n-1去判断有没有数可以被n整除,如果有的话就说明该数不是素数,如果没有就说明该数是素数。

第二题是给定一个整数,把该整数对应的二进制01串转置后输出转置后01串对应的整数,如2的二进制表示为00000010,转置后为01000000,对应的值为64,这里主要考察的是移位操作和或运算,假设给定的数字是n,先把判断n和2取模的结果是否为0,为0说明当前最后一位是0,不为0说明当前最后一位是1,然后根据取模的结果去设置结果对应的二进制数的相关位,每一次循环之后都要把整数n右移一位,这样循环结束之后就可以把结果的相关二进制位设置好。

在设置结果二进制位时使用或操作和移位操作。

对与这些操作我们确实在平时的程序中用到的次数不多,但是如果没有用过的话很难想到使用位操作来解决问题,在编程之美119页有一道题和这道题目很像,但它是计算二进制表示中1的数目。

第三题是高精度乘法,两个整数用字符数组表示,最大位数是100位,然后计算二者乘积的结果,这是这次考试中最难的一道题目。

我们在这里也是使用数组来存储大数和大数的乘积,如果对乘法运算的过程理解的比较深刻,并且之前涉及过高精度运算的程序,这道题做起来还是很容易的,具体程序在我的日志里面有,我也在此再提醒一下自己结果为0的边界条件一定要处理,否则有些测试用例是无法通过的。

HW的这三道上机考试题不是很难,关键是对基本功的考察,最后一道题如果之前没有写过和它相关的任何程序的话,在规定的时间内要做出来还是比较难的,在我们的教材中基本上没有涉及过高精度运算的程序,不过在大二的程序设计与算法研讨课上一位学长讲过高精度加法的程序,如果课后自己动手写过那个程序,我想你一定会想到高精度乘法、高精度除法、高精度减法以及高精度阶乘该怎么做,或许想不到解决方法,但是随便上网一搜类似的程序很多,拿来研究一下,这些高精度计算的问题做起来举比较容易了。

华为面试题汇总与答案_1

华为面试题汇总与答案_1

华为面试题汇总与答案_1面试题参考1.js动态增强行function addRow(tableId,trId){var tableObj = document.getElementById(tableId);var trObj = document.getElementById(trId);//var trIndex = trObj.rowIndex+1;var rows = tableObj.rows.length;var cell = "";var tr = tableObj.insertRow(rows);for(i=0;i cell= tableObj.rows(rows).insertCell(i); cell.innerText= trObj.cells(i).innerText;cell.className= trObj.cells(i).className;cell.innerHTML= trObj.cells(i).innerHTML;}}2.进入页面速度慢如何跟踪问题所在。

数据量大如何处理、如何SQL优化【1】检测SESSION对象是否使用过多。

在代码中加入调试点定位执行时光较长规律代码。

【2】分库,分表。

【3】一、操作符优化In not in is null is not null like二、SQL书写的影响1、同一功能同一性能不同写法SQL的影响。

2 .WHERE后面的条件挨次影响三、SQL语句索引的利用1、不要有多余的数据。

3.项目权限控制是如何实现普通实现为:首先建立职责表,用户表,权限表,然后是职责与用户的关联表,职责与权限的关联表。

依据每一个功能点建立权限数据,当新加入职责信息时将一条或多条权限数据与对应的职责关联起来。

在用户信息中就可将职责数据与用户关联,达到权限管理的目的。

页面通过用户的职责权限信息举行操作监控。

4.多次提交ajax后,返回值是否按提交的挨次返回?Ajax调用大部分为JS,JS的运行速度较快,有可能造成哀求未完成,后面的JS代码继续运行,而返回结果的挨次不一定按哀求挨次返回。

【试题】从网上整理的华为机试题目

【试题】从网上整理的华为机试题目

【关键字】试题一、华为机试——2018年校招10号参加的华为的机试,这次的3道题难度适中。

第一题字符串,第二题贪心算法(会不会?),dp可以解,第三题长整数相乘。

因为题主做过第三题原题,刚开始就把第三题秒了~~然后开始做第一题,一般10分钟就可以搞定。

第二题要想一下,不过也差不多是原题,Le etcode上第55题jump game应该是此题原型。

因为都刷过几乎是原题的原故,一个小时不到3题就AC完了下面是完整题目和代码题目一、给你一个原始字符串,根据该字符串内每个字符出现的次数,按照ASCII码递增顺序重新调整输出。

举例!假设原始字符串为eeefgghhh则每种字符出现的次数分别是1.eee 3次2.f 1次3.gg 1次4.hhh 3次重新排序后输出的字符串如下:efghegheh编写程序,实现上述功能。

【温馨提示】1.原始字符串中仅可能出现“数字”和“字母”;2.请注意区分字母大小写。

1.#include <iostream>2.#include <map>3.#include <vector>4.#include <algorithm>ing namespace std;6.int main(){7. string str;8. int a[128]={0};9. while (cin >> str){10. for(int i=0;i<str.length();i++){11. a[str[i]]++;12. } //caculate the number of each character13. int max = *max_element(a, a+128);14. sort(str.begin(),str.end());15. long i =unique(str.begin(), str.end()) - str.begin();//the location of the "maxium number" character16. str=str.substr(0,i);17. for(int j=0;j<max;j++)18. for(int i=0;i<str.length();i++){19. if(a[str[i]]){20. cout<<str[i];21. a[str[i]]--;22. }23. }24. cout <<endl;25. }26. return 0;27.}题目2、给出一组正整数,你从第一个数向最后一个数方向跳跃,每次至少跳跃1格,每个数字的值表示你这个位置可以跳跃的最大长度。

华为校招技术类机试题及解题思路

华为校招技术类机试题及解题思路

华为校招技术类机试题及解题思路职位类型:技术类机试时间:2021校招(2021年9月)招聘公司:华为机试共三道题,楼主写了一下解题思路,如果有什么错误或者大家有什么别的解题方法,可以在评论中提出来,大家互相交流探讨。

1.括号合法性判断给定一个只有'('和')'的字符串,判断其在语法逻辑上是否合法。

解答:这题只要判断左括号和右括号的数是否相等即可。

用两个变量int a,b存储左右括号数。

一个for循环遍历字符串,遇到左括号a++;遇到右括号b++。

最后若a==b,合法;若a!=b,不合法。

2.整数排序输入一组大于等于0的整数,根据从大到小的顺序排序后输出;如果排序后有连续数时,只输出连续输的最大和最小数。

输入的所有整数都各不相同,即不用考虑两个整数相同的情况。

如:输入4,7,2,1,5,8,9,11 输出11,9,7,5,4,2,1解答:第一步当然是先排序,各种排序法都行。

用Java的话最方便啦,调用Arrays.sort(int[]),一步完成(当然这个是顺着排,输出的时候倒过来就行了)。

接下来是去掉连续数的中间数字。

注意排序后数组的头和尾必然要输出的,于是循环从1:length-2,判断这些元素跟它前后的元素是否都相差1。

System.out.print(arr[length-1] ","); for(i = arr.length - 2; i >0; i --){ if((arr== arr[i 1] -1)&&arr == arr[i-1] 1){ continue; }System.out.print(arr ","); } System.out.print(arr[0]);3.设计一个定时器管理系统,可以动态启动、停止定时器,并能根据已失去的时长自动调整剩余的时间。

运行时间限制:1Sec 内存限制:无限制输入:启动定时器:starttimmer: ID, time举例: starttimmer: 1, 1000启动一个定时器,其ID为1,定时时长time为1000ms 注:定时器ID用例保证非负整数,定时时长一定为正整数停止定时器:stoptimmer: ID举例: stoptimmer: 1停止一个ID为1的定时器注:定时器ID用例保证非负整数,如果停止的定时器ID不存在,则忽略。

华为考试题库及答案

华为考试题库及答案

华为考试题库及答案1. 华为公司是在哪一年成立的?A. 1987年B. 1997年C. 2007年D. 2017年答案:A2. 华为的核心价值观是什么?A. 客户至上B. 创新驱动C. 诚信经营D. 以上都是答案:D3. 华为的全球研发中心主要分布在哪些国家?A. 中国、美国、德国B. 中国、印度、俄罗斯C. 中国、法国、英国D. 中国、加拿大、澳大利亚答案:A4. 华为的5G技术在全球范围内的推广情况如何?A. 领先全球B. 落后于竞争对手C. 与竞争对手持平D. 尚未推广答案:A5. 华为的智能手机品牌是什么?A. 荣耀B. 华为C. 华为P系列D. 华为Mate系列答案:B6. 华为在云计算领域有哪些主要产品和服务?A. 华为云服务B. 华为云数据中心C. 华为云存储D. 以上都是答案:D7. 华为的物联网解决方案主要应用于哪些领域?A. 智能家居B. 智慧城市C. 工业自动化D. 以上都是答案:D8. 华为在人工智能领域的研究方向包括哪些?A. 机器学习B. 深度学习C. 自然语言处理D. 以上都是答案:D9. 华为的全球供应链管理策略是什么?A. 多元化供应商B. 本地化生产C. 长期合作伙伴关系D. 以上都是答案:D10. 华为在可持续发展方面有哪些举措?A. 绿色生产B. 节能减排C. 社会责任项目D. 以上都是答案:D结束语:以上是华为考试题库及答案的一部分,涵盖了华为的成立时间、核心价值观、研发中心分布、5G技术、智能手机品牌、云计算、物联网解决方案、人工智能、供应链管理以及可持续发展等多个方面。

通过这些题目,可以对华为的基本情况有一个全面的了解。

华为机考试题+答案

华为机考试题+答案

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)#include<iostream>int cal_score(int score[], int judge_type[], int n){int i =0;int sum1=0, sum2=0;int count1=0,count2=0;int zhongfen=0;for(i =0; i<n; i++){if(1==judge_type[i]){sum1+=score[i];count1++;}else //if(2==judge_type[i]){sum2+=score[i];count2++;}}if(count2==0){zhongfen = sum1;}else{zhongfen = int ((sum1/count1)*0.6 +(sum2/count2)*0.4);}return zhongfen;}int main(){int score[]={1,1,1,1,1,1};int judge_type[] = {2,2,2,1,2,2};printf("%d", cal_score(score, judge_type, 6) );} 2、给定一个数组input[] ,如果数组长度n为奇数,则将数组中最大的元素放到output[] 数组最中间的位置,如果数组长度n为偶数,则将数组中最大的元素放到output[] 数组中间两个位置偏右的那个位置上,然后再按从大到小的顺序,依次在第一个位置的两边,按照一左一右的顺序,依次存放剩下的数。

华为面试题及答案【最新版】

华为面试题及答案【最新版】

华为面试题及答案面试题答案1.请你分别划划OSI的七层网络结构图,和TCP/IP的五层结构图?OSI/ISO根据整个计算机网络功能将网络分为:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层七层。

也称“七层模型”。

TCP/IP“五层模型”分为:物理层、网络接口层、网络层(IP层)、传输层(TCP/UDP层)、应用层。

2.请你详细的解释一下IP协议的定义,在哪个层上面,主要有什么作用?TCP与UDP呢?IP协议是网络层的协议,它实现了自动路由功能,也就是寻径的功能。

TCP协议是传输层的协议,它向下屏蔽了IP协议不可靠传输的特性,向上提供一个可靠的点到点的传输;UDP也是传输层的协议,提供的是一种无连接的服务,主要考虑到很多应用不需要可靠的连接,但需要快速的传输,如局域网中的计算机传输文件一般使用UDP 协议。

3.请问交换机和路由器分别的实现原理是什么?分别在哪个层次上面实现的?交换机用在局域网中,交换机通过记录局域网内各节点机器的MAC地址就可以实现传递报文,无需看报文中的IP地址。

路由器识别不同网络的方法是通过识别不同网络的网络ID号(IP地址的高端部分)进行的,所以为了保证路由成功,每个网络都必须有一个唯一的网络编号。

路由器通过察看报文中IP地址来决定路径,向那个子网(下一跳)路由。

也就是说交换机工作在数据链路层看MAC地址,路由器工作在网际层看IP地址。

但是由于现在网络设备的发展,很多设备既有交换机的功能有由路由器的功能(交换式路由器)使得两者界限越来越模糊。

4.请问C++的类和C里面的struct有什么区别?C++的class具有数据封装功能,其包含属性访问级别可以为private,public和protect,还具有实现类接口功能和辅助功能的操作函数,而struct属性访问权限只有public,没有数据封装功能,也就没有实现信息隐藏这一面向对象的思想的机制,struct本身不含有操作函数,只有数据。

华为机试题库及答案

华为机试题库及答案

华为机试题库及答案华为是全球领先的信息与通信技术(ICT)解决方案提供商。

作为一家创新型企业,华为一直重视人才培养和招聘,为了筛选出最优秀的人才,华为设立了机试题库。

以下是华为机试题库的一些题目及其答案供参考。

一、Java基础1. 输出"Hello, Huawei!"的Java代码如下:```javapublic class HelloWorld {public static void main(String[] args) {System.out.println("Hello, Huawei!");}}```2. 计算1到100的和的Java代码如下:```javapublic class SumOfNumbers {public static void main(String[] args) {int sum = 0;for (int i = 1; i <= 100; i++) {sum += i;}System.out.println("Sum of numbers from 1 to 100: " + sum); }}```3. 实现斐波那契数列的Java代码如下:```javapublic class FibonacciSeries {public static void main(String[] args) {int n = 10;int first = 0;int second = 1;System.out.print("Fibonacci series of " + n + " terms: ");for (int i = 1; i <= n; i++) {System.out.print(first + " ");int next = first + second;first = second;second = next;}}}```二、数据结构和算法1. 实现冒泡排序的Java代码如下:```javapublic class BubbleSort {public static void main(String[] args) { int[] array = {5, 2, 8, 3, 1};int n = array.length;for (int i = 0; i < n - 1; i++) {for (int j = 0; j < n - 1 - i; j++) { if (array[j] > array[j + 1]) {int temp = array[j];array[j] = array[j + 1];array[j + 1] = temp;}}}System.out.print("Sorted array: "); for (int i = 0; i < n; i++) {System.out.print(array[i] + " "); }}}```2. 实现二分查找的Java代码如下:```javapublic class BinarySearch {public static void main(String[] args) { int[] array = {1, 3, 5, 7, 9};int target = 5;int low = 0;int high = array.length - 1;while (low <= high) {int mid = (low + high) / 2;if (array[mid] == target) {System.out.println("Target found at index: " + mid); break;} else if (array[mid] < target) {low = mid + 1;} else {high = mid - 1;}}if (low > high) {System.out.println("Target not found in the array."); }}}```三、网络和操作系统1. 解释TCP和UDP的区别:TCP(传输控制协议)提供可靠的、面向连接的数据传输服务,确保数据的完整性和有序性,适用于对数据传输要求较高的场景,如文件传输、网页加载。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.第一题的题目大概是输入整型数组求数组的最小数和最大数之和,例如输入1,2,3,4则输出为5,当输入只有一个数的时候,则最小数和最大数都是该数,例如只输入1,则输出为2;另外数组的长度不超过50#include<stdio.h>main(){intnum[50]={0};inti,n;printf("请输入整型数组的长度(1~50):");scanf("%d",&n);printf("请输入整型数组的元素:");for(i=0;i<n;i++){scanf("%d",&num[i]);}intmin_num=num[0];intmax_num=num[0];for(intj=0;j<n;j++){if(max_num<num[j])max_num=num[j];elseif(min_num>num[j])min_num=num[j];}intsum=min_num+max_num;printf("数组中最大与最小值之和:%d\n",sum);return0;}2.求两个长长整型的数据的和并输出,例如输入1233333333333333。

3111111111111111111111111.。

,则输出。

#include<stdio.h>#include<string.h>#include<malloc.h>main(){char*num1,*num2; //两个长长整型数据char*sum;// inttemp;int len_num1,len_num2; // 两个长长整型数据的长度intlen_max,len_min;num1=(char*)malloc(sizeof(char));num2=(char*)malloc(sizeof(char));printf("输入两个长长整型数据:");scanf("%s",num1);printf("输入两个长长整型数据:");scanf("%s",num2);len_num1=strlen(num1);len_num2=strlen(num2);len_max=(len_num1>=len_num2)?len_num1:len_num2;len_min=(len_num1<=len_num2)?len_num1:len_num2;int len_max1=len_max;sum=(char*)malloc(sizeof(char)*len_max);memset(sum,0x00,len_max+1);//切忌初始化for(;len_num1>0&&len_num2>0;len_num1--,len_num2--){sum[len_max--]=((num1[len_num1-1]-'0')+(num2[len_num2-1]-'0'));}if(len_num1>0){sum[len_max--]=num1[len_num1- 1 ]-'0';len_num1--;}if(len_num2>0){sum[len_max--]=num1[len_num2- 1]-'0';len_num2--;}for(intj=len_max1;j>=0;j--) //实现进位操作{// temp=sum[j]-'0';if(sum[j]>=10){sum[j-1]+=sum[j]/10;sum[j]%=10;}}char*outsum=(char*)malloc(sizeof(char)*len_max1);j=0;while(sum[j]==0) //跳出头部0元素j++;for(int m=0;m<len_max1;j++,m++)outsum[m]=sum[j]+'0';outsum[m]='\0';printf("输出两长长整型数据之和:%s\n",outsum);return0;}3.通过键盘输入一串小写字母(a~z)组成的字符串。

请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。

比如字符串“abacacde”过滤结果为“abcde”。

要求实现函数:void stringFilter(const char *pInputStr,long lInputLen, char *pOutputStr);【输入】pInputStr:输入字符串lInputLen:输入字符串长度【输出】pOutputStr:输出字符串,空间已经开辟好,与输入字符串等长;#include <stdio.h>#include<string.h>#include<malloc.h>void stringFilter(const char *p_str, longlen, char *p_outstr){intarray[256]={0};const char *tmp = p_str;for(int j=0;j<len;j++){if(array[tmp[j]]==0)*p_outstr++=tmp[j];array[tmp[j]]++;}*p_outstr= '\0';}void main(){char *str = "cccddecc";intlen = strlen(str);char* outstr = (char *)malloc(len*sizeof(char));stringFilter(str,len,outstr);printf("%s\n",outstr);free(outstr);outstr= NULL;}4.通过键盘输入一串小写字母(a~z)组成的字符串。

请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。

压缩规则:1. 仅压缩连续重复出现的字符。

比如字符串"abcbc"由于无连续重复字符,压缩后的字符串还是"abcbc".2. 压缩字段的格式为"字符重复的次数+字符"。

例如:字符串"xxxyyyyyyz"压缩后就成为"3x6yz"要求实现函数:void stringZip(const char*pInputStr, long lInputLen, char *pOutputStr);【输入】pInputStr:输入字符串lInputLen:输入字符串长度【输出】pOutputStr:输出字符串,空间已经开辟好,与输入字符串等长;#include <stdio.h>#include<string.h>#include<malloc.h>void stringZip(const char *p_str, long len,char *p_outstr){intcount=1;for(inti=0;i<len;i++){if(p_str[i]==p_str[i+1]){count++;}else{if(count>1){*p_outstr++= count +'0';*p_outstr++=p_str[i];}else{*p_outstr++=p_str[i];}count = 1;//注意其位置}}*p_outstr= '\0';}void main(){char*str = "cccddecc";printf("压缩之前的字符串为:%s\n",str);intlen = strlen(str);char* outstr = (char*)malloc(len*sizeof(char));stringZip(str,len,outstr);printf("压缩之后的字符串为:%s\n",outstr);free(outstr);outstr= NULL;}5.通过键盘输入100以内正整数的加、减运算式,请编写一个程序输出运算结果字符串。

输入字符串的格式为:“操作数1 运算符操作数2”,“操作数”与“运算符”之间以一个空格隔开。

补充说明:1. 操作数为正整数,不需要考虑计算结果溢出的情况。

2. 若输入算式格式错误,输出结果为“0”。

要求实现函数:void arithmetic(const char*pInputStr, long lInputLen, char *pOutputStr);【输入】pInputStr:输入字符串lInputLen:输入字符串长度【输出】pOutputStr:输出字符串,空间已经开辟好,与输入字符串等长;#include <stdio.h>#include<string.h>#include<stdlib.h>void arithmetic(const char *input, longlen, char *output){chars1[10];chars2[10];chars3[10];intcnt = 0;intlen_input=strlen(input);for(inti=0;i<len_input;++i){if(input[i]=='')cnt++;}if(cnt!=2){*output++= '0';*output= '\0';return;}sscanf(input,"%s %s %s",s1,s2,s3);if(strlen(s2)!=1||(s2[0]!='+'&&s2[0]!='-')) {*output++= '0';*output= '\0';return;}int len_s1=strlen(s1);for(i=0;i<len_s1;i++){if(s1[i]<'0'||s1[i]>'9'){*output++= '0';*output= '\0';return;}}intlen_s3=strlen(s3);for(i=0;i<len_s3;i++){if(s3[i]<'0'||s3[i]>'9'){*output++= '0';*output= '\0';return;}}int x = atoi(s1);int y = atoi(s3);if(s2[0]=='+'){intresult = x+y;itoa(result,output,10);}elseif(s2[0]=='-'){intresult = x-y;itoa(result,output,10);}else{*output++= '0';*output= '\0';return;}}void main(){charstr[] = {"10 - 23"};charoutstr[10];intlen = strlen(str);arithmetic(str,len,outstr);printf("%s\n",str);printf("%s\n",outstr);}6.一组人(n个),围成一圈,从某人开始数到第三个的人出列,再接着从下一个人开始数,最终输出最终出列的人(约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。

相关文档
最新文档