C语言程序设计习题参考答案!(第二版 杜友福) 联系客服

发布时间 : 星期日 文章C语言程序设计习题参考答案!(第二版 杜友福)更新完毕开始阅读34e34c727fd5360cba1adb43

{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 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\\xt7_3_02.c

#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))//或(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 #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)

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 float fun(int m) {float t=1; int i;

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 fun(int m) {int i;

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 double fun()

{int n; double pi=1,t=1; n=1; do

{t=t*n/(2*n+1); pi=pi+t;

20