华为校园招聘电子科大上机题目
华为校园招聘软件研发上机测试题及部分解答+
以下是收集到的两套题(没有添加答案),上机测试只有应聘软件研发的才会碰到。
有的写了点自己的解法,如果大家有好的想法欢迎讨论!大家一起学习嘛!以下是上机考试的一些注意事项:(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[] 数组中间两个位置偏右的那个位置上,然后再按从大到小的顺序,依次在第一个位置的两边,按照一左一右的顺序,依次存放剩下的数。
届华为校园招聘上机考试题
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[] 数组中间两个位置偏右的那个位置上,然后再按从大到小的顺序,依次在第一个位置的两边,按照一左一右的顺序,依次存放剩下的数。
华为校园招聘上机笔试题
华为校园招聘上机笔试题华为校园招聘上机笔试题上机时间两小时,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分。
华为招聘上机题
样题-初级题:从考试成绩中划出及格线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个人的身高差值最小(如果差值相同的话,选取其中最高的两人),以升序输出两个人的身高。
【免费下载】华为校园招聘机试题目及答案
{ //sum_zj是专业评委总分数;sum_dz是大众评委总分数;count1专业评委人
数;count2大众评委人数 int sum_zj=0,sum_dz=0,count1=0,count2=0,r; for(int i=0;i<n;i++) { if(judge_type[i]==1) { sum_zj+=score[i]; count1++; } else { sum_dz+=score[i]; count2++; } } if(count2==0)//无大众评委 { r=int((sum_zj/count1)); } else { r=int((sum_zj/count1)*0.6+(sum_dz/count2)*0.4); } return r;
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电,力根保通据护过生高管产中线工资敷艺料设高试技中卷术资0配料不置试仅技卷可术要以是求解指,决机对吊组电顶在气层进设配行备置继进不电行规保空范护载高高与中中带资资负料料荷试试下卷卷高问总中题体资,配料而置试且时卷可,调保需控障要试各在验类最;管大对路限设习度备题内进到来行位确调。保整在机使管组其路高在敷中正设资常过料工程试况中卷下,安与要全过加,度强并工看且作护尽下关可都于能可管地以路缩正高小常中故工资障作料高;试中对卷资于连料继接试电管卷保口破护处坏进理范行高围整中,核资或对料者定试对值卷某,弯些审扁异核度常与固高校定中对盒资图位料纸置试.,卷保编工护写况层复进防杂行腐设自跨备动接与处地装理线置,弯高尤曲中其半资要径料避标试免高卷错等调误,试高要方中求案资技,料术编试5交写卷、底重保电。要护气管设装设线备置备4敷高动调、设中作试电技资,高气术料并中课3中试且资件、包卷拒料中管含试绝试调路线验动卷试敷槽方作技设、案,术技管以来术架及避等系免多统不项启必方动要式方高,案中为;资解对料决整试高套卷中启突语动然文过停电程机气中。课高因件中此中资,管料电壁试力薄卷高、电中接气资口设料不备试严进卷等行保问调护题试装,工置合作调理并试利且技用进术管行,线过要敷关求设运电技行力术高保。中护线资装缆料置敷试做设卷到原技准则术确:指灵在导活分。。线对对盒于于处调差,试动当过保不程护同中装电高置压中高回资中路料资交试料叉卷试时技卷,术调应问试采题技用,术金作是属为指隔调发板试电进人机行员一隔,变开需压处要器理在组;事在同前发一掌生线握内槽图部内纸故,资障强料时电、,回设需路备要须制进同造行时厂外切家部断出电习具源题高高电中中源资资,料料线试试缆卷卷敷试切设验除完报从毕告而,与采要相用进关高行技中检术资查资料和料试检,卷测并主处且要理了保。解护现装场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。
2012华为最全应届生招聘上机考试与完全答案
#include<string.h>
#define LENGTH 13
int verifyMsisdn(char *inMsisdn)
{
char *pchar=NULL;
assert(inMsisdn!=NULL);
if(LENGTH==strlen(inMsisdn))
month=(input[10]-'0')*10+(input[11]-'0');//取数值,不是取字符 减去字符0的ascii码值
day=(input[12]-'0')*10+(input[13]-'0');
if(input[len-1]!='x'&&(input[len-1]<'0'||input[len-1]>'9'))
int array_compare(int len1, int array1[], int len2, int array2[])
/*
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int verifyIDCard(char* input)
{
int i,k=0,y=0;
int len=strlen(input);
int year,month,day;
请实现身份证号码合法性判断的函数。除满足以上要求外,需要对持有人生日的年、月、日信息进行校验。年份大于等于1900年,小于等于2100年。需要考虑闰年、大小月的情况。所谓闰年,能被4整除且不能被100整除 或 能被400整除的年份,闰年的2月份为29天,非闰年的2月份为28天。其他情况的合法性校验,考生不用考虑。
华为2016校园招聘上机笔试题及答案
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
} } } int main() { vector<string> mscanf; vector<int> times; string str; while (getline(cin,str)) { if (str.length()==0) { break; } string info=str.substr(str.rfind("\\")+1); string partinfo=info.substr(0,info.rfind(" ")); if(partinfo.length()>16) { partinfo=partinfo.substr(partinfo.length()-16,16); info=partinfo+str.substr(str.rfind(" ")); } int n=0; for (int i=0;i<mscanf.size();i++) { if(strcmp(mscanf[i].c_str(),info.c_str())==0) {
54 55 56 57 58 59 60 61 62 63 64 65 66
int a,b; for(;m--;){ scanf(" %c%d%d",&order,&a,&b); if(order=='U'){ update(a,b,1,1,n); }else if(order=='Q'){ if(a>b)swap(a,b); printf("%d\n",querymax(a,b,1,1,n)); } } } return 0; }
华为面试试题题目及面试过程汇总
华为面试试题题目及面试过程汇总【西安华为终端有限公司CBG-电商财务专员面试:深圳】西安华为终端有限公司面试这次面试总共花了1天。
面试形式包括1对1面试、人格测试、背景调查、其它。
面试过程1.通过智联招聘获得了面试机会2.先是人力面试,问一些上一家离职情况,是否打算在深圳,薪资福利需求之类的3.部门内部直属领导面试,问了之前的工作岗位,工作内容,职责等等,然后是你自己的规划这种,性格爱好之类的。
最后是团队领导面试,问题和上一个一样的流程,没什么新意。
面试过程中面试官提了哪些问题是否接触过数据库SQL语句,曾经做过怎样的财务分析工作,为何离开上一家单位(我答加班太多,经常加班到深夜),面试官说:我们公司加班也很多,年后到现在都没有完整的放过假,我们每天要处理很多的数据,我们的财务报表很长,有好几百行。
部门一部分女员工休产假去了,造成了人员不足,得答应两年内不能休产假(这点我可以答应了)。
后来人事打电话给我说面试通过了,最后没有去还是因为加班很多,而且问过人事对方表示没有加班工资,so。
有关面试流程的相关细节问答你是通过何种渠道获得这次面试机会的?答:社会招聘整个面试花费了多长时间?(从接到面试消息到得到结果)答:1天面试形式包括哪些?答:1对1面试、人格测试、背景调查、其它你觉得这次面试的难度如何?答:简单你对这次面试的整体感觉怎么样?答:一般这次面试的结果如何?答:面试成功且工作【华为海思数字ic设计工程师面试:上海】这次面试总共花了14天。
面试形式包括电话面试、1对1面试、人格测试。
面试过程参加了华为举办的全国研究生数学建模比赛,获奖后参加华为的fx计划,校园招聘在经过40+5的选择题笔试后,进行了一轮性格测试,之后,由于疫情影响,后面的三轮面试均是采用网络视频面试的方式一二三面,两轮技术面和一轮主管面,一、二轮面试项目问的比较细致,在了解整个项目的同时,比较关注个人负责的部门,包括硬件架构、数据类型以及一些简单的数电、ASIC知识,没有手撕,三轮主管面主要简单了解项目,问了问个人情况前后大约有两个星期的时间,目前处于等消息的状态,希望能过啊啊啊整体而言,笔试题多刷刷题就能过,面试的话,要对自己的项目足够了解,有些项目因为做的比较早,需要对项目进行回滚复习,面试官都很好,难度正常面试过程中面试官提了哪些问题1.自我介绍,问了本科主要学习的课程和研究生主要学习的课程,考研or保研2.简单介绍一下三个项目(简历里面的),主要问了正在进行的项目一,项目的整体情况,自己负责的部分,整个设计的流程,流程中的难点,学习到了什么3.问了原码、补码、反码相关知识,问了三分频电路的设计、问了异步信号处理方法、问了IC设计流程、问了异步FIFO的深度是如何计算的4.问了下对公司的看法,对加班的看法5.反问,有什么想问的有关面试流程的相关细节问答你是通过何种渠道获得这次面试机会的?答:校园招聘整个面试花费了多长时间?(从接到面试消息到得到结果)答:14天面试形式包括哪些?答:电话面试、1对1面试、人格测试你觉得这次面试的难度如何?答:难度一般你对这次面试的整体感觉怎么样?答:很好这次面试的结果如何?答:面试还未出结果【华为技术有限公司软件开发工程师面试:深圳】这次面试总共花了0.5天。
华为校招历年机试题目
华为历年笔试题目总结因最近要参加华为的招聘,便从网上搜集了一些华为笔试历年题目,现总结献给大家,因本人非软件出生,水平有限,仅供参考,若有误处,请海涵。
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)单词之间的分隔符仅考虑这三种:空格( )、英文逗号(,)、英文句号(.);仅大小写不同的单词算同一个单词;如果两个单词出现次数相同,则在文本中首次出现的单词优先返回。
华为校园招聘机考试题大全.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 华为校园招聘机考试题总结(厦门大学)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);}2、约瑟夫环是一个数学的应用问题已知n个人以编号12 3...n分别表示围坐在一张圆桌四周。
从编号为k的人开始报数数到m的那个人出列他的下一个人又从1开始报数数到m的那个人又出列依此规律重复下去直到圆桌四周的人所有出列。
2022年电子科技大学工作人员招聘考试试题及答案
2022年电子科技大学工作人员招聘考试试题及答案(满分100分时间120分钟)一、单选题(每题只有一个正确答案,答错、不答或多答均不得分)1.根据历史常识判断,以下表述正确的是()。
A.南宋时期,金、宋以黄河、大散关一线为疆域分界线B.商鞅变法以军功制打破世袭制,以分封制取代郡县制,成功打击了封建旧贵族利益C.随着楚汉相争的结束,中国历史上的战国时期也终于走到了尽头D.陈胜吴广大泽乡起义喊出了中国农民起义的第一声口号“王侯将相,宁有种乎”【答案】:D2.古埃及是世界四大文明古国之一,有着悠久而厚重的历史与文化,在世界文化体系内占有重要地位。
下列关于古埃及说法不正确的是()。
A.出台《汉谟拉比法典》B.制定太阳历C.国王被称为“法老”D.位于尼罗河流域【答案】:A3.向别人介绍自己得弟弟妹妹应当用下面哪种称谓?A.舍弟舍妹、息弟息妹B.家弟家妹【答案】:A4.“春蚕到死丝方尽,蜡炬成灰泪始干”体现了职业义务的()。
A.无量性特点B.奋斗性特点1/ 10C.勤劳性特点D.利他性特点【答案】:D5.陈忠实有一部小说被称为“民族的秘史”,它是()。
A.《白鹿原》B.《红高粱》C.《平凡的世界》D.《活着》【答案】:A6.以黄金作为本位币的货币制度称为()。
A.金本位制B.金块本位制C.生金本位制D.金汇兑本位制【答案】:A7.关于区域经济一体化,下列说法不正确的是()。
A.欧盟前身欧共体,是欧洲煤钢共同体、欧洲经济共同体和欧洲原子能共同体的总称B.国际性区域经济一体化的形成动机是为了避免彼此的伤害,共同排斥外来的竞争,是激烈的垄断竞争的产物C.亚太经合组织成立于1989年,是亚太地区最具影响力的经济合作官方论坛D.东南亚国家联盟简称东盟,“东盟会议”领导人会议指东盟10国领导人与中国、日本与印度3国领导人的会【答案】:D8.资本主义的生产过程具有两重性,其中作为资本主义生产过程的主要方面是指()。
A.价值增殖过程B.劳动过程2/ 10C.再生产资本主义生产关系的过程D.价值形成过程【答案】:A9.商品诸因素中反映人与自然关系的是()A.价值B.交换价值C.价格D.使用价值【答案】:D10.下列不是来源于史实的成语是()。
华为公司校园招聘群面题目
华为公司校园招聘群面题目我也群面过被刷~自己过过出的一点过过~第一~不要太突出。
自是过多思过也好的人~在群面的过候有点过过过了~要表过的淡定一点~过过不要太多~但是要有理个个条第二~要善于取过人的意过和过过大家的意过。
过人的过点不要打~使是过过的过点~我就老犯过。
听断即个第三‘过过木管要过着过方。
十人分过~先逐做自我介过~过过过过~人性格过缺点。
在过一过过出过一个两个划个会些过力面过~过疑过自己过缺点的描述~一定要住~把自己的过过过了~那过过追你沉气求完美就是缺点的最好就过过了。
然后是过过~过过过用曹操、过过、过葛亮、过过过过理~排出先后过序。
刘分过过过15~分过过述~分过过小过其他人过过充。
据过也有过行过过的~如果过意过一致~两会41有一过的意过被修改了~然后过过。
主要考过的过过合作~不是技过过的~最好表过主吧过一点~取些分的。
会争过过完了之后出去等待面过官交流~然后再过去只过过人提过~过过一定要住机~个抓会过提过~有可能是意过不过一~表过不好就直接你了~过不如不的同。
我吱声学呢当pass过有想到过点~回才明白了~有一面过官在过力面过过我印象不好~所以外人没来个另两过我提过~答的不太好~过果有过我吃午过~过我回等通知。
没来大就过些~希望过后去的同有些助概吧学帮技过面主要就是过过过目情~有可能过的比过深入~过是太过过了~我第一面答的不是好~之后面过官过况估吧并很我做一道过过~用代过过过所过的过路且出波形过~过好过目做的过行~之后面过官就过等待二面。
并画群是每批个两会你来人~分成过~首先过流过行自我介过~面过官提一些要求~比如,的过缺点~过好~未P10年过等等。
最好是按照面过官的要求做自我介过~且过过要控制好~不要超过~我过那批就有超过者被面过划并3-5官打的。
之后面过官过过价一下位的介过过的印象最深~过过出理由。
做完过过就过入所过的正过了~我过那断会你哪你并批是过个你过过~过过出人过交往中过过重要性的排序。
华为校园招聘上机题目约瑟夫问题
华为校园招聘上机题目约瑟夫问题
第三轮计数出列数字为 1,计数值更新 m=1,出列后数列为 4,从 数值 4 所在位置开始计数
最终一轮计数出列数字为 4,计数过程完成。
输入一个由随机数组成的数列(数列中每个数均是大于 0 的整数,
输出数值出列顺序为:2,3,1,4。
长度已知),和初始计数值 m。从数列首位置开始计数,计数到 m 后,
要求实现函数:
将数列该位置数值替换计数值 m,并将数列该位置数值出列,然后从下
void array_iterate(int len, int input_array[], int m, int
一位置从新开始计数,直到数列全部数值出列为止。假如计数更新 m=3,出列后数列为 1,4,
输出:output_array[] = {2,3,1,4}
从数值 1 所在位置开始计数
魏
第1页共2页
本文格式为 Word 版,下载可任意编辑
问题分析:模拟一个环形的回路,最简单想到的是循环队列。用一 维数组来模拟循环队列。冗杂一点的可以采纳循环单链表进行模拟。
【输出】 int output_array[]:输出的数值出列顺序
始计数(数值 3 所在位置)
【返回】 无
第一轮计数出列数字为 2,计数值更新 m=2,出列后数列为 3,1,4,
示例:
从数值 4 所在位置从新开始计数
输入:int input_array[] = {3,1,2,4},int len = 4, m=7
此题采纳数组模拟循环队列,关键的问题在于如何确定节点位置。 endIndex = (startIndex+m-1)%len;
实现如下: void array_iterate(int len, int input_array[], int m, int output_array[]){ if(len<1 || input_array==NULL || m<1 ||output_array ==NULL)return; int startIndex =0; int endIndex; int outIndex=0; while(len) { endIndex = (startIndex+m-1)%len; // 找出移除元素的位置 m = input_array[endIndex ]; output_array[outIndex++] = input_array[endIndex]; //删除 endIndex 位置的元素,将其后的元素向前移动 for(int i=endIndex;iinput_array[i] = input_array[i+1]; --len; //从移除 元素的下一个元素开始循环 startIndex = endIndex; }}
华为2016校园招聘上机笔试题及答案
然后对每一个小块,我们除了改掉相应位置的值,还要额外记录一下整个小块的最大值。 如果我更新的时候,那个小块的最大值增大,那很简单,最大值也增大了。 如果把最大值改小了呢?为了正确性,只能把整个小块扫一遍,重新算出最大值了。 所以,修改的复杂度是 O(sqrt(n)) 现在看查询。我们要充分利用分小块以后的信息。 比如要查询 2 到 9 的最大值。按之前最朴素的暴力的做法,我要访问 2、3、4、5、6、7、8、9 现在有小块的最大值信息了,我只要判断每个小块是否在查询区间内,不在的没用,一部分在的,就暴力查找,如果是完整在查询区间内的,我们就利 用之前算好的这个小块内的最大值。 所以,分块的情况下,查询 2 到 9 的最大值,需要看看 2、3,以及 4~6 的最大值,7~9 的最大值。 很容易证明,查询的复杂度是 O(sqrt(n))的(最坏是 sqrt(n)个块全部要用,左右 2 边只盖住 sqrt(n)-1 个数,要暴力遍历过去) //TODO:在这里补上分块法的代码
老师想知道从某某同学当中,分数最高的是多少,现在请你编程模拟老师的询问。当然,老师有时候需要更新某位同学的成绩. 先来说说这题的 3 种做法: 最简单的就是暴力了。每次查询直接做。 修改复杂度 O(1),查询复杂度 O(N)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
if ( L <= m ) lans=querymax ( L , R , p << 1 , l , m ) ; if ( m < R ) rans=querymax ( L , R , p << 1 | 1 , m + 1 , r ) ; if(lans==-1)return rans; if(rans==-1)return lans; return max(lans,rans); } void update(int idx,int value,int p,int l,int r){ if(l==r&&l==idx){ maxarr[p]=value; return; } int m = ( l + r ) >> 1 ; if ( idx <= m ) update( idx, value, p << 1, l, m ); if ( m < idx ) update( idx, value, p << 1|1, m+1, r ); maxarr[p]=max(maxarr[p<<1],maxarr[p<<1|1]); } int main(){ int n,m; while(~scanf("%d%d",&n,&m)){ for(int i=1;i<=n;i++){ scanf("%d",&data[i]); } build(1,1,n); char order;
华为校招技术类机试题及解题思路
华为校招技术类机试题及解题思路职位类型:技术类机试时间: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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
华为校园招聘电子科大上机题目
一.题目描述(60分):通过键盘输入一串小写字母(a~z)组成的字符串。
请编写一个字符串过滤程序,若字符串中出现多个
相同的字符,将非首次出现的字符过滤掉。
比如字符串“abacacde”过滤结果为“abcde”。
要求实现函数:void stringFilter(const char *pInputStr, long lInputLen, char *pOutputStr); 【输入】
pInputStr:输入字符串 lInputLen:输入字符串长度
【输出】
pOutputStr:输出字符串,空间已经开辟好,与输入字符串
等长;【注意】
只需要完成该函数功能算法,中间不需要有任何IO的输入输
出示例输入:“deefd” 输出:“def” 输入:“afafafaf”
输出:“af” 输入:“pppppppp” 输出:“p” main函数已经
隐藏,这里保留给用户的测试入口,在这里测试你的实现函数,
可以调用printf打印输出当前你可以使用其他方法测试,只要
保证最终程序能正确执行即可,该函数实现可以任意修改,但是
不要改变函数原型。
一定要保证编译运行不受影响。
二.题目描述(40分):通过键盘输入一串小写字母(a~z)组成的字符串。
请编写一个字符串压缩程序,将字符串中连续出席
的重复字母进行压缩,并输出压缩后的字符串。
压缩规则:
1.仅压缩连续重复出现的字符。
比如字符串“abcbc“由于无连续重复字符,压缩后的字符串还是“abcbc“。
2.压缩字段的格式为“字符重复的次数+字符“。
例如:字符串“xxxyyyyyyz“压缩后就成为“3x6yz“。
要求实现函数: void stringZip(const char *pInputStr, long lInputLen, char *pOutputStr); 【输入】
pInputStr:输入字符串 lInputLen:输入字符串长度
【输出】
pOutputStr:输出字符串,空间已经开辟好,与输入字符串等长;【注意】
只需要完成该函数功能算法,中间不需要有任何IO的输入输出示例输入:“cccddecc” 输出:“3c2de2c” 输入:“adef” 输出:“adef” 输入:“pppppppp” 输出:“8p”
三.题目描述(50分):通过键盘输入100以内正整数的加.减运算式,请编写一个程序输出运算结果字符串。
输入字符串的格式为:“操作数1 运算符操作数2”,“操作数”与“运算符”之间以一个空格隔开。
补充说明:
1.操作数为正整数,不需要考虑计算结果溢出的情况。
2.若输入算式格式错误,输出结果为“0”。
要求实现函数: void arithmetic(const char *pInputStr, long lInputLen, char *pOutputStr); 【输入】
pInputStr:输入字符串 lInputLen:输入字符串长度
【输出】
pOutputStr:输出字符串,空间已经开辟好,与输入字符串等长;【注意】
只需要完成该函数功能算法,中间不需要有任何IO的输入输出示例输入:“4 +7” 输出:“11” 输入:“43” 输入:“9 ++7” 输出:“0” 注:格式错误 [cpp] view plaincopyprint?
///////////////////////////////////////////////////////// /////////////////华为第一题19:19-19:3617分钟 #include
#include using namespace std; bool g_flag[26]; void stringFilter(const char *pInputStr, long lInputLen, char *pOutputStr)
{ assert(pInputStr != NULL); int i = 0; if (pInputStr == NULL || lInputLen #include #include #include //bool
g_flag[26]; void stringFilter(const char *pInputStr, long lInputLen, char *pOutputStr)
{ char flag[26]; memset(flag, 0,26);
assert(pInputStr != NULL int i = 0; const char *p = pInputStr; while(*p != \0 )
{ if (flag[(*p a ] =1; p++; } } pOutputStr[i] = \0 ; } int main()
{ char input[] = “a“; char output[sizeof(input)]; printf(“%d\n“, strlen(input));
stringFilter(input,strlen(input),output);
printf(“result:%s\n“, output); return 0; } [cpp] view plaincopyprint?
/////////////////////////////////////////////////////////
/////////////////华为第二题19:401)
p++; } if (num >1)
{ int size = 0; int temp = num; while(num)
//计算位数 { size++; num /=10; } num =1; for (int j = size; j > 0; j--)
{ pOutputStr[i+j-1] = 0 + temp%10; temp /=10; } i
+=size; pOutputStr[i++] = *(p-1);
p++; }else{ pOutputStr[i++] = *(p-1); p++; } }
pOutputStr[i] = \0 ; } int main()
{ char input[] = “cccddecc“; char *output = new
char[strlen(input)
+1]; stringZip(input,strlen(input),output); cout
using namespace std; void arithmetic(const char
*pInputStr, long lInputLen, char *pOutputStr)
{ const char *input = pInputStr; char *output = pOutputStr; int sum = 0; int operator1 = 0; int operator2 = 0; char *temp = new char[5]; char *ope = temp;
while(*input != )
//获得操作数1 { sum = sum*10 + (*input++ 0 ); } operator2 = sum; sum = 0; switch (*ope)
{ case + :itoa(operator1+operator2,pOutputStr,10); break; caseoperator2,pOutputStr,10); break; default:
*output++ = 0 ; *output = \0 ; return; } } int main() { char input[] = “4 -7“; char output[] = “ “; arithmetic(input,strlen(input),output);
cout<<output<<endl; return 0; }。