C++程序设计实践教程思考题答案.docx
- 文档编号:10090150
- 上传时间:2023-02-08
- 格式:DOCX
- 页数:28
- 大小:32.99KB
C++程序设计实践教程思考题答案.docx
《C++程序设计实践教程思考题答案.docx》由会员分享,可在线阅读,更多相关《C++程序设计实践教程思考题答案.docx(28页珍藏版)》请在冰豆网上搜索。
C++程序设计实践教程思考题答案
实验1C++基础
6.编写程序,输入某大写字母的ASCII码值,输出该字母的对应小写字母。
#include
usingnamespacestd;
intmain()
{
inti;
cin>>i;
if(i>=65&&1<=90)
cout< else cout<<"输入有误"< }return0; 实验2 三、实验思考 1.输入直角三角形的两条直角边长,调用平方根库函数sqrt来求斜边的长度 #include #include usingnamespacestd; intmain() {floata,b,c; cout<<"请输入直角三角形的两条边长: "; cin>>a>>b; c=sqrt(a*a+b*b); cout<<"直角三角形的斜边="< return0; } 2.从键盘输入一个字符,如果输入的是英文大写字母,则将它转换成小写字母后输出,否则输出原来输入的字符。 #include usingnamespacestd; intmain() { charc; 1 cout<<"请输入一个字符: "; cin>>c; if(c>='A'&&c<='Z') c+='a'-'A'; cout< return0; } 3.输入一个学生的成绩,如高于60分,则输出“pass”;否则,输出“failed”。 #include usingnamespacestd; intmain() { floatgrade; cout<<"请输入成绩: "; cin>>grade; if(grade>=60) cout<<"pass"< else cout<<"failed"; return0; } 4.计算分段函数 #include #include usingnamespacestd; intmain() { doublex,y; cout<<"请输入一个数x: "; cin>>x; if(! x) y=cos(x)-pow(x,2)+3*x; else y=sin(x)+sqrt(pow(x,2)+1)+3*x; cout<<"y="< return0; } 2 5.从键盘上输入1~7之间的一个数字,输出其对应星期几的英文表示。 #include usingnamespacestd; intmain() { charc; cout<<"Enteracharacterofnumbersbetween1and7: "; cin>>c; switch(c) { case'1': cout<<"Monday";break; case'2': cout<<"Tuesdag";break; case'3': cout<<"Wenesday";break; case'4': cout<<"Thursday";break; case'5': cout<<"Friday";break; case'6': cout<<"Saturday";break; case'7': cout<<"Sunday";break; default: cout<<"wrongnumber"; } cout< return0; } 6.设计一个简单的计算器程序,能够进行加、减、乘、除简单运算并显示结果。 #include usingnamespacestd; intmain() { cout<<"输入简单的算术表达式: (数操作符数)"; intleftOperand,rightOperand; charOperator; cin>>leftOperand>>Operator>>rightOperand; intresult; switch(Operator) { case'+': result=leftOperand+rightOperand;break; case'-': result=leftOperand-rightOperand;break; case'*': 3result=leftOperand*rightOperand;break; case'/': if(rightOperand! =0) result=leftOperand/rightOperand; else { cout<<"除数为0,除法不能进行"< return0; } break; default: cout< "< } cout< } 实验3 三、思考题参考程序 1n2kn1.编程计算表达式k1的值。 #include usingnamespacestd; intmain() { intn,k=1,sum=0,mean; cout<<"请输入n的值: "; cin>>n; while(k<=n) { sum+=k*k; k++; } if(n>0) mean=sum/n; else mean=0; cout<<"1~n个整数平方和的均值="< return0; 4} 2.输入两个正整数,判别它们是否互为互质数。 所谓互质数,就是最大公约数是1。 #include usingnamespacestd; intmain() { intm,n,r; cout<<"请输入两个正整数: "; cin>>m>>n; cout< if(m {r=m;m=n;n=r;} while(r=m%n) { m=n; n=r; } if(n==1) cout<<"是互质数"< else cout<<”不是互质数”< return0; } 3.编写程序,输出从公元2000年至3000年间所有闰年的年号。 #include usingnamespacestd; intmain() { intyear; cout<<"公元2000年至3000年间闰年的年号: \n"; for(year=2000;year<=3000;year++) if((year%4==0&&year%100! =0)||(year%400==0)) cout< cout< return0; } 4.编写程序模拟猴子吃桃子问题: 猴子第1天摘下若干桃子,当即吃了一半,还不过瘾,又多吃了一个。 第2天将剩下的桃子又吃了一半,又多吃一个。 以后每天都吃了前一天剩下的 5 一半零1个。 到了第10天,只剩下了一个桃子。 请问猴子第一天共摘了多少个桃子? 方法1: #include usingnamespacestd; intmain() { intday,qian,hou=1; for(day=9;day>=1;day--) { qian=(hou+1)*2; hou=qian; } cout< return0; } 运行结果: 1534 方法2: #include usingnamespacestd; intmain() { intday,number=1; for(day=9;day>=1;day--) number=(number+1)*2; cout< return0; } 方法3: #include usingnamespacestd; intpeach(int); intmain() { cout<<"第1天共摘了"< (1)<<"个"< return0; } intpeach(intday) { intnumber; 6 if(day==10) number=1; else number=2*(peach(day+1)+1); returnnumber; } 5.计算s=1+(1+2)+(1+2+3)+(1+2+3+4)+…+(1+2+3+…+n)的值。 方法1: #include usingnamespacestd; intmain() { inti,j,n; longintsum,total(0); cout<<"inputn: "; cin>>n; for(i=1;i<=n;i++) { sum=0; for(j=1;j<=i;j++) sum+=j; total+=sum; } cout<<"s="< return0; } #include usingnamespacestd; intmain() { inti,n; longintsum(0),total(0); cout<<"inputn: "; cin>>n; for(i=1;i<=n;i++) { sum+=i; total+=sum; } 7 cout<<"s="< return0; } 6.马克思曾经做过这样一道趣味数学题: 有30个人在一家小饭馆用餐,其中有男人、女人和小孩。 每个男人花了3先令,每个女人花了2先令,每个小孩花了1先令,一共花了50先令。 请问男人、女人以及小孩各有几个人? #include usingnamespacestd; intmain() { intx,y,z; for(x=1;x<=16;x++) for(y=1;y<=24;y++) { z=30-x-y; if(3*x+2*y+z==50) cout<<"Menare"< return0; }实验4常用程序设计算法 三、实验思考 1.读入一个整数N,若N为非负数,则计算N到2×N之间的整数和;若N为负数,则求2×N到N之间的整数和。 分别利用for和while写出两个程序。 #include usingnamespacestd; intmain() { intN; cin>>N; inti=N; longsum=0; if(N>=0) { for(;i<=2*N;i++) sum+=i; 8 } else { for(;i>=2*N;i--)sum+=i;} cout< } #include intmain() { intN; cin>>N; inti=N; longsum=0;if(N>=0){ while(i<=2*N){ sum+=i;i++;} } else { while(i>=2*N){ sum+=i;i--;} } cout< 9 2.设s1111,求与8最接近的s的值及与之对应的n值。 23n #include usingnamespacestd; intmain() { floats=1.0; intn=1; do { ++n; s+=1.0/n; }while(s<=8); if((s-8)>(8-(s-1.0/n)))
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 程序设计 实践 教程 思考题 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)