华为机试题及答案_第1页
华为机试题及答案_第2页
华为机试题及答案_第3页
华为机试题及答案_第4页
华为机试题及答案_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、华为机试题及答案1、通过键盘输入任意一个字符串序列,字符串可能包含多个子串,子串以空格分隔。请编写一个程序,自动分离出各个子串,并使用 将其分隔,并且在最后 , 也补充一个 并将子串存储。 , 测试:输入:“ abc def gh id”输出: “ abc,def,gh,i,d, ”#include#includevoid DivideString(const char *pInputStr, long lInputLen, char *pOutputStr)int i=0,j=0;int flag=0;while(pInputStri= )i+;for(;ib,b-c,冲z,z-a;若输入的

2、字符串连续出现两个字母相同时,后一 个字母需要连续转换2次。例如:aa转换为bc, zz转换为ab;当连续相同字 母超过两个时,第三个出现的字母按第一次出现算。测试:输入:char*input=abbbcd 输出:char*output=bcdcde#include#includevoid convert(char *input,char* output)int i;for(i=0;istrlen(input);i+)if(i=0)outputi=inputi+1;if(outputi=123)outputi=97;elseif(inputi!=inputi-1)outputi=inputi+

3、1;if(outputi=123)outputi=97;elseoutputi=inputi+2;if(outputi=123)outputi=97;if(outputi=124)outputi=98;outputi+1=0;int main()cha门n20=asdfzzxzxz;char on20;/gets(in);convert(in,on);printf(%s,on);return 0;3、通过键盘输入一串小写字母(az)1&成的字符串。请编写一个字符串过滤程序, 若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。测试:输入:“afafafaf ” 输出:“af”#includ

4、e#includevoid stringFilter(const char *pInputStr, long lInputLen, char *pOutputStr)int i,j,count;int k=0;for(i=0;istrlen(pInputStr);i+)count=0;for(j=0;jstrlen(pOutputStr);j+)if(pInputStri=pOutputStrj)count+;if(count=0)pOutputStrk+=pInputStri;pOutputStrk=0;int main()char in20=aabbccabacddsads;char on

5、20;/gets(in);stringFilter(in,strlen(in),on);printf(%s,on);return 0;4、通过键盘输入一串小写字母(az)fl成的字符串。请编写一个字符串压缩程序, 将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。测试:输入:“cccddecc” 输出:“3c2de2c”#include#includevoid stringZip(const char *pInputStr, long lInputLen, char *pOutputStr)int i,j=0,num=0;int k=0;for(i=0;i1)pOutputStrj+

6、=(char)num+0;pOutputStrj+=pInputStri-1;num=1;elsenum+;pOutputStrj=0;int main()char in20=ccddecc;char on20;/gets(in);stringZip(in,strlen(in),on);printf(%s,on);return 0;5、通过键盘输入100以内正整数的加、减运算式,请编写一个程序输出运算结 果字符串。输入字符串的格式为:操作数1运算符 操作数2,操作数”与运算符”之间以一个空格隔开。测试:输入:“4 7”输出:-3”#include#include #includevoid ar

7、ithmetic(const char *pInputStr, long lInputLen, char *pOutputStr) int i,count=0,re=0;int x,y,z;int num2=0; char op;for(i=0;i=0&pInputStr冈=9)num0=num0*10+pInputStrx-0; else pOutputStr0=0; pOutputStr1=0; return;for(y=x+1;pInputStry!= ;y+)if(y-x-1!=1)pOutputStr0=0;pOutputStr1=0; return ;elseif(pInputSt

8、ry-1!=+&pInputStry-1!=-) pOutputStr0=0; pOutputStr1=0; return; else op=pInputStry-1;for(z=y+1;z=0&pInputStrz=9)num1=num1*10+pInputStrz-0; else pOutputStr0=0; pOutputStr1=0; return;if(op=+) re=num0+num1;else re=num0-num1;itoa(re,pOutputStr,10);int main()char in20;char on20;gets(in);arithmetic(in,strl

9、en(in),on); printf(%s,on);return 0;6、选秀节目打分,分为专家评委和大众评委,score口数组里面存储每个评委打 的分数,judge_type口里存储与 score口数组对应的评委类别,judge_typei= 1,表示专家评委,judge_typei = 2,表示大众评委,n表示评委总数。打分规 则如下:专家评委和大众H委的分数先分别取一个平均分(平均分取整),然后,总分=专家评委平均分 * 0.6 +大众评委* 0.4 ,总分取整。如果没有大众评 委,则总分=专家评委平均分,总分取整。函数最终返回选手得分。#include#include#includei

10、nt cal_score(int score口,int judge_type口,int n) 一一int i=0,gscore;int pro=0,pub=0;int pro_count=0,pub_count=0; for(i=0;in;i+)if(judge_typei=1) .pro_count+; pro=pro+scorei; if(judge_typei=2) .pub_count+; pub=pub+scorei; if(pub_count!=0)gscore=pro/pro_count*0.6+pub/pub_count*0.4;一一elsegscore=pro/pro_cou

11、nt;.return gscore;int main() int score5=90,80,95,86,87;int judge_type5=1,2,2,1,1;int n=5;printf(%d”,cal_score(score, judge_type, n);return 0;7、给定一个数组input口,如果数组长度n为奇数,则将数组中最大的元素放到output口数组最中间的位置,如果数组长度 n为偶数,则将数组中最大的元 素放到output口数组中间两个位置偏右的那个位置上,然后再按从大到小的顺 序,依次在第一个位置的两边,按照一左一右的顺序,依次存放剩下的数。例如:input口 =

12、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#include#include#includevoid sort(int input, int n, int output口)int i,j,k,a;int temp;for(i=0;in;i+)for(j=0;jn-i-1;j+)if(inputjinputj+1)temp=inputj+1;inputj+1=inputj;inputj=temp;k=1;a=1;outputn/ 2=input0;while(kn)o

13、utputn/ 2-a=inputk+;a+;outputn/ 2+a-1=inputk+;int main()int input5=99,80,95,86,87;int output5;int n=5,i;sort(input,n,output);for(i=0;in;i+) printf(%d ,outputi);return 0;8、操作系统任务调度问题。操作系统任务分为系统任务和用户任务两种。其中,系统任务的优先级 =50且=255。优先级大于255的为非法任务,应予以剔除。现有一任务队列task口,长度为n, task中的元素值表示任务的优先级,数值越小,优先级越高。函数schedu

14、ler实现如下功能,将task口中的任务按照系统任务、用户任务依次存放到system_task口数组和user_task口数组中(数组中元素的值是任务在task口数组中的下标),并且优先 级高山任务排在前面,优先级相同的任务按照入队顺序排列(即先入队的任务 排在前面),数组元素为-1表示结束。例如:task口 = 0, 30, 155, 1, 80, 300, 170, 40, 99system_task口 = 0, 3, 1, 7,-1user_task口 = 4, 8, 2, 6,-1#include#include#includevoid scheduler(int task口,int

15、n, int system_task口,int user_task口)一一int i,j,temp;int a=0,b=0; for(i=0;in;i+) if(taski=50&taski=250)user_taskb+=i; .for(i=0;ia;i+)for(j=0;jtasksystem_taskj+1) temp=system_taskj+1;system_taskj+1=system_taskj;system_taskj=temp;for(i=0;ib;i+)for(j=0;jtaskuser_taskj+1)temp=user_taskj+1;user_taskj+1=user_taskj; user_taskj=temp;.system_taska=-1;user_taskb=-1;int main()int task9

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论