皮德常c++全套答案文档格式.docx
《皮德常c++全套答案文档格式.docx》由会员分享,可在线阅读,更多相关《皮德常c++全套答案文档格式.docx(89页珍藏版)》请在冰豆网上搜索。
iostream>
usingnamespacestd;
voidmain()
{
inti,a,n;
longsum,temp;
sum=temp=0;
\nEnteraandn:
;
cin>
>
a>
n;
for(i=1;
=n;
i++)
{temp=a+temp*10;
sum+=temp;
theresultis:
2-11、输入一行字符,以回车结束,分别统计其中出现的大写英文字母、小写英文字母、数字字符、空格和其他字符出现的次数。
{charc;
intlletters=0,uletters=0,spaces=0,digits=0,others=0;
Pleaseenterthecharacters:
\n"
while((c=cin.get())!
='
\n'
)
{if(c>
a'
&
c<
z'
lletters++;
elseif(c>
A'
Z'
uletters++;
elseif(c=='
'
spaces++;
elseif(c>
0'
9'
digits++;
else
others++;
cout<
thenumberoflowercaseletters:
lletters<
endl;
thenumberofuppercaseletters:
uletters<
thenumberofdigits:
digits<
thenumberofspaces:
spaces<
thenumberofothers:
others;
第3章习题:
3-1、编写求阶乘及组合的函数,在主函数调用求组合的函数。
longfac(intn)
{
longfac=1;
for(inti=2;
fac*=i;
returnfac;
longcomb(intn,intk)
returnfac(n)/(fac(k)*fac(n-k));
{intn,k;
Pleaseinputthenandthek:
n>
k;
thecombinationnumberofnandk:
comb(n,k);
3-2、编写函数计算ex的近似值,在主函数中输入x及精度10-9(要求最后一项小于10-9)。
cmath>
doubleex(doublex,doubleeps)
inti=1;
doublee=1,t=1;
while(fabs(t)>
eps)
{t=t*x/i;
e=e+t;
i++;
}
return(e);
}
{doublex,eps;
Pleaseinoutxandeps:
x>
eps;
e**x:
ex(x,eps);
3-3、编写被调函数,求出1000以内素数,在主函数中调用函数并输出素数,每行输出5个素数。
iomanip>
voidPrimeNum(intn=1000)
{inti,j,k,flg=1,num=0;
for(i=2;
{
k=sqrt(i);
for(j=2;
j<
=k;
j++)
if(i%j==0)
flg=0;
if(flg==1)
{cout<
setw(5)<
i;
num++;
if(num%5==0)
cout<
}
flg=1;
{PrimeNum();
3-4、输出1000以内的所有完数。
voidprint(intn)//输出因子
=n/2;
if(n%i==0)cout<
voidwanshu(intn)
inta,s=0;
a=n/2;
=a;
if(n%i==0)s+=i;
if(s==n)
{cout<
n<
itsfactorsare:
print(n);
=1000;
wanshu(i);
3-5、编写函数(递归和非递归)求两个整数的最大公约数和最小公倍数。
intgcd(intx,inty)
{intr;
r=x%y;
while(r!
=0)
{x=y;
y=r;
return(y);
//intgcd(inta,intb)
//{if(a%b==0)
//returnb;
//else
//returngcd(b,a%b);
//}
intgbs(intx,inty)
{intbs,ys;
ys=gcd(x,y);
bs=x*y/ys;
returnbs;
{intx,y,g,bs;
Entertwonumber:
\n"
y;
g=gcd(x,y);
bs=gbs(x,y);
thegcd:
g<
thegbs:
bs;
3-6、递归函数反序输出数位。
voidrev(intx)/*反向输出*/
{if(x>
0)
x%10;
rev(x/10);
{intx;
Pleaseinputaninteger:
x;
reverse:
if(x<
0)
-"
x=-x;
rev(x);
3-8、递归函数实现十进制到二进制转换。
voidfun(inti)
if(i>
1)
fun(i/2);
i%2;
voidmain()
{intn;
Pleaseinputthedecimalnumber:
thebinarynumber:
fun(n);
3-9、编写函数输出图形。
(略)
3-10、编写min函数模板和max函数模板。
#include<
template<
classT>
Tmin(T&
var1,T&
var2)
{if(var1<
var2)
return(var1);
return(var2);
Tmax(T&
voidmain(void)
{intuserInt1,userInt2;
floatuserFloat1,userFloat2;
charuserChar1,userChar2;
Pleaseinputtwointegarnumbers:
userInt1>
userInt2;
theminis:
min(userInt1,userInt2)<
themaxis:
max(userInt1,userInt2)<
Pleaseinputtwofloatnumbers:
userFloat1>
userFloat2;
min(userFloat1,userFloat2)<
max(userFloat1,userFloat2)<
Pleaseinputtwocharnumbers:
userChar1>
userChar2;
min(userChar1,userChar2)<
max(userChar1,userChar2)<
3-11、绝对值函数模板。
TAbs(constTvar)
{if(var<
return(-var);
return(var);
{//测试整型量求绝对值
inttest1=12,test2=-34;
测试整型量: