当前位置:文档之家› C语言第9次实训题目及参考答案

C语言第9次实训题目及参考答案

1、程序填空。 /*求 1!+2!+3!+...+7!,7!表示 7 的阶乘。*/ 答案:5913 #include <stdio.h> long jc( long x) { long k,fac=1; for(k=1;________;k++) fac *=k ; ________; } void main( ) { long n,sum=0; long jc(long x); for(n=1;n<=7;n++) ________; printf("\n%ld",sum); } 答案:k<=x return fac sum+=jc(n) 2、用递归方法计算 n! (运算规则:1!=1,n!=(n-1)!*n (n>=2) ) 参考代码: #include <stdio.h> long jc( long x) { if(x==1) return 1; else return x*jc(x-1); } void main( ) { int n,sum; scanf("%d",&n); sum=jc(n); printf("\n%ld",sum); } 3、求斐波那契数列的第n项。 (运算规则:f(1)=1,f(2)=1,f(n)=f(n-1)+f(n-2) (n>2) ) 参考代码: #include <stdio.h> int f(int x) { if(x==1||x==2) return 1; else return f(x-1)+f(x-2); }
void main( ) { int n,fib; scanf("%d",&n); fib=f(n); printf("\n%d",fib); }
附加题:输出一个整数的各位数字,用逗号隔开。 (尝试正序和反序输出) 参考代码: 反序输出: #include <stdio.h> void digit(int n) { if(n==0) return; else { printf("%d,",n%10); digit(n/10); } } void main(void) { digit(2013); } 正序输出: #include <stdio.h> void digit(int n) { if(n==0) return; else { digit(n/10); printf("%d,",n%10); } } void main(void) { di
相关主题