2 1 1 1 1 A= 3 2 1 1 1 4 3 2 1 1 5 4 3 2 1
答:程序参见文件Cprogram\\xt6_3_12.c
#include \#define N 5 main()
{int j,i,a[N][N]; for(i=0;i for(i=0;i {for(j=0;j 13. 已知A是一个3╳4的矩阵,B是一个4╳5的矩阵,编程求A╳B得到的新矩阵C,并输出C矩阵。 答:程序参见文件Cprogram\\xt6_3_13.c #include \ main() {int j,i,k,a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}; int b[4][5]={3,2,1,5,4,4,3,2,5,1,2,3,5,4,1,7,8,5,6,9}, c[3][5]; printf(\ for(i=0;i<3;i++) {for(j=0;j<4;j++) printf(\ printf(\ } printf(\ for(i=0;i<4;i++) {for(j=0;j<5;j++) printf(\ 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++) 16 {for(j=0;j<5;j++) printf(\ printf(\ } } 14. 编程输出两个字符串中对应位置上相同的字符。 答:程序参见文件Cprogram\\xt6_3_14.c #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\\xt6_3_15.c #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\\xt6_3_16.c 17 #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. 9.000000 6. i<=n 、 s 、 0 、 f(k) 7. 0.5*(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 18. m 、 m/10 、 m或m!=0 、 r(m) 三、编程题 1. 编一函数,判断某年是否为闰年,若是返回1,否则返回0。 答:程序参见文件Cprogram\\xt7_3_01.c #include { 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\\xt7_3_02.c #include float fun(float a,float b,float c) {float f,s; s=(a+b+c)/2; if((s<=a)||(s<=b)||(s<=c))//或(a+b)>c&&(a+c)>b&&(b+c)>a f=0; else f=sqrt(s*(s-a)*(s-b)*(s-c)); return f; } main() { float a,b,c; scanf(\ printf(\} 3. 编写两个函数,分别求出两个整数的最大公约数和最小公倍数,用主函数调用这两 个函数,并输出结果,两个整数由键盘输入。 答:程序参见文件Cprogram\\xt7_3_03.c #include {m=n;n=r;r=m%n;} return n; } int fmin(int m,int n) 19 { return m*n/fmax(m,n);} main() { int a,b; scanf(\ printf(\ printf(\} 4. 编写函数,根据整型形参m的值,计算公式 t=1- 111--?-的值。例如,若m=5,则应输出0.536389。 2*23*3m*m 答:程序参见文件Cprogram\\xt7_3_04.c #include for(i=2;i<=m;i++) t=t-1.0/i/i; return t; } main() { printf(\} 5. 计算s=1+ 111++?+。n由终端输入,将计算n!定义成函数。 2!3!n! 答:程序参见文件Cprogram\\xt7_3_05.c #include float s=0,t=1; for(i=1;i<=m;i++) {t=t/i; s=s+t; } return s; } main() { printf(\ } 6. 编写函数,利用公式: ?2?1?1121231234???????????? 3353573579-5 计算π的近似值,当某一项的值小于10时,认为达到精度要求。 答:程序参见文件Cprogram\\xt7_3_06.c #include {int n; double pi=1,t=1; n=1; do {t=t*n/(2*n+1); pi=pi+t; 20