华为历年上机笔试题
更新时间:2023-10-07 16:43:01 阅读量: 综合文库 文档下载
1.
给定一个字符串,把字符串内的字母转换成该字母的下一个字母,a换成b,z换成a,Z换成A,如aBf转换成bCg,字符串内的其他字符不改变,给定函数,编写函数 void Stringchang(const char*inpu,char*output) 其中input是输入字符串,output是输出字符串 #include
void Stringchang(const char*input,char*output) {
const char *p=input; /*if(input==NULL) { printf(\ //用这种表示方式可否? return; //用return 好不好? } */
assert(input!=NULL); while(*p!='\\0') { if((*p>='a')&&(*p<='y')||(*p>='A')&&(*p<='Y')) *output=*p+1; else if(*p=='z'||*p=='Z') *output=*p+1-26; else *output=*p; output++; p++; }
*output=0; }
void main() {
char a[11]={\ //如何模拟空指针的情况 char b[11];
Stringchang(a,b); printf(\} 2. 求一个整型数字中有没有相同的部分,例如12389756123这个整型数字中相同的部分是123,相同的
部分至少应该是2位数,如果有相同部分返回1,如果没有则返回0。函数为 int same(int num)其中num是输入的整型数字 #include
int same(int num) //整数值的范围:long int为-2(共10位)到正2开头共10位;unsigned //long int 为从0
到4的共10位数
{
char a[11]; int i=0,m=0,j=0; while(num) { a[i]=num+'0'; num=num/10; i++; j++; } i=0; int k=j; while(i { char temp=a[i]; a[i]=a[j-1]; a[j-1]=temp; i++; j--; } for(i=0;i int main() //是不是用int 会好一点? { int a,b; cin>>a; b=same(a); cout< 分别将字符串中的字符转换成整型数字,进行计算后,再转换成字符类型存储起来. 函数为 void mul(char *input1,int n,char *input2, int m,char *output) 其中input1和input2是输入,n是input1的长度,m是input2的长度。Output是输出 #include void mul(char *input1,int n,char *input2,int m,char *output) { long int num1=0,num2=0,num3=0; //char *p1=input1;char *p2=input2; int i=0,j=0,temp; int sign1=0,sign2=0; assert(input1!=NULL&&input2!=NULL); //以下程序是将input1字符串转换为数字,考虑到了字符串中第一个字符为‘+’或者‘-’号的情况, //同时考虑到了非法输入时的处理情况。 if(*input1=='-') { input1++; sign1=1; } if(*input1=='+') input1++; while(*input1!='\\0') { assert(*input1<='9'&&*input1>='0'); num1=num1*10+(*input1-'0'); input1++; } if(sign1==1) num1=-num1; //以下程序是将input2字符串转换为数字,考虑到了字符串中第一个字符为‘+’或者‘-’号的情况, //同时考虑到了非法输入时的处理情况。 if(*input2=='-') { input2++; sign2=1; } if(*input2=='+') input2++; while(*input2!='\\0') { assert(*input2<='9'&&*input2>='0'); num2=num2*10+(*input2-'0'); input2++; } if(sign2==1) num2=-num2; //将两个数相乘 num3=num1*num2; //考虑到结果为负数的情况,将整数转换为字符串,并且将字符串倒序 if(num3<0) { output[i]='-'; i++; j++; num3=-num3; } while(num3) { output[i]=num3+'0'; i++; num3=num3/10; } output[i]=0; //将字符串倒序 i--; while(j int main() { char a[10],b[10],c[10]; int anum,bnum; cin>>a; cin>>b; anum=strlen(a); bnum=strlen(b); mul(a,anum,b,bnum,c); cout< //用纯指针实现程序如下: #include void mul(char *input1,int n,char *input2,int m,char *output) { int sum1=0,sum2=0,sum=0; int i=0; int sign1,sign2; char *p=input1,*q=input2,*s=output,*r=output; assert(input1!=NULL&&input2!=NULL); if(*p=='+') { p++; sign1=1; } else if(*p=='-') { p++; sign1=0; } while(*p) { assert(*p<='9'&&*p>='0'); sum1=sum1*10+(*p-'0'); p++; } if(sign1==0) { sum1=-sum1; } //input2de chuli if(*q=='+') {q++;sign2=1;} else if(*q=='-') {q++;sign2=0;} while(*q) { assert(*q<='9'&&*q>='0'); sum2=sum2*10+(*q-'0'); q++; } if(sign2==0) {sum2=-sum2;} //两数相乘 sum=sum1*sum2; // printf(\ if(sum<0) { sum=-sum; *s='-'; s++; r++; //因为返回的指针开始地址是output,所以这里output不能变,只能是另外用一个指针代替他 } while(sum) { *s=sum+'0'; sum=sum/10; s++; } *s=0; s--; //忘记s- - 了 //printf(\ while(r void main() { char a[3]=\ char b[3]=\ char c[11]; mul(a,3,b,3,c); printf(\} 两个大数相乘: #include void GetDigits(int *a,char *s); void multiply(int *a,int *b,int *c); main() { char s1[N],s2[N]; int i,j,a[N],b[N],c[N*2]; printf(\ scanf(\ printf(\ scanf(\ //把输入的字符串,按位存放到数组 GetDigits(a,s1); GetDigits(b,s2); multiply(a,b,c); //找到最高位 j=N*2-1; while(c[j]==0) j--; //打印计算结果 printf(\ for(i=j;i>=0;i--) printf(\} /*把字符串形式的数字按位存放到数组*/
正在阅读:
华为历年上机笔试题10-07
记小学生活的最后一次春游作文500字06-28
《平行与垂直》教学设计08-15
小学音乐教师基本功考试复习提要第一部分音04-09
要做有诚信的人作文400字07-06
河南省翻译竞赛试题(非英语专业类)05-20
尔雅慕课《语言与文化》考试题目及答案12-03
促进农村妇女创业就业的调研报告03-09
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 华为
- 上机
- 历年
- 试题