1、第 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 chickn“); for(i=1;i1e-12); printf(“%.10fn“,x); 执行结果: 1.32471795
2、72 5.源程序略。(分子、分母均构成斐波那契数列) 结果是 32.66026079864 6.源程序: main() int a,b,c,m; printf(“Please input a,b and c:“); scanf(“%d %d %d“, if(ac printf(“SS=%.10lfn“,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(
3、“a=%3d,b=%-4d,c=*%dnd=%gne=%6.2fnf=%-10.4f*n“,a,b,c,d,e,f); 7.源程序: main() int a,b,c,m; scanf(“%d %d %d“, m=a;a=b;b=c;c=m; printf(“%d %d %dn“,a,b,c); 执行结果: 5 6 7 6 7 5 8.源程序: main() int a,b,c; scanf(“%d %d %d“, printf(“average of %d,%d and %d is %.2fn“,a,b,c,(a+b+c)/3.); 执行结果: 6 7 9 average of 6,7 an
4、d 9 is 7.33 9.不能。修改后的源程序如下: main() int a,b,c,x,y; scanf(“%d %d %d“, x=a*b;y=x*c; printf(“a=%d,b=%d,c=%dn“,a,b,c); printf(“x=%d,y=%dn“,x,y); 6 第 5 章 选择结构程序设计 一、单项选择题(第 113 页) 1-4.DCBB 5-8.DABD二、填空题(第 115 页) 1.非 0 0 2.k=0 3.if (abs(x)4) printf(“%d“,x);else printf(“error!“); 4.if(x=1 2.源程序: main() unsi
5、gned long a; scanf(“%ld“, for(;a;printf(“%d“,a%10),a/=10); 执行结果: 12345 54321 3.(1)源程序: main() int x,y; scanf(“%d“, if (x-5 else y=x-1; else y=x; printf(“%dn“,y); (3)源程序: main() int x,y; scanf(“%d“, if(x=5)y=x+1; else if(x=0)y=x-1; else if(x-5)y=x; printf(“%dn“,y); (4)源程序: main() int x,y; scanf(“%d“,
6、 switch(x/5) case -1:if(x!=-5)y=x;break; case 0:y=x-1;break; case 1:y=x+1; printf(“%dn“,y); 4.本题为了避免考虑每月的天数及闰年等问题,故采用面向对象的程序设计。 现给出 Delphi 源程序和 C+ Builder 源程序。 Delphi 源程序: procedure TForm1.Button1Click(Sender: TObject); begin edit3.Text:=format(%.0f 天,strtodate(edit2.text) -strtodate(edit1.text); en
7、d; procedure TForm1.FormCreate(Sender: TObject); begin Edit2.Text:=datetostr(now); button1click(form1) end; C+ Builder 源程序: void _fastcall TForm1:Button1Click(TObject *Sender) Edit3-Text=IntToStr(StrToDate(Edit2-Text)-StrToDate(Edit1-Text)+“天“; void _fastcall TForm1:FormCreate(TObject *Sender) Edit2
8、-Text=DateToStr(Now(); Button1Click(Form1); 执行结果:(运行于 Windows 下) http:/ 5.源程序: main() unsigned a,b,c; printf(“请输入三个整数:“); scanf(“%d %d %d“, if(a else if(a+bc else printf(“构成一般三角形n“); else printf(“不能构成三角形n“); 执行结果: 请输入三个整数:5 6 5 构成等腰三角形 6.源程序: main() int x,y; scanf(“%d“, if(x600)n=0.06; else n=(m/100
9、+0.5)/100; printf(“%d %.2f %.2fn“,m,m*(1-n),m*n); 执行结果: 450 450 429.75 20.25 8. 2171 天(起始日期和终止日期均算在内) 本题可利用第 4 小题编好的程序进行计算。把起始日期和终止日期分别打入 “生日”和“ 今日”栏内,单击“实足年龄” 按钮,将所得到的天数再加上 1 天即可。 9.源程序: #include “math.h“; main() unsigned long i; scanf(“%ld“, printf(“%ld %dn“,i%10,(int)log10(i)+1); 执行结果: 99887 7 5
10、10.源程序: main() unsigned long i;unsigned j10,m=0; scanf(“%ld“, for(;i;)jm+=(i+2)%10;i/=10; for(;m;m-)i=i*10+jm-1; printf(“%ldn“,i); 执行结果: 6987 8109 (注:要加密的数值不能是 0 或以 0 开头。如果要以 0 开头需用字符串而不能是整数。) 7 第 6 章 循环结构程序设计 一、单项选择题(第 142 页) 1-4.BCCB 5-8.CBCA二、填空题(第 143 页) 1.原题可能有误。如无误,是死循环 2.原题有误。如果把 b=1 后面的逗号改为分
11、号,则结果是 8。 3.20 4.11 5. 2.400000 6.*#*#*#$ 7.8 5 2 8.d=1.0 +k k=0 x0)p+=f; else n+=f; printf(“%lf %lf %lfn“,p,n,p+n); 3.源程序: main() unsigned a; scanf(“%ld“, for (;a;printf(“%d,“,a%10),a/=10); printf(“b n“); 执行结果: 23456 6,5,4,3,2 4.源程序: main() unsigned long a,b,c,i; scanf(“%ld%ld“, c=a%1000; for(i=1;i
12、1e-4;n+)f/=n;e+=f; printf(“e=%.4fn“,e); 执行结果: e=2.7183 7.源程序: main() unsigned long a=0,b=1,c=0;int i,d; scanf(“%d“, for (i=1;i=(d+2)/3;i+) printf(“%10ld%10ld%10ld“,a,b,(a+=b+c,b+=c+a,c+=a+b); 本题还可以用递归算法(效率很低 ),源程序如下: unsigned long fun(int i) return i=3?i:fun(i-1)+fun(i-2)+fun(i-3); main() int i,d; s
13、canf(“%d“, for(i=1;i=d;i+) printf(“%10ld“,fun(i); 执行结果: 15 1 2 3 6 11 20 37 68 125 230 423 778 1431 2632 4841 8.源程序: main() int i; for(i=1010;i=9876;i+=2) if(i/100%11 执行结果: 1024 1026 1028 1032 1034 1036 9874 9876 9.源程序: main() int i,j,k; printf(“apple watermelon pearn“); for(i=1;i=100;i+) for(j=1;j=
14、10;j+) if(k=100-i-j)*2=400-i*4-j*40) printf(“%4d%7d%9dn“,i,j,k); 执行结果: apple watermelon pear 5 5 90 24 4 72 43 3 54 62 2 36 81 1 18 10.源程序: #include “stdio.h“; #define N 4 /* N 为阶数,可以改为其他正整数 */ main() int m=N*2,i,j; for(i=1;im;printf(“n“),i+) for(j=1;jm; putchar(N-abs(i-N)=abs(j+-N)? :*); 如果把 N 值改为 5,则执行结果如下: * * * * * * *