ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:17.55KB ,
资源ID:8790607      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-8790607.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(华为机试题及答案.docx)为本站会员(b****5)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

华为机试题及答案.docx

1、华为机试题及答案华为机试题及答案1、通过键盘输入任意一个字符串序列,字符串可能包含多个子串,子串以空格分隔。请编写一个程序,自动分离出各个子串,并使用,将其分隔,并且在最后也补充一个,并将子串存储。测试:输入:“abc def gh i d” 输出:“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,y-z,z-

2、a;若输入的字符串连续出现两个字母相同时,后一个字母需要连续转换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; else if(inputi!=inputi-1)

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

4、试:输入:“afafafaf” 输出:“af”#include#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

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

6、t i,j=0,num=0; int k=0; for(i=0;i1) pOutputStrj+=(char)num+0; pOutputStrj+=pInputStri-1; num=1; else num+; 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”,“操作数”与“

7、运算符”之间以一个空格隔开。测试:输入:“4 - 7” 输出:“-3”#include#include#includevoid arithmetic(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&pInputStrx=9) num0=num0*10+pInputStrx-0; else pOutputStr0=0; pOutputStr1=0; return; for(y=x+1;pInputStry

8、!= ;y+) if(y-x-1!=1) pOutputStr0=0; pOutputStr1=0; return ; else if(pInputStry-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;

9、 itoa(re,pOutputStr,10); int main() char in20; char on20; gets(in); arithmetic(in,strlen(in),on); printf(%s,on); return 0;6、选秀节目打分,分为专家评委和大众评委,score 数组里面存储每个评委打的分数,judge_type 里存储与 score 数组对应的评委类别,judge_typei = 1,表示专家评委,judge_typei = 2,表示大众评委,n表示评委总数。打分规则如下:专家评委和大众评委的分数先分别取一个平均分(平均分取整),然后,总分 = 专家评委平均

10、分 * + 大众评委 * ,总分取整。如果没有大众评委,则 总分 = 专家评委平均分,总分取整。函数最终返回选手得分。#include#include#includeint 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;

11、if(pub_count!=0) gscore=pro/pro_count*+pub/pub_count*; else gscore=pro/pro_count; 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为偶数,则将数组中最大的元素放

12、到 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#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(inputjin

13、putj+1) temp=inputj+1; inputj+1=inputj; inputj=temp; k=1; a=1; outputn/2=input0; while(kn) outputn/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、操作系统任务调度问题。操作系统任务分为系统任务和用户任务两种

14、。其中,系统任务的优先级 = 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_

15、task = 0, 3, 1, 7, -1 user_task = 4, 8, 2, 6, -1#include#include#includevoid scheduler(int task, int 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=syst

16、em_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 = 0, 30, 155, 1, 80, 300, 170, 40, 99; int system_task9; int user_task9; int n=9,i; scheduler(task, n,system_task,user_task); for(i=0;system_taski!=-1;i+) printf(%d ,system_taski); for(i=0;user_taski!=-1;i+) printf(%d ,user_taski); return 0;

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2