1 【C语言】"C语言程序设计教程(第二版)"习题答案
说明
1. 本文所指的"C语言程序设计教程(第二版)"是李凤霞主编、理
工大学出版的,绿皮。
2 第1章程序设计根底知识
一、单项选择题(第23页)
1-4.CBBC 5-8.DACA
二、填空题(第24页)
1.判断条件
2.面向过程编程
3.构造化
4.程序
5.面向对象的程序设计语言
6.根本功能操作和控制构造
7.有穷性
8.直到型循环
9.算法10.可读性11.模块化12.对问题的分析和模块的划分
三、应用题(第24页)
2.源程序:
main()
{int i,j,k; /* i:公鸡数,j:母鸡数,k:小鸡数的1/3 */
printf("cock hen chick\n");
for(i=1;i<=20;i++)
for(j=1;j<=33;j++)
for(k=1;k<=33;k++)
if (i+j+k*3==100&&i*5+j*3+k==100)
printf(" %d %d %d\n",i,j,k*3);}
执行结果:
cock hen chick
4 18 78
8 11 81
12 4 84
3.现计算斐波那契数列的前20项。
递推法源程序:
main()
{long a,b;int i;
a=b=1;
for(i=1;i<=10;i++) /*要计算前30项,把10改为15。*/
{printf("%8ld%8ld",a,b);
a=a+b;b=b+a;}}
递归法源程序:
main()
{int i;
for(i=0;i<=19;i++)
printf("%8d",fib(i));}
fib(int i)
{return(i<=1"1:fib(i-1)+fib(i-2));}
执行结果:
1 1
2
3 5 8 13 21 3
4 55
89 144 233 377 610 987 1597 2584 4181 6765 4.源程序:
#include "math.h";
main()
{double *,*0,delta*;
*=1.5;
do {*0=pow(*+1,1./3);
delta*=fabs(*0-*);
*=*0;
}while(delta*>1e-12);
printf("%.10f\n",*);}
执行结果:
1.3247179572
5.源程序略。(分子、分母均构成斐波那契数列) 结果是32.66026079864
6.源程序:
main()
{int a,b,c,m;
printf("Please input a,b and c:");
scanf("%d %d %d",&a,&b,&c);
if(a<b){m=a;a=b;b=m;}
if(a<c){m=a;a=c;c=m;}
if(b<c){m=b;b=c;c=m;}
printf("%d %d %d\n",a,b,c);}
执行结果:
Please input a,b and c:123 456 789
789 456 123
7.源程序:
main()
{int a;
scanf("%d",&a);
printf(a%21==0""Yes":"No");}
执行结果:
42
Yes
3 第2章C语言概述
一、单项选择题(第34页)
1-4.BDCB 5-8.AABC
二、填空题(第35页)
1.主
2.C编译系统
3.函数函数
4.输入输出
5.头
6. .OBJ
7.库函数
8.文本
三、应用题(第36页)
5.sizeof是关键字,stru、_aoto、file、m_i_n、hello、ABC、SIN90、*1234、until、cos2*、s_3是标识符。
8.源程序:
main()
{int a,b,c;
scanf("%d %d",&a,&b);
c=a;a=b;b=c;
printf("%d %d",a,b);}
执行结果:
12 34
34 12
4 第3章数据类型与运算规则
一、单项选择题(第75页)
1-5.DBACC 6-10.DBDBC 11-15.ADCCC 16-20.CBCCD 21-23.ADD
24. D A 25-26.DA
二、填空题(第71页)
1.补码
2.±(10^-308~10^308)
3.int(整数)
4.单目自右相左
5.函数调用
6.a或b
7.1
8.65,89
三、应用题(第78页)
1.10 9
2.执行结果:
11
12
36
5 第4章顺序构造程序设计
一、单项选择题(第90页)
1-5.DCDAD 6-10.BACBB
二、填空题(第91页)
1.一;
2. 5.169000
3.(1)-2002500 (2)I=-200,j=2500 (3)i=-200
j=2500 4.a=98,b=765.000000,c=4321.000000 5.略 6.0,0,3 7.3 8.scanf("%lf%lf%lf",&a,&b,&c); 9. 13 13.000000,13.000000 10.a=a^c;c=c^a;a=a^c;(这种算法不破坏b的值,也不用定义中间变量。)
三、编程题(第92页)
1.仿照教材第27页例2-1。
2.源程序:
main()
{int h,m;
scanf("%d:%d",&h,&m);
printf("%d\n",h*60+m);}
执行结果:
9:23
563
3.源程序:
main()
{int a[]={-10,0,15,34},i;
for(i=0;i<=3;i++)
printf("%d\370C=%g\370F\t",a[i],a[i]*1.8+32);}
执行结果:
-10℃=14°F0℃=32°F15℃=59°F34℃=93.2°F5 A=31.4159265359 S=49.3480220054
5.源程序:
#include "math.h";
main()
{double a,b,c;
scanf("%lf%lf%lf",&a,&b,&c);
if (a+b>c&&a+c>b&&b+c>a)
{double s=(a+b+c)/2;
printf("SS=%.10lf\n",sqrt(s*(s-a)*(s-b)*(s-c)));}
else printf("Data error!");}
执行结果:
4 5 6
SS=9.9215674165
6.源程序:
main()
{int a=3,b=4,c=5;float d=1.2,e=2.23,f=-43.56;
printf("a=%3d,b=%-4d,c=**%d\nd=%g\ne=%6.2f\nf=%-10.4f**\n",a,b,c,d,e,f);}
7.源程序:
main()
c语言斐波那契数列{int a,b,c,m;
scanf("%d %d %d",&a,&b,&c);
m=a;a=b;b=c;c=m;
printf("%d %d %d\n",a,b,c);}
执行结果:
5 6 7
6 7 5
8.源程序:
main()
{int a,b,c;
scanf("%d %d %d",&a,&b,&c);
printf("average of %d,%d and %d is %.2f\n",a,b,c,(a+b+c)/3.); 执行结果:
6 7 9
average of 6,7 and 9 is 7.33
9.不能。修改后的源程序如下:
main()
{int a,b,c,*,y;
scanf("%d %d %d",&a,&b,&c);
*=a*b;y=**c;
printf("a=%d,b=%d,c=%d\n",a,b,c);
printf("*=%d,y=%d\n",*,y);}
6 第5章选择构造程序设计
一、单项选择题(第113页)
1-4.DCBB 5-8.DABD
二、填空题(第115页)
1.非0 0
2.k==0
3.if (abs(*)>4) printf("%d",*);else printf("error!");
4.if((*>=1&&*<=10||*>=200&&*<=210)&&*&1)printf("%d",*);
5.k=1 (原题最后一行漏了个d,如果认为原题正确,则输出k=%。)
6. 8! Right!11
7.$$$a=0
8.a=2,b=1
三、编程题(第116页)
1.有错。正确的程序如下:
main()
{int a,b,c;
scanf("%d,%d,%d",&a,&b,&c);
printf("min=%d\n",a>b"b>c"c:b:a>c"c:a);}
2.源程序:
main()
{unsigned long a;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论