1. 给定一个字符串,把字符串内的字母转换成该字母的下一个字母,a换成b,z换成a,Z换成A,如aBf转换成bCg,字符串内的其他字符不改变,给定函数,编写函数
void Stringchang(const char*inpu,char*output)
其中input是输入字符串,output是输出字符串
- #include<stdio.h>
-
#include<string.h>
-
voidStringchange(constchar*input,char*output)
- {
- while(*input)
- {
- if(*input>='a'&&*input<='y'||*input>='A'&&*input<='Y')
- {
- *output=*input+1;
- output++;
- input++;
- }
- elseif(*input=='z'||*input=='Z')
- {
- *output=*input-25;
- output++;
- input++;
- }
- else
- {
- *output=*input;
- output++;
- input++;
- }
- }
- *output='\0';
- }
-
intmain()
- {
- constcharinput[20]="zzzzZZZZabcABC";
- charoutput[20];
- Stringchange(input,output);
- printf("outputis%s",output);
- system("pause");
- return0;
- }
#include <stdio.h>
#include <string.h>
void Stringchange(const char* input,char* output)
{
while(*input)
{
if(*input>='a'&& *input<= 'y' || *input>='A' && *input<= 'Y')
{
* output = *input+1;
output++;
input++;
}
else if(*input == 'z' || *input == 'Z')
{
* output = *input-25;
output++;
input++;
}
else
{
* output = *input;
output++;
input++;
}
}
*output = '\0';
}
int main(/*int argc, char **argv*/)
{
const char input[20]="zzzzZZZZabcABC";
char output[20];
Stringchange(input,output);
printf("output is %s",output);
system("pause");
return 0;
}
2. 求一个整型数字中有没有相同的部分,例如12389756123这个整型数字中相同的部分是123,相同的部分至少应该是2位数,如果有相同部分返回1,如果没有则返回0。方法是先将整型数字转换到数组中,再判断。
函数为 int same(int num)
其中num是输入的整型数字
- #include<stdio.h>
-
#include<string.h>
-
intsame(intnum)
- {
- inttmp[20];
- intm=0;
- inti,j;
- while(num>0)
- {
- tmp[m]=num%10;
- num/=10;
- m++;
- }
- for(i=0;i<m-3;i++)
- for(j=i+2;j<m-1;j++)
- if(tmp[i]==tmp[j]&&tmp[i+1]==tmp[j+1])
- return1;
- return0;
- }
-
intmain()
- {
- intret;
- ret=same(173654123);
- printf("retis%d",ret);
- system("pause");
- return0;
- }
#include <stdio.h>
#include <string.h>
int same(int num)
{
int tmp[20];
int m=0;
int i,j;
while(num>0)
{
tmp[m]=num%10;
num/=10;
m++;
}
for(i=0;i<m-3;i++)
for(j=i+2;j<m-1;j++)
if(tmp[i]==tmp[j] && tmp[i+1]==tmp[j+1])
return 1;
return 0;
}
int main(/*int argc, char **argv*/)
{
int ret;
ret=same(173654123);
printf("ret is %d",ret);
system("pause");
return 0;
}
1.从两个数组的最后一个元素比较两个数组中不同元素的个数,如有array1[5]={77,21,1,3,5},
array2[3]={1,3,5},从array1[4]与array2[2]比较开始,到array1[2]与array[0]比较结束。这样得出它们不同的元素个数为0,若array1[6]={77,21,1,3,5,7},那么他们不同的元素为3。
函数原型为 int compare_array( int len1, int array1[], int len2, int
array2[] );
其中,len1与len2分别为数组array1[]和array2[]的长度,函数返回值为两个数组不同元素的个数。
- #include<stdio.h>
-
#include<string.h>
-
intcompare_array(intlen1,intarray1[],intlen2,intarray2[])
- {
- inti=0;
- intcnt=0;
- printf("helloincompare_array\n");
- while(len1-1-i>=0&&len2-1-i>=0)
- {
- if(array1[len1-1-i]!=array2[len2-1-i])
- cnt++;
- i++;
- }
- returncnt;
- }
-
intmain()
- {
- intret;
- intarray1[5]={77,21,1,3,5};
- intarray2[4]={1,3,5,7};
- printf("hello\n");
- ret=compare_array(5,array1,4,array2);
- printf("retis%d",ret);
- system("pause");
- return0;
- }
#include <stdio.h>
#include <string.h>
int compare_array( int len1, int array1[], int len2, int array2[] )
{
int i=0;
int cnt=0;
printf("hello in compare_array\n");
while (len1-1-i>=0 && len2-1-i>=0)
{
if(array1[len1-1-i]!=array2[len2-1-i])
cnt++;
i++;
}
return cnt;
}
int main(/*int argc, char **argv*/)
{
int ret;
int array1[5]={77,21,1,3,5};
int array2[4]={1,3,5,7};
printf("hello\n");
ret=compare_array(5,array1,4,array2);
printf("ret is %d",ret);
system("pause");
return 0;
}
判断一个数是不是回文数:
- #include<stdio.h>
-
#include<string.h>
-
inthuiwen(longnum)
- {
- inttmp[50];
- intm=0;
- intbegin;
- intend;
- while(num>0)
- {
- tmp[m]=num%10;
- num/=10;
- m++;
- }
- begin=0;
- end=m-1;
- while(begin<end)
- {
- if(tmp[begin++]!=tmp[end--])
- return0;
- }
- return1;
- }
-
intmain()
- {
- intret;
- longnum=1234554321;
- ret=huiwen(num);
- if(ret==0)
- printf("nothuiwen\n");
- elseif(ret==1)
- printf("huiwen\n");
- system("pause");
- return0;
- }
#include <stdio.h>
#include <string.h>
int huiwen(long num)
{
int tmp[50];
int m=0;
int begin;
int end;
while(num>0)
{
tmp[m]=num%10;
num/=10;
m++;
}
begin = 0;
end = m-1;
while(begin<end)
{
if(tmp[begin++]!=tmp[end--])
return 0;
}
return 1;
}
int main(/*int argc, char **argv*/)
{
int ret;
long num=1234554321;
ret = huiwen(num);
if(ret == 0)
printf("not huiwen\n");
else if(ret == 1)
printf("huiwen\n");
system("pause");
return 0;
}
删掉重复的字符,只保留一个。
- #include<stdio.h>
-
#include<string.h>
-
voidchangestr(constchar*pIn,char*pOut)
- {
- char*r=pIn;
- char*s=pIn;
- *pOut++=*pIn;
- while(*++pIn!='\0')
- {
- if(*pIn!=*r++)
- *pOut++=*pIn;
- }
- *pOut='\0';
- }
-
intmain()
- {
- charpIn[20]="goorooogllle";
- charpOut[20];
- changestr(pIn,pOut);
- printf("%s",pOut);
- system("pause");
- return0;
- }
分享到:
相关推荐
比较全面的华为机试题 大家可以看看 对于参加华为机试C方面的同学很有用
2014年华为机试题,本人参加机试碰到的题目。很有代表性!
华为机试题源码合集
华为机试题,多多联系,找华为的实习应该是没问题的
华为射频天线笔试机试题(2021年),图片整理成word,极度清晰,绝对真实。
华为机试题 王子逃脱
华为机试题校园招聘的大全,经过大量人员整理得到的,非常不容易,题非常难得啊,转载的
有志于去华为的大牛们,可以看一下,华为机试题总结!!!
2022华为Java机试题.docx
2017最全华为机试题C/C++(含答案源码),包含111道上机考试题,欢迎下载,觉得资源好请好评。
个人整理的华为历年机试题目 包含一些以前的选择题 编程题 编程题目有些我全部做过 并且把个人的代码附上 有些代码是别人写的 可以对照参考
2014-2012各地机试题大集锦华为上机考试试题
华为2018机试题附自己的答案.zip
华为历年机试题大全,全部通过VS2008编译运行成功
2018年华为机试题,结束之后整理的机试试题及自己的答案,亲测结果没任何问题,需要的可以自己载下来看看
华为机试题2013第二次来东大的机试题,快来免费下载吧
华为机考试题+答案参照.pdf
据说这是2012年华为机试的一道题目,我给出两种方法,两种做法有微小的差别,主要涉及malloc的使用,对初学者应该有帮助
最新2015年华为提前批机试题,适合今年或明年想去华为的程序员!
内容包括第二,与第三题的解题思路与代码,第一题为经典模型就没放上去