华为最全上机笔试题目

合集下载

华为笔试真题及答案

华为笔试真题及答案

华为笔试真题及答案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)2023华为笔试真题及答案二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; I10;I++){str1[I] =a;}strcpy(string, str1);}答:strcpy使用错误,strcpy只有遇到字符串末尾的\0才会完毕,而str1并没有结尾标志,导致strcpy函数越界访问,不妨让str1[9]=\0,这样就正常了。

华为校园招聘上机题

华为校园招聘上机题

目录样题-初级题:从考试成绩中划出及格线 (2)样题-中级题:亮着电灯的盏数 (2)样题-高级题:地铁换乘 (3)8.29去掉最大值、最小值之后剩下的个数 (3)8.29从5个人中选取2个人作为礼仪 (4)8.29验证括号是否匹配 (5)8.31回文数 (5)8.31将第一行中含有第二行中“23”的数输出并排序 (6)8.31翻译电话号码 (6)9.1.AM 将整数倒序输出,剔除重复数据 (7)9.1.AM 大数相减 (8)9.1.AM 判断if语句括号是否合法 (8)9.1.PM (8)9.1.PM (9)9.1.PM (9)样题-初级题:从考试成绩中划出及格线10个学生考完期末考试评卷完成后,A老师需要划出及格线,要求如下:(1) 及格线是10的倍数;(2) 保证至少有60%的学生及格;(3) 如果所有的学生都高于60分,则及格线为60分样题-中级题:亮着电灯的盏数一条长廊里依次装有n(1 ≤ n ≤ 65535)盏电灯,从头到尾编号1、2、3、…n-1、n。

每盏电灯由一个拉线开关控制。

开始,电灯全部关着。

有n个学生从长廊穿过。

第一个学生把号码凡是1的倍数的电灯的开关拉一下;接着第二个学生把号码凡是2的倍数的电灯的开关拉一下;接着第三个学生把号码凡是3的倍数的电灯的开关拉一下;如此继续下去,最后第n个学生把号码凡是n的倍数的电灯的开关拉一下。

n个学生按此规定走完后,长廊里电灯有几盏亮着。

注:电灯数和学生数一致。

样题-高级题:地铁换乘已知2条地铁线路,其中A为环线,B为东西向线路,线路都是双向的。

经过的站点名分别如下,两条线交叉的换乘点用T1、T2表示。

编写程序,任意输入两个站点名称,输出乘坐地铁最少需要经过的车站数量(含输入的起点和终点,换乘站点只计算一次)。

地铁线A(环线)经过车站:A1 A2 A3 A4 A5 A6 A7 A8 A9 T1 A10 A11 A12 A13 T2 A14 A15 A16 A17 A18 地铁线B(直线)经过车站:B1 B2 B3 B4 B5 T1 B6 B7 B8 B9 B10 T2 B11 B12 B13 B14 B158.29去掉最大值、最小值之后剩下的个数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.超大整数加法运算,大整数会用字符串或者数组来存,不过注意低位存字符前面几位,高位存后面,存到字符中应该存“”。

关于华为考试的题及答案

关于华为考试的题及答案

关于华为考试的题及答案一、单项选择题1. 华为公司的主要业务领域是()。

A. 通信设备制造B. 家用电器制造C. 汽车制造D. 食品加工答案:A2. 华为的核心价值观不包括以下哪一项?()A. 以客户为中心B. 以奋斗者为本C. 以利润为导向D. 长期坚持艰苦奋斗答案:C3. 华为公司成立的时间是()。

A. 1987年B. 1997年C. 2007年D. 2017年答案:A4. 华为在全球范围内拥有多少个研发中心?()A. 10个B. 20个C. 30个D. 40个答案:C5. 华为的全球员工总数超过()。

A. 10万B. 20万C. 30万D. 40万答案:B二、多项选择题6. 华为的企业文化包括以下哪些方面?()A. 客户至上B. 团队合作C. 个人英雄主义D. 持续创新答案:ABD7. 华为在全球市场的主要竞争对手包括()。

A. 爱立信B. 诺基亚C. 三星D. 苹果答案:AB8. 华为的主要产品线包括()。

A. 智能手机B. 网络设备C. 云计算服务D. 家用电器答案:ABC9. 华为在5G技术领域取得的成就包括()。

A. 5G专利数量全球领先B. 5G基站设备全球市场份额第一C. 5G手机销量全球领先D. 5G技术标准制定者之一答案:ABCD10. 华为的全球业务覆盖哪些地区?()A. 欧洲B. 亚洲C. 北美洲D. 非洲答案:ABCD三、判断题11. 华为是全球最大的通信设备制造商。

()答案:√12. 华为不涉足智能手机业务。

()答案:×13. 华为的创始人是任正非。

()答案:√14. 华为在全球范围内没有研发中心。

()答案:×15. 华为的核心价值观包括以利润为导向。

()答案:×四、简答题16. 简述华为的发展历程。

答案:华为成立于1987年,最初是一家生产用户交换机(PBX)的香港公司的销售代理。

随后,华为开始自主研发通信设备,并逐渐发展成为全球领先的信息与通信技术(ICT)解决方案提供商。

华为入职考试题库及答案

华为入职考试题库及答案

华为入职考试题库及答案
1. 华为公司是哪一年成立的?
A. 1987年
B. 1992年
C. 1997年
D. 2002年
答案:A
2. 华为公司的总部设在哪个国家?
A. 美国
B. 中国
C. 德国
D. 日本
答案:B
3. 华为的主要业务领域包括哪些?
A. 电信设备
B. 消费电子产品
C. 企业服务
D. 所有以上
答案:D
4. 华为的核心价值观是什么?
A. 客户至上
B. 创新驱动
C. 合作共赢
D. 所有以上
答案:D
5. 华为在5G技术方面的发展状况如何?
A. 处于行业领先地位
B. 正在追赶中
C. 尚未涉足
D. 落后于竞争对手
答案:A
6. 华为的全球研发中心数量是多少?
A. 10个
B. 20个
C. 30个
D. 40个
答案:B
7. 华为的企业文化中强调的“奋斗者”精神指的是什么?
A. 努力工作
B. 持续学习
C. 勇于创新
D. 所有以上
答案:D
8. 华为在国际市场上的竞争力如何?
A. 非常强
B. 一般
C. 较弱
D. 没有竞争力
答案:A
9. 华为在智能手机市场上的定位是什么?
A. 高端市场
B. 中低端市场
C. 低端市场
D. 所有市场
答案:A
10. 华为的员工培训体系包括哪些内容?
A. 技能培训
B. 管理培训
C. 领导力培训
D. 所有以上
答案:D。

华为校园招聘上机笔试题

华为校园招聘上机笔试题

华为校园招聘上机笔试题华为校园招聘上机笔试题上机时间两小时,3道题1 字串转换问题描述:将输入的字符串(字符串仅包含小写字母‘a’到‘z’),按照如下规则,循环转换后输出:a->b,b->c,…,y->z,z->a;若输入的字符串连续出现两个字母相同时,后一个字母需要连续转换2次。

例如:aa 转换为 bc,zz 转换为 ab;当连续相同字母超过两个时,第三个出现的字母按第一次出现算。

要求实现函数:void convert(char *input,char* output)【输入】 char *input , 输入的字符串【输出】 char *output ,输出的`字符串【返回】无示例输入:char*input="abcd"输出:char*output="bcde"输入:char*input="abbbcd"输出:char*output="bcdcde"void convert(char *input,char *output){char c='\0';int tag=0;int len=strlen(input);for(int i=0;i{if(input[i]!=c)//当前字符与前一个字符不相等,则该字符+1{output[i]=(input[i]-'a'+1)%26+'a';c=input[i];tag=1;}else{if(tag==1)//当前字符与前一个字符相等,且前面只有一个字符相同{output[i]=(input[i]-'a'+2)%26+'a';c='\0';tag=0;}else//当前字符与前一个字符相等,且前面已有2n个字符相同。

则按第一次出现算{output[i]=(input[i]-'a'+1)%26+'a';c=output[i];tag=1;}}}}void convert(char *input,char *output){char c='\0';int tag=0;int len=strlen(input);for(int i=0;i{if(input[i]!=c)//当前字符与前一个字符不相等,则该字符+1{output[i]=(input[i]-'a'+1)%26+'a';c=input[i];tag=1;}else{if(tag==1)//当前字符与前一个字符相等,且前面只有一个字符相同{output[i]=(input[i]-'a'+2)%26+'a';c='\0';tag=0;}else//当前字符与前一个字符相等,且前面已有2n个字符相同。

华为上机题汇总111题

华为上机题汇总111题

注:1.本文代码仅保证在visual studio 2005上运行通过!2.高亮的题目为华为机试第三题左右难度。

3.本文的字符串基本运用C++里的string类,很少使用常规字符数组形式。

4.freopen()为输入重定向,方便测试,具体用法问度娘。

1.给定一个字符串,把字符串内的字母转换成该字母的下一个字母,a换成b,z换成a,Z换成A,如aBf转换成bCg,字符串内的其他字符不改变,给定函数,编写函数void Stringchang(const char*inpu,char*output)其中input是输入字符串,output是输出字符串#include<iostream>#include<cctype>#include<cstring>using namespace std;void stringchang(const char*,char*);int main(){char input[100],output[100];cin.getline(input,100);stringchang(input,output);cout<<output<<endl;return 0;}void stringchang(const char* input,char* output){int m=strlen(input),n=0;for(int i=0;i<m;i++){if(isalpha(input[i])){if(input[i]=='z')output[n++]='a';else if(input[i]=='Z')output[n++]='A';elseoutput[n++]=input[i]+1;}elseoutput[n++]=input[i];}output[n]='\0';}2.求一个整型数字中有没有相同的部分,例如12386123这个整型数字中相同的部分是123,相同的部分至少应该是2位数,如果有相同部分返回1,如果没有则返回0。

华为_机考_答案(精选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,3,4则输出为5,当输入只有一个数的时候,则最小数和最大数都是该数,例如只输入1,则输出为2;另外数组的长度不超过50include<>main{intnum50={0};inti,n;printf"请输入整型数组的长度1~50:";scanf"%d",&n;printf"请输入整型数组的元素:";fori=0;i<n;i++{scanf"%d",&numi;}intmin_num=num0;intmax_num=num0;forintj=0;j<n;j++{ifmax_num<numjmax_num=numj;elseifmin_num>numjmin_num=numj;}intsum=min_num+max_num;printf"数组中最大与最小值之和:%d\n",sum;return0;}include<>include<>include<>main{charnum1,num2; 过键盘输入一串小写字母a~z组成的字符串;请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉;比如字符串“abacacde”过滤结果为“abcde”;要求实现函数:void stringFilterconst char pInputStr,long lInputLen, char pOutputStr;输入pInputStr:输入字符串lInputLen:输入字符串长度输出pOutputStr:输出字符串,空间已经开辟好,与输入字符串等长;include <>include<>include<>void stringFilterconst char p_str, longlen, char p_outstr {intarray256={0};const char tmp = p_str;forint j=0;j<len;j++{ifarraytmpj==0p_outstr++=tmpj;arraytmpj++;}p_outstr= '\0';}void main{char str = "cccddecc";intlen = strlenstr;char outstr = char malloclensizeofchar; stringFilterstr,len,outstr;printf"%s\n",outstr;freeoutstr;outstr= NULL;}4.通过键盘输入一串小写字母a~z组成的字符串;请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串;压缩规则:1. 仅压缩连续重复出现的字符;比如字符串"abcbc"由于无连续重复字符,压缩后的字符串还是"abcbc".2. 压缩字段的格式为"字符重复的次数+字符";例如:字符串"xxxyyyyyyz"压缩后就成为"3x6yz"要求实现函数:void stringZipconst charpInputStr, long lInputLen, char pOutputStr;输入pInputStr:输入字符串lInputLen:输入字符串长度输出pOutputStr:输出字符串,空间已经开辟好,与输入字符串等长;include <>include<>include<>void stringZipconst char p_str, long len,char p_outstr{intcount=1;forinti=0;i<len;i++{ifp_stri==p_stri+1{count++;}else{ifcount>1{p_outstr++= count +'0';p_outstr++=p_stri;}else{p_outstr++=p_stri;}count = 1;过键盘输入100以内正整数的加、减运算式,请编写一个程序输出运算结果字符串;输入字符串的格式为:“操作数1 运算符操作数2”,“操作数”与“运算符”之间以一个空格隔开;补充说明:1. 操作数为正整数,不需要考虑计算结果溢出的情况;2. 若输入算式格式错误,输出结果为“0”;要求实现函数:void arithmeticconst charpInputStr, long lInputLen, char pOutputStr;输入pInputStr:输入字符串lInputLen:输入字符串长度输出pOutputStr:输出字符串,空间已经开辟好,与输入字符串等长;include <>include<>include<>void arithmeticconst char input, longlen, char output{chars110;chars210;chars310;intcnt = 0;intlen_input=strleninput;forinti=0;i<len_input;++i{ifinputi==''cnt++;}ifcnt=2{output++= '0';output= '\0';return;}sscanfinput,"%s %s %s",s1,s2,s3; if strlens2=1||s20='+'&&s20='-' {output++= '0';output= '\0';return;}int len_s1=strlens1;fori=0;i<len_s1;i++{ifs1i<'0'||s1i>'9'{output++= '0';output= '\0';return;}}intlen_s3=strlens3;fori=0;i<len_s3;i++{ifs3i<'0'||s3i>'9' {output++= '0'; output= '\0'; return;}}int x = atois1;int y = atois3;ifs20=='+'{intresult = x+y; itoaresult,output,10; }elseifs20=='-'{intresult = x-y; itoaresult,output,10; }else{output++= '0';output= '\0';return;}}void main{charstr = {"10 - 23"};charoutstr10;intlen = strlenstr;arithmeticstr,len,outstr;printf"%s\n",str;printf"%s\n",outstr;}6.一组人n个,围成一圈,从某人开始数到第三个的人出列,再接着从下一个人开始数,最终输出最终出列的人约瑟夫环是一个数学的应用问题:已知n个人以编号1,2,3...n分别表示围坐在一张圆桌周围;从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列; include <>include<>include<>include<>typedef struct Node{intdata;structNode next;}LinkList;LinkList createint n{LinkListp,q,head;inti=1;p=LinkListmallocsizeofLinkList;p->data=i;head=p;fori=1;i<=n;i++{q=LinkListmallocsizeofLinkList;q->data=i+1;p->next=q;p=q;}p->next=head; 输入一串字符,只包含“0-10”和“,”找出其中最小的数字和最大的数字可能不止一个,输出最后剩余数字个数;如输入“3,3,4,5,6,7,7”include<>include<>include<>void main{charstr100;printf"输入一组字符串:\n"; scanf"%s",&str;intlen=strlenstr;intarray100;intcount=0;forinti=0;i<len;i++{ifstri>='0'&&stri<='9' arraycount++=stri-'0';}arraycount='\0';intresult=count;intmin=array0;intmax=array0;forintj=0;j<count;j++{ifmax<arrayjmax=arrayj;elseifmin>arrayjmin=arrayj;}forintk=0;k<count;k++{ifarrayk==minresult--;ifarrayk==maxresult--;}printf"%d\n",result;}8.输入一组身高在170到190之间5个身高,比较身高差,选出身高差最小的两个身高;若身高差相同,选平均身高高的那两个身高;从小到大输出;如输入170 181173 186 190 输出170 173include<>include<>define N 5int main{intHeightN;intdmin;intH1,H2;inti,j,temp;printf"请输入一组身高在170到190之间的数据共5个:\n"; forintk=0;k<N;k++scanf"%d",&Heightk;printf"\n";fori=0;i<N;i++forj=1;j<N-i&&Heightj-1>Heightj;j++{temp=Heightj-1;Heightj-1=Heightj;Heightj=temp;}H1=Height0;H2=Height1;dmin=H2-H1;forintm=2;m<N;m++{ifHeightm-Heightm-1<=dmin{H1=Heightm-1;H2=Heightm;dmin=Heightm-Heightm-1;}}printf"身高差最小的两个身高为:\n";printf"%d,%d\n",H1,H2;return0;}9.删除子串,只要是原串中有相同的子串就删掉,不管有多少个,返回子串个数; include <>include <>include <>include <>int delete_sub_strconst char str,constchar sub_str,char result{assertstr= NULL && sub_str = NULL;constchar p,q;chart,temp;p= str;q= sub_str;t= result;intn,count = 0;n= strlenq;temp= char mallocn+1; memsettemp,0x00,n+1; whilep{memcpytemp,p,n; ifstrcmptemp,q== 0 {count++; memsettemp,0x00,n+1; p= p + n;}else{t= p;p++;t++; memsettemp,0x00,n+1; }}freetemp;returncount;}void main{chars100 = {‘\0’};intnum = delete_sub_str“123abc12de234fg1hi34j123k”,”123”,s;printf“Thenumber of sub_str is %d\r\n”,num;printf“Theresult string is %s\r\n”,s;}10. 要求编程实现上述高精度的十进制加法;要求实现函数:void add const char num1,const char num2, char result输入num1:字符串形式操作数1,如果操作数为负,则num10为符号位'-'num2:字符串形式操作数2,如果操作数为负,则num20为符号位'-'输出result:保存加法计算结果字符串,如果结果为负,则result0为符号位; include<>include<>include<>void movechar str, int length描述:10个学生考完期末考试评卷完成后,A老师需要划出及格线,要求如下:1 及格线是10的倍数;2 保证至少有60%的学生及格;3 如果所有的学生都高于60分,则及格线为60分输入:输入10个整数,取值0~100输出:输出及格线,10的倍数include<>void bubblesortint arr{inti,j,temp;fori=0;i<10;i++forj=0;j<9-i&&arrj>arrj+1;j++ {temp=arrj;arrj=arrj+1;arrj+1=temp;}}int GetPassLineint a{bubblesorta;ifa0>=60return60;elsereturninta4/1010;}main{inta10={0};intresult;printf"请随机输入10个成绩0-100:\n";scanf"%d%d%d%d%d%d%d%d%d%d",&a0,&a1,&a2,&a3,&a4,&a5,&a6,&a7,&a8,&a9; printf"\n";result=GetPassLinea;printf"及格线为:%d\n",result;return1;}12.描述:一条长廊里依次装有n1 ≤ n ≤ 65535盏电灯,从头到尾编号1、2、3、…n-1、n;每盏电灯由一个拉线开关控制;开始,电灯全部关着;有n个学生从长廊穿过;第一个学生把号码凡是1的倍数的电灯的开关拉一下;接着第二个学生把号码凡是2的倍数的电灯的开关拉一下;接着第三个学生把号码凡是3的倍数的电灯的开关拉一下;如此继续下去,最后第n个学生把号码凡是n 的倍数的电灯的开关拉一下;n个学生按此规定走完后,长廊里电灯有几盏亮着;注:电灯数和学生数一致;输入:电灯的数量输出:亮着的电灯数量样例输入:3样例输出:1include<>define Max_Bubl_Num 65535int GetLightLampNumint n{intBublNumMax_Bubl_Num={0}; 描述:已知2条地铁线路,其中A为环线,B为东西向线路,线路都是双向的;经过的站点名分别如下,两条线交叉的换乘点用T1、T2表示;编写程序,任意输入两个站点名称,输出乘坐地铁最少需要经过的车站数量含输入的起点和终点,换乘站点只计算一次;地铁线A环线经过车站:A1 A2 A3 A4 A5 A6A7 A8 A9 T1 A10 A11 A12 A13 T2 A14 A15 A16 A17 A18地铁线B直线经过车站:B1 B2 B3 B4 B5 T1B6 B7 B8 B9 B10 T2 B11 B12 B13 B14 B15输入:输入两个不同的站名输出:输出最少经过的站数,含输入的起点和终点,换乘站点只计算一次输入样例:A1 A3输出样例:3include<>include<string>include<queue>include<vector>using namespace std;define MAX 35define SUBWAY_A 20define SUBWAY_B 15typedef struct node{int adjvex;struct node next;}edgenode;typedef struct{char name10;bool flag;edgenode link;}vexnode;constcharsubway_name1SUBWAY_A10={"A1","A2","A3","A4","A5","A6","A7","A8","A9","T1 ","A10","A11","A12","A13","T2","A14","A15","A16","A17","A18"};constcharsubway_name2SUBWAY_B10={"B1","B2","B3","B4","B5","B6","B7","B8","B9","B1 0","B11","B12","B13","B14","B15"};void creatvexnode ga{int i;edgenode p;fori=0;i<MAX;i++{gai.link=NULL;gai.flag=true;ifi<SUBWAY_,subway_name1i;,subway_name2i-20;}ink=p;p=edgenodemallocsizeofedgenode; p->adjvex=i+1;p->next=NULL;gai.link->next=p;ifi==9{p=edgenodemallocsizeofedgenode; p->adjvex=SUBWAY_A+4;p->next=NULL;gai.link->next->next=p;p=edgenodemallocsizeofedgenode; p->adjvex=SUBWAY_A+5;p->next=NULL;gai.link->next->next->next=p;}else ifi==14{p=edgenodemallocsizeofedgenode; p->adjvex=SUBWAY_A+9;p->next=NULL;gai.link->next->next=p;p=edgenodemallocsizeofedgenode;p->adjvex=SUBWAY_A+10;p->next=NULL;gai.link->next->next->next=p;}}p=edgenodemallocsizeofedgenode; p->adjvex=SUBWAY_A-1;p->next=NULL;ga0.link=p;p=edgenodemallocsizeofedgenode; p->adjvex=1;p->next=NULL;ga0.link->next=p;p=edgenodemallocsizeofedgenode; p->adjvex=SUBWAY_A-2;p->next=NULL;gaSUBWAY_A-1.link=p;p=edgenodemallocsizeofedgenode; p->adjvex=0;p->next=NULL;gaSUBWAY_A-1.link->next=p;ink=p;p=edgenodemallocsizeofedgenode; p->adjvex=SUBWAY_A+i+1;p->next=NULL;gai+SUBWAY_A.link->next=p;}p=edgenodemallocsizeofedgenode; p->adjvex=SUBWAY_A+3;p->next=NULL;gaSUBWAY_A+4.link=p;p=edgenodemallocsizeofedgenode; p->adjvex=9;p->next=NULL;gaSUBWAY_A+4.link->next=p;p=edgenodemallocsizeofedgenode; p->adjvex=9;p->next=NULL;gaSUBWAY_A+5.link=p;p=edgenodemallocsizeofedgenode; p->adjvex=SUBWAY_A+6;p->next=NULL;gaSUBWAY_A+5.link->next=p;p=edgenodemallocsizeofedgenode;p->adjvex=SUBWAY_A+8;p->next=NULL;gaSUBWAY_A+9.link=p;p=edgenodemallocsizeofedgenode; p->adjvex=14;p->next=NULL;gaSUBWAY_A+9.link->next=p;p=edgenodemallocsizeofedgenode; p->adjvex=14;p->next=NULL;gaSUBWAY_A+10.link=p;p=edgenodemallocsizeofedgenode; p->adjvex=SUBWAY_A+11;p->next=NULL;gaSUBWAY_A+10.link->next=p;p=edgenodemallocsizeofedgenode; p->adjvex=SUBWAY_A+1;p->next=NULL;gaSUBWAY_A.link=p;p=edgenodemallocsizeofedgenode; p->adjvex=SUBWAY_A+SUBWAY_B-2; p->next=NULL;gaSUBWAY_A+SUBWAY_B-1.link=p; ame;edgenode s;s=gai.link;whiles=NULL{printf"->%s",gas->;s=s->next;}printf"\n";}}int main{vexnode gaMAX;creatga;int i;char str210;whilescanf"%s%s",str0,str1=EOF{ int temp=0;fori=0;i<MAX;i++{gai.flag=true;ifstrcmpstr0,temp=i;}queue<vexnode>q; gatemp;gatemp.flag=false;int count=0;int start=0;int end=1;bool find_flag=false;while{iffind_flag break;count++;printf"\n";printf"第%d层搜索:",count; int temp_end=end; whilestart<temp_end{ printf"%s",.name; ,str1{find_flag=true;break;}edgenode s;s=.link;whiles=NULL{ifgas->adjvex.flag{gas->adjvex;gas->adjvex.flag=false;end++;ame;}s=s->next;};start++;}printf"\n";}printf"%d\n",count;}return 0;}14. 字串转换问题描述:将输入的字符串字符串仅包含小写字母‘a’到‘z’,按照如下规则,循环转换后输出:a->b,b->c,…,y->z,z->a;若输入的字符串连续出现两个字母相同时,后一个字母需要连续转换2次;例如:aa 转换为bc,zz 转换为ab;当连续相同字母超过两个时,第三个出现的字母按第一次出现算;要求实现函数:voidconvertchar input,char output输入char input , 输入的字符串输出char output ,输出的字符串返回无include<>include<>include<>void convertchar input,char output{ifinput==NULLreturn;chartemp='\0';intlen_input=strleninput;inti;intflag=0;fori=0;i<len_input;i++{ifinputi=temp{outputi=inputi-'a'+1%26+'a';temp=inputi;flag=1;}else{ifflag==1{outputi=inputi-'a'+2%26+'a'; temp=inputi;flag=0;}else{outputi=inputi-'a'+1%26+'a'; temp=inputi;flag=1;}}}outputi='\0';}void main{charinput="xyz"; charoutput256;在给定字符串中找出单词“单词”由大写字母和小写字母字符构成,其他非字母字符视为单词的间隔,如空格、问号、数字等等;另外单个字母不算单词;找到单词后,按照长度进行降序排序,排序时如果长度相同,则按出现的顺序进行排列,然后输出到一个新的字符串中;如果某个单词重复出现多次,则只输出一次;如果整个输入的字符串中没有找到单词,请输出空串;输出的单词之间使用一个“空格”隔开,最后一个单词后不加空格;要求实现函数:void my_wordcharinput, char output输入char input, 输入的字符串输出char output,输出的字符串返回无include <>include <>include <>void my_wordchar input,charoutput{char p;char temp;char word10;int len_input=strleninput;int i,j;char except = ",";char blank = " ";i=0;for i=0;i<len_input;i++{if inputi<'A' || inputi>'Z'&&inputi<'a' ||inputi>'z' {inputi=',';}}j=0;/保存取出的单词/p= strtokinput,except;whileNULL=p{wordj++=p;p= strtokNULL,except;}printf"%s",wordi;/对单词按照长度降序排序,冒泡法/ for i=0;i<5;i++{for j=1;j<5-i;j++{ifstrlenwordj-1<strlenwordj{temp=wordj;wordj=wordj-1;wordj-1=temp;}}}/删除相同单词/{forj=i+1;j<5;j++{ifstrcmpwordi,wordj==0wordj="\0";}}/将单词连接起来输出/for j=0;j<5;j++{if 0==j{strncpy output,wordj,strlenwordj+1; }else{strcatoutput,blank;strcatoutput,wordj;}}return ;}int main{char input ="some local buses, some1234123drivers"; printf"筛选之前的字符串:%s\n",input;char output30;my_wordinput,output;printf"筛选之后的字符串:%s",output;printf"\n";return 0;}16. 数组中数字都两两相同,只有一个不同,找出该数字:int findUniqueint a, int len{int i = 1;int temp =a0;for; i <len; i++{temp= temp ^ ai;}printf"%d", temp;}17.题目二:数组中数字两两相同,有两个不同,找出这两个:include <>int a = {1,1,2,4,3,3,2,5};int findXorSumint a, int len{int i = 0;int temp =0;for; i <len; i++{temp= temp ^ ai;}return temp;}int findFirstBit1int n{int count =1;while n &1{n =n>>1;count++;}returncount;}int isBit1int a, int count{a= a >> count-1;returna & 1;}void findTwoUniqueint a, int len {int i = 0;int m = 0, n= 0;int temp =findXorSuma, len;int count =findFirstBit1temp;for; i <len; i++{ifisBit1ai,count{m= m ^ ai;}else{n= n ^ ai;}}printf"%d,%d", m, n;}int main{findTwoUniquea,8;}18.链表翻转;给出一个链表和一个数k,比如链表1→2→3→4→5→6,k=2,则翻转后2→1→4→3→6→5,若k=3,翻转后3→2→1→6→5→4,若k=4,翻转后4→3→2→1→5→6,用程序实现思想:采用遍历链表,分成length/k组,对每组进行逆转,逆转的同时要将逆转后的尾和头连接起来链表相邻元素翻转,如a->b->c->d->e->f-g,翻转后变为:b->a->d->c->f->e->g include <>include <>include <>typedef struct node{charval;structnode pNext;}Node;Node CreateListint n;void TraverslistNode pHead;Node TransNeighborNode pHead;int main{NodepHead = CreateList7;printf"beforetransform\n";TraverslistpHead;TransNeighborpHead;printf"\naftertransform\n";TraverslistpHead;getchar;return1;输入一串字符串,其中有普通的字符与括号组成包括‘’、‘’、‘’,'',要求验证括号是否匹配,如果匹配则输出0、否则输出1.include<>include<>入一行数字:1234235645875186523在输入第二行:23将第一行中含有第二行中“23”的数输出并排序结果即:123423186523include<>define M 20int main{int aM;int i,j,s,temp;int sortM,t=0;char c=' ';i=0;whilec='\n'{scanf"%d%c",&temp,&c;ai++=temp;scanf"%d",&s; forj=0;j<i;j++ {temp=aj; iftemp%100==s {sortt++=aj;}elsetemp/=10;}fori=0;i<t-1;i++ forj=0;j<t-i-1;j++ {ifsortj>sortj+1 {temp=sortj+1; sortj+1=sortj; sortj=temp;}}fori=0;i<t;i++printf"%d",sorti;printf"\n";return 0;}22输入m个字符串和一个整数n,把字符串M化成以N为单位的段,不足的位数用0补齐;如n=8m=9,include<>include<>int main{char c200={'\0'};scanf"%s",&c;int n,i,j;int len=strlenc;scanf"%d",&n;fori=1;i<=len;i++{j=i%n;printf"%c",ci-1;ifj==0printf"\n";}ifj=0fori=j+1;i<=n;i++printf"0";return 0;}23将电话号码onetwo;;;ninezero翻译成12;;90中间会有double例如输入:OneTwoThree输出:123输入:OneTwoDoubleTwo输出:1222输入:1Two2 输出:ERROR输入:DoubleDoubleTwo 输出:ERROR有空格,非法字符,两个Double相连,Double位于最后一个单词都错误include<>include<>include<>int main{chara1111={"zero","one","two","three","four","five","six","seven","eight","nine","dou ble"};char temp11, c=' ';int i,j,f,d=0;whilec='\n'{scanf"%s%c",&temp,&c;f=0;forj=0;j<11;j++{ifstrcmptemp,aj&&j<10 {printf"%d",j;f=1;ifd==1{printf"%d",j;d=0;}}elseifstrcmptemp,aj&&j==10 {d=1;f=1;}}iff==0break;}ifd==1||f==0printf"error\n";printf"\n";return 0;}24.将整数倒序输出,剔除重复数据include<>include<>include<>include<>int main{charinput=charmallocsizeofchar; scanf"%s",input;inta10={0},i,flag=0,flag1=0;int len=strleninput;ifinput0=='-'{flag=1;fori=0;i<len;i++inputi=inputi+1;}intlen1=strleninput;int n50,temp;int count=0;fori=0;i<len1;i++{temp=inputi-'0'; ifatemp==0{ncount++=temp; atemp=1;}}ncount='\0';ifflag==1 printf"-";forintii=count-1;ii>=0;ii-- {ifnii=0||flag1=0{printf"%d",nii;flag1=1;}}printf"\n";return 0;}25.编程的时候,if条件里面的“”、“”括号经常出现不匹配的情况导致编译不过,请编写程序检测输入一行if语句中的圆括号是否匹配正确;同时输出语句中出现的左括号和右括号数量,如ifa==1&&b==1是正确的,而ifa==1&&b==1是错误的;注意if 语句的最外面至少有一对括号;提示:用堆栈来做;输入:ifa==1&&b==1输出:RIGTH 3 3输入:ifa==1&&b==1输出:WRONG 3 4include<>include<>int main{char s800={'\0'};scanf"%s",&s;.alen-1voidarray_iterateint len, int input_array, int m, int output_array {int startPos=0;int outPos;int nIter=len-1;int num=len;for; nIter>=0; nIter--{outPos=m+startPos-1%num;m=input_arrayoutPos;startPos=outPos;printf"outPos is %d, new m is%d\n", outPos, m;output_arraylen-nIter-1=input_arrayoutPos;forint i=outPos; i<num-1; i++input_arrayi=input_arrayi+1;num--;print_arraynum, input_array;}}voidmain{int input_array={3,1,2,4};int output_array4={0};array_iterate4, input_array, 7,output_array; print_array4, output_array;}27.统计数字出现的次数,最大次数的统计出来举例:输出:3,6include<>include<>include<>int main{inta10={0};intlen=strlennum;inti,j,temp,count=0,maxnum=0;printf"%d\n",len;fori=0;i<len;i++{temp=numi-'0';atemp++;}inttemp1=a0;forj=0;j<10;j++{ifaj=0{count++;temp1=temp1>ajtemp1:aj; printf"%d%d\n",aj,j;}}printf"数字出现次数为:%d\n",count; printf"最大次数为:%d\n",temp1; return0;}28. .字符串首字母转换成大写举例:输入:this is a book返回:This Is A Bookinclude<>include<>include<>int main{charinput="this is a book"; charoutput256={'\0'};int i,len;len=strleninput;printf"变换前的字符串为:%s\n",input; fori=0;i<len;i++{ifinput0=''input0-=32;ifinputi==''inputi+1-=32;outputi=inputi;}printf"变换后的字符串为:%s\n",output; }29.子串分离题目描述:。

华为笔试试题及答案

华为笔试试题及答案

【第一部分公司篇】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、SBSB、SDHC、OptiXD、Metro(答案:C,答A者酌情给分,最起码还知道老商标)4、技术支援部与国际技术支援部的关系()A、国际技术支援部是技术支援部下面的一个部门,负责海外B、技术支援部是国际技术支援部下面的一个部门,负责国内C、技术支援部是国际技术支援部的前身D、国际技术支援部是技术支援部的前身(答案:C)【第三部分业务篇】1、SBS是()A、传输产品的老商标B、同步骨干系统C、傻不傻的拼音缩写D、帅不帅的拼音缩写(答案:AB,答CD者立即辞退)2、SDH是()A、传输产品商标B、同步数字序列C、傻得很的拼音缩写D、傻得好的拼音缩写(答案:B,答CD者立即辞退)3、由于你是新员工,没有公配手机时,当你在现场遇到紧急事故时,你会()向公司求助A、打用户机房内的电话B、借用户手机C、拔110D、拔200或300E、立即打车回办事处(答案:D,答CE者立即辞退,按照公司规定,不能随便使用用户的电话,以提高公司形象)4、在开局时,用户问你在华为干几年了,你会回答()A、我是新员工B、1年多了C、2年多了D、3年多了(答案:B,答A者按不合格处理,按照公司规定,不能说自己是新员工,几千万的设备,怎能让一个新员工用来练兵,用户知道鼻子不气歪才怪,答CD者,用户会哼之以鼻,在华为做了2、3年,还在下面撅个腚开局,鬼才相信你的话呢!)5、接上题,假如你回答说在华为干1年多了,用户会说()A、那你一定是新员工了B、那你一定是老员工了(答案:B,用户对华为很了解,都知道你如果在华为做一年,就已经是老员工了)6、接上题及上上题,用户会继续问,“那你咋连手机、便携机,一个都没有呢?”,你会回答()A、啊,我还没有转正咧,等俺转正时,误码仪、手机、便携机,一个都不能少B、啊,没有关系,正是由于我是老员工,所以开局用不着C、啊,真倒霉,在来的路上,被土匪打劫了D、啊,被我的两个徒弟拿走了,因为他们是新员工,没有工具胆小,有了工具好壮胆(答案:BCD,答A者,立即辞退,这么点事都搞不定)7、当你发现用户的机房中没有拖鞋时,你会()A、入乡随俗,直接进机房B、光脚丫C、马上出去自己花钱买几双拖鞋送给用户D、马上出去买几双拖鞋送给用户,之后开票回来贴票报销E、马上出去买几双拖鞋送给用户,之后开票找局长报销(答案:C,答A者,立即辞退,答B者,酌情给分,答D者,不合格处理,答E者,简直是在找死,立即辞退)8、技术支援工程师工作的特点()A、白天睡觉,晚上干活B、用户随叫随到C、用户就是上帝,用户怎么说,我们就怎么做D、我是上帝,我想咋干就咋干(答案:ABC,答D者,立即辞退)9、在与客户开会及纸面件交流时,你会使用()来称呼对方A、局方B、用户C、客户D、贵公司(答案:BCD,答A者,立即辞退,我司三令五申禁止使用该华为内部土语,屡禁不止,老员工不可教也,只好从新员工抓起,格杀勿论)10、工程师甲对乙说:“晚上不去泡吧吗”,乙说:“哦,真不巧,我晚上要去市局割接,下次吧”。

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

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

华为硬件笔试题1】一选择13个题目,没有全部抄下来,涉及的课程有电路,模拟电路,数字电路,信号与系统,微机原理,网络,数字信号处理1.微分电路2.CISC,RISC3.数据链路层二填空10个题目,没有全部抄下来,涉及的课程有电路,模拟电路,数字电路,信号与系统,微机原理,网络,数字信号处理有关于 1.TIC6000 DSP 2.二极管 3.RISC4.IIR 三简答 1.x(t)的傅立叶变换为X(jw)=$(w)+$(w-PI)+$(w-5) h(t)=u(t)-u(t-2) 问: (1),x(t)是周期的吗? (2),x(t)*h(t)是周期的吗? (3),两个非周期的信号卷积后可周期吗? 2.简述分组交换的特点和不足四分析设计 1.波形变换题目从正弦波->方波->锯齿波->方波,设计电路2.74161计数器组成计数电路,分析几进制的3.用D触发器构成2分频电路4.判断MCS-51单片机的指令正确还是错误,并指出错误原因(1) MUL R0,R1 (2) MOV A,@R7 (3) MOV A,#3000H (4) MOVC @A+DPTR,A (5) LJMP #1000H ()5.MCS-51单片机中,采用12Mhz时钟,定时器T0采用模式1(16位计数器),请问在下面程序中,p1.0的输出频率MOV TMOD,#01H SETB TR0 LOOP:MOV TH0,#0B1H MOV TL0,#0E0H LOOP1:JNB TF0,LOOP1 CLR TR0 CPL P1.0 SJMP LOOP【华为硬件笔试题2】全都是几本模电数电信号单片机题目1.用与非门等设计全加法器2.给出两个门电路让你分析异同3.名词:sram,ssram,sdram4.信号与系统:在时域与频域关系5.信号与系统:和4题差不多6.晶体振荡器,好像是给出振荡频率让你求周期(应该是单片机的,12分之一周期.. ..)7.串行通信与同步通信异同,特点,比较8.RS232c高电平脉冲对应的TTL逻辑是?(负逻辑?) 9.延时问题,判错10.史密斯特电路,求回差电压11.VCO是什么,什么参数(压控振荡器?) 12. 用D触发器做个二分颦的电路.又问什么是状态图13. 什么耐奎斯特定律,怎么由模拟信号转为数字信号14. 用D触发器做个4进制的计数15.那种排序方法最快?【华为硬件笔试题3】第一部分是:先给你一个字符与文字对应的表,然后再给你几个文字选出对应的字符组合。

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

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

华为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地址由两部分组成,网络号和主机号。

不过是要和“子网掩码”按位与上之后才能区分哪些是网络位哪些是主机位。

循环链表,用取余操作做14.不能做switch()的参数类型是:switch的参数不能为实型。

华为前端入职前机试题

华为前端入职前机试题

华为前端入职前机试题
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、逻辑题
⼀个池⼀有⼀限多的谁,⼀5升的桶和6升的桶如何取3升的⼀?
答:5升桶取满倒进6升桶,5升桶再装满倒满6升桶,这样5升桶剩下4升⼀,把6升桶的⼀倒掉,再把5升桶的4升⼀倒进6升桶,⼀5升桶取满倒满6升桶,这样5升桶就剩下3升⼀。

8、编程题
计算出字符串中出现次数最多的字符是什么,出现了多少次?。

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

华为笔试题大全(史上最齐全)
5.什么是平衡二叉树
左右子树都是平衡二叉树 且左右子树的深度差值的绝对值不大于1。
6.堆栈溢出一般是由什么原因导致的
没有回收垃圾资源。
7.什么函数不能声明为虚函数
constructor函数不能声明为虚函数。
8.冒泡排序算法的时间复杂度是什么
时间复杂度是0(n^2)。
9.写出float x与“零值”比较的if语句。
答案:最容易想到的算法是: 设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>&&x<
采用哪种网络协议该协议的主要层次结构
Tcp/Ip协议
主要层次结构为: 应用层/传输层/网络层/数据链路层/物理层。
物理地址和IP地址转换采用什么协议
ARP (Address Resolution Protocol)(地址解析協議)
地址的编码分为哪俩部分
IP地址由两部分组成,网络号和主机号。不过是要和“子网掩码”按位与上之后才能区分哪些是网络位哪些 是主机位。
那么,那种最容易想到的算法就完全没有用吗不,这种算法正好可以用来验证新算法 的正确性,在调试阶段,这非常有用。在很多大公司,例如微软,都采用了这种方法:在调 试阶段,对一些重要的需要好的算法来实现的程序,而这种好的算法又比较复杂时,同时用 容易想到的算法来验证这段程序,如果两种算法得出的结果不一致(而最容易想到的算法保

华为上机题整理大全及答案解析

华为上机题整理大全及答案解析

1、数组中最大数与最小数之和 (4)2、两个长整型的和 (5)3、删除串中重复出现的字符 (6)4、将串中重复出现的字符进行压缩 (8)5、操作数1 运算符操作数2 (9)6、约瑟夫环问题 (11)7、去掉数字串中的最大数和最小数 (13)8、身高差值最小的两个身高 (14)9、删除子串 (15)10. 实现高精度的十进制加法 (17)11、10个学生及格线 (23)12、亮着的电灯数 (24)14、字符串按照特殊规则转换 (25)15、字符串中查找单词 (27)16、数组中不同的一个数 (28)17、数组中不同的两个数 (29)18、链表以k翻转 (31)19、链表相邻元素翻转 (34)20、字符串中小括号中括号匹配 (36)21、一行数字中找子数 (38)22、字符串M化成以N为单位的段 (40)23将电话号码 one two 。

nine zero (41)24.将整数倒序输出 (44)25、括号匹配 (46)26约瑟夫问题 (47)27.统计数字出现的次数,最大次数的统计出来 (48)28. .字符串首字母转换成大写 (50)29. 子串分离 (50)29. 子串分离题目描述:通过键盘输入任意一个字符串序列,字符串可能包含多个子串,子串以空格分隔。

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

如果输入“abc def gh i d”,结果将是abc,def,gh,i,d,要求实现函数:void DivideString(const char *pInputStr, long lInputLen, char *pOutputStr); 【输入】 pInputStr:输入字符串lInputLen:输入字符串长度【输出】 pOutputStr:输出字符串,空间已经开辟好,与输入字符串等长;方法一:void DivideString(char*pInputStr,long iInputLen,char*pOutputStr){int cnt;while(*pInputStr!='\0')//用空来判断串结束,并没有用到串长{if(*pInputStr!=' '){cnt=0;*pOutputStr++=*pInputStr++;}else{cnt++;if(cnt==1)//用cnt来实现两个单词之间有多个空格时也只替换一个空格为, *pOutputStr++=',';pInputStr++;}}*pOutputStr++=',';*pOutputStr='\0';}方法二:void DivideString(char*pInputStr,long iInputLen,char*pOutputStr){int i,cnt=0,k=0;For(i=0;pInputStr[i]!=’’;i++);//不要忘了把串首的空格给剔除for(i<iInputLen;i++)//利用长度这个参数,i指示输入指针{if(pInputStr[i]!=' '){cnt=0;pOutputStr[k++]=pInputStr[i];//k指示输出指针,与i的增加并非同步}else{cnt++;if(cnt==1)pOutputStr[k++]=',';}}pOutputStr[k++]=',';pOutputStr[k]='\0';}void main(){char *a="I am a good boy";char*b=(char*)malloc(strlen(a)+1);//应该加2吧,末尾要存放一个,一个串结束标识符DivideString(a,strlen(a),b);printf("%s\n",b);}27.统计数字出现的次数,最大次数的统计出来输入:323324423343输出:3,6#include <stdio.h>#include <string.h>int main(){char *pInputStr="2343545466666789";int hash[10]={0};int max,max_n,i;//统计次数for(i=0;i<strlen(pInputStr);i++)hash[pInputStr[i]-'0']++;//串转化为数字//寻找最大的次数max=hash[0];for(i=0;i<10;i++){if(hash[i]!=0)//有些数字的出现次数可能为0,使用此句可以避免下面的比较{if(hash[i]>max)//等价语句:max=max>hash[i]?max,hah[i];{max=hash[i];max_n=i;}printf("the number %d 出现%d次\n",i,hash[i]);}}printf("数字%d出现次数最多:%d\n",max_n,max);return 0;}28. .字符串首字母转换成大写举例:输入:this is a book返回:This Is A Book#include <stdio.h>int main(){char a[]="i am is a boy";int i;//int n=strlen(a);char b[256]={0};for(i=0;i<strlen(a);i++){if(a[i]==' ')a[i+1]=a[i+1]-32;b[i]=a[i];}b[0]=a[0]-32;printf("原串为:%s\n",a);printf("新串为:%s\n",b);return 0;}1、数组中最大数与最小数之和1.第一题的题目大概是输入整型数组求数组的最小数和最大数之和,例如输入1,2,3,4则输出为5,当输入只有一个数的时候,则最小数和最大数都是该数,例如只输入1,则输出为2;另外数组的长度不超过50#include<stdio.h>main(){int num[50]={0};int i,n;printf("请输入整型数组的长度(1~50):");scanf("%d",&n);printf("请输入整型数组的元素:");for (i=0;i<n;i++){scanf("%d",&num[i]);}int min_num=num[0];int max_num=num[0];for(int j=0;j<n;j++){if(max_num<num[j])max_num=num[j];else if(min_num>num[j])min_num=num[j];}int sum=min_num+max_num;printf("数组中最大与最小值之和:%d\n",sum);return 0;}2、两个长整型的和2.求两个长长整型的数据的和并输出,例如输入1233333333333333 。

华为上机笔试题

华为上机笔试题

1.给定一个字符串,把字符串内的字母转换成该字母的下一个字母,a换成b,z换成a,Z换成A,如aBf转换成bCg,字符串内的其他字符不改变,给定函数,编写函数void Stringchang(const char*inpu,char*output)其中input是输入字符串,output是输出字符串#include<stdio.h>#include<assert.h>void Stringchang(const char*input,char*output){const char *p=input;/*if(input==NULL){printf("ERROR"); //用这种表示方式可否?return; //用return 好不好?} */assert(input!=NULL);while(*p!='\0'){if((*p>='a')&&(*p<='y')||(*p>='A')&&(*p<='Y') )*output=*p+1;else if(*p=='z'||*p=='Z')*output=*p+1-26;else*output=*p;output++;p++;}*output=0;}void main(){char a[11]={"abc"}; //如何模拟空指针的情况char b[11];Stringchang(a,b);printf("%s",b);}2.求一个整型数字中有没有相同的部分,例如12389756123这个整型数字中相同的部分是123,相同的部分至少应该是2位数,如果有相同部分返回1,如果没有则返回0。

函数为int same(int num)其中num是输入的整型数字#include<iostream>using namespace std;int same(int num) //整数值的范围:long int为-2(共10位)到正2开头共10位;unsigned //long int 为从0到4的共10位数{char a[11];int i=0,m=0,j=0;while(num){a[i]=num%10+'0';num=num/10;i++;j++;}i=0;int k=j;while(i<j){char temp=a[i];a[i]=a[j-1];a[j-1]=temp;i++;j--;}for(i=0;i<k-2;i++) //更标准{for(j=i+1;j<k-1;j++) //更妥当当为888时也判断的算是{if(a[i]==a[j]&&a[i+1]==a[j+1])return 1;}}return 0;}int main() //是不是用int 会好一点?{int a,b;cin>>a;b=same(a);cout<<b<<endl;return 0;}3.求两个字符串的乘积,结果存到字符串中,例如字符串一中存的“657891”,字符串二中存的“521”,分别将字符串中的字符转换成整型数字,进行计算后,再转换成字符类型存储起来.函数为void mul(char *input1,int n,char *input2, int m,char *output)其中input1和input2是输入,n是input1的长度,m是input2的长度。

华为上机笔试题

华为上机笔试题

华为上机笔试题(1)求两个整数的最⼩公倍数#include <iostream>using namespace std;int gcd(int a,int b);//⽤辗转相除法求最⼤公约数int main(){int a,b;cin>>a>>b;int res=a*b/gcd(a,b);cout<<res;}int gcd(int a,int b){return a%b==0?b:gcd(b,a%b);}基本思路就是先⽤辗转相除法求得两个数的最⼤公约数,然后两个数相乘除以最⼤公约数就得到了最⼩公倍数。

(2)不使⽤库函数求⼀个数的⽴⽅根主要有两种思路,⼀种是⽤⼆分法,可令左初值为1,右初值为num,不断⼆分找根;另⼀种是⽤⽜顿迭代法,直接⽤迭代公式求解。

⼆分法代码:#include <algorithm>#include <cmath>#include <stdio.h>using namespace std;int main(){double num; //待处理的数scanf("%f",&num);const double err=0.001; //允许的误差bool done=false;double start=1.0,end=num;double res;while(!done){double mid=(start+end)/2;if(abs(pow(mid,3)-num)<=err){res=mid;done=true;}else if(pow(mid,3)-num>err)end=mid;elsestart=mid;}printf("%.1f",res);return 0;}⽜顿迭代法代码:#include <algorithm>#include <cmath>#include <stdio.h>using namespace std;int main(){double num;scanf("%lf",&num);const double err=0.000001;bool done=false;double xn=1;while(!done){if(abs(pow(xn,3)-num)<=err)done=true;else{xn=2.0/3.0*xn+num/(3*xn*xn);}}printf("%.1f",xn);return 0;}⽜顿迭代公式x_{n+1}=x_n-\frac{f(x_n)}{f^*(x_n)},在本道题中相当于要求f(x)=x^3-num=0的解,所以只需要按照上述迭代公式进⾏求解就可以。

华为笔试题及答案

华为笔试题及答案

华为笔试题及答案一、选择题1. 下列哪种编程范式主要关注程序的计算过程和程序状态的变化?A. 面向对象编程B. 函数式编程C. 命令式编程D. 声明式编程答案:C解析:命令式编程是一种编程范式,主要关注程序的计算过程和程序状态的变化。

与之相对的是声明式编程,它更关注程序的结果而非过程。

2. 下列哪种排序算法的时间复杂度是O(nlog n)?A. 冒泡排序B. 快速排序C. 选择排序D. 插入排序答案:B解析:快速排序的平均时间复杂度为O(nlog n),而冒泡排序、选择排序和插入排序的时间复杂度都是O(n^2)。

二、填空题3. 在计算机科学中,二叉树中的节点个数n与边数e的关系为______。

答案:e = n - 1解析:在二叉树中,每个节点都有两个子节点(可能为空),因此节点数n与边数e之间的关系为e = n - 1。

4. 一个具有1024个节点的完全二叉树,其深度为______。

答案:10解析:完全二叉树的深度可以通过以下公式计算:深度 = log2(节点数) + 1。

对于1024个节点的完全二叉树,深度为log2(1024) + 1 = 10 + 1 = 11。

三、算法题5. 编写一个C++程序,实现一个函数,该函数接收一个整数数组和一个目标值,返回数组中和为目标值的两个数的索引。

答案:```cpp#include <iostream>#include <vector>#include <unordered_map>std::vector<int> twoSum(const std::vector<int>& nums, int target) {std::unordered_map<int, int> hash_map;for (int i = 0; i < nums.size(); ++i) {int complement = target - nums[i];if (hash_map.find(complement) !=hash_map.end()) {return {hash_map[complement], i};}hash_map[nums[i]] = i;}return {};}int main() {std::vector<int> nums = {2, 7, 11, 15};int target = 9;std::vector<int> result = twoSum(nums, target);std::cout << "Indices are: " << result[0] << " and " << result[1] << std::endl;return 0;}```解析:本题考查哈希表的应用。

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

2. 数制转换 * 问题描述:
在 32 位处理器上,将任一整数转换为二进制形式。 * 要求实现函数: void DecToBin (unsigned int iDec, char pBin[32]) 输入:iDec 需要转换的十进制整数 输出:pBin 转换为二进制后的字符串,高位在左边,不足 32 位补 0 * 示例 输入:123 输出:{“00000000000000000000000001111011”}
类别:软件 C++ 第一部分:客观题 客观题部分,共 30 分,建议这部分答题用 40 分钟。 一、 单选题 (每题 1 分,共 10 题) 1、 下列那种不是任务间通讯的方式____ A)信号量 B)消息队列 C)共享内存 D)中断 2、 以下叙述中不正确的是____ A)在不同的函数中可以使用相同名字的变量 B)函数中的形式参数是局部变量 C)在一个函数内定义的变量只在本函数范围内有效 D)在一个函数内的复合语句中定义的变量在本函数范围内有效(复合语句指函数中的成对 括 号构成的代码) 3、 若整型变量 a 的值为 50,则 c 语言表达式 a>>2 的值为____ A)50 B) 25 C) 12.5 D) 12 4、 下面方法中,哪一个不能很好解决死锁问题?____ A) 给每一个进程不同的优先级,并按照优先级的大小决定在资源队列中的顺序。 B) 让进程开始运行时获得全部的资源,在不能获得全部资源时重新启动。 C) 给资源编号,并要求进程按照编号的顺序申请资源。 D) 提供超时机制,在进程进入资源等待后一段随机时间内重起进程。 5、 下面的程序是对二叉树的前序遍历,请写出下面空格中的语句____ 其中,Visit 函数表示访问节点数据。 void PreOrder(BinaryTreeNode *t) { // 对* t 进行前序遍历 if (t) { (_1_); (_2_); (_3_); }
/* 请在这里实现下列函数 , c/c++ 语法不限 , 最后需要保证程序编译连接通过 , 并生成
test.exe 文件. */ /* 相关宏定义及函数声明见'func.h'头文件 */ #include "func.h" #include <stdio.h> #include <stdlib.h> /* 请按照要求实现下列三个函数 */ void count(const char *input, unsigned int * letters, unsigned int * numbers, unsigned int * blanks, unsigned int * others) { *letters=0; *numbers=0; *blanks=0; *others=0; int i; for(i=0;input[i]!='\0';++i) { if((input[i]>='a'&&input[i]<='z')||(input[i]>='A'&&input[i]<='Z')) ++(*letters); else if(input[i]>='0'&&input[i]<='9') ++(*numbers); else if(input[i]==' ') ++(*blanks); else ++(*others); } } void DecToBin(unsigned int iDec, char pBin[32]) { int index=0,i; char ans[50]; for(i=0;i<50;++i) ans[i]='0'; while(iDec) { ans[index++]=iDec%2+'0'; iDec/=2; } int x=0; for(i=31;i>=0;--i) pBin[x+\0'; } int isWorking(unsigned int year, unsigned int month, unsigned int day) { int ans=0; int rn[]={1,31,29,31,30,31,30,31,31,30,31,30,31}; int pn[]={1,31,28,31,30,31,30,31,31,30,31,30,31}; int i; for(i=1990;i<year;++i) { if((i%400)==0||(i%4==0&&i%100!=0)) ans+=366; else ans+=365; } for(i=1;i<month;++i) { if((year%400)==0||(year%4==0&&year%100!=0)) ans+=rn[i]; else ans+=pn[i]; } ans+=day; while(ans>5) ans-=5; if(ans<=3) return 1; else return 0; }
1. 字符统计 * 问题描述: 实现一个函数,要求输入一个字符串,分别统计出其中 “英文字母” 、 “数字” 、 “空格” 、 “其 它字符”的个数。 * 要求实现函数: void count(const char *input, unsigned int * letters, unsigned int * numbers, unsigned int * blanks, unsigned int * others) 输入:input 输入的字符串 输出:letters 输出其中的“英文字母”个数, numbers 输出其中的“数字”个数,blanks 输出其中的“空格”个数,others 输出其中的“其他字符”个数 * 示例 输入:input=“aBc 12%” ;输出:letters=3, numbers=2, blanks=1, others=1 输入:input=“1” ;输出:letters=0, numbers=1, blanks=0, others=0
/* mian 函数已经隐藏,这里保留给用户的测试入口,在这里测试你的实现函数,可以调用 printf 打印输出*/ /* 当前你可以使用其他方法测试,只要保证最终程序能正确执行即可 */ /* 该函数实现可以任意修改,但是不要改变函数原型。一定要保证编译运行不受影响*/ void TestEntry() {printf("%d\n",isWorking(1990,1,5)); /* TODO: 请测试时改变改用例 */ /* TODO: 调用被测函数 */ /* TODO: 执行完成后可比较是否是你认为正确的值 */
2010 年华为软件设计大赛试卷 类别:软件 C++语言 初级
编程题(共 3 题,第 1 题 20 分,第 2 题 30 分,第 3 题 50 分。请上机编写程序,按题目要 求提交文件。[详见考试说明] 本试题采用自动测试用例进行评分, 测试用例不对考生公开, 凡不满足提交要求导致不能编 译或用例不通过,不予评分) 。
9、 对于下面的类 CA,在 32 位计算机、4 字节对齐的情况下,sizeof(CA) = ____ class CA { public: CA(); virtual ~CA(); private: int m_iTime; public: int GetTime(); int SetTime(int iTime); }; A)16 B)12 C)8 D)4 10、 对于下面的代码,描述正确的是____ class A { public: virtual void test(); }; class B: public A { public: void test(); ... }; class C: public B { public: void test(); ... }; A) B 类的 test 函数是虚函数,而 C 类的也是 B) B 类的 test 函数不是虚函数,C 类的是 C) B 类的 test 函数是虚函数,而 C 类的不是 D) C 类的 test 函数不是虚函数
2. 实现子串查找程序 问题描述: 判断一个字符串(dst)是否是另一个字符串(src)的子串; 输出子串在母串中的第一次出现的起始位置; 匹配的时候不区分大小写; 不能使用库函数(使用库函数按 0 分计算); 要求实现函数: unsigned int str_str(char * src, char *dst); 返回:如果 dst 是 src 的子串 则返回起始位置 如果不是 则返回 0 输入:src 指向母串的指针; dst 指向子串的指针 示例 src->akrsd5859 dst->rsd 则返回 3 src->Rstsawerst36ds dst->rst 则返回 8 src->dfsge dst-> dfsgesa 则返回 0
3. 打鱼还是晒网 * 问题描述: 中国有句俗话叫 “三天打鱼两天晒网” ,某人从 1990 年 1 月 1 日起开始 “三天打鱼两天晒网” , 问这个人在以后的某一天是“打鱼”还是“晒网”? (需要考虑闰年:年数“能被 4 除尽且不能被 100 除尽”或“直接能被 400 除尽”看做闰年, 如 2000 年是闰年,而 1900 年不是) * 要求实现函数: int isWorking(unsigned int year, unsigned int month, unsigned int day); 输入:year,month,day 分别为年,月,日 返回:int 类型,如果是“打鱼” ,就返回 1;如果是“晒网” ,就返回 0 * 示例 输入:year=1990,month=1,day=5;函数返回:0
相关文档
最新文档