C++程序设计谭浩强 第三章(程序设计初步)习题答案(部分有改进)
3.2 圆半径r=1.5,圆柱高h=3,求圆周长,圆面积,球表面积,球体积,圆柱体积。取小数点后两位。
#include <iostream>
#include <iomanip>
using namespace std;
int main ( )
{float h,r,l,s,sq,vq,vz;const float pi=3.1415926;cout<<"please enter r,h:";cin>>r>>h;l=2*pi*r;s=r*r*pi;sq=4*pi*r*r;vq=3.0/4.0*pi*r*r*r;vz=pi*r*r*h;cout<<setiosflags(ios::fixed)<<setiosflags(ios::right)<<setprecision(2);cout<<"l= "<<setw(10)<<l<<endl;cout<<"s= "<<setw(10)<<s<<endl;cout<<"sq="<<setw(10)<<sq<<endl;cout<<"vq="<<setw(10)<<vq<<endl;cout<<"vz="<<setw(10)<<vz<<endl;return 0;
}
3.3 输入华氏温度,输出摄氏温度
#include <iostream>
using namespace std;
int main ()
{float c,f;cout<<"请输入一个华氏温度:";cin>>f;c=(5.0/9.0)*(f-32); //注意5和9要用实型表示,否则5/9值为0cout<<"摄氏温度为:"<<c<<endl;return 0;
};
3.4 用getchar读入两个字符给c1 c2,用putchar和cout输出
#include <iostream>
using namespace std;
int main ( )
{char c1,c2;cout<<"请输入两个字符c1,c2:";c1=getchar(); // input to c1c2=getchar(); //c2 cout<<"用putchar函数输出结果为:";putchar(c1);putchar(c2);cout<<endl;cout<<"用cout语句输出结果为:";cout<<c1<<c2<<endl;cout<<(int)c1<<endl; //output asciicout<<(int)c2<<endl;return 0;
}
3.5 整型变量 字符变量
#include <iostream>
using namespace std;
int main ( )
{char c1,c2; int i1,i2; //定义为整型cout<<"请输入两个整数i1,i2:"; cin>>i1>>i2;c1=i1;c2=i2;cout<<"按字符输出结果为:"<<c1<<" , "<<c2<<endl;return 0;
}
3.8求值
#include <iostream>
using namespace std;
int main ( )
{ int a=3,b=4,c=5,x,y; //与运算优先于或运算cout<<(a+b>c && b==c)<<endl; // 0cout<<(a||b+c && b-c)<<endl; // 1cout<<(!(a>b) && !c||1)<<endl; // 1cout<<(!(x=a) && (y=b) && 0)<<endl; // 0cout<<(!(a+b)+c-1 && b+c/2)<<endl; // 1return 0;
}
3.9 输入三个整数,输出最大的数
#include <iostream>
using namespace std;
int main ( ){
// int a,b,c,temp,max ;int a,b,c;cout<<"please enter three integer numbers:";// cin>>a>>b>>c;
// temp=(a>b)?a:b; /* 将a和b中的大者存入temp中 */
// max=(temp>c)?temp:c; /* 将a和b中的大者与c比较,最大者存入max */
// cout<<"max="<<max<<endl;cin>>a>>b>>c;a=(a>b)?a:b; //max到aa=(a>c)?a:c;cout<<"max="<<a<<endl;return 0;}
3.10分段函数
#include <iostream>
using namespace std;
int main ( ){int x,y;cout<<"enter x:";cin>>x;if (x<1) {y=x;cout<<"x="<<x<<", y=x="<<y;}else if (x<10) // 1≤x<10 {y=2*x-1;cout<<"x="<<x<<", y=2*x-1="<<y;}else // x≥10 {y=3*x-11;cout<<"x="<<x<<", y=3*x-11="<<y;}cout<<endl;return 0;
}
3.11百分制成绩输出等级ABCDE
#include <iostream>
using namespace std;
int main (){float score;char grade;cout<<"please enter score of student:"; cin>>score;while (score>100||score<0){cout<<"data error,enter data again.";cin>>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;default:grade='E'; }cout<<"score is "<<score<<", grade is "<<grade<<endl;return 0;
}
3.12给出一个不多于五位数的整数,求出是几位数,打印出每一位数字,逆序打出各位数字
#include <iostream>
#include <cmath>
using namespace std;
int main ()
{int i=1,x;cout<<"input x: ";cin>>x;cout<<endl;/*位数*/int n;n=x;if(n>99999||n<=0)cout<<"error"<<endl;else{while(n>=10){i++;n=n/10;}cout<<"整数位数为: "<<i<<endl;}
/*正序输出*/int a,b,c;cout<<"顺序输出: ";a=pow(10,(i-1)); //pow为10的几次幂b=a*10;while(a>=1){c=(x%b-x%a)/a;cout<<c<<" ";a=a/10;b=b/10;}cout<<endl;
/*逆序输出*/int m;m=x;cout<<"逆序输出: ";while(m!=0){cout<<m%10<<" ";m/=10;}cout<<endl;return 0;
}
3.13 企业发放的奖金根据利润提成 分别用if 和switch
#include <iostream>
using namespace std;
int main ()
{ long i; //i为利润float bonus,bon1,bon2,bon4,bon6,bon10;bon1=100000*0.1; //利润为10万元时的奖金bon2=bon1+100000*0.075; //利润为20万元时的奖金bon4=bon2+100000*0.05; //利润为40万元时的奖金bon6=bon4+100000*0.03; //利润为60万元时的奖金bon10=bon6+400000*0.015; //利润为100万元时的奖金cout<<"enter i:"; cin>>i;if (i<=100000)bonus=i*0.1; //利润在10万元以内按10%提成奖金else if (i<=200000)bonus=bon1+(i-100000)*0.075; //利润在10万元至20万时的奖金else if (i<=400000)bonus=bon2+(i-200000)*0.05; //利润在20万元至40万时的奖金else if (i<=600000)bonus=bon4+(i-400000)*0.03; //利润在40万元至60万时的奖金else if (i<=1000000)bonus=bon6+(i-600000)*0.015; //利润在60万元至100万时的奖金elsebonus=bon10+(i-1000000)*0.01; //利润在100万元以上时的奖金cout<<"bonus="<<bonus<<endl; return 0;}
#include <iostream>
using namespace std;
int main ()
{long i;float bonus,bon1,bon2,bon4,bon6,bon10;int c;bon1=100000*0.1;bon2=bon1+100000*0.075;bon4=bon2+200000*0.05;bon6=bon4+200000*0.03;bon10=bon6+400000*0.015;cout<<"enter i:";cin>>i;c=i/100000;if (c>10) c=10;switch(c){case 0: bonus=i*0.1; break;case 1: bonus=bon1+(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=bon10+(i-1000000)*0.01;}cout<<"bonus="<<bonus<<endl;return 0;
}
3.14 输入四个整数,由小到大
#include <iostream>
#include <string>
#define m 4
using namespace std;int main() {int n[m-1];int i, j;int temp; //用于缓存需要交换的数字cout << "请输入4个数字!" << endl;for (i = 0; i < m; i++) {cin >> n[i];}for (i = 0; i < m-1;i++) { //共进行9步for (j = 0; j < m-1 - i;j++) { //在每一步进行10-i次两两比较if (n[j] > n[j + 1]) {temp = n[j];n[j] = n[j + 1];n[j + 1] = temp;}}}cout << "排序后的数据是:" << endl;for (i = 0; i < m; i++) {cout << n[i] << ' ';}cout << endl;return 0;
}
3.15 输入两个正整数mn,求最大公约数最小公倍数
#include <iostream>
using namespace std;
int main ()
{int p,r,n,m,temp;cout<<"please enter two positive integer numbers n,m:"; cin>>n>>m; if (n<m) {temp=n;n=m;m=temp; //把大数放在n中, 小数放在m中}p=n*m; //先将n和m的乘积保存在p中, 以便求最小公倍数时用while (m!=0) //求n和m的最大公约数{r=n%m;n=m;m=r;}cout<<"HCF="<<n<<endl;cout<<"LCD="<<p/n<<endl; // p是原来两个整数的乘积return 0;}
3.16输入一行字符,统计出英文字母 空格 数字 其他字符 的个数
#include <iostream>
using namespace std;
int main ()
{char c;int letters=0,space=0,digit=0,other=0;cout<<"enter one line:" <<endl;while((c=getchar())!='\n'){if (c>='a' && c<='z'||c>='A' && c<='Z')letters++;else if (c==' ')space++;else if (c>='0' && c<='9')digit++;elseother++;}cout<<"letter:"<<letters<<", space:"<<space<<", digit:"<<digit<<", other:"<<other<<endl;return 0; }
3.17求a+aa+aaa+……+aa……a的值,输入n
#include <iostream>
using namespace std;
int main ()
{int a,n,i=1,sn=0,tn=0;cout <<"input a & n ";cin >>a>>n;while(i<=n){tn=tn+a;sn=sn+tn;a=a*10;++i;}cout<<"a+aa+aaa+...= "<<sn<<endl;return 0; }
3.18 求
#include <iostream>
using namespace std;
int main ()
{float s=0,t=1;int n;for (n=1;n<=20;n++){t=t*n; // 求n! s=s+t; // 将各项累加 }cout<<"1!+2!+...+20!="<<s<<endl;return 0;}
3.19输出所有水仙花数(三位数,各个数字立方和 等于 数字本身)
#include <iostream>
using namespace std;
int main ()
{int i,j,k,n;cout<<"narcissus numbers are:"<<endl;for (n=100;n<1000;n++){i=n/100;j=n/10-i*10;k=n%10;if (n == i*i*i + j*j*j + k*k*k)cout<<n<<" ";}cout<<endl;return 0;}
3.20 1000以内完数。(数值=因子之和)
#include <iostream>
using namespace std;int main(){int m,s,i;for (m=2;m<1000;m++){s=0;for (i=1;i<m;i++)if ((m%i)==0) s=s+i;if(s==m){cout<<m<<" is a完数"<<endl;cout<<"its factors are:";for (i=1;i<m;i++)if (m%i==0) cout<<i<<" ";cout<<endl;}}return 0;}
3.21
#include <iostream>
using namespace std;
int main(){int i,t,n=20;double a=2,b=1,s=0;for (i=1;i<=n;i++){s=s+a/b;t=a; a=a+b; // 将前一项分子与分母之和作为下一项的分子 b=t; // 将前一项的分子作为下一项的分母 }cout<<"sum="<<s<<endl;return 0;}
3.22
#include <iostream>
using namespace std;
int main(){int day,x1,x2;day=9;x2=1;while(day>0){x1=(x2+1)*2; // 第1天的桃子数是第2天桃子数加1后的2倍 x2=x1;day--;}cout<<"total="<<x1<<endl;return 0;}
//递归函数(第四章)#include<iostream>
using namespace std;
int peach(int);int main()
{cout << peach(10) << endl;return 0;
}int peach(int n)
{int c;if (n == 1)c = 1;elsec = (peach(n-1)+1)*2;return c;
}
3.23迭代法求x=sqrt(a)
#include <iostream>
#include <cmath>
using namespace std;
int main(){float a,x0,x1;cout<<"enter a positive number:";cin>>a; // 输入a的值 x0=a/2;x1=(x0+a/x0)/2;do{x0=x1;x1=(x0+a/x0)/2;}while(fabs(x0-x1)>=1e-5);cout<<"The square root of "<<a<<" is "<<x1<<endl;return 0;}
3.24输出
*
***
*****
*******
*****
***
*
#include <iostream>
using namespace std;
int main(){int i,k;for (i=0;i<=3;i++) // 输出上面4行*号 {for (k=0;k<=2*i;k++)cout<<"*"; // 输出*号 cout<<endl; //输出完一行*号后换行 }for (i=0;i<=2;i++) // 输出下面3行*号 {for (k=0;k<=4-2*i;k++)cout<<"*"; // 输出*号 cout<<endl; // 输出完一行*号后换行}return 0;}
(心形图像)
#include<iostream>#include<cmath>
using namespace std;
int main()
{float x, y;for (y = 1.5f; y >-1.5f; y -= 0.1f){for (x = -1.5f; x <1.5f; x += 0.05f){float a = x*x + y*y - 1;if ((a*a*a- x*x*y*y*y)<=0)//心形方程cout << '*';else cout << " ";}cout << endl;}return 0;
}
3.25两个乒乓球队进行比赛,各出3人。甲队为ABC三人,乙队为XYZ三人。已抽签决定比赛名单。
A不和X比,C不和XZ比,找出名单。
#include<iostream>
using namespace std;
int main()
{char i,j,k;for (i='X';i<='Z';i++)for(j='X';j<='Z';j++)if(i!=j)for(k='X';k<='Z';k++)if(i!=k&&j!=k)if(i!='X'&&k!='X'&&k!='Z')cout<<"A-"<<i<<" B-"<<j<<" C-"<<k<<endl;return 0;
}
零基础C++,有很多不完善的地方和不想改网上参考答案的地方
有问题可留言,反正我也不会
C++程序设计谭浩强 第三章(程序设计初步)习题答案(部分有改进)相关推荐
- C程序设计 谭浩强 第三章
变量类型 常量 注:一般变量初始化不是在编译阶段完成的(只有静态存储变量和外部变量的初始化时在编译阶段完成的),而是在程序运行时执行本函数时赋予初值的,相当于执行一个赋值语句. 整型常量 实型常量:十 ...
- C++面向对象的程序设计谭浩强 第六章课后题
以往章节 C++面向对象的程序设计谭浩强 第二章课后题 C++面向对象的程序设计谭浩强 第三章课后题 C++面向对象的程序设计谭浩强 第四章课后题 C++面向对象的程序设计谭浩强 第五章课后题 C++ ...
- C程序设计-谭浩强 第三版-学习笔记 第2章 程序的灵魂 算法
第 2 章 算法 --程序的灵魂 程序 = 算法 + 数据结构 (沃思,计算机科学家) 一个程序应该包括两方面: 对数据的描述:在程序中要指定数据的类型和数据的组织形式,即数据结构(data stru ...
- C程序设计-谭浩强 第三版-学习笔记第1章 C语言概述
第一章 C语言概述 1.C语言历史背景 C语言是在B语言的基础上发展起来的,兼具一般高级语言和低级语言的优点,可用来编写系统软件或应用软件. 1972-1973年,贝尔实验室在B语言基础上设计出C语言 ...
- C程序设计谭浩强第五版课后答案 第三章习题答案
C语言程序设计谭浩强第五版课后答案第三章 1.假如我国国民生产总值的年增长率为7%, 计算10年后我国国民生产总值与现在相比增长多少百分比.计算公式为p=(1+r)np = (1+r)^np=(1+r ...
- 输出所有3位数的水仙花数,例:153=1的3次方+5的3次方+3的3次方 谭浩强《c语言程序设计》第五章第八题
题目 本题是谭浩强<c语言程序设计>第五章第八题 题目:输出所有3位数的水仙花数,例:153=1的3次方+5的3次方+3的3次方 提示:以下是本篇文章正文内容,欢迎朋友们进行指正,一起探讨 ...
- C程序设计 谭浩强 第九章
结构体 注:结构体类型的名字是由一个关键字struct和结构体名组合而成的(例如struct Student).结构体名是由用户指定的,又称"结构体标记",以区别于其他结构体类型. ...
- 1个球从100m落下,每次时,反跳原高度的一半,再落,再反弹,求第10次落地共经过多少m,第10次反弹多高。 谭浩强《c语言程序设计》第五章第十一题
题目 本题是谭浩强<c语言程序设计>第五章第十一题 题目:1个球从100m落下,每次时,反跳原高度的一半,再落,再反弹,求第10次落地共经过多少m,第10次反弹多高. 提示:以下是本篇文章 ...
- C语言程序设计第五版 谭浩强 第四章 课后习题 答案
谭浩强C语言程序设计第五版 第4章 课后习题 答案 点我看视频讲解+可运行源码 记得一键三连哦 第四章 选择结构程序设计 1. 什么是算术运算?什么是关系运算?什么是逻辑运算? [答案解析] 算熟运算 ...
- 有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中,谭浩强《c语言程序设计》第六章第四题
题目 本题是谭浩强<c语言程序设计>第六章第四题 题目:有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中. 以下是本篇文章正文内容,欢迎朋友们进行指正,一起探讨,共同 ...
最新文章
- Linux系统分辨率设置
- 设计模式 — 行为型模式 — 中介者模式
- 基于deep learning的快速图像检索(Deep Learning of Binary Hash Codes for Fast Image Retrieval)
- python实现tomasulo算法_手写算法-python代码实现KNN
- 禁止套娃!Redis官网宕机,返回“连接不上Redis”
- [原]第一次遭遇Oracle的Bug,纪念一下 |ORA-00600 kmgs_pre_process_request_6|
- 「Vueconf」探索 Vue3 中 的 JSX
- eclipse查看git地址_gitamp;github的入门实战
- 已知两点坐标拾取怎么操作_已知的操作员学习-第4部分
- 金陵科技学院计算机开设课程,金陵科技学院各专业介绍
- Django 缓存系统
- DataBase -- JOIN
- 将rdd存储到本地的一个文件中
- 鸿蒙系统简介ppt,鸿蒙来了!华为到底采用的是什么逆天的研发体系?500页PPT详解...
- 联众打码平台接口调用(初版)
- python写完程序怎么运行
- mybatis采坑之 PageHelper.startPage出现两个limit情况
- 【机翻】xenomai RTnet – 灵活的硬实时网络框架
- 阿里滑块 x82y x5sec本地dll 易语言
- 强烈建议你把这5个跨境神器都收藏了
热门文章
- 闽江学院计算机毕设,闽江学院软件学院关于2017届毕业论文答辩有关事项的通知...
- app store connect
- 电脑如何控制点击android手机,安卓手机怎么控制电脑?红米手机远程控制操作电脑方法...
- 支付宝网页支付(签名)
- 【Python笔记】第5章 if语句
- UE5 IK重定向并修改人物姿势
- checking for libzip... configure: error: system libzip must be upgraded to version = 0.11问题解决
- 西数文件共享服务器,数据轻松共享 西数Live网络硬盘首测
- Oracle 数据库(一)—— Oracle 数据库基本介绍
- 14.敏捷组织转型四步法之4 - 通过复盘、回顾,持续改进