华为机试试题汇总

合集下载

华为测试工程师机试真题

华为测试工程师机试真题

华为测试工程师机试题目汇总-附答案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.删除字符串中所有给定的子串(40分)问题描述:在给定字符串中查找所有特定子串并删除,如果没有找到相应子串,则不作任何操作。

要求实现函数:int delete_sub_str(const char *str, const char *sub_str, char *result_str)【输入】:str(输入的被操作字符串)、sub_str(需要查找并删除的特定子字符串)【输出】:result_str(在str字符串中删除所有sub_str子字符串后的结果)【返回】:删除的子字符串的个数注:I、子串匹配只考虑最左匹配情况,即只需要从左到右进行字串匹配的情况。

比如:在字符串"abababab"中,采用最左匹配子串"aba",可以匹配2个"aba"字串。

如果匹配出从左到右位置2开始的"aba",则不是最左匹配,且只能匹配出1个"aba"字串。

II、输入字符串不会超过100 Bytes,请不用考虑超长字符串的情况。

示例输入:str = "abcde123abcd123"sub_str = "123"输出:result_str = "abcdeabcd"返回:2输入:str = "abcde123abcd123"sub_str = "1234"输出:result_str = "abcde123abcd123"返回:0我的答案:#include#includeint delete_sub_str(const char *str, const char *sub_str, char *result_str);int main(int argc, char *argv[]){char *st = "12fuck345fuck678fuck9";char *sub = "fuck3";char res[50] ="";int count = delete_sub_str(st, sub, res);printf("子字符串的个数是:%d\n", count);printf("删除子字符串后:\n%s\n", res);return 0;}int delete_sub_str(const char *str, const char *sub_str, char *result_str){int num = 0;int i = 0;int j = 0;int k = 0;int index = 0;for(i = 0; str[i] != '\0'; i++){index = i;j = 0;while(str[i] != '\0' && sub_str[j] != '\0' && str[i] == sub_str[j]) {i++;j++;}if(sub_str[j] != '\0'){i = index;result_str[k] = str[i];k++;}else{num++;i--;}}return num;}2.大数加减问题描述:在计算机中,由于处理器位宽限制,只能处理有限精度的十进制整数加减法,比如在32位宽处理器计算机中,参与运算的操作数和结果必须在-231~231-1之间。

华为机试题 面试题

华为机试题 面试题

昨天下午机试三道题目:1.字符去重,例如输入字符串:“aabbccdd”,输出字符串“abcd,要求,不改变字符的顺序。

2.求解类似于2+22+222+2222的和。

3.判断一个邮件地址是否有效。

例如:huawei@ 判断条件:只有一个@符号,最后四个字符是.com ;不含空格;字符只能是‘a-z’,‘A-Z’,‘1-9’,‘_’,‘.’,'@'1.字符串首字母转换成大写举例:输入:this is a book返回:This Is A Book2.统计不同字符串的个数举例:输入:addfsdfasa输出:43.统计数字出现的次数,最大次数的统计出来举例:输入:323324423343输出:3,6华为面向2013年招聘笔试题笔试题目(机试,共两题)题目一:子串分离题目描述:通过键盘输入任意一个字符串序列,字符串可能包含多个子串,子串以空格分隔。

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

如果输入“abc def gh i d”,结果将是abc,def,gh,i,d,要求实现函数:void DivideString(const char *pInputStr, long lInputLen, char *pOutputStr);【输入】pInputStr:输入字符串lInputLen:输入字符串长度【输出】pOutputStr:输出字符串,空间已经开辟好,与输入字符串等长;【注意】只需要完成该函数功能算法,中间不需要有任何IO 的输入输出示例输入:“abc def gh i d”输出:“abc,def,gh,i,d,”题目二:逆序链表输出。

题目描述:将输入的一个单向链表,逆序后输出链表中的值。

链表定义如下:typedef struct tagListNode{int value;struct tagListNode *next;}ListNode;要求实现函数:void converse(ListNode **head);【输入】head:链表头节点,空间已经开辟好【输出】head:逆序后的链表头节点【返回】无【注意】只需要完成该函数功能算法,中间不需要有任何IO 的输入输出/*题目描述(60分):通过键盘输入一串小写字母(a~z)组成的字符串。

100道华为面试题

100道华为面试题

问题一:Could you please describe yourself?(能否请你形容一下自己?) 这个问题,一来是想要了解你是什么样的人,二来是想看看你是否知道如何重点 式地自我简介。

在回答时,要针对应征工作的性质来凸显自己的特色,可以多 用形容词,并且引用过去的工作经验,但是不必提及公司组织的名称,再者,你 还可以谈谈未来的生涯规画;但如果你是个社会新鲜人,就可以谈谈在校时的丰 功伟业。

比方说,今天你打算去应征行销的职务,你就可以说:I&mcreative andmotivated. I worked on several major marketing projects with positiveresults. I am now looking for achallenging marketing position in anestablished company.(我有创意、乂积极。

曾负责数项大型的行销项U , 皆有成效。

我现在希望在一家深具规模的公司内,担任有挑战性的行销职务。

) 问题二:Why do you think we should employ you?(你认为我们为何要雇用你?)雇主问此问题,希望你试图证明自己是最佳人选9并且测试你是否熟悉应征职务 的工作内容。

回答时,要迎合该公司对该职务的期望,不过切记别给人狂妄自 大的印象。

假设你今天要应征机械丄程的工作,你就可以说:I am suitable for the position, not only because I have a masters degree in mechanical engineering, butalsobecause I have worked in this field for more than five years. I believe that my experience can be put to use in further developing your business.(我很适合该职位,不只因为我有机械工程学的硕 士学位, 上用场,What classes did you like best back in school?(在学校你最喜欢此时,雇主想了解你的学习能力,以及你有兴趣的专业课程是否跟工作扯得上边; 此外,个人在求学过程的好恶,会反应在不同的工作岗位上。

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

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

华为机试题目总结(程序篇)自己写的,水平很挫,仅供参考目录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.超大整数加法运算,大整数会用字符串或者数组来存,不过注意低位存字符前面几位,高位存后面,存到字符中应该存“”。

华为机试题目全解

华为机试题目全解

华为机试题【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 个数组长度不等,则只比较较短长度数组个数元素。

华为_机考_答案(精选27题)

华为_机考_答案(精选27题)

1,判断电话号码是否合法://要注意情况包含,有可能会同时出现几种不好的情况,要按照顺序输出错误。

不能同时输出好几种错误,应该是这样包含:先判断长度是否符合,再判断是否以86打头,再判断有无其他字符int fun(char num[]){ char *p=num;int n=strlen(num);if(n==13){if(*p=='8'&&*(p+1)=='6')while(*p!='\0'){if(*p>='0'&&*p<='9')p++;elsereturn 2;if(*p=='\0')return 0;}else return 3;}elsereturn 1;}int main(){char num[]="87139a3887671";int k=fun(num);cout<<k<<endl;return 0;}2 数组比较(20分)•问题描述:比较两个数组,要求从数组最后一个元素开始逐个元素向前比较,如果2个数组长度不等,则只比较较短长度数组个数元素。

请编程实现上述比较,并返回比较中发现的不相等元素的个数比如:数组{1,3,5}和数组{77,21,1,3,5}按题述要求比较,不相等元素个数为0数组{1,3,5}和数组{77,21,1,3,5,7}按题述要求比较,不相等元素个数为3•要求实现函数:int array_compare(int len1, int array1[], int len2, int array2[])•示例1)输入:int array1[] = {1,3,5},int len1 = 3,int array2[] = {77,21,1,3,5},int len2 = 5 函数返回:02)输入:int array1[] = {1,3,5},int len1 = 3,int array2[] = {77,21,1,3,5,7},int len2 = 6 函数返回:3函数如下:using namespace std;int f(int len1,int arry1[],int len2,int arry2[]){ int k=0;for(int i=len1-1,j=len2-1;i>=0&&j>=0;i--,j--)if(arry1[i]!=arry2[j])k++;return k;}int main(){int num1[]={1,3,5};int num2[]={77,21,1,3,5};int k=f(3,num1,5,num2);cout<<k<<endl;return 0;}3. 约瑟夫问题•问题描述:输入一个由随机数组成的数列(数列中每个数均是大于0的整数,长度已知),和初始计数值m。

华为手机笔试题目及答案

华为手机笔试题目及答案

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

1 •第一题的题目大概是输入整型数组求数组的最小数和最大数之和,例如输入1,2,3,4则输出为5,当输入只有一个数的时候,则最小数和最大数都是该数,例如只输入1,则输出为2;另外数组的长度不超过50#i nclude<stdio.h>mai n(){intn um[50]={0};in ti, n;printf("请输入整型数组的长度(1~50):");scan f("%d",&n);printf("请输入整型数组的元素:");for(i=0;i <n ;i++){sca nf("%d",&n um[i]);}intmin_num=num [0];in tmax_ num=nu m[0];for(i ntj=0;j< n;j++){if(max_ numvnu m[j])max_num=nu m[j];elseif(min_ num>nu m[j])min_num=nu m[j];}in tsum=min_nu m+max_ num;printf("数组中最大与最小值之和:%d\n",sum);return。

;}2. 求两个长长整型的数据的和并输出,例如输入1233333333333333.OO3111111111111111111111111。

O,则输出。

OOO#i nclude<stdio.h>#i ncludevstri ng.h>#i nclude<malloc.h>mai n(){char* nu ml,* num2; //两个长长整型数据char*sum;// in ttemp;int Ien_num1,len_num2; //两个长长整型数据的长度in tle n_ max,le n_min;nu m1=(char*)malloc(sizeof(char));nu m2=(char*)malloc(sizeof(char));printf("输入两个长长整型数据:");scan f("%s", nu m1);printf("输入两个长长整型数据:");scan f("%s", nu m2);len_nu m仁strle n(nu m1);len_nu m2=strle n(nu m2);len_ max=(le n_nu m1>=le n_nu m2)?le n_nu m1:le n_nu m2;len_ mi n=(le n_nu m1<=le n_nu m2)?le n_nu m1:le n_nu m2;int len _max1=le n_max;sum=(char*)malloc(sizeof(char)*le n_max);memset(sum,OxOO,len_max+1);〃切忌初始化for(;le n_nu m1> 0&&le n_nu m2>0;le n_nu m1--,le n_nu m2--){sum[len_max--]=(( nu m1[len_num1-1]-'0')+( nu m2[len_num2-1]-'0'));}if(len_num1>0){sum[le n_max--]=nu m1[le n_nu m1- 1 ]-'0';len_nu m1--;}if(len_num2>0){sum[le n_max--]=nu m1[le n_nu m2- 1]-'0';len_nu m2--;}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)*le n_ maxi);j=0;while(sum[j]==0) // 跳出头部0 元素j++;for(i nt m=0;m<le n_max1;j++,m++)outsum[m]=sum[j]+'0';outsum[m]='\0';printf("输出两长长整型数据之和:%s\n",outsum);return。

;}#i nclude <stdio.h>#i nclude<stri ng.h>#i nclude<malloc.h>void stri ngFilter(c onst char *p_str, l on gle n, char *p_outstr){in tarray[256]={0};const char *tmp = p_str;for(i nt j=O;j<le n;j++){if(array[tmp[j]]==O)*p_outst r++=tmp[j];array[tmp[j]]++;}*p_outstr= '\0';}void mai n(){char *str = "cccddecc";in tle n = strle n(str);char* outstr = (char *)malloc(le n*sizeof(char));stri ngFilter(str,le n, outstr);prin tf("%s\n",outstr);free(outstr);outstr= NULL;}#i nclude <stdio.h>#i nclude<stri ng.h>#i nclude<malloc.h>void stri ngZip(c onst char *p_str, l ong len, char *p_outstr) { in tco un t=1;for(i nti=0;i<le n;i++){if(P_str[i]==p_str[i+1]){coun t++;}else{if(cou nt>1){*p_outstr++= count +'0';*p_outst ^+=p_str[i];}else{*p_outst ^+=p_str[i];}cou nt = 1;//注意其位置}}*p_outstr= '\0';}void mai n(){char*str = "cccddecc";prin tf("压缩之前的字符串为: %s\n",str);in tle n = strle n(str);char* outstr = (char*)malloc(le n*sizeof(char));stri ngZip(str,le n, outstr);printf("压缩之后的字符串为:%s\n",outstr);free(outstr);outstr= NULL;#i nclude <stdio.h>#i nclude<stri ng.h>#i nclude<stdlib.h>void arithmetic(c onst char *in put, l on gle n, char *output) {chars1[10];chars2[10];chars3[10];intent = 0;in tle n_in put=strle n(i nput);for(i nti=0;i<le n_in put;++i){if(in put[i]=='')cn t++;}if(cnt!=2){*output++= 'O';*output= '\O';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=strle n( s1);for(i=0;i<le n_s1;i++){if(s1[i]v'0'||s1[i]>'9'){*output++= '0';*output= '\0';return;}}in tle n_s3=strle n( s3);for(i=0;i<le n_s3;i++){if(s3[i]v'0'||s3[i]>'9'){*output++= '0';*output= '\0';return;int x = atoi(sl);int y = atoi(s3); if(s2[0]=='+') {in tresult = x+y; itoa(result,output,10); }elseif(s2[0]=='-'){in tresult = x-y; itoa(result,output,10);}else{*output++= '0'; *output= '\0'; return;} }void mai n(){charstr[] = {"10 - 23"}; charoutstr[10];in tle n = strle n(str); arithmetic(str,le n, outstr); prin tf("%s\n",str);prin tf("%s\n",outstr);6. —组人(n个),围成一圈,从某人开始数到第三个的人出列,再接着从下一个人开始数,最终输出最终出列的人(约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2, 3...n分别表示)围坐在一张圆桌周围。

从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。

相关文档
最新文档