2 第1章程序设计基础知识一、单项选择题(第23页)1-4.CBBC 5-8.DACA二、填空题(第24页)1.判断条件2.面向过程编程3.结构化4.程序5.面向对象的程序设计语言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 chick4 18 788 11 8112 4 843.现计算斐波那契数列的前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 123 5 8 13 21 34 5589 144 233 377 610 987 1597 2584 4181 67654.源程序:#include "math.h";main(){double x,x0,deltax;x=1.5;do {x0=pow(x+1,1./3);deltax=fabs(x0-x);x=x0;}while(deltax>1e-12);printf("%.10f\n",x);}执行结果:1.32471795725.源程序略。
(分子、分母均构成斐波那契数列)结果是32.660260798646.源程序: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 789789 456 1237.源程序:main(){int a;scanf("%d",&a);printf(a%21==0?"Yes":"No");}执行结果:42Yes3 第2章C语言概述一、单项选择题(第34页)1-4.BDCB 5-8.AABC二、填空题(第35页)1.主2.C编译系统3.函数函数4.输入输出5.头6. .OBJ7.库函数8.文本5.sizeof是关键字,stru、_aoto、file、m_i_n、hello、ABC、SIN90、x1234、until、cos2x、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 3434 124 第3章数据类型与运算规则一、单项选择题(第75页)1-5.DBACC 6-10.DBDBC 11-15.ADCCC 16-20.CBCCD 21-25.ADDBC 26-27.AB二、填空题(第77页)1.补码2.±(10^-308~10^308)3.int(整数)4.单目自右相左5.函数调用6.a或b7.18.65,89三、应用题(第78页)1.10 92.执行结果:111215 第4章顺序结构程序设计一、单项选择题(第90页)1-5.DCDAD 6-10.BACBB二、填空题(第91页)1.一;2. 5.1690003.(1)-2002500 (2)I=-200,j=2500 (3)i=-200j=2500 4.a=98,b=765.000000,c=4321.000000 5.略6.0,0,3 7.38.scanf("%lf%lf%lf",&a,&b,&c); 9. 13 13.000000,13.000000 10.a=a^c;c=c^a;a=a^c;(这种算法不破坏b的值,也不用定义中间变量。
)1.仿照教材第27页例2-1。
2.源程序:main(){int h,m;scanf("%d:%d",&h,&m);printf("%d\n",h*60+m);}执行结果:9:235633.源程序: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°F 0℃=32°F 15℃=59°F 34℃=93.2°F4.源程序:main(){double pi=3.14159265358979,r=5;printf("r=%lg A=%.10lf S=%.10lf\n",r,2*pi*r,pi*pi*r);}执行结果:r=5 A=31.4159265359 S=49.34802200545.源程序:#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 6SS=9.92156741656.源程序: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(){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 76 7 58.源程序: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 9average of 6,7 and 9 is 7.339.不能。
修改后的源程序如下:main(){int a,b,c,x,y;scanf("%d %d %d",&a,&b,&c);x=a*b;y=x*c;printf("a=%d,b=%d,c=%d\n",a,b,c);printf("x=%d,y=%d\n",x,y);}6 第5章选择结构程序设计一、单项选择题(第113页)1-4.DCBB 5-8.DABD二、填空题(第115页)1.非0 02.k==03.if (abs(x)>4) printf("%d",x);else printf("error!");4.if((x>=1&&x<=10||x>=200&&x<=210)&&x&1)printf("%d",x);5.k=1 (原题最后一行漏了个d,如果认为原题正确,则输出k=%。
)6. 8! Right!117.$$$a=08.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;scanf("%ld",&a);for(;a;printf("%d",a%10),a/=10);}执行结果:12345543213.(1)源程序:main(){int x,y;scanf("%d",&x);if (x>-5&&x<0)y=x;if (x>=0&&x<5)y=x-1;if (x>=5&&x<10)y=x+1;printf("%d\n",y);}(2)源程序:main(){int x,y;scanf("%d",&x);if(x<10) if(x>-5) if(x>=0) if(x>=5)y=x+1;else y=x-1; else y=x;printf("%d\n",y);}(3)源程序:main(){int x,y;scanf("%d",&x);if(x<10) if(x>=5)y=x+1;else if(x>=0)y=x-1;else if(x>-5)y=x;printf("%d\n",y);}(4)源程序:main(){int x,y;scanf("%d",&x);switch(x/5){case -1:if(x!=-5)y=x;break;case 0:y=x-1;break;case 1:y=x+1;}printf("%d\n",y);}4.本题为了避免考虑每月的天数及闰年等问题,故采用面向对象的程序设计。