C语言程序设计习题参考答案!(第二版 杜友福) 联系客服

发布时间 : 星期日 文章C语言程序设计习题参考答案!(第二版 杜友福)更新完毕开始阅读34e34c727fd5360cba1adb43

n++;

}while(t>1e-5); return 2*pi; }

main()

{ printf(\

7. 编一函数,判断某一整数是否为回文数,若是返回1,否则返回0。所谓回文数就是该数正读与反读是一样的。例如12321就是一个回文数。 答:程序参见文件Cprogram\\xt7_3_07.c

#include #include int huiwen(int m) {int t,n=0; t=m; while(t)

{n++; t=t/10;} //求出M是几位的数 t=m; while(t)

{if(t/(int)pow(10,n-1)!=t) //比较其最高位和最低位 return 0; else

{t=t%(int)pow(10,n-1); //去掉其最高位 t=t/10; //去掉其最低位 n=n-2; //位数去掉了两位 } }

return 1; }

main() { int x;

scanf(\ if (huiwen(x))

printf(\ else

printf(\}

8. 编写一个求水仙花数的函数,然后通过主函数调用该函数求100到999之间的全部水仙花数。所谓水仙花数是指一个三位数,其各位数字的立方和等于该数本身。

例如:153就是一个水仙花数:153=1*1*1+5*5*5+3*3*3 答:程序参见文件Cprogram\\xt7_3_08.c

#include #include int fun8(int m) {int a,b,c;

a=m/100; b=m/10; c=m; if(m==a*a*a+b*b*b+c*c*c) return 1; else

return 0; }

21

main() { int i;

for(i=100;i<=999;i++) if(fun8(i))

printf(\ printf(\}

9. 编一函数primedec(m),求整数m的所有因子并输出。例如:120的因子为:2,2,2,3,5 答:程序参见文件Cprogram\\xt7_3_09.c

#include #include void primedec(int m) {int n=2; while(m>1)

{while(m%n==0)

{printf(\ \ n++; }

printf(\}

main()

{ int x; scanf(\ primedec(x); }

10. 求100~200之间的所有素数,按每行6个输出。 答:程序参见文件Cprogram\\xt7_3_10.c

#include #include int prime(int m) {int n,f=1;

for(n=2;n

main()

{ int x,n=0;

for(x=100;x<=200;x++) if(prime(x)) {n++;

printf(\ if(n%6==0) printf(\ }

printf(\}

11. 编一函数,求末尾数非0的正整数的逆序数,如:reverse(3407)=7043。 答:程序参见文件Cprogram\\xt7_3_11.c

#include #include

22

int reverse(int m) {int x=0; while(m)

{x=x*10+m; m=m/10; } return x; }

main() { int w;

scanf(\

printf(\}

12. 编一函数,将一个字符数组中的数字字符存于另一个字符数组中。 答:程序参见文件Cprogram\\xt7_3_12.c

#include #include

void fun12(char a[],char b[]) {int i=0,j;

for(j=0;j='0'&&b[j]<='9') a[i++]=b[j]; a[i]='\\0'; }

main()

{ char s1[81],s2[81]; gets(s2); fun12(s1,s2); puts(s2);puts(s1); }

13. 编一函数,统计一个字符串中字母、数字、空格和其它字符的个数。 答:程序参见文件Cprogram\\xt7_3_13.c

#include #include void fun13(char s[])

{int i,num=0,ch=0,sp=0,oh=0; char c;

for(i=0;(c=s[i])!='\\0';i++) if(c==' ') sp++;

else if(c>='0'&&c<='9') num++;

else if(toupper(c)>='A' && toupper(c)<='Z') ch++; else oh++;

printf(\}

main()

{ char s1[81]; gets(s1); fun13(s1);

23

}

14. 用递归的方法实现求1+2+3+?+n。 答:程序参见文件Cprogram\\xt7_3_14.c

#include #include int fun14(int m) {int w; if(m==1) w=1; else

w=fun14(m-1)+m; return w; }

main() { int x,i;

scanf(\

printf(\}

15. 用递归的方法将一个整数转换成字符串。例如:输入345,应输出字符串“345”。 答:程序参见文件Cprogram\\xt7_3_15.c #include #include void fun15(int m) { if(m!=0)

{fun15(m/10);

printf(\ } }

main() { int x;

scanf(\ printf(\ fun15(x); printf(\}

16. 用递归的方法计算下列函数的值:

p(x,n)=x-x+x-x+??(-1)x n>0 答:程序参见文件Cprogram\\xt7_3_16.c

#include \#include \float p(float x,int n) {float f; if(n==0) f=0; else

24

2

3

4

n-1n