《C语言程序设计》江宝钏著实验五答案Word文档下载推荐.docx
《《C语言程序设计》江宝钏著实验五答案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《《C语言程序设计》江宝钏著实验五答案Word文档下载推荐.docx(14页珍藏版)》请在冰点文库上搜索。
k*=num/10;
num/=10;
}while(k);
returnk;
}
intx;
printf(“inputx=:
\n”);
scanf(“%d”,x);
printf(“%d”,f(x));
答:
unsignedk=1;
k*=num%10;
}while(num!
=0);
inputx=:
\n"
);
scanf("
%d"
&
x);
f(x));
2.一般编程题
编程题1编写一函数,把输入的4个数字字符转换成一个int数据存放,如输入4123这字符转换为4123这个整数,并通过主函数验证结果。
intf(charc)
inta;
a=int(c)-48;
returna;
inta,b=0;
charc;
while((c=getchar())!
='
\n'
)
a=f(c);
b=b*10+a;
%d\n"
b);
%d+%d=%d\n"
b,b,b+b);
编程题2编写程序求:
1*1*1+2*2*2+3*3*3+4*4*4+5*5*5
提示:
主函数用来现实结果,f1()函数用来求一个数的立方,f2()函数用来求和。
#include<
intf1(intn)
……
intf2(intm)
……
1解(使用库函数)
inti=4;
chartemp;
intresult=0;
temp=getchar();
while(temp!
result*=10;
result+=((int)temp-48);
temp=getchar();
%c\n"
temp);
result);
2解(使用stdlib库函数中的atoi()函数)
#include<
stdlib.h>
voidmain()
intnum;
charstr[30];
gets(str);
num=atoi(str);
numtoint:
num);
编程题3定义两个带参数的宏,将两个参数的值相加和相减,并写出程序,输入两个数作为使用宏时的实参。
输出相加和相减后的和与差。
#defineP(m,n)m+n;
#defineQ(m,n)m-n;
intm,n,p,q;
%d%d"
m,&
n);
p=P(m,n);
q=Q(m,n);
%d=%d+%d\n"
p,m,n);
%d=%d-%d\n"
q,m,n);
编程题4
编程输出2到10000之间的所有完数。
所谓完数是指因子之和与它本身相等的数。
如6=1+2+3,6是一个完数。
要求:
定义函数factor(m)判断m是否为完数;
由主函数调用它,来对所有2到10000之间的所有数进行判断。
math.h>
intfactor(intm)
inti,s=0;
{
inti,m,sum;
for(i=1;
i<
m;
i++)
if(m%i==0)
s+=i;
if(s==m)
returns;
else
return0;
inti,m,sum;
m=10000;
for(i=2;
=m;
sum=factor(i);
if(sum>
0)
{
printf("
%d"
sum);
}
3.较难编程题
编程题1用函数调用实现求两个数的最大公因子和最小公倍数
intf(intm,intn)
inti;
;
if(m==n)break;
if(m>
n)
m=m-n;
else
n=n-m;
returnn;
intg(intx,inty,intz)
i=x*y/z;
returni;
inta,b,c,d;
a,&
b);
c=f(a,b);
d=g(a,b,c);
最大公因子:
c);
最小公倍数:
d);
编程题2用递归方法求1+2+3+...+n并将其中素数去除后之和。
intisprime(intnumber)
longfact(intn)
intm,sum;
number;
if(number%i==0)break;
if(i==number)
returnnumber;
longresult,a;
if(n==1)
result=1;
a=isprime(n);
result=a+fact(n-1);
returnresult;
intm,sum;
m);
sum=fact(m);