届华为校园招聘上机考试题
华为校园招聘软件研发上机测试题及部分解答+
以下是收集到的两套题(没有添加答案),上机测试只有应聘软件研发的才会碰到。
有的写了点自己的解法,如果大家有好的想法欢迎讨论!大家一起学习嘛!以下是上机考试的一些注意事项:(1)考试时长为2个小时,总共有3个题(去年是2个题,难度要比今年大些),编译环境为VC 6.0(C语言)/ Eclipse(Java);(2)3个题目中大致第一个题是最简单的,第三个题是最难的;(3)从服务器上下载题目下来后最好能把工程保存到在电脑重启后不会自动还原的磁盘分区下面,这样不致由于各种意外因素电脑重启过后编的程序不会消失;(4)不要改动所给函数的原型,可以自己添加函数。
另外,华为提供的工程是将Main函数隐藏了的,所以自己不用再添加Main函数。
试题1:2011.9.6 转载自:/liuqiqi677/article/details/67554981、选秀节目打分,分为专家评委和大众评委,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)(这个问题很简单,应该只是涉及了下double/int转换)2、给定一个数组input[] ,如果数组长度n为奇数,则将数组中最大的元素放到output[] 数组最中间的位置,如果数组长度n为偶数,则将数组中最大的元素放到output[] 数组中间两个位置偏右的那个位置上,然后再按从大到小的顺序,依次在第一个位置的两边,按照一左一右的顺序,依次存放剩下的数。
华为秋招性格测试题(3篇)
第1篇尊敬的应聘者:您好!感谢您对华为的关注和申请。
为了更好地了解您的性格特点与职业倾向,我们将进行一次性格测试。
本测试旨在帮助华为更好地评估您是否与我们的企业文化、价值观和岗位要求相匹配。
请您认真作答,所有答案仅用于内部评估,我们将严格保密。
以下是测试题目,请您根据自己的实际情况选择最符合的选项。
一、自我认知1. 当面对一个困难问题时,您通常:A. 首先分析问题,寻找解决方案B. 寻求他人帮助,共同解决C. 暂时搁置,等待他人提出解决方案2. 在团队合作中,您更倾向于:A. 担任领导角色,主导团队工作B. 担任成员角色,配合团队领导C. 自主完成任务,无需过多依赖团队3. 当您完成一项任务后,您更愿意:A. 与团队成员分享成果,共同庆祝B. 独自享受成果,保持低调C. 不太关心成果,关注自身成长4. 在面对压力时,您通常:A. 保持冷静,积极应对B. 感到焦虑,寻求他人安慰C. 感到沮丧,逃避现实5. 您更倾向于:A. 制定详细计划,按部就班执行B. 临时调整计划,灵活应对C. 随遇而安,顺其自然二、人际关系6. 您在与他人沟通时,更倾向于:A. 直接表达观点,不拐弯抹角B. 谨慎表达,避免冲突C. 适当委婉,保持和谐7. 当您与同事产生分歧时,您更愿意:A. 沟通协商,寻求共识B. 保持沉默,避免冲突C. 找寻其他解决方案,绕过冲突8. 您更愿意与以下哪种类型的同事共事:A. 独立性强,有主见B. 合作性强,善于沟通C. 平易近人,容易相处9. 当您发现同事在工作中出现错误时,您更愿意:A. 直接指出错误,帮助改正B. 私下提醒,避免影响同事面子C. 保持沉默,等待他人发现10. 您更倾向于:A. 建立广泛的社交关系B. 保持一定的社交圈子,深交几位朋友C. 保持低调,不追求过多的社交关系三、职业发展11. 您更倾向于从事以下哪种类型的工作:A. 创新性强,具有挑战性B. 稳定性强,发展空间大C. 适应性强,工作环境舒适12. 您在职业生涯中,更看重以下哪个方面:A. 薪酬待遇B. 个人成长C. 工作环境13. 您在遇到职业瓶颈时,更愿意:A. 转换工作,寻求新的发展机会B. 提升自身能力,突破瓶颈C. 保持现状,等待时机14. 您在团队合作中,更看重以下哪个方面:A. 团队荣誉B. 个人贡献C. 团队氛围15. 您更愿意:A. 接受挑战,追求卓越B. 保持稳定,追求平凡C. 平衡工作与生活,追求幸福四、价值观16. 您认为以下哪个价值观在职场中最为重要:A. 诚信B. 专业C. 团队合作17. 您在职场中,更看重以下哪个方面:A. 个人成就B. 企业利益C. 社会责任18. 您认为以下哪个行为在职场中最为可取:A. 诚实守信B. 创新突破C. 低调务实19. 您在职场中,更看重以下哪个方面:A. 个人能力B. 团队协作C. 企业文化20. 您认为以下哪个价值观在职场中最为重要:A. 责任感B. 成就感C. 幸福感请您根据自己的实际情况,选择每个问题的最符合选项。
华为校园招聘上机题
目录样题-初级题:从考试成绩中划出及格线 (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、输入一串数,以','分隔,输出所有数中去掉最大值、最小值之后剩下的个数。
华为上机笔试题——BYXianNv
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的长度。
华为校园招聘上机笔试题
华为校园招聘上机笔试题华为校园招聘上机笔试题上机时间两小时,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个字符相同。
华为招聘的试题
注意:如对考试题目有任何疑问,请举手与现场监考人员联系,监考人员会协助跟出题人员澄清疑问)所有答案写答题纸上,写试卷纸上无效。
[详见考试说明]第一部分:客观题客观题部分,共30分,建议这部分答题用40分钟。
一、单选题(每题1分,共10题)1、下列那种不是任务间通讯的方式____A)信号量B)消息队列C)共享内存D)中断2、以下叙述中不正确的是____A)在不同的函数中可以使用相同名字的变量B)函数中的形式参数是局部变量C)在一个函数内定义的变量只在本函数范围内有效D)在一个函数内的复合语句中定义的变量在本函数范围内有效(复合语句指函数中的成对括号构成的代码)3、若整型变量a的值为50,则c语言表达式a>>2的值为____A)50B) 25C) 12.5D) 124、下面方法中,哪一个不能很好解决死锁问题?____A) 给每一个进程不同的优先级,并按照优先级的大小决定在资源队列中的顺序。
B) 让进程开始运行时获得全部的资源,在不能获得全部资源时重新启动。
C) 给资源编号,并要求进程按照编号的顺序申请资源。
D) 提供超时机制,在进程进入资源等待后一段随机时间内重起进程。
5、下面的程序是对二叉树的前序遍历,请写出下面空格中的语句____其中,Visit函数表示访问节点数据。
void PreOrder(BinaryTreeNode *t){// 对* t进行前序遍历if (t){(_1_);(_2_);(_3_);}}A) PreOrder(t->LeftChild) Visit(t) PreOrder(t->RightChild)B) PreOrder(t->LeftChild) PreOrder(t->RightChild) Visit(t)C) Visit(t) PreOrder(t->RightChild) PreOrder(t->LeftChild)D) Visit(t) PreOrder(t->LeftChild) PreOrder(t->RightChild)6、已知int a[]={10,9,8,7,6}; int *p = a;则(*(p+1))*(p+2)[2]的值是____A)72B)80C)54D)有语法错误7、下面关于new 和delete操作符的说法,哪个是不正确的____A)使用new操作符,可以动态分配全局堆中的内存资源B)若p的类型已由A*强制转换为void *,那么执行语句delete p;时,类A的析构函数不会被调用C)new和delete通常成对地使用D)执行语句A * p=new A[100];时,类A的构造函数只会被调用1次8、如下代码,正确的是____class CExample{public:static void Func( void* pobj );private:char m_cTest;};A) void CExamle::Func( void* pobj ){m_cTest = ( char )0;}B) 在Func内部不能访问类的私有成员m_cTest;C) void CExample::Func( void* pobj ){CExample *pThis;pThis = dynamic_cast< CExample* >( pobj );ASSERT( NULL != pThis );pThis->m_cTest = ( char )0;}D) void CExample::Func( void* pobj ){CExample::m_cTest = ( char )0;}9、对于下面的类CA,在32位计算机、4字节对齐的情况下,sizeof(CA) = ____ class CA{public:CA();virtual ~CA();private:int m_iTime;public:int GetTime();int SetTime(int iTime);};A)16B)12C)8D)410、对于下面的代码,描述正确的是____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分,共10题,少选可得1分)11、关于变量定义,下列说法正确的有____A)公共变量是增大模块间耦合的原因之一,故应减少没必要的公共变量以降低模块间的耦合度B)命名中若使用特殊约定或缩写,则要有注释说明C)变量名的命名要清晰、明了,有明确含义D)除非必要,不要用数字或较奇怪的字符来定义标识符12、请找出以下程序中的错误,不考虑命名规范和排版的问题____long strlen(char *p ){ASSERT(p);long i = 0;while (*p){i++;p++;}return i;}ShowErrMsg(char *msg){int nCount = 1; -------Aif (msg == NULL) return;char *pBuf = (char *)malloc(256); -------Bif (pBuf == NULL) return;if ( strlen(msg) > 256 ){strncpy(pBuf, msg, 256);pBuf[256] = ‘\0’;}else{strcpy( pBuf, msg); -------C}printf( "No. %d: This message is: %s\n", nCount, pBuf );nCount++;pBuf = NULL; -------D}13、下列代码中对const关键字的使用是正确并有意义的____class SomeClass{private:int m_nValue;char* m_pszName;public:SomeClass(int id);int GetValue() const; //---------------- Avoid SetValue(const int value); //------ Bconst char* GetName(); //---------------- Cvoid SetName(const char* pszName); //--- Dvoid DoSomething(char* const p); //------ E}14、多任务系统中,任务所具有的基本状态有____A)就绪B)执行C)阻塞D)挂起15、下列说明哪些是正确的____A)一个类必须至少提供一个构造函数B)缺省构造函数是指不用指定任何实参就能被调用的构造函数,这并不意味着它不能接受实参C)父类的构造函数肯定在子类的构造函数之前被调用D)如果一个类不显式地提供缺省构造函数则编译器会自动生成一个以初始化其数据成员E)子类的析构函数中要调用父类的析构函数以确保父类的成员被释放F)构造和析构函数中不应该调用虚函数16、在一个老版本代码中已经声明了myfunc函数:int myfunc(int a,double b),小李在开发新版本时增加了如下几个函数声明,请问哪些不是对老版本函数的重载声明____ A)int myfunc(int c, double d)B)int myfunc(int a,double b=0.5)C)double myfunc(int , double )D)int myfunc(double b,int a)17、类B的析构函数不为virtual,类D是类B的子类,并且是public继承的,B和D都定义了缺省的构造函数,下面正确代码段有____A)B* pb = new B;delete pb;B)D* pd = new D;delete pd;C)B* pb = new D;delete pb;D)D d;B* pb = &d;18、假定类CA的声明如下, 下面哪些语句声明了a是CA的对象____class CA{public:CA ();CA (int iValue);... ...};A)CA a;B)CA a();C)CA a(100);D)CA a = 100;19、下面关于指针和引用的说法正确的是____A)指针变量存放的是内存地址,并且可以置为0B)定义引用变量时,必须同时指明具体被引用的对象或变量C)使用取地址操作符,可以取得指针变量自身的地址,但取不到引用变量自身的地址D)类中的数据成员可以是指针变量,但不能是引用变量20、下列代码中正确的有____A)char* p = malloc(100); free(p);B)char* p = malloc(100); delete p;C)char* p = new char[100]; delete p;D)char* p = new char[100]; delete[] p;E)char p[100]; delete[] p;F)char p[100]; delete p[100];三、编程题(共2题,第1题40分,第2题30分。
华为_机考_答案(精选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。
华为招聘上机题
样题-初级题:从考试成绩中划出及格线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、输入一串数,以','分隔,输出所有数中去掉最大值、最小值之后剩下的个数。
(其中最大值与最小值可能有多个)Smple input:3,3,5,3,6,9,7,9 Sample outPut: 38.29从5个人中选取2个人作为礼仪2、要从5个人中选取2个人作为礼仪,其中每个人的身高范围为160-190,要求2个人的身高差值最小(如果差值相同的话,选取其中最高的两人),以升序输出两个人的身高。
【试题】从网上整理的华为机试题目
【关键字】试题一、华为机试——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格,每个数字的值表示你这个位置可以跳跃的最大长度。
华为上机题整理大全及答案解析
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. 华为公司是全球领先的信息与通信技术(ICT)解决方案提供商,以下哪项不是华为的主要业务领域?
A. 电信网络
B. 云计算服务
C. 汽车制造
D. 企业网络
答案:C
2. 华为的核心价值观包括以下哪项?
A. 客户至上
B. 员工为本
C. 创新驱动
D. 利润优先
答案:A
3. 华为的企业文化强调的是?
A. 个人英雄主义
B. 团队合作
C. 竞争至上
D. 利润最大化
答案:B
4. 华为在全球范围内拥有多少个研发中心?
A. 10个
C. 30个
D. 40个
答案:D
5. 华为的智能手机品牌是?
A. 荣耀
B. 华为
C. 苹果
D. 三星
答案:B
6. 华为在5G技术方面的发展处于什么水平?
A. 行业领先
B. 行业跟随
C. 行业滞后
D. 尚未涉足
答案:A
7. 华为的全球员工总数超过多少人?
A. 10万
B. 20万
C. 30万
D. 40万
答案:C
8. 华为的创始人是谁?
B. 马云
C. 马化腾
D. 李彦宏
答案:A
9. 华为的总部位于哪个城市?
A. 北京
B. 上海
C. 深圳
D. 广州
答案:C
10. 华为在国际市场上的主要竞争对手包括以下哪些公司?
A. 爱立信
B. 诺基亚
C. 苹果
D. 所有以上选项
答案:D。
华为校招历年机试题目
华为历年笔试题目总结因最近要参加华为的招聘,便从网上搜集了一些华为笔试历年题目,现总结献给大家,因本人非软件出生,水平有限,仅供参考,若有误处,请海涵。
1、字符串问题∙问题描述:把一个字符串中的除大写字母、小写字母和数字字符之外的其他字符都去掉,输出新字符串。
∙要求实现函数:void my_string(char* input, char* output)【输入】char* input,输入的字符串【输出】char* output,输出的字符串【返回】无∙示例输入:inp ut = “A*(BC&De+_fg/*”输出:output = “ABCDefg”输入:input = “aB+_9”输出:output = “aB9”程序如下:void my_string(char* input, char* output){int i,j;i=j=0;while(*(input+i)!='\0'){if((*(input+i)>='A'&&*(input+i)<='Z')||(*(input+i)>='a'&&*(input+i)<='z')||(*(input+i)>='0'&&*(input+i)<='9')){*(output+j)=*(input+i);j++;}i++;}*(output+j+1)='\0';}题目描述:输入一个字符串,将其中大写字母转换为对应小写字母之后的第五个字母,若原始大写字母为V~Z, 则转换为对应小写字母的值减21。
其他字符不变,输出转换后的字符串。
例如,对于字母A,则转换为小写字母f;若形参是字母W,则转换为小写字母b要求实现函数:void TransferString(const char * pInputStr, long lInputLen, char * pOutputStr);【输入】pInputStr:输入字符串lInputLen:输入字符串长度【输出】pOutputStr:输出字符串,空间已经开辟好,与输入字符串等长;【注意】只需要完成该函数功能算法,中间不需要有任何IO的输入输出示例输入:“Axs3mWss”输出:“fxs3mbss”void TransferString(const char * pInputStr, long lInputLen, char * pOutputStr){int i=0;for(i=0;i<lInputLen;i++){if(pInputStr[i]>='A'&&pInputStr[i]<'V')pOutputStr[i]=pInputStr[i]+'a'-'A'+5;else if(pInputStr[i]>='V'&&pInputStr[i]<='Z')pOutputStr[i]=pInputStr[i]+'a'-'A'-21;elsepOutputStr[i]=pInputStr[i];}}3. 单词统计题目描述:输入一段英文文本,用程序统计出现频率最高和最低的两个单词;英文文本中仅出现这四类字符:空格( )、英文逗号(,)、英文句号(.)、英文大小写字母(a-z、A-Z)单词之间的分隔符仅考虑这三种:空格( )、英文逗号(,)、英文句号(.);仅大小写不同的单词算同一个单词;如果两个单词出现次数相同,则在文本中首次出现的单词优先返回。
华为校招·硬件技术工程师机考试题及答案
1.(判断题)DRAM上电时存储单元的内容是全0,而Flash上电时存储单元的内容是全1。
(4分)A.正确FLASH可保存2.(判断题)眼图可以用来分析高速信号的码间干扰、抖动、噪声和衰减。
(4分)A.正确3.(判断题)以太网交换机将冲突域限制在每个端口,提高了网络性能。
(4分)4.(判断题)放大电路的输出信号产生非线性失真是由于电路中晶体管的非线性引起的。
(4分)A.正确5.(判断题)1的8位二进制补码是0000_0001,-1的8位二进制补码是1111_1111。
(4分)6.(判断题)洗衣机,电冰箱等家用电器都使用三孔插座,是因为如果不接地,家用电器是不能工作的。
(4分)A.正确7.(判断题)十进制数据0x5a与0xa5的同或运算结果为:0x00。
(4分)8.(判断题)硅二极管的正向导通压降比锗二极管的大(4分)9.(单项选择题)一空气平行板电容器,两级间距为d,充电后板间电压为u。
然后将电源断开,在平板间平行插入一厚度为d/3的金属板。
此时电容器原板间电压变为(4分)A.U/3C.3U/4 但电容的大小不是由Q〔带电量〕或U〔电压〕决定的,即:C=εS/4πkd。
其中,ε是一个常数, S为电容极板的正对面积, d为电容极板的距离, k那么是静电力常量。
而常见的平行板电容器电容为C=εS/d.〔ε为极板间介质的介电常数, S 为极板面积, d为极板间的距离。
〕3电容器的电势能计算公式: E=CU^2/2=QU/210.(单项选择题)8086CPU内部包括哪些单元(4分)A.ALU,EUB.ALU,BIUC.EU,BIUD.ALU,EU,BIU80x86从功能上分执行单元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位物理地址的加法器∑及总线控制电路构成。
华为校园招聘机考试题大全.doc
1 华为校园招聘机考试题总结(厦门大学)1#include <stdio.h>#include <stdlib.h>#include <assert.h>#include <string.h>int delete_sub_str(const char *str,const char *sub_str,char *result) {assert(str != NULL && sub_str != NULL);const char *p,*q;char *t,*temp;p = str;q = sub_str;t = result;int n,count = 0;n = strlen(q);tmep = (char *)malloc(n+1);memset(temp,0x00,n+1);while(*p){memcpy(temp,p,n);if(strcmp(temp,q) == 0 ){count++;memset(temp;0x00,n+1);p = p + n;}else{*t = *p;p++;t++;memset(temp,0x00,n+1);}}free(temp);return count;}int main(){char s[100] = {‘\0’};int num = delete_sub_str(“123abc12de234fg1hi34j123k”,”123”,s); printf(“The number of sub_str is %d\r\n”,num);printf(“The result string is %s\r\n”,s);}2n12 3...n张圆桌周围。
从编号为k到m1m#include<stdio.h>#include<stdlib.h>typedef struct Node{int num;struct Node *next;}LinkList;LinkList *creat(int n){LinkList *p,*q,*head;int i=1;p=(LinkList *)malloc(sizeof(LinkList));p->num=i; 2head=p;for(i=2;i<=n;i++){q=(LinkList *)malloc(sizeof(LinkList));q->num=i;p->next=q;p=q;}p->next=head; /*使链表尾指向链表头形成循环链表*/ return head;}void fun(LinkList *L,int m){int i;LinkList *p,*s,*q;p=L;printf("出列顺序为:");while(p->next!=p){for(i=1;i<m;i++){ q=p;p=p->next;}printf("%5d",p->num);s=p;q->next=p->next;p=p->next;free(s);}printf("%5d\n",p->num);}int main(){LinkList *L;int n, m;n=9;m=5;L=creat(n);fun(L,m);return 0;}3、比较一个数组的元素是否为回文数组#include <stdio.h>#include <string.h>int huiwen(char str[]){int i,len,k=1;len=strlen(str);for(i=0;i<len/2;i++){if(str[i]!=str[len-i-1]){k=1;break;}}if(k==0)printf("%s 不是一个回文数\n",str);elseprintf("%s 是一个回文数\n",str); 3}void main(){char str[100] = {0};int i;int len;printf("Input a string"); /*提示输入Input a string*/ scanf("%s", str); /*scan()函*/ huiwen(str);}4、20•2只比较较短长度数组个数元素。
华为校园招聘笔试题大全
★笔试题大全★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输出该数值,直至全部输出。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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<stdio.h>2. #include<string.h>3. #include<iostream.h>4. #include<conio.h>5. #define N 56.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<N;i++)17. {18. if(judge_type[i]==1)19. {20. expert=expert+score[i];21. number++;22. }23. else dazhong=dazhong+score[i];24. }25. if(number==N)26. {27. zongfen=(int)(expert/N);28. }29. else30.31. {32. expert=(int)(expert/number);33. dazhong=(int)(dazhong/(N-number));34. zongfen=int(0.6*expert+0.4*dazhong);35.36. }37. return zongfen;38.39. }40. int main()41. {42. int score[N];43. int judge_type[N];44. int numberlast=0;45. int i;46. printf("please input the %d score:\n",N);47. for(i=0;i<N;i++)48. scanf("%d",&score[i]);49. printf("please input the level(1:expert,2:dazhong)\n");50. for(i=0;i<N;i++)51. scanf("%d",&judge_type[i]);52. numberlast=cal_score(score,judge_type,N);53. printf("the last score is %d\n",numberlast);54. return 0;55. }运行结果分析:please input the 5 score:90 80 87 89 91please input the level(1:expert,2:dazhong)1 2 1 1 1the last score is 852、给定一个数组input[] ,如果数组长度n为奇数,则将数组中最大的元素放到output[] 数组最中间的位置,如果数组长度n为偶数,则将数组中最大的元素放到output[] 数组中间两个位置偏右的那个位置上,然后再按从大到小的顺序,依次在第一个位置的两边,按照一左一右的顺序,依次存放剩下的数。
例如:input[] = {3, 6, 1, 9, 7} output[] = {3, 7, 9, 6, 1}; input[] = {3, 6, 1, 9, 7, 8} output[] = {1, 6, 8, 9, 7, 3}view plaincopy to clipboardprint?1. #include<stdio.h>2. #include<string.h>3. #include<conio.h>4.5.6.7. v oid sort(int input[], int n, int output[])8. {9. int i,j;10. int k=1;11. int temp;12. int med;13. for(i=0;i<n;i++)14. for(j=0;j<n-i;j++)15. if(input[j]>input[j+1])16. {temp=input[j];input[j]=input[j+1];input[j+1]=temp;}17. if(n%2!=0)18. {19. for(i=0;i<n;i++)20. printf("%2d",input[i]);21. printf("\n");22. med=(n-1)/2;23. output[med]=input[n-1];24. for(i=1;i<=med;i++)25. {26. output[med-i]=input[n-1-k];27. output[med+i]=input[n-2-k];28. k=k+2;29.30. }31. }32. else33. {34.35. for(i=0;i<n;i++)36. printf("%2d",input[i]);37. printf("\n");38. med=n/2;39. output[med]=input[n-1];40. for(i=1;i<=med-1;i++)41. {42. output[med-i]=input[n-1-k];43. output[med+i]=input[n-2-k];44. k=k+2;45. }46. output[0]=input[0];47. }48. for(i=0;i<n;i++)49. printf("%2d",output[i]);50. printf("\n");51. }52.53.54. int main()55. {56. int a[6]={3,6,1,9,7,8};57. int b[6]={0};58. for(int i=0;i<6;i++)59. printf("%2d",a[i]);60. printf("\n");61. sort(a,6,b);62. return 0;63. }运行结果3 6 1 9 7 81 3 6 7 8 91 6 8 9 7 33、操作系统任务调度问题。
操作系统任务分为系统任务和用户任务两种。
其中,系统任务的优先级< 50,用户任务的优先级>= 50且<= 255。
优先级大于255的为非法任务,应予以剔除。
现有一任务队列task[],长度为n,task中的元素值表示任务的优先级,数值越小,优先级越高。
函数scheduler实现如下功能,将task[] 中的任务按照系统任务、用户任务依次存放到system_task[] 数组和user_task[] 数组中(数组中元素的值是任务在task[] 数组中的下标),并且优先级高的任务排在前面,数组元素为-1表示结束。
例如:task[] = {0, 30, 155, 1, 80, 300, 170, 40, 99} system_task[] = {0, 3, 1, 7,-1} user_task[] = {4, 8, 2, 6, -1}函数接口void scheduler(int task[], int n, int system_task[], int user_task[])view plaincopy to clipboardprint?1. #include<stdio.h>2. #include<string.h>3. #include<malloc.h>4. #include<iostream.h>5.6. v oid scheduler1(int task[], int n, int system_task[], int user_task[])7. {8. int i;9. int j=0;10. int *p,*pp,*p_user,*pp_user;11. int index=0;12. int count,count2;13. int min=0;14. int k=0;15. p=(int*)malloc(sizeof(int)*n);16. for(i=0;i<n;i++)17. p[i]=0;18. pp=(int*)malloc(sizeof(int)*n);19. for(i=0;i<n;i++)20. pp[i]=0;21. p_user=(int*)malloc(sizeof(int)*n);22. for(i=0;i<n;i++)23. p_user[i]=0;24. pp_user=(int*)malloc(sizeof(int)*n);25. for(i=0;i<n;i++)26. pp_user[i]=0;27.28. for(i=0;i<n;i++)29. {30. if(task[i]<50)31. {32. {33. system_task[j]=task[i];34. pp[j]=i;。