{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