x=fun(3); y=fun(4);
printf(\}
8.
fun(int n,int *s) {
int f1, f2;
if(n==1 || n==2) *s=1; else {
fun(n-1, &f1); fun(n-2, &f2); *s=f1+f2; } }
main() {
int x;
fun(6,&x);
printf(\}
三、填空题
1. 以下程序实现了计算x的n次方,请将程序填写完整。
float power(float x,int n) { int i;
float t=1;
for(i=1;i<=n;i++) t=t*x; 【1】; }
main( )
{ float x,y; int n; scanf(\ y=power(x,n); printf(\}
2. 以下程序实现了求两个数的最大公约数,请将程序填写完整。
int divisor(int a,int b) { int r; r=a%b;
while(【2】)
{ a=b;b=r;r=a%b;} return b; }
void main() { int a,b,d,t;
scanf(\if (a
{ t=a; a=b; b=t; } d=divisor(a,b);
printf(\}
3. 以下函数my_cmp( )的功能是比较字符串s和t的大小,当s等于t时返回0,否则返
回s和t的第一个不同字符的ASCII码差值,即s>t时返回正值,s while(*s == *t) { if (【3】) return 0; ++s; ++t; } return 【4】; } 4. 以下程序的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小 到大的顺序排列,函数返回删除后数组中数据的个数。请将程序填写完整。 例如,若一维数组中的数据是: 2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10 删除后,数组中的内容应该是: 2 3 4 5 6 7 8 9 10。 #include int fun(int a[], int n) { int i,j=1; for(i=1;i main( ) { int a[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10},i,n=19; printf(\ for(i=0;i printf(\ for(i=0; i 四、编程题 1. 请用自定义函数的形式编程实现,求s=m!+n!+k!,m、n、k从键盘输入(值均小于7)。 2. 请用自定义函数的形式编程实现求10名学生1门课程成绩的平均分。 3. 请编写两个自定义函数,分别实现求两个整数的最大公约数和最小公倍数,并用主函数 调用这两个函数,输出结果(两个整数由键盘输入得到)。 4. 已知二阶Fibonacci数列: 0 Fib(n) 若n=0 1 若n=1 Fib(n-1)+Fib(n-2) 其他情况 请编写一个递归函数,实现求Fib(n)。 第6章 一、选择题 1. B 2. 11. A 12. 21. A 22. 27.【2】D 30. A 33.【3】A 36.【1】D 38.【1】C 40.【1】C 1. 2. 3. 4. 5. 6. 7. 8. C 3. B A 13. C D 23. C 27.【3】C 31. D 34.【1】D 36.【2】B 38.【2】B 40.【2】B 4. B 5. 14. D 15. 24. B 25. 28.【1】D 32.【1】B 34.【2】C 36.【3】A 38.【3】A 40.【3】D C 6. D 7. D 8. C 9. D 10. D D 16. C 17. B 18. A 19. A 20. A A 26.【1】A 26.【2】D 27.【1】B 28.【2】C 29.【1】C 29.【2】D 32.【2】A 33.【1】C 33.【2】B 35.【1】C 35.【2】A 35.【3】B 37.【1】A 37.【2】B 37.【3】A 39.【1】C 39.【2】B 39.【3】A 二、读程序写结果: 31 15 asd af aa z67 *p1=20,*p2=10 x=10,y=20 5 4 3 2 1 61 6,15 8 三、填空题 1.【1】 return t 2.【2】 r!=0 3.【3】 *s == ?\\0? 【4】 *s-*t 4.【5】 != 【6】 j 四、编程题 1. #include main() { int m,n,k; printf(\scanf(\ printf(\} 2. #include float average(float array[]) { int i=0; float s=0; for(i=0;i main() { float score[N],i; float ave; printf(\ for(i=0;i scanf(\ ave=average(score); printf(\} 3. #include b=r; } return b; } int multiple(int a,int b) { int d; d=divisor(a,b); return a*b/d; } void main() { int a,b,c,d; printf(\ \ scanf(\ c=divisor(a,b); d=multiple(a,b); printf(\} 4. #include void main() { int n; printf(\ \ scanf(\ printf(\}