第6章--函数练习题答案-华中社《C语言程序设计上机指导与练习》.doc
第6章 函数一、选择题1. C2. B3. C二、填空题1. float2. 自动(auto)3. 124. 9.000000三、编程题1. 参考程序如下。#include<stdio.h>void main() int k,m; long p; printf("Please enter k,m:"); scanf("%d,%d",&k,&m); p=f(k)*f(m-k); printf("%dn",p);int f(int n) if(n>1) return n*f(n-1); else return 1;2. 参考程序如下。#define N 3int arrayNN;convert(int arrayNN) int i,j,t; for (i=0;i<N;i+) for (j=i+1;j<N;j+) t=arrayij; arrayij=arrayji; arrayji=t; main()int i,j;printf("Input array(3*3):n");for (i=0;i<N;i+) for(j=0;j<N;j+) scanf("%d",&arrayij);printf("noriginal array:n");for (i=0;i<N;i+) for (j=0;j<N;j+) printf("%5d",arrayij); printf("n");convert(array);printf("convert array:n");for (i=0;i<N;i+) for(j=0;j<N;j+) printf("%5d",arrayij); printf("n"); 3. 参考程序如下。#define N 6main() int n=N,i=1; float s=0; while (i<=n) s=s+(i+1.0)/i; i+; printf("s(%d)=%.5fn",n,s);4. 参考程序如下。main() static int k100; int i,j,n,s; for(j=2;j<1000;j+) n=-1; s=j; for(i=1;i<j;i+) if(j%i)=0) n+; s=s-i; kn=i; if(s=0) printf("%d is a wanshu",j); for(i=0;i<n;i+) printf("%d,",ki); printf("%dn",kn); 5. 参考程序如下。#include<stdio.h> float area(float a,float b) float s; s=a*b; return(s); float zc(float a,float b) float p; p=2*(a+b); return(p); int main() float a,b,s,p;printf("请输入长方形的边长a,b:"); scanf("%f%f",&a,&b); s=area(a,b); p=zc(a,b);printf("长方形的周长为p=%f,长方形的面积为s=%f",p,s);6. 参考程序如下。 #include <stdio.h> void main()long num;int ozb();printf("请输入一个十进制数:");scanf("%ld",&num);printf("%ld的二进制数为:",num);ozb(num);int ozb(long num)int a32=0,i=0;while(num>=1) ai=num%2; num=num/2; i+;for(i=i-1;i>=0;i-) printf("%d",ai);printf("n");return(ai);7. 参考程序如下。#include<stdio.h> long fun2(int m,int n) long s;int i;s=0; for(i=m;i<=n;i+) s=s+i;return(s);int main() int n,m,sum;printf("请输入m,n的值n>m:n");scanf("%d%d",&m,&n);sum=fun2(m,n);printf("sum=%dn",sum);return 0;