收藏 分销(赏)

西南交大计算机C++第三章习题答案PPT课件.ppt

上传人:二*** 文档编号:8010533 上传时间:2025-01-30 格式:PPT 页数:30 大小:433KB
下载 相关 举报
西南交大计算机C++第三章习题答案PPT课件.ppt_第1页
第1页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,.,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,.,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,.,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,.,*,单击此处编辑母版标题样式,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,.,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,.,*,单击此处编辑母版标题样式,单击此处编辑母版文本样

2、式,第二级,第三级,第四级,第五级,.,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,.,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,.,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,.,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,.,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,.,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,.,*,单击

3、此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,.,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,.,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,.,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,.,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,.,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,.,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,

4、第二级,第三级,第四级,第五级,.,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,.,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,.,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,.,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,.,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,.,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,.,*,单击此处

5、编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,.,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,.,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,.,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,.,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,.,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,.,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二

6、级,第三级,第四级,第五级,.,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,.,*,第三章课后练习题答案,单项选择题,A A C BB C C A C C,A A D B C A D B B D D D,判断题,1,.,求,100,内所有素数之和,先回忆求素数的算法,算法分析:,一个数如果除了能被,1,和它本身整除以外,再也不能被其它整数整除,则称这个数为素数。,设:,n,为一个任意整数,令:,k=2,3,n-1,则:若,n%k!=0,,,n,是素数;否则,只要,k,值中有一个能整除,n,,,n,就不是素数,(,需要退出循环,),。,2,.,判断一个

7、数是否为素数的流程图,f=1,k=2,kn,n%k=0,k=k+1,f=1,T,F,F,T,f=0,n,是素数,n,不是素数,T,F,结束,开始,3,.,#,include,using namespace std;,void main(void),int n,k,f=1,;,coutn;,for(k=2;kn;k+),if(n%k=0),f=0;,break;,if(,f=1,)coutn is a prime.endl;,else coutn is not a prime.endl;,4,.,#include,#include,using namespace std;,void main(v

8、oid),int i,j,sum=0;,for(i=2;i=100;i+),for(j=2;j=i),coutsetw(4)i;/,输出每一个素数,sum=sum+i;/,对所有素数求和,coutendl100,之内的素数之和为:,sumendl;,方法一:,算法思想:在判断一个数是否为素数的基础上,对,2,到,100,内的所有整数进行判断,若为素数则累加求和。,5,.,#include iostream.hvoid main(),int m,j,i=0,sum=0,h;for(m=2;m=100;m+)sum=sum+m;,/,求,100,以内所有整数之和,for(m=2;m=100;m+)

9、for(j=2;jm;j+)if(m%j=0)i=m+i;break;,/i,为,100,内所有非素数之和,h=sum-i;,/h,即为,100,内所有素数之和,couth;,方法二:,算法思想:先求出,100,以内所有整数之和,然后求出所有非素数之和,则两者之差即为,100,以内所有素数之和。,6,.,2.,输入一台计算机的编号和该计算机的价格,并输出这些信息。(如编号为,10987654321,,价格为,5,998.00,元,注意此处计算机的编号作为一个整数而言超出了,int,所定义的变量的存储范围,因此只能用,double,型变量来存储,但输出时要求看见的是整数形式的编号),#inclu

10、de,using namespace std;,void main(),double price,code;,coutcode;,coutprice;,coutfixed;,cout.precision(0);/,设置输出格式,coutThe computers code is codeendl;,cout.precision(2);/,小数点后保留,2,位,coutThe computers price is priceendl;,.,3.,输入三个同学的学号,计算机和英语课程的考试成绩,并输出这些信息。要求每个同学的三个信息输出在同一行上,三行输出信息要各列对齐。,#include,#in

11、clude,using namespace std;,void main(),int code1,code2,code3;,double c1,c2,c3,e1,e2,e3;,coutcode1c1e1;,coutcode2c2e2;,coutcode3c3e3;,coutsetw(10),学号,setw(10),计算机,setw(10),英语,endl;,coutsetw(10)code1setw(10)c1setw(10)e1endl;,coutsetw(10)code2setw(10)c2setw(10)e2endl;,coutsetw(10)code3setw(10)c3setw(10

12、)e3endl;,.,6.,有一个函数,输入,x,的值,输出相应的函数值。,(提示:,x,取值分大于零和小于等于,0,的两段,对输入的,x,值,在计算前应判断范围,采用不同的计算公式。),#include,using namespace std;,void main(),double x,y;,coutinput x:x;,if(x0),y=x+1;,else,y=x*x;,couty=yendl;,.,7,实现一个简单的菜单程序,运行时显示,Menu,:,A,(,dd,),D,(,elete,),S,(,ort,),Q,(,uit,),Select one,:,要求用户提供相应的输入,并在用

13、户输入,A,,,D,,,S,时分别提示“数据已经增加、删除、排序”,输入为,Q,时程序结束。,(提示:该程序要求用户输入特定的,A,,,D,,,S,,,Q,字符显示相应信息,所以适合采用,switch,结构。),.,#include,using namespace std;,void main(),char x;,coutMenu:endl;,cout“tA(dd)”endl;,/*t,为转义字符,表示制表符,即键盘,上的“,Tab,”键,*/,couttD(elete)endl;,couttS(ort)endl;,couttQ(uit)endl;,coutx;,switch(x),case

14、A:,case a:cout,数据已经增加,endl;break;,case D:,case d:cout,数据已经删除,endl;break;,case S:,case s:cout,数据已经排序,endl;break;,case Q:,case q:exit(0);break;,default:cout,输入错误!,endl;,.,8.,某公司进行产品销售,既零售也批发,零售的价格与批发的价格不同,购买产品数量的多与少其价格也不同。具体标准见下表:,要求:输入客户购买产品的糧,输出客户类型(批发或零售客户)、产品单价及应付的总额。(提示:产品的批发和零售是根据客户购买产品的数量来确定的,产

15、品的价格也与购买产品的数量有关。产品数量是否超过,50,决定了客户是否是批发商,而产品数量的,5,个段决定了,5,种不同的价格。可采用,if,嵌套形式实现。),.,#includeiostream),#include,#include,using namespace std;,void main(),int number,price,money;,string sort;,cout,请输入客户购买的产品数量:,number;,if(number50),sort=,批发商,;,if(number40),price=12;,else,if(number20),price=15;,else,pric

16、e=18;,money=price*number;,coutsetw(10),客户类型,setw(10),产品单价,setw(20),应付款总额,endl;,coutsetw(10)sortsetw(10)pricesetw(20)moneyendl;,注意嵌套的选择结构中,,if else,的配对关系!,.,10.,已知一函数,,输入,x,的值,求解并输出相应的,y,值。,(,提示:该题根据,x,的取值范围采用不同公式来计算,y,的值。显然采用,if,选择结构可实现该程序。),#include,using namespace std;,void main(),double x,y;,cout

17、input x:x;,if(x=1&x10),y=2*x-1;,else,y=3*x-11;,couty=yendl;,.,#include,using namespace std;,void main(),int k,s=0;,for(k=1;k=100;k+),if(k%2=0),continue;,s=s+k;,cout“s=”sendl;,11.,求,100,以内奇数之和,15,.,14.,输入一整数,将各位数字反转后输出,分析:将一个整数反转输出,即先输出个位,然后输出十位、百位、.。可以采用不断除以10取余数的方法,直到商数等于0为止,这是一个循环过程。,回忆第,2,章练习题:已知

18、,int a=3467,写出计算其个、十、百、千位的表达式。,解:,a%10,a/10%10,a/100%10,,,a/1000%10,或,a/1000,16,.,#,include,using namespace std;,void main(),int n,num;,cout n;,cout The number in reverse order is:;,do,num=,n%10,;,cout num;,n/=10,;,while(n!=0);,cout endl;,输入整数,n,n=0,n%10,num,输出,num,n/10,n,17,.,18,思考题:,输入一整数,求出它的反序数,

19、分析:在前一个例题的基础上,我们可以对一个整数的各位逆序输出。如何产生一个整数的反序数呢?,例如:,2340,反序输出第,1,个数字,(,个位,),:,0,此时逆序数为:,0,反序输出第,2,个数字,(,百位,),:,4,此时逆序数为:,0*10,+4,(输出的第,1,个数字需往十位移动,即往左移动,1,位),反序输出第,3,个数字,(,百位,),:,3,此时逆序数为:,0*10*10,+,4*10,+3(,输出的第,1,个数字移向百位,第,2,个数字移向十位,),反序输出第,4,个数字,(,千位,),:,4,此时逆序数为:,0*10*10*10,+,4*10*10,+,3*10,+4(,输出

20、的第,1,个数字移向千位,第,2,个数字移向百位,第,3,个数字移向十位,),.,思考题:,输入一整数,求出它的反序数,#include,using namespace std;,void main(),int n,num=0;,cout n;,while(n!=0),num*=10;,/,输出数字左移,1,位,num=num+n%10;,/,求逆序数,n/=10;,/*,从原始数据中去掉已经反序输出的数位,为获取下一个反序输出数字做准备*,/,cout The number in reverse order is:numendl;,反序输出整数,n,n=0,n%10,num,输出,num,n

21、/10,n,19,.,15.,求两整数的最大公因数和最小公倍数,分析:,假定两个整数分别为,p,和,q,,最大公约数应当是不超过其中较小数的一个整数。,辗转法:,用,p,除以,q,,求出余数,r,,如果,r=0,,则当前,q,就是最大公约数,如果,r!=0,,令,p=q,,,q=r,,重复以上过程,直到,r=0,为止。,20,.,算法伪代码,1,.,如果,pq,,交换,p,和,q;,2.,求,p/q,的余数,r;,3.,如果,r=0,,则,q,是所求的结果;,否则,重复,令,p=q,q=r,,求,p/q,的余数,r,,直到,r=0,为止,则,q,就是原来两个正整数的最大公因数,4.,最小公倍数

22、=原来两数的积/最大公因数,21,.,#,include,using namespace std;,void main(),int p,q,r,a,b;,/,变量定义,p,q,r,a,b,/,提示用户由键盘输入两个正整数,cout Please input two integer numbers:pq;,a=p;,b=q;,/,保留原来,p,q,的值,分别放在,a,b,中,/,保证,p,为大数,,q,为小数,if(pq),r=p;p=q;q=r;,/,交换,p,q,22,.,/计算,p,除,q,的余数,r,r=p%q;,/,只要,r,不等于 0,重复进行下列计算,while(r!=0),p=q

23、;,q=r;,r=p%q;,/,辗转法,cout,两个正整数的最大公因数是,qendl;,cout,两个正整数的最小公倍数是,a*b/qendl;,23,.,#include iostream.h,void main(),int i,j,k;,for(i=1;i=4;i+),/,输出前四行图案,for(k=1;k=4-i;k+),cout;,for(j=1;j=4-k+i;j+),if(j=1|j=4-k+i),cout*;,else cout;,coutendl;,16.,请绘制如下所示的空心菱形,方法一,24,.,for(i=1;i=3;i+),/,输出后三行图案,for(k=1;k=i;

24、k+),cout;,for(j=1;j=7-2*i;j+),if(j=1|j=7-2*i),cout*;,else cout;,coutendl;,25,.,#include,#include,void main(),int i,j,num;,coutnum;,for(i=-num;i=num;i+),for(j=-num;j=num;j+),if(abs(i)+abs(j)=num),cout*;,else,cout;,coutendl;,方法二,26,.,17.,甲、乙两支乒乓球队进行比赛,没对各出,3,人。甲队为,A,、,B,、,C3,名球员,乙队为,X,、,Y,、,Z3,名球员,并以抽

25、签方式决定比赛名单。有人向队员打听比赛的名单,,A,说他不和,X,比,,C,说他不和,X,、,Z,比,请给出,3,队选手的名单。,思路分析:,将,A,B,C,分别用数字,1,2,3,表示,根据队员的叙述可得到如下的表达式:,X!=1 A,不与,X,比赛,X!=3 C,不与,X,比赛,Z!=3 C,不与,Z,比赛,题目还隐含着一个条件:乙队,3,名队员不能相互比赛,即有:,X!=Y,且,X!=Z,且,Y!=Z,27,.,#include,using namespace std;,void main(),int x,y,z;,for(x=1;x=3;x+),/,穷举乙队,X,所有可能的比赛对手,f

26、or(y=1;y=3;y+),/,穷举乙队,Y,所有可能的比赛对手,for(z=1;z=3;z+),/,穷举乙队,Z,所有可能的比赛对手,if(x!=1&x!=3&z!=3&x!=y&x!=z&y!=z),coutX will play to xendl;,coutY will play to yendl;,coutZ will play to zendl;,方法一,28,.,#include,using namespace std;,void main(),char x,y,z;,for(x=A;x=C;x+),for(y=A;y=C;y+),for(z=A;z=C;z+),if,(x!=A

27、&x!=C&z!=C&x!=y&x!=z&y!=z),coutX will play to xendl;,coutY will play to yendl;,coutZ will play to zendl;,方法二,29,.,实验五(,2,):,设计一个程序,将从键盘上输入的百分制成绩转换成对应的五分制成绩并输出。,90,分以上为,A,80-89,分为,B,70-79,分为,C,,,60-69,分为,D,,,60,分一下为,E,。用开关语句实现。,#include,using namespace std;,void main(),int grade,x;,char y;,coutinput grade:grade;,x=grade/10;,switch(x),case 10:,case 9:y=A;break;,case 8:y=B;break;,case 7:y=C;break;,case 6:y=D;break;,default:y=E;,coutgradetyendl;,.,

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 教育专区 > 初中其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服