华为校园招聘电子科大上机题目

合集下载

华为校园招聘软件研发上机测试题及部分解答+

华为校园招聘软件研发上机测试题及部分解答+

以下是收集到的两套题(没有添加答案),上机测试只有应聘软件研发的才会碰到。

有的写了点自己的解法,如果大家有好的想法欢迎讨论!大家一起学习嘛!以下是上机考试的一些注意事项:(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华为最全应届生招聘上机考试与完全答案

2012华为最全应届生招聘上机考试与完全答案
#include<assert.h>
#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校园招聘上机笔试题及答案

华为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; }
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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; }。

相关文档
最新文档