c_程序设计_第四版答案.pdf
第 1章 程 序 设 计 和 C语 言 11.1 什 么 是 计 算 机 程 序 11.2 什 么 是 计 算 机 语 言 11.3 C语 言 的 发 展 及 其 特 点 31.4 最 简 单 的 C语 言 程 序 51.4.1最 简 单 的 C语 言 程 序 举 例 61.4.2 c语 言 程 序 的 结 构 101.5 运 行 C程 序 的 步 骤 与 方 法 121.6 程 序 设 计 的 任 务 141-5#include int main()(printf(”*nn”)printf(n Very Good!nnH);printf(”*n)return 0;)l-6#include int main()int a,b,c,max;printf(uplease input a,b,c:nM);scanf(d,%d,%d”,&a,&b,&c);max=a;if(maxb)max=b;if(maxc)max=c;printfCThe largest number is%dn”,max);return 0;)第 2 章 算 法 一 程 序 的 灵 魂 162.1 什 么 是 算 法 162.2 简 单 的 算 法 举 例 172.3 算 法 的 特 性 212.4 怎 样 表 示 个 算 法 222.4.1 用 自 然 语 言 表 示 算 法 222.4.2 用 流 程 图 表 示 算 法 222.4.3 三 种 基 本 结 构 和 改 进 的 流 程 图 262.4.4 用 N S流 程 图 表 示 算 法 282.4.5 用 伪 代 码 表 示 算 法 312.4.6 用 计 算 机 语 言 表 示 算 法 322.5结 构 化 程 序 设 计 方 法 34习 题 36第 章 最 简 单 的 C程 序 设 计 一 顺 序 程 序 设 计 373.1 顺 序 程 序 设 计 举 例 373.2 数 据 的 表 现 形 式 及 其 运 算 393.2.1 常 量 和 变 量 393.2.2 数 据 类 型 423 2 3 整 型 数 据 443.2.4 字 符 型 数 据 473.2.5 浮 点 型 数 据 493.2.6 怎 样 确 定 常 量 的 类 型 513.2.7 运 算 符 和 表 达 式 523.3 C语 句 573.3.1 C语 句 的 作 用 和 分 类 573.3.2 最 基 本 的 语 句 一 赋 值 语 句 593.4 数 据 的 输 入 输 出 653.4.1 输 入 输 出 举 例 653.4.2 有 关 数 据 输 入 输 出 的 概 念 673.4.3 用 p rin tf函 数 输 出 数 据 683.4.4 用 scant函 数 输 入 数 据 753.4.5 字 符 数 据 的 输 入 输 出 78习 题 823-1#include#include int main()float p,r,n;r=0.1;n=10;p=pow(l+r,n);printf(Hp=%fnn,p);return 0;3-2-1#include#include int main()float r5,r3,r2,rl,r0,p,pl,p2,p3,p4,p5;p=1000;r5=0.0585;r3=0.054;r2=0.0468;rl=0.0414;r0=0.0072;pl=p*(l+r5)*5);p2=p*(l+2*r2)*(l+3*r3);p3=p*(1+3*r3)*(1+2*r2);p4=p*pow(1+r 1,5);p5=p*pow(l+r0/4,4*5);printf(up l=%fnH,p 1);printf(p2=%fnH,p2);printf(,p3=%An,p3);printf(p4=%fn M,p4);printf(up5=%fnH,p5);return 0;)3-2-2#include#include int main()double r5,r3,r2,rl,rO,p,p 1,p2p=1000;r5=0.0585;r3=0.054;r2=0.0468;rl=0.0414;r0=0.0072;pl=p*(l+r5)*5);p2=p*(l+2*r2)*(l+3*r3);p3=p*(1+3*r3)*(1+2*r2);p4=p*pow(l+rl,5);p5=p*pow(1+r0/4,4*5);printf(up l=%fnn,p 1);printf(up2=%fnH,p2);printf(np3=%fnn,p3);printf(np4=%fn,p4);printf(p5=%fn,p5);return 0;/一 次 存 5 年 期 先 存 2 年 期,到 期 后 将 本 息 再 存 3 年 期 先 存 3 年 期,到 期 后 将 本 息 再 存 2 年 期 存 1年 期,到 期 后 将 本 息 存 再 存 1年 期,连 续 存 5 次/存 活 期 存 款。活 期 利 息 每 一 季 度 结 算 一 次/输 出 按 第 1方 案 得 到 的 本 息 和/输 出 按 第 2 方 案 得 到 的 本 息 和/输 出 按 第 3 方 案 得 到 的 本 息 和/输 出 按 第 4 方 案 得 到 的 本 息 和/输 出 按 第 5 方 案 得 到 的 本 息 和,p3,p4,p5;/一 次 存 5 年 期 先 存 2 年 期,到 期 后 将 本 息 再 存 3 年 期 先 存 3 年 期,到 期 后 将 本 息 再 存 2 年 期/存 1年 期,到 期 后 将 本 息 存 再 存 1年 期,连 续 存 5 次/存 活 期 存 款。活 期 利 息 每 一 季 度 结 算 一 次/输 出 按 第 1方 案 得 到 的 本 息 和/输 出 按 第 2 方 案 得 到 的 本 息 和/输 出 按 第 3 方 案 得 到 的 本 息 和/输 出 按 第 4 方 案 得 到 的 本 息 和/输 出 按 第 5 方 案 得 到 的 本 息 和 3-2-3#include#include int main()float r5,r3,r2,rl,r0,p,pl,p2,p3,p4,p5;p=1000;r5=0.0585;3=0.054;r2=0.0468;rl=0.0414;r0=0.0072;pl=p*(l+r5)*5);p2=p*(1+2*r2)*(1+3*r3);p3=p*(l+3*r3)*(l+2*r2);p4=p*pow(l+r 1,5);p5=p*pow(l+r0/4,4*5);printf(np 1=%10.2fnn,p 1);printf(rp2=%10.2fnu,p2);printf(,p3=%10.2fn,p3);printf(p4=%10.2fnp4);printf(np5=%10.2fn,p5);return 0;/一 次 存 5 年 期 先 存 2 年 期,到 期 后 将 本 息 再 存 3 年 期 先 存 3 年 期,到 期 后 将 本 息 再 存 2 年 期/存 1年 期,到 期 后 将 本 息 存 再 存 1年 期,连 续 存 5 次/存 活 期 存 款。活 期 利 息 每 一 季 度 结 算 一 次/输 出 按 第 1方 案 得 到 的 本 息 和/输 出 按 第 2 方 案 得 到 的 本 息 和/输 出 按 第 3 方 案 得 到 的 本 息 和/输 出 按 第 4 方 案 得 到 的 本 息 和/输 出 按 第 5 方 案 得 到 的 本 息 和 3-3.#include#include int main()float d=300000,p=6000,r=0.01,m;m=log 10(p/(p-d*r)/log 10(1+r);printf(,m=%6.2fn,m);return 0;)3-4#include int main()int cl,c2;cl=197;c2=198;printf(uc l=%c,c2=%cn,c l,c2);printf(,cl=%d,c2=%dn;cl,c2);return 0;)3-5#include int main()int a,b;float x,y;char c l,c2;scanf(na=%d b=%d;&a,&b);scanf(%f%en,&x,&y);scanf(n%c%cn,&cl,&c2);printf(na=%d,b=%d,x=%f,y=%f,c 1=%c,c2=%cn,a,b,x,y,c l,c2);return 0;3-6#include int main()char c l=C,c2=,h,c3=,i,c4=,n;c5=a,;cl=cl+4;c2=c2+4;c3=c3+4;c4=c4+4;c5=c5+4;printf(Hpasswor is%c%c%c%c%cnM,c 1,c2,c3,c4,c5);return 0;)3-7#include int main()float h,r,l,s,sq,vq,vz;float pi=3.141526;printf(请 输 入 圆 半 径 r,圆 柱 高 h:”);scanf(f,%f”,&r,&h);要 求 输 入 圆 半 径 r 和 圆 柱 高 hl=2*pi*r;计 算 圆 周 长 1s=r*r*pi;sq=4*pi*r*r;vq=3.0/4.0*pi*r*r*r;vz=pi*r*r*h;printf(圆 周 长 为:printf(圆 面 积 为:printf(圆 球 表 面 积 为:printf(圆 球 体 积 为:printf(圆 柱 体 积 为:return 0;计 算 圆 面 积 s 计 算 圆 球 表 面 积 sq 计 算 圆 球 体 积 vq 计 算 圆 柱 体 积 vzl=%6.2fn,l);s=%6.2hn,s);sq=%6.2fn*,sq);v=%6.2fnvq);vz=%6.2fn,vz);3-8-1#include ini main()(int cl,c2;整 型 定 义 printf(请 输 入 两 个 整 数 cl,c2:n);scanf(”d,%d”,&cl,&c2);printf(按 字 符 输 出 结 果 An”);printf(,%c,%cn,c l,c2);printf(按 ASCII码 输 出 结 果 为:n“);printf(n%d,%dnn,c l,c2);return 0;)3-8-2#include int main()(char cl,c2;定 义 字 符 型 变 量 intil,i2;定 义 整 型 变 量 printf(请 输 入 两 个 字 符 cl,c2:n);scanf(%c,%c”,&c 1,&c2);il=cl;赋 值 给 整 型 变 量 i2=c2;printf(按 字 符 输 出 结 果:n)printf(,%c,%cn,il,i2);printf(按 整 数 输 出 结 果:n);printf(n%d,%dnn,cl,c2);return 0;3-8-3#include int main()(char cl,c2;int il,i2;primf(请 输 入 两 个 整 数 il,)scanf(M%d,%dn,&il,&i2);cl=il;c2=i2;printf(按 字 符 输 出 结 果 printf(%c,%cn,c l,c2);printf(按 整 数 输 出 结 果:n)printf(n%d,%dnH,cl,c2);return 0;定 义 为 字 符 型 定 义 为 整 型 将 整 数 赋 值 给 字 符 变 量 3-8#include int main()(char cl,c2;printf(请 输 入 两 个 字 符 cl,c2:);cl=getchar();c2=getchar();printf(”用 putchar语 句 输 出 结 果 为 putchar(cl);putchar(c2);printf(nn);printf(用 printf语 句 输 出 结 果 为 printf(u%c%cn,cl,c2);return 0;)第 4 章 选 择 结 构 程 序 设 计 854.1 选 择 结 构 和 条 件 判 断 854.2 用 if语 句 实 现 选 择 结 构 874.2.1 用 if语 句 处 理 选 择 结 构 举 例 874.2.2i f语 句 的 一 般 形 式 894.3 关 系 运 算 符 和 关 系 表 达 式 914.3.1 关 系 运 算 符 及 其 优 先 次 序 914.3.2 关 系 表 达 式 924.4 逻 辑 运 算 符 和 逻 辑 表 达 式 924.4.1 逻 辑 运 算 符 及 其 优 先 次 序 934.4.2 逻 辑 表 达 式 944.4.3 逻 辑 型 变 量 964.5 条 件 运 算 符 和 条 件 表 达 式 974.6 选 择 结 构 的 嵌 套 994.7 用 sw itch语 句 实 现 多 分 支 选 择 结 构 1024.8 选 择 结 构 程 序 综 合 举 例 105习 题 1114-4-1#include int main()(int a,b,c;printf(”请 输 入 三 个 整 数 scanf(d,%d,%d”,&a,&b,&c);if(ab)if(bc)printf(max=%dnH,c);elseprintf(nmax=%dn,b);else if(ac)printf(,max=%dn,c);elseprintf(,max=%dn,a);return 0;4-4-2#include int main()int a,b,c,temp,max;printf(请 输 入 三 个 整 数:);scanf(d,%d,%d”,&a,&b,&c);temp=(ab)?a:b;/*将 a 和 b 中 的 大 者 存 入 tem p中*/max=(tempc)?temp:c;/*将 a 和 b 中 的 大 者 与 c 比 较,取 最 大 者*/printf(三 个 整 数 的 最 大 数 是 dn”,max);return 0;4-5-2#include#include#define M 1000int main()int i,k;printf(请 输 入 一 个 小 于 d 的 整 数 scanf(n%dn,&i);while(iM)prinlf(输 入 的 数 不 符 合 要 求,请 重 新 输 入 一 个 小 于 d 的 整 数 scanf(n%dH,&i);)k=sqrt(i);printf(M%d的 平 方 根 的 整 数 部 分 是:%dn,i,k);return 0;4-5#include#include#define M 1000int main()(int i,k;printf(请 输 入 一 个 小 于 d 的 整 数 scanf(”d”,&i);if(iM)printf(输 入 的 数 不 符 合 要 求,请 重 新 输 入 个 小 于(1的 整 数 scanf(%dn,&i);)k=sqrt(i);printf(n%d的 平 方 根 的 整 数 部 分 是:%dn;i,k);return 0;4-6.#include int main()int x,y;printf(“输 入 x:);scanf(”d”,&x);if(xl)/*xl*/y=x;printf(x=%3d,y=x=%dnM,x,y);else if(x10)/*1 二 vxvlO*/y=2*x-1;printf(x=%d,y=2*x-1=%dnx,y);)else/*x=10*/y=3*x-ll;printf(x=%d,y=3*x-l l=%dn,x,y);)return 0;)4-7-1#include int main()(int x,y;printf(enter x:);scanf(n%dn,&x);y=-i;if(x!=0)if(x0)y=i;elsey=0;printf(nx=%d,y=%dn,x,y);return 0;4-7-2#include int main()(int x,y;printf(Mplease enter x:);scanf(d”,&x);y=o;if(x=0)if(x0)y=l;else y=-l;printf(nx=%d,y=%dn,x,y);return 0;4-8#include int main()float score;char grade;printf(”请 输 入 学 生 成 绩:“);scanf(f”,&score);while(score 1001 lscore0)printf(n n 输 入 有 误,请 重 输)scanf(u%f;&score);)switch(int)(score/10)case 10:case 9:grade=,A;break;case 8:grade=B,;break;case 7:grade=,C,;break;case 6:grade=,D;break;case 5:case 4:case 3:case 2:case 1:case 0:grade=,E,;)printf(成 绩 是 5.1f,相 应 的 等 级 是%cn score,grade);return 0;4-9#include#include int main()(int num,indiv,ten,hundred,thousand,ten_thousand,place;位,万 位 和 位 数 printf(请 输 入 一 个 整 数(0-99999):”);scanf(d”,&num);if(num9999)place=5;else if(num999)place=4;else if(num99)分 别 代 表 个 位,十 位,百 位,千place=3;else if(num9)place=2;else place=l;printf(位 数:dn”,place);printf(每 位 数 字 为:);ten_thousand=num/10000;thousand=(int)(num-ten_thousand*10000)/1000;hundred=(int)(num-ten_thousand:1;10000-thousand*1000)/100;ten=(int)(num-ten_thousand*10000-thousand*1000-hundred*100)/10;indiv=(int)(num-ten_thousand*10000-thousand*1 OOO-hundred*100-ten*10);switch(place)case 5:printf(,%d,%d,%d,%d,%d,ten_thousand,thousand,hundred,ten,indiv);printf(n n 反 序 数 字 为:);printf(,%d%d%d%d%dn,indiv,ten,hundred,thousand,ten_thousand);break;case 4:printf(n%d,%d,%d,%dn,thousand,hundred,ten,indiv);printf(n n 反 序 数 字 为 printf(,%d%d%d%dnn,indiv,ten,hundred,thousand);break;case 3:printf(n%d,%d,%dn,hundred,ten,indiv);printf(n n 反 序 数 字 为:);printf(,%d%d%dn,indiv,ten,hundred);break;case 2:printf(%d,%d,ten,indiv);printf(n反 序 数 字 为;printf(u%d%dnH,indiv,ten);break;case l:printf(H%d,indiv);printf(M n 反 序 数 字 为:);printf(%dnH,indiv);break;)return 0;4-10-1#include int main()(inti;double bonus,bon 1,bon2,bon4,bon6,bon 10;bon 1=100000*0.1;bon2=bon 1+100000*0.075;bon4=bon2+100000*0.05;bon6=bon4+100000*0.03;bon 10=bon6+400000*0.015;primf(请 输 入 利 润 i:”);scanf(u%dn,&i);if(i=100000)bonus=i*0.1;else if(i=200000)bonus=bon 1+(i-l 00000)*0.075;else if(i=400000)bonus=bon2+(i-200000)*0.05;else if(i=600000)bonus=bon4+(i-400000)*0.03;else if(i=1000000)bonus=bon6+(i-600000)*0.015;elsebonus=bon 1 0+(i-l 000000)*0.01;primf(奖 金 是:%10.2fnn,bonus);return 0;4-10-2#include int main()(int i;double bonus,bon 1,bon2,bon4,bon6,bon 10;int branch;bonl=100000*0.1;bon2=bon 1+100000*0.075;bon4=bon2+200000*0.05;bon6=bon4+200000*0.03;bon 10=60116+400000*0.015;primf(请 输 入 利 润 i:“);scanf(%dH,&i);branch=i/100000;if(branch 10)branch=10;switch(branch)case 0:bonus=i*0.1;break;case 1:bonus=bon l+(i-100000)*0.075;break;case 2:case 3:bonus=bon2+(i-200000)*0.05;break;case 4:case 5:bonus=bon4+(i-400000)*0.03;break;case 6:case 7:case 8:case 9:bonus=bon6+(i-600000)*0.015;break;case 10:bonus=bon 10+(i-1000000)*0.01;printf(奖 金 是%10.2fnH,bonus);return 0;4-11#include ini main()int t,a,b,c,d;printf(请 输 入 四 个 数:);scanf(d,%d,%d,%d”,&a,&b,&c,&d);printf(a=%d,b=%dtc=%d,d=%dnn,a,b,c,d);if(ab)t=a;a=b;b=t;if(ac)t=a;a=c;c=t;if(ad)t=a;a=d;d=t;if(bc)t=b;b=c;c=t;if(bd)t=b;b=d;d=t;if(cd)t=c;c=d;d=t;printf(排 序 结 果 如 下:n)printf(d%d%d%d nM,a,b,c,d);return 0;)4-12#include int main()int h=10;float x l=2,y I=2,x2=-2,y2=2,x3=-2,y3=-2,x4=2,y4=-2,x,y,d 1,d2,d3,d4;printf(请 输 入 一 个 点(x,y):);scanf(%f,%f,&x,&y);d 1=(x-x4)*(x-x4)+(y-y4)*(y-y4);/*求 该 点 到 各 中 心 点 距 离*/d2=(x-x l)*(x-x l)+(y-y l)*(y-y 1);d3=(x-x2)*(x-x2)+(y-y2)*(y-y2);d4=(x-x3)*(x-x3)+(y-y3)*(y-y3);if(dll&d2l&d3l&d4l)h=0;/*判 断 该 点 是 否 在 塔 外*/printf(该 点 高 度 为%dn,h);return 0;)第 5 章 循 环 结 构 程 序 设 计 1145.1 为 什 么 需 要 循 环 控 制 1145.2 用 while语 句 实 现 循 环 1155.3 用 do.while语 句 实 现 循 环 1175.4 用 for语 句 实 现 循 环 1205.5 循 环 的 嵌 套 1245.6 几 种 循 环 的 比 较 1255.7 改 变 循 环 执 行 的 状 态 1255.7.1 用 break语 句 提 前 终 止 循 环 1265.7.2 用 continue语 句 提 前 结 束 本 次 循 环 1275.7.3 break语 句 和 continue语 句 的 区 别 1285.8 循 环 程 序 举 例 131习 题 1405-2#include#include ini main()(int sign=l,counl=0;double pi=0.0,n=1.0,term=1.0;term代 表 当 前 项 的 值 while(fabs(term)=1 e-8)次 方(pi=pi+term;n=n+2;sign=-sign;term=sign/n;count+;pi=pi*4;printf(Mpi=%10.8fnn,pi);printf(ncount=%dncount);/程 序 中 用 到 数 学 函 数 fabs,应 包 含 头 文 件 math.n/sign用 来 表 示 数 值 的 符 号,counl用 来 统 计 循 环 次 数/pi开 始 代 表 多 项 式 的 值,最 后 代 表 兀 的 值,n 代 表 分 母,/检 查 当 前 项 term的 绝 对 值 是 否 大 于 或 等 于 1 0 的(6)/把 当 前 项 term累 加 到 pi中/n+2是 下 一 项 的 分 母/sign代 表 符 号,下 一 项 的 符 号 与 上 一 项 符 号 相 反/求 出 下,项 的 值 term/count 累 力 1 多 项 式 的 和 pi乘 以 4,才 是 兀 的 近 似 值/输 出 兀 的 近 似 值/输 出 循 环 次 数return 0;)5-3#include int main()(int p,r,n,m,temp;printf(”请 输 入 两 个 正 整 数 n,m:“);scanf(%d,%d,&n,&m);if(nm)(temp=n;n=m;m=temp;)p=n*m;while(m!=0)(r=n%m;n=m;m=r;)printf(它 们 的 最 大 公 约 数 为:%dn”,n);printf(它 们 的 最 小 公 约 数 为:%dn”,p/n);return 0;)5-4#include int main()(char c;int Ietters=0,space=0,digit=0,other=0;printf(请 输 入 一 行 字 符:n”);while(c=getchar()!=n)(if(c=fa&c=A&cv=Z)letters+;else if(c=*)space+;else if(c=0&c=9)digit+;elseother+;printf(字 母 数:dn 空 格 数:%dn 数 字 数:%dn 其 它 字 符 数:dn”,letters,space,digit,other);return 0;)5-5#include int main()(int a,n,i=l,sn=0,tn=0;printf(,a,n=:u);scanf(u%d,%dn,&a,&n);while(i=n)(tn=tn+a;/*赋 值 后 的 t n为 i 个 a 组 成 数 的 值*/sn=sn+tn;/*赋 值 后 的 s n为 多 项 式 前 i 项 之 和 刃 a=a*10;+i;)printf(na+aa+aaa+.=%dnn,sn);return 0;5-6#include int main()double s=O,t=l;int n;for(n=l;n=20;n+)(t=t*n;s=s+t;)printf(nl!+2!+.+20!=%22.15en,s);return 0;5-7#include int main()int n 1=100,n2=50,n3=10;double k,sl=0,s2=0,s3=0;for(k=1;k=n 1;k+)/*计 算 1 至 lj 100 的 和*/sl=sl+k;for(k=l;k=n2;k+)/*计 算 1至 5 0各 数 的 平 方 和*/s2=s2+k*k;Jfor(k=l;k=n3;k+)/*计 算 1 到 10 的 各 倒 数 和*/s3=s3+l/k;printf(sum=%15.6fnn,sl4-s2+s3);return 0;5-8#include int main()(int i,j,k,n;printf(parcissus numbers are);for(n=100;n1000;n+)(i=n/100;j=n/10-i*10;k=n%10;if(n=i*i*i+j*j*j+k*k*k)printf(n%d u,n);)printf(nn);return 0;)5-9-1#define M 1000#include int main()/*定 义 寻 找 范 围*/int k 1,k2,k3,k4,k5,k6,k7,k8,k9,k 10;int i,a,n,s;for(a=2;a=M;a+)n=0;s=a;for(i=l;ia;i+)if(a%i=0)/*a 是 2-1000之 间 的 整 数,检 查 它 是 否 完 数*/*n用 来 累 计 a 的 因 子 的 个 数*/*s用 来 存 放 尚 未 求 出 的 因 子 之 和,开 始 时 等 于 a*/*检 查 i 是 否 a 的 因 子*/*如 果 i 是 a 的 因 子*/printf(M%d,Its factors are”,a);n+;/*n加 1,表 示 新 找 到 一 个 因 子*/s=s-i;/*s减 去 已 找 到 的 因 子,s 的 新 值 是 尚 未 求 出 的 因 子 之 和*/switch(n)/*将 找 到 的 因 子 赋 给 k l.k 9,或 klO*/case 1:kl=i;break;/*找 出 的 笫 1个 因 子 赋 给 kl*/case 2:k2=i;break;/*找 出 的 笫 2 个 因 子 赋 给 k2*/case 3:k3=i;break;/*找 出 的 笫 3 个 因 子 赋 给 k3*/case 4:k4=i;break;/*找 出 的 笫 4 个 因 子 赋 给 k4*/case 5:k5=i;break;/*找 出 的 笫 5 个 因 子 赋 给 k5*/case 6:k6=i;break;/*找 出 的 笫 6 个 因 子 赋 给 k6*/case 7:k7=i;break;/*找 出 的 笫 7 个 因 子 赋 给 k7*/case 8:k8=i;break;/*找 出 的 笫 8 个 因 子 赋 给 k8*/case 9:k9=i;break;/*找 出 的 笫 9 个 因 子 赋 给 k9*/case 10:kl0=i;break;/*找 出 的 笫 10个 因 子 赋 给 klO*/)if(s=O)printf(Hnn);if(nl)printf(n%d,%d,kl,k2);/*n l表 示 a 至 少 有 2 个 因 子*/if(n2)printf(,%d,k3);/*n 2表 示 至 少 有 3 个 因 子,故 应 再 输 出 一 个 因 子*/if(n3)printf(;%dn,k4);/*n 3表 示 至 少 有 4 个 因 子,故 应 再 输 出 一 个 因 子*/if(n4)printf(H,%dn,k5);/*以 下 类 似*/if(n5)printf(n,%d;k6);if(n6)printf(,%d,k7);if(n7)printf(u,%d,k8);if(n8)printf(u,%dn,k9);if(n9)printf(,%dn,klO);return 0;5-9-2#include int main()int m,s,i;for(m=2;m1000;m+)s=0;for(i=l;im;i+)if(m%i)=0)s=s+i;if(s=m)printf(u%d,its factors are,m);for(i=l;im;i+)if(m%i=0)printf(M%d,i);printfCn1);)return 0;)5-10#include int main()(int i,n=20;double a=2,b=l,s=0,t;for(i=l;i=n;i+)(s=s+a/b;t=a,a=a+b,b=t;printf(,sum=%16.10fn,s);return 0;5-11#include int main()(double sn=100,hn=sn/2;int n;for(n=2;n=10;n+)|sn=sn+2*hn;/*第 n 次 落 地 时 共 经 过 的 米 数 刃 hn=hn/2;/*第 n 次 反 跳 高 度*/)prinlf(第 10次 落 地 时 共 经 过 f 米 n,sn);printf(第 10 次 反 弹 f 米 n,hn);return 0;)5-12#include int main()(int day,xl,x2;day=9;x2=l;while(day0)xl=(x2+l)*2;/*第 1天 的 桃 子 数 是 第 2 天 桃 子 数 加 1后 的 2 倍.*/x2=xl;day;)printf(Mtotal=%dnu,x 1);return 0;5-13#include#include int main()(float a,x0,x 1;printf(enter a positive number:);scanf(”f”,&a);x0=a/2;xl=(x0+a/x0)/2;dox0=xl;xl=(x0+a/x0)/2;while(fabs(xO-x 1)=1 e-5);printf(MThe square root of%5.2f is%8.5fna,x 1);return 0;)5-14#include#include int main()double xl,xO,f,fl;xl=1.5;doxO=xl;f=(2*x0-4)*x0+3)*x0-6;fl=(6*x0-8)*x0+3;xl=xO-f/fl;while(fabs(x 1-x0)=1 e-5);printf(nThe root of equation is%5.2fn,xl);retum 0;)5-15#include#include int main()float x0,x 1,x2,fx0,fx 1,fx2;doprintf(enter xl&x2:);scanf(%f,%fH,&xl,&x2);fxl=xl*(2*x l-4)*x l+3)-6;fx2=x2*(2*x2-4)*x2+3)-6;while(fxl*fx20);dox0=(xl+x2)/2;fx0=x0*(2*x0-4)*x0+3)-6;if(fx0*fx l)=le-5);printf(nx=%6.2fnu,x0);retum 0;)5-16#include int main()int i,j,k;for(i=0;i=3;i+)for(j=0;j=2-i;j+)printf();for(k=0;k=2*i;k+)printf。*