教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 高等教育 >

2017校招华为上机题汇总

来源:网络收集 时间:2025-09-23
导读: 超详细 超全2017校招华为上机题汇总旗舰版 2017校招华为上机题汇总 1. 给定一个字符串,把字符串内的字母转换成该字母的下一个字母,a换成b,z换成a,Z换成A,如aBf转换成bCg,字符串内的其他字符不改变,给定函数,编写函数 void Stringchang(const char*i

超详细 超全2017校招华为上机题汇总旗舰版

2017校招华为上机题汇总

1. 给定一个字符串,把字符串内的字母转换成该字母的下一个字母,a换成b,z换成a,Z换成A,如aBf转换成bCg,字符串内的其他字符不改变,给定函数,编写函数

void Stringchang(const char*inpu,char*output)

其中input是输入字符串,output是输出字符串

#include<iostream>

#include<cctype>

#include<cstring>

using namespace std;

void stringchang(const char*,char*);

int main()

{

char input[100],output[100];

cin.getline(input,100);

stringchang(input,output);

cout<<output<<endl;

return 0;

}

void stringchang(const char* input,char* output)

{

int m=strlen(input),n=0;

for(int i=0;i<m;i++)

{

if(isalpha(input[i]))

{

if(input[i]=='z')

output[n++]='a';

else if(input[i]=='Z')

output[n++]='A';

else

output[n++]=input[i]+1;

}

else

output[n++]=input[i];

}

output[n]='\0';

}

2. 求一个整型数字中有没有相同的部分,例如12386123这个整型数字中相同的部分是123,相同的部分至少应该是2位数,如果有相同部分返回1,如果没有则返回0。方法是先将整型数字转换到数组中,再判断。

函数为 int same(int num)

其中num是输入的整型数字

超详细 超全2017校招华为上机题汇总旗舰版

写的很差,懒得改了,不要看吧!

#include<iostream>

#include<cstring>

using namespace std;

int same(int);

int main()

{

int num;

cin>>num;

int m=same(num);

cout<<m<<endl;

return 0;

}

int same(int num)

{

int n[100],n1=0,c=0,i1,j1;

while(num>0)

{

n[n1++]=num%10;

num/=10;

}

for(int i=0;i<n1;i++)

{

i1=i;

c=0;

j1=0;

for(int j=0;j<n1;j++)

{

if(n[i1]==n[j]&&i1!=j)

{

c++;

j1++

if(c>=2)

return 1;

i1++;

}

else

{

c=0;

j=j-j1;

j1=0;

i1=i;

}

}

}

return 0;

}

超详细 超全2017校招华为上机题汇总旗舰版

分别将字符串中的字符转换成整型数字,进行计算后,再转换成字符类型存储起来

函数为 void mul(char *input1,int n,char *input2, int m,char *output)

其中input1和input2是输入,n是input1的长度,n2是input2的长度。Output是输出

#include<iostream>

#include<cstring>

#include<cmath>

using namespace std;

void mul(char*,int,char*,int,char*);

int main()

{

char input1[100],input2[100],output[100];

cin>>input1>>input2;

int n=strlen(input1);

int m=strlen(input2);

mul(input1,n,input2,m,output);

cout<<output<<endl;

return 0;

}

void mul(char* input1,int n,char* input2,int m,char* output)

{

int i1=0,i2=0,p1=n,p2=m,p3=0;

for(int i=0;i<n;i++)

{

i1+=(input1[i]-'0')*pow(10.0,--p1);

}

for(int i=0;i<m;i++)

{

i2+=(input2[i]-'0')*pow(10.0,--p2);

}

long long ou=i1*i2;

if(ou==0)

{

output[0]='0';

output[1]='\0';

return;

}

char temp;

while(ou>0)

{

output[p3++]=ou%10+'0';

ou/=10;

}

output[p3]='\0';

for(int i=0;i<p3/2;i++)

{

temp=output[i];

output[i]=output[p3-1-i];

超详细 超全2017校招华为上机题汇总旗舰版

}

4.删除子串,只要是原串中有相同的子串就删掉,不管有多少个,返回子串个数。

#include<iostream>

#include<string>

using namespace std;

int deletesub(string &str,const string &sub,int);

int main()

{

string str,sub;

getline(cin,str);

getline(cin,sub);

int n=sub.size();

int num=deletesub(str,sub,n);

cout<<num<<endl;

//cout<<str<<endl; 输出删除后的字符串

return 0;

}

int deletesub(string &str,const string &sub,int n)

{

int m,flag=0,num=0;

while(flag==0)

{

m=str.find(sub);

if(m<0)

return num;

else

{

str.erase(m,n); //删除子串

num++;

}

}

}

5.约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。

#include<iostream>

using namespace std;

struct node{

int num;

node *next;

};

node *creat(int n)

{

node *q,*p,*head=NULL;

超详细 超全2017校招华为上机题汇总旗舰版

p=new node;

p->num=i;

if(head==NULL)

head=p;

else

q->next=p;

q=p;

}

p->next=head;

return p;

}

int main()

{

int n,k,m;

cin>>n>>k>>m;

node *l,*q;

l=creat(n);

q=l;

l=l->next;

for(int i=1;i<k;i++)

{

q=l;

l=l->next;

}

while(l->next!=l)

{

for(int i=1;i<m;i++)

{

q=l;

l=l->next;

}

cout<<l->num<<"->";

q->next=l->next;

delete l;

l=q->next;

}

cout<<l->num<<endl;

delete l;

return 0;

}

6.比较一个数组的元素 是否为回文数组

#include<iostream>

#include<string>

using namespace std;

int main()

超详细 超全2017校招华为上机题汇总旗舰版

getline(cin,str);

int m=str.size();

for(int i=0;i<m/2;i++)

{

if(str[i]!=str[m-1-i])

{

cout<<"NO"<<endl;

return 0;

}

}

cout< …… 此处隐藏:11105字,全部文档内容请下载后查看。喜欢就下载吧 ……

2017校招华为上机题汇总.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/1715758.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)