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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

华为机试试题汇总.docx

1、华为机试试题汇总 Last updated at 10:00 am on 25th December 2020华为机试试题汇总1第一题的题目大概是输入整型数组求数组的最小数和最大数之和,例如输入1,2,3,4则输出为5,当输入只有一个数的时候,则最小数和最大数都是该数,例如只输入1,则输出为2;另外数组的长度不超过50#includemain() intnum50=0; inti,n; printf(请输入整型数组的长度(150):); scanf(%d,&n); printf(请输入整型数组的元素:); for(i=0;in;i+) scanf(%d,&numi); intmin_num=n

2、um0; intmax_num=num0; for(intj=0;jn;j+) if(max_numnumj) min_num=numj; intsum=min_num+max_num; printf(数组中最大与最小值之和:%dn,sum); return0;2求两个长长整型的数据的和并输出,例如输入333。 3.。,则输出。#include#include#includemain() char*num1,*num2; 过键盘输入一串小写字母(az)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。比如字符串“abacacde”过滤结果为“abc

3、de”。要求实现函数:void stringFilter(const char *pInputStr,long lInputLen, char *pOutputStr);【输入】 pInputStr:输入字符串lInputLen: 输入字符串长度【输出】 pOutputStr:输出字符串,空间已经开辟好,与输入字符串等长;#include #include#includevoid stringFilter(const char *p_str, longlen, char *p_outstr)intarray256=0;const char *tmp = p_str;for(int j=0;jl

4、en;j+) if(arraytmpj=0) *p_outstr+=tmpj; arraytmpj+; *p_outstr= 0;void main() char *str = cccddecc; intlen = strlen(str); char* outstr = (char *)malloc(len*sizeof(char); stringFilter(str,len,outstr); printf(%sn,outstr); free(outstr); outstr= NULL;4.通过键盘输入一串小写字母(az)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行

5、压缩,并输出压缩后的字符串。压缩规则:1. 仅压缩连续重复出现的字符。比如字符串abcbc由于无连续重复字符,压缩后的字符串还是abcbc.2. 压缩字段的格式为字符重复的次数+字符。例如:字符串xxxyyyyyyz压缩后就成为3x6yz要求实现函数:void stringZip(const char*pInputStr, long lInputLen, char *pOutputStr);【输入】 pInputStr: 输入字符串lInputLen: 输入字符串长度【输出】 pOutputStr: 输出字符串,空间已经开辟好,与输入字符串等长;#include #include#includ

6、evoid stringZip(const char *p_str, long len,char *p_outstr) intcount=1; for(inti=0;i1) *p_outstr+= count +0; *p_outstr+=p_stri; else *p_outstr+=p_stri; count = 1;过键盘输入100以内正整数的加、减运算式,请编写一个程序输出运算结果字符串。输入字符串的格式为:“操作数1 运算符 操作数2”,“操作数”与“运算符”之间以一个空格隔开。补充说明:1. 操作数为正整数,不需要考虑计算结果溢出的情况。2. 若输入算式格式错误,输出结果为“0”。

7、要求实现函数:void arithmetic(const char*pInputStr, long lInputLen, char *pOutputStr);【输入】 pInputStr: 输入字符串lInputLen: 输入字符串长度【输出】 pOutputStr: 输出字符串,空间已经开辟好,与输入字符串等长;#include #include#includevoid arithmetic(const char *input, longlen, char *output) chars110; chars210; chars310; intcnt = 0; intlen_input=strl

8、en(input); for(inti=0;ilen_input;+i) if(inputi=) cnt+; if(cnt!=2) *output+= 0; *output= 0; return; sscanf(input,%s %s %s,s1,s2,s3); if(strlen(s2)!=1|(s20!=+&s20!=-) *output+= 0; *output= 0; return; int len_s1=strlen(s1); for(i=0;ilen_s1;i+) if(s1i9) *output+= 0; *output= 0; return; intlen_s3=strlen(

9、s3); for(i=0;ilen_s3;i+) if(s3i9) *output+= 0; *output= 0; return; int x = atoi(s1); int y = atoi(s3); if(s20=+) intresult = x+y;itoa(result,output,10); elseif(s20=-) intresult = x-y; itoa(result,output,10); else *output+= 0; *output= 0; return; void main() charstr = 10 - 23; charoutstr10; intlen =

10、strlen(str); arithmetic(str,len,outstr); printf(%sn,str); printf(%sn,outstr);6.一组人(n个),围成一圈,从某人开始数到第三个的人出列,再接着从下一个人开始数,最终输出最终出列的人(约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3.n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。)#include #include#include#includetypedef struct Node i

11、ntdata; structNode *next;LinkList;LinkList *create(int n) LinkList*p,*q,*head; inti=1; p=(LinkList*)malloc(sizeof(LinkList); p-data=i; head=p; for(i=1;idata=i+1; p-next=q; p=q; p-next=head; 输入一串字符,只包含“0-10”和“,”找出其中最小的数字和最大的数字(可能不止一个),输出最后剩余数字个数。如输入 “3,3,4,5,6,7,7”#include#include#includevoid main()

12、charstr100; printf(输入一组字符串:n); scanf(%s,&str); intlen=strlen(str); intarray100; intcount=0; for(inti=0;i=0&stri=9) arraycount+=stri-0; arraycount=0; intresult=count; intmin=array0; intmax=array0; for(intj=0;jcount;j+) if(maxarrayj) min=arrayj; for(intk=0;kcount;k+) if(arrayk=min) result-; if(arrayk=

13、max) result-; printf(%dn,result);8.输入一组身高在170到190之间(5个身高),比较身高差,选出身高差最小的两个身高;若身高差相同,选平均身高高的那两个身高;从小到大输出;如 输入 170 181173 186 190 输出 170 173#include#include#define N 5int main() intHeightN; intdmin; intH1,H2; inti,j,temp; printf(请输入一组身高在170到190之间的数据(共5个):n); for(intk=0;kN;k+) scanf(%d,&Heightk); print

14、f(n); for(i=0;iN;i+) for(j=1;jHeightj;j+) temp=Heightj-1; Heightj-1=Heightj; Heightj=temp; H1=Height0; H2=Height1; dmin=H2-H1; for(intm=2;mN;m+) if(Heightm-Heightm-1=dmin) H1=Heightm-1; H2=Heightm; dmin=Heightm-Heightm-1; printf(身高差最小的两个身高为:n); printf(%d,%dn,H1,H2); return0;9.删除子串,只要是原串中有相同的子串就删掉,不管

15、有多少个,返回子串个数。#include #include #include #include int delete_sub_str(const char *str,constchar *sub_str,char *result) assert(str!= NULL & sub_str != NULL); constchar *p,*q; char*t,*temp; p= str; q= sub_str; t= result; intn,count = 0; n= strlen(q); temp= (char *)malloc(n+1); memset(temp,0x00,n+1); whil

16、e(*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); returncount;void main() chars100 = 0; intnum = delete_sub_str(“123abc12de234fg1hi34j123k”,”123”,s); printf(“Thenumber of sub_str is %drn”,num); printf(“Ther

17、esult string is %srn”,s);10. 要求编程实现上述高精度的十进制加法。要求实现函数:void add (const char *num1,const char *num2, char *result)【输入】num1:字符串形式操作数1,如果操作数为负,则num10为符号位-num2:字符串形式操作数2,如果操作数为负,则num20为符号位-【输出】result:保存加法计算结果字符串,如果结果为负,则result0为符号位。#include#include#includevoid move(char *str, int length)描述:10个学生考完期末考试评卷完

18、成后,A老师需要划出及格线,要求如下:(1) 及格线是10的倍数;(2) 保证至少有60%的学生及格;(3) 如果所有的学生都高于60分,则及格线为60分输入:输入10个整数,取值0100输出:输出及格线,10的倍数#includevoid bubblesort(int arr) inti,j,temp; for(i=0;i10;i+) for(j=0;jarrj+1;j+) temp=arrj; arrj=arrj+1; arrj+1=temp; int GetPassLine(int a) bubblesort(a); if(a0=60) return60; else return(int

19、)a4/10)*10);main() inta10=0; intresult; printf(请随机输入10个成绩(0-100):n); scanf(%d%d%d%d%d%d%d%d%d%d,&a0,&a1,&a2,&a3,&a4,&a5,&a6,&a7,&a8,&a9); printf(n); result=GetPassLine(a); printf(及格线为:%dn,result); return1;12.描述:一条长廊里依次装有n(1 n 65535)盏电灯,从头到尾编号1、2、3、n-1、n。每盏电灯由一个拉线开关控制。开始,电灯全部关着。有n个学生从长廊穿过。第一个学生把号码凡是1

20、的倍数的电灯的开关拉一下;接着第二个学生把号码凡是2的倍数的电灯的开关拉一下;接着第三个学生把号码凡是3的倍数的电灯的开关拉一下;如此继续下去,最后第n个学生把号码凡是n的倍数的电灯的开关拉一下。n个学生按此规定走完后,长廊里电灯有几盏亮着。注:电灯数和学生数一致。输入:电灯的数量输出:亮着的电灯数量样例输入:3样例输出:1#include#define Max_Bubl_Num 65535int GetLightLampNum(int n) intBublNumMax_Bubl_Num=0; 描述:已知2条地铁线路,其中A为环线,B为东西向线路,线路都是双向的。经过的站点名分别如下,两条线交

21、叉的换乘点用T1、T2表示。编写程序,任意输入两个站点名称,输出乘坐地铁最少需要经过的车站数量(含输入的起点和终点,换乘站点只计算一次)。地铁线A(环线)经过车站:A1 A2 A3 A4 A5 A6A7 A8 A9 T1 A10 A11 A12 A13 T2 A14 A15 A16 A17 A18地铁线B(直线)经过车站:B1 B2 B3 B4 B5 T1B6 B7 B8 B9 B10 T2 B11 B12 B13 B14 B15输入:输入两个不同的站名输出:输出最少经过的站数,含输入的起点和终点,换乘站点只计算一次输入样例:A1 A3输出样例:3#include#include#includ

22、e#includeusing namespace std;#define MAX 35#define SUBWAY_A 20#define SUBWAY_B 15typedef struct nodeint adjvex;struct node *next;edgenode;typedef structchar name10;bool flag;edgenode *link;vexnode;const charsubway_name1SUBWAY_A10=A1,A2,A3,A4,A5,A6,A7,A8,A9,T1,A10,A11,A12,A13,T2,A14,A15,A16,A17,A18;c

23、onst charsubway_name2SUBWAY_B10=B1,B2,B3,B4,B5,B6,B7,B8,B9,B10,B11,B12,B13,B14,B15;void creat(vexnode ga)int i;edgenode *p;for(i=0;iMAX;i+) gai.link=NULL; gai.flag=true; if(iadjvex=i+1; p-next=NULL; gai.link-next=p; if(i=9)p=(edgenode*)malloc(sizeof(edgenode);p-adjvex=SUBWAY_A+4; p-next=NULL; gai.li

24、nk-next-next=p;p=(edgenode*)malloc(sizeof(edgenode);p-adjvex=SUBWAY_A+5; p-next=NULL;gai.link-next-next-next=p; else if(i=14)p=(edgenode*)malloc(sizeof(edgenode);p-adjvex=SUBWAY_A+9; p-next=NULL;gai.link-next-next=p;p=(edgenode*)malloc(sizeof(edgenode);p-adjvex=SUBWAY_A+10; p-next=NULL;gai.link-next

25、-next-next=p; p=(edgenode*)malloc(sizeof(edgenode);p-adjvex=SUBWAY_A-1;p-next=NULL;ga0.link=p;p=(edgenode*)malloc(sizeof(edgenode);p-adjvex=1;p-next=NULL;ga0.link-next=p;p=(edgenode*)malloc(sizeof(edgenode);p-adjvex=SUBWAY_A-2;p-next=NULL;gaSUBWAY_A-1.link=p;p=(edgenode*)malloc(sizeof(edgenode);p-ad

26、jvex=0;p-next=NULL;gaSUBWAY_A-1.link-next=p;ink=p;p=(edgenode*)malloc(sizeof(edgenode); p-adjvex=SUBWAY_A+i+1; p-next=NULL; gai+SUBWAY_A.link-next=p;p=(edgenode*)malloc(sizeof(edgenode);p-adjvex=SUBWAY_A+3;p-next=NULL;gaSUBWAY_A+4.link=p;p=(edgenode*)malloc(sizeof(edgenode);p-adjvex=9;p-next=NULL;gaSUBWAY_A+4.link-next=p;p=(edgenode*)malloc(sizeof(edgenode);p-adjvex=9;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1