华北电力大学c++字符串和函数答案.docx
《华北电力大学c++字符串和函数答案.docx》由会员分享,可在线阅读,更多相关《华北电力大学c++字符串和函数答案.docx(17页珍藏版)》请在冰豆网上搜索。
华北电力大学c++字符串和函数答案
第1题:
编写程序,从键盘输入一任意字符串(不包含空格),然后输入所要查找字符。
如果存在则输出它在字符串中第一次出现的位置,否则输出NO。
样例输入:
Helloa
样例输出:
NO
样例输入:
Hellol
样例输出:
2
#include<>
//#include<>
intmain()
{
intm=0,p=0;
chars[50],t;
cin>>s>>t;
//cin>>t;
while(s[p]!
='\0')
if(s[p]==t)
{m=1;break;}
elsep++;
if(m==0)cout<<"NO";
elsecout<
return0;
}
第2题:
编写程序,将一个字符串首尾互换,并与原字符串连接后输出。
输入字符串(不包含空格),输出处理后的结果。
样例输入:
china
样例输出:
chinaanihc
#include<>
#include<>
intmain()
{
charword1[50],word2[25];
intp=0,e,j;
cin>>word1;
strcpy(word2,word1);
j=strlen(word2);
e=j-1;
while(p{j=word2[p];word2[p]=word2[e];word2[e]=j;
p++;e--;}
strcat(word1,word2);
cout<return0;
}
第3题:
编写程序,输入两个字符串(不包含空格),输出两个字符串中第一个不相同字符的ASCII值之差的绝对值,如果两个字符串完全相同则输出0。
样例输入:
abcdabed
样例输出:
2
样例输入:
abcdabcd?
样例输出:
0
#include<>
#include<>
intmain()
{
intp=0,flag=0;
charc1[20],c2[20];
cin>>c1>>c2;
while((flag==0)&&(c1[p]!
='\0')&&(c2[p]!
='\0'))
{
if(c1[p]==c2[p])p+=1;
elseflag=1;
}
if(flag==1)cout<elsecout<<0;
return0;
}
第4题:
编写程序,输入字符串(不包含空格),统计英文字母、数字字符及其他字符的个数。
样例输入:
abc129++*ABC
样例输出:
633?
#include<>
intmain()
{
intnum=0,word=0,symbol=0,i;
charc[100];
cin>>c;
for(i=0;c[i]!
='\0';i++)
{
if(c[i]<='9'&&c[i]>='0')num=num+1;
elseif(c[i]>='a'&&c[i]<='z'||c[i]>='A'&&c[i]<='Z')word=word+1;
elsesymbol=symbol+1;
}
cout<return0;
}
第5题:
在情报传递过程中,为了防止情报被截获,往往需要对情报用一定的方式加密,简单的加密算法虽然不足以完全避免情报被破译,但仍然能防止情报被轻易地识别。
一种简单的加密方法:
对给定的一个字符串,把其中的每个英文字母都用其后面第4个字母代替,如果后面不足4个字母,则从a或A重新开始。
编写程序,从键盘输入一任意字符串(不包含空格),输出加密后的结果。
样例输入:
Hello
样例输出:
Lipps
#include<>
#include<>
intmain()
{
charletter[100];
inti;
cin>>letter;
for(i=0;letter[i]!
='\0';i++)
{letter[i]=letter[i]+4;
if(letter[i]>'z'&&letter[i]<='z'+4)letter[i]=letter[i]-26;
elseif(letter[i]>'Z'&&letter[i]<='Z'+4)letter[i]=letter[i]-26;
}
cout<return0;
}
第1题:
编写两个函数,函数功能分别是:
求两个整数的最大公约数和最小公倍数,要求输入输出均在主函数中完成。
样例输入:
1525
样例输出:
575
#include<>
intgys(intm,intn)
{intr;
if(m{r=m;m=n;n=r;}
r=m%n;
while(r!
=0)
{m=n;n=r;r=m%n;}
returnn;}
intmain()
{inta,b,c,d;
cin>>a>>b;
c=gys(a,b);
d=a*b/c;
cout<return0;}
第2题:
编写函数digit(num,k),函数功能是:
求整数num从右边开始的第k位数字的值,如果num位数不足k位则返回0。
要求输入输出均在主函数中完成。
样例输入:
46473
样例输出:
6
样例输入:
235237
样例输出:
0
#include<>
intdigit(intnum,intk)
{intb,i=0;
do
{b=num%10;
num=num/10;
i++;}
while(num>0&&iif(num>0&&i==k)returnb;
elsereturn0;
}
intmain()
{
inta,b,n;
cin>>n>>b;
a=digit(n,b);
cout<return0;}
第3题:
哥德巴赫猜想指出:
任何一个不小于6的偶数都可以表示为两个素数之和。
例如:
6=3+38=3+5…50=3+47。
从键盘输入n(n>=6且为偶数),输出对应的表达式,要求编写函数判断一个数是否为素数。
样例输入:
8
样例输出:
8=3+5
#include<>
intsushu(inta)
{ints=1,i;
for(i=1;i<=a;i++)
if(a%i==0)s*=i;
if(s==a&&a!
=1)
return1;
else
return0;
}
intmain()
{
intn,i=3,s,f;
cin>>n;
while(i{s=n-i;
f=sushu(s);
if(f==1){cout<elsei=i+2;}
return0;
}
第4题:
有一分段函数如下,编写函数进行计算,在主函数中输入x值,输出y值。
样例输入:
样例输出:
样例输入:
样例输出:
样例输入:
样例输出:
#include<>
#include<>
doublefdhs(floatx)
{doubley;
if(x<=0)y=sin(x)+1;
elseif(x<10)y=x*x+3/x;
elsey=sqrt(4+x);
returny;
}
intmain()
{
floatx;
doubley;
cin>>x;
y=fdhs(x);
cout<return0;
}
第5题:
编写函数,函数功能是:
统计整数n的各位上出现数字1、2、3的次数。
要求输入输出均在主函数中完成。
样例输入:
0
样例输出:
312
#include<>
intdigit(intnum)
{intb;
b=num%10;
returnb;
}
intmain()
{intl1,l2,l3,n,a;
l1=l2=l3=0;
cin>>n;
while(n>0)
{
a=digit(n);
if(a==1)l1++;
if(a==2)l2++;
if(a==3)l3++;
n=n/10;
}
cout<return0;
}
第6题:
编写函数fun(num),其中num是一个n位数,函数功能是:
求整数num的后n-1位,如果num是一位数则返回0,要求输入输出均在主函数中完成。
样例输入:
9
样例输出:
0
样例输入:
6734
样例输出:
734
样例输入:
1000
样例输出:
0
样例输入:
10101
样例输出:
101
#include<>
#include<>
intmain()
{
intfun(int);
intnum,n;
cin>>num;
n=fun(num);
cout<return0;
}
intfun(intnum)
{
intn=0,i=num,l;
while(num>0)
{n++;num=num/10;}
if(n==1)return0;
else
{l=pow(10,n-1);
return(i%l);}
}
第7题:
编写函数,函数功能是:
将两个两位数的正整数a、b合并成一个整数c,合并规则是将a的十位和个位分别放在c的千位和个位,将b的十位和个位分别放在c的百位和十位。
a、b由键盘输入,输入输出均在主函数中完成。
样例输入:
4512
样例输出:
4125
#include<>
intfun(inte,intf)
{
inta[2],b[2];
a[0]=e/10;
a[1]=e%10;
b[0]=f/10;
b[1]=f%10;
returna[0]*1000+b[0]*100+b[1]*10+a[1];
}
intmain()
{
inta,b,c;
cin>>a>>b;
c=fun(a,b);
cout<return0;
}
第8题:
求数列的前n项和?
要求使用函数,函数功能是:
计算数列的每一项,n由键盘输入。
累加过程和输入输出均在主函数中完成。
样例输入:
10
样例输出:
#include<>
#include<>
floatfun(intn)
{
returnpow(-1,n+1)/(n*(n+1));
}
intmain()
{
inti,n;
floats=0;
cin>>n;
for(i=1;i<=n;i++)
s+=fun(i);
cout<
return0;
}
第9题:
求数列
其中分母为n以内(包括n)的素数。
要求使用函数,函数功能是:
计算数列的每一项,n由键盘输入。
累加过程和输入输出均在主函数中完成。
样例输入:
50
样例输出:
#include<>
#include<>
floatfun(intn)
{
returnn;
}
intmain()
{
intn,j,k,i;
floats=;
cin>>n;
for(i=3;i<=n;i++)
{j=2;k=sqrt(i);
while(j<=k)
if(i%j!
=0)j++;
elsebreak;
i