printf(\ }
for(i=0;i<3;i++) for(j=0;j<5;j++) {c[i][j]=0;
for(k=0;k<4;k++)
c[i][j]+=a[i][k]*b[k][j]; }
printf(\ for(i=0;i<3;i++) {for(j=0;j<5;j++)
printf(\ printf(\ } }
14. 编程输出两个字符串中对应位置上相同的字符。 答:程序参见文件Cprogram\\
#include \main() {int i;
char a[81]=\ char b[81]=\ printf(\ printf(\ printf(\ i=0;
while(a[i]!='\\0' && b[i]!='\\0') {if(a[i]==b[i])
printf(\ i++; }
printf(\}
15. 设有一字符串已按升序排列在字符数组a中,请将另一字符串b中的字符按升序的规律插到数组a中。 答:程序参见文件Cprogram\\
#include \#include \main() {int i,j,k;
char a[81]=\ char b[81]=\ printf(\
printf(\ i=0;
while(b[i]!='\\0') {j=0;
while(a[j]=j)
{a[k+1]=a[k];k--;} a[j]=b[i]; i++; }
printf(\}
16. 将已按升序排列的两个字符串a和b中的字符按升序归并到字符数组c中。 答:程序参见文件Cprogram\\
#include \#include \main() {int i,j,k;
char a[81]=\ char b[81]=\ char c[81];
printf(\ printf(\ i=0;j=0;k=0;
while(a[i]!='\\0'&&b[j]!='\\0') {if(a[i]
c[k++]=a[i++]; else
c[k++]=b[j++]; }
while(a[i])
c[k++]=a[i++]; while(b[j])
c[k++]=b[j++]; c[k]='\\0';
printf(\}
习题七 函数
一、 选择题
1~10:BDCDD BDBAC 11~20:AABBB ABAAC
21~31:CDAAC DDABB A 二、 填空题
1. 函数声明
2. 自动将其转换为函数定义时的类型 3. 10 4. 1100 5.
6. i<=n 、 s 、 0 、 f(k) 7. *(x0+a/x0) 、 a,x1 8. Itis 9. 2721 10. 0246
11. k 、 -1 12. 2 、 2 13. p= j 、 x[i][p] 14. 5 15. 7 16. 24
17. age(n-1)+2 、 age(n)
18. m 、 m/10 、 m或m!=0 、 r(m) 三、 编程题
1. 编一函数,判断某年是否为闰年,若是返回1,否则返回0。
答:程序参见文件Cprogram\\
#include <> fun(int m)
{ return (m%4==0)&&(m0!=0)||(m@0==0);} main() { int n;
for (n=1987;n<2009;n++) if(fun(n))
printf(\}
2. 编写计算三角形面积的程序,将计算面积定义成函数。三角形面积公式为:
A=s(s?a)(s?b)(s?c) 式中s=(a+b+c)/2
其中A为三角形面积,a、b、c为三角形的三条边的长度。 答:程序参见文件Cprogram\\
#include <> #include <>
float fun(float a,float b,float c) {float f,s;
s=(a+b+c)/2;
if((s<=a)||(s<=b)||(s<=c)) 编写两个函数,分别求出两个整数的最大公约数和最小
公倍数,用主函数调用这两
个函数,并输出结果,两个整数由键盘输入。 答:程序参见文件Cprogram\\
#include <>
#include <>
int fmax(int m,int n) {int r; r=m%n; while (r!=0)
{m=n;n=r;r=m%n;} return n; }
int fmin(int m,int n)
{ return m*n/fmax(m,n);} main() { int a,b;
scanf(\
printf(\