第2章  C++简单程序设计

2-25 编写一个完整的程序,实现功能:向用户提问“现在正在下雨吗?”,提示用户输入Y 或N。若输入为Y,显示“现在正在下雨。”;若输入为N,显示“现在没有下雨。”;否则继续提问“现在正在下雨吗?”。

#include<iostream>
using namespace std;int main()
{char i;while(1){cout<<"现在正在下雨吗?"<<endl;cout<<"请输入Y或N:";cin>>i;if(i=='Y'){cout<<"现在正在下雨。"<<endl;break;}else if(i=='N'){cout<<"现在没有下雨。"<<endl;break;}}return 0;
}

2-26 编写一个完整的程序,运行时向用户提问“你考试考了多少分?(0~100)”,接收输入后判断其等级显示出来。规则如下:

#include<iostream>
using namespace std;int main()
{int score;cout<<"你考试考了多少分?(0 ~ 100)"<<endl; cin>>score;if(score>=90&&score<=100)cout<<"优"<<endl;else if(score>=80&&score<90)cout<<"良"<<endl;else if(score>=60&&score<80)cout<<"中"<<endl;else if(score>=0&&score<60)cout<<"差"<<endl;return 0;
} 

2-27 实现一个简单的菜单程序,运行时显示“M enu:A (dd) D(elete) S(ort) Q (uit), Select one:”提示用户输入。A 表示增加,D 表示删除,S 表示排序,Q 表示退出。输入为 A、D、S时分别提示“数据已经增加、删除、排序。”,输入为Q 时程序结束。

(1)要求使用 if…else 语句进行判断,用 break,continue 控制程序流程。
(2)要求使用 switch 语句。

//(1) if-else 语句
#include<iostream>
using namespace std;int main()
{char c;while(1){cout<<"Menu:A(dd) D(elete) S(ort) Q(uit),Select one:";cin>>c;if(c=='A'){cout<<"数据已经增加"<<endl;continue; } else if(c=='D'){cout<<"数据已经删除"<<endl;continue; } else if(c=='S'){cout<<"数据已经排序"<<endl;continue; } else if(c=='Q'){break; } }return 0;
}
//(2)switch 语句
#include<iostream>
using namespace std;int main()
{char c;while(1){cout<<"Menu:A(dd) D(elete) S(ort) Q(uit),Select one:";cin>>c;switch(c){case 'A':cout<<"数据已经增加"<<endl;break; case 'D':cout<<"数据已经删除"<<endl;break;case 'S':cout<<"数据已经排序"<<endl;break;case 'Q':exit(0); break;   }}return 0;
} 

2-28 用穷举法找出 1~100 间的质数并显示出来。分别使用 while,do…while,for循环语句实现。

//while
#include<iostream>
#include<cmath>
using namespace std;int main()
{int i=2,j,k,flag;while(i<=100){flag=1;j=2;k=sqrt(i);while(j<=k){if(i%j==0){flag=0;break;}j++;}if(flag)cout<<i<<endl;i++;}return 0;
} 
//do-while
#include<iostream>
#include<cmath>
using namespace std;int main()
{int i=2,j,k,flag;do{flag=1;j=2;k=sqrt(i);while(j<=k){if(i%j==0){flag=0;break;}j++;}if(flag)cout<<i<<endl;i++;}while(i<=100);return 0;
}
//for
#include<iostream>
#include<cmath>
using namespace std;int main()
{for(int i=2;i<=100;i++){int flag=1;for(int j=2;j<=sqrt(i);j++){if(i%j==0){flag=0;break;}}if(flag)cout<<i<<endl;}return 0;
} 

2-30 声明一个表示时间的结构体,可以精确表示年、月、日、小时、分、秒;提示用户输入年、月、日、小时、分、秒的值,然后完整地显示出来。

#include<iostream>
using namespace std;
struct shijian{int year,mouth,day,hour,min,second;
};
int main()
{shijian s;cout<<"请输入年、月、日、小时、分、秒的值:";  cin>>s.year>>s.mouth>>s.day>>s.hour>>s.min>>s.second;cout<<s.year<<"年"<<s.mouth<<"月"<<s.day<<"日"<<" "<<s.hour<<":"<<s.min<<":"<<s.second;return 0;
}

2-31 在程序中定义一个整型变量,赋予 1~100 的值。要求用户猜这个数,比较两个数的大小,把结果提示给用户,直到猜对为止。分别使用 while,do…while语句实现循环。

//while
#include<iostream>
#include<time.h>
#include<stdlib.h>
using namespace std;int main()
{int x;srand(time(0));   //设置随机种子int num=rand()%100+1;  //随机生成一个1~100之间的数 cout<<"请猜一下这个数为多少: ";while(cin>>x){if(x!=num){if(x<num){cout<<"小了"<<endl;}else{cout<<"大了"<<endl;}}else{cout<<"猜对了!"<<endl;break;}}return 0;
}
//do-while
#include<iostream>
#include<time.h>
#include<stdlib.h>
using namespace std;int main()
{int x;srand(time(0));     //设置随机种子int num=rand()%100+1;  //随机生成一个1~100之间的数 cout<<"请猜一下这个数为多少: ";cin>>x;do{if(x!=num){if(x<num){cout<<"小了"<<endl;}else{cout<<"大了"<<endl;}}else{cout<<"猜对了!"<<endl;break;}}while(cin>>x); return 0;
}

2-32 口袋中有红、黄、蓝、白、黑 5 种颜色的球若干个。每次从口袋中取出 3 个不同颜色的球,问有多少种取法?

#include<iostream>
#include<iomanip>   //这个头文件是来设置输出格式的,比如设置输出占几个字符宽度的setw()
using namespace std;
enum color{red,yellow,blue,white,black};  //枚举类型 void print(int n)
{switch(n){//left表示左对齐 case red: cout<<left<<setw(10)<<"red"; break;     //字符串输出,左对齐,占位符10位case yellow:cout<<left<<setw(10)<<"yellow"; break;   case blue: cout<<left<<setw(10)<<"blue"; break;case white: cout<<left<<setw(10)<<"white"; break;case black: cout<<left<<setw(10)<<"black"; break;default: break;}
}
int main()
{int i,j,k,p;int n=0;for(i=red;i<=black;i++)for(j=red;j<=black;j++)if(i!=j){for(k=red;k<=black;k++)if(k!=i&&k!=j){n++;cout<<left<<setw(6)<<n;    //左对齐,占位符为6位 print(i);  print(j);  print(k);     //调用print函数打印输出 cout<<endl; }}cout<<"total:"<<n<<endl;return 0;
}

好了,今天的分享就到这。

本专栏为本人大二C++课程的习题作业和一些学习经验的分享,供大家参考学习。如有侵权请立即与我联系,我将及时处理。


参考书籍为:C++语言程序设计 第五版 -清华大学出版社- 郑莉,董渊、C++语言程序设计 第五版 -清华大学出版社- 郑莉,董渊(学生用书)

编译环境:Visual Studio 2019、Dev-C++

C++语言程序设计第五版 - 郑莉(第二章课后习题)相关推荐

  1. 第三章 函数 C++语言程序设计第五版 - 郑莉

    本专栏为C++学习笔记,参考书籍为:C++语言程序设计 第五版 -清华大学出版社- 郑莉 B站视频:https://space.bilibili.com/702528832/video PPT与代码已 ...

  2. C++语言程序设计第五版 - 郑莉-绪论(一)

    本专栏为C++学习笔记,参考书籍为:C++语言程序设计 第五版 -清华大学出版社- 郑莉 B站视频:https://space.bilibili.com/702528832/video PPT与代码已 ...

  3. C++语言程序设计第五版 - 郑莉(第六章课后习题)

    第6章   数组.指针与字符串 6-20 实现一个名为 SimpleCircle 的简单圆类.其数据成员 int* itsRadius 为一个指向其半径值的指针,存放其半径值.设计对数据成员的各种操作 ...

  4. C++语言程序设计第五版 - 郑莉(第四章课后习题)

    第4章  类与对象 4-9设计并测试一个名为rectangle的矩形类,其属性为矩形的左下角与右上角坐标,根据坐标能计算矩形的面积. #include <iostream> using n ...

  5. C++语言程序设计第五版 - 郑莉(第七章课后习题)

    第7章  继承与派生 7-5 定义一个基类 Shape,在此基础上派生出 Rectangle 和 Circle,二者都有 getArea()函数计算对象的面积.使用 Rectangle类创建一个派生类 ...

  6. C++语言程序设计第五版 - 郑莉(第五章课后习题)

    第5章  数据的共享与保护 5-7定义一个Cat类,拥有静态数据成员 numOfCats,记录Cat的个体数目:静态成员函数getNumOfCats(),读取numOfCats.设计程序测试这个类,体 ...

  7. C++语言程序设计第五版 - 郑莉(第九章课后习题)

    第9章  群体类和群体数据的组织 9-1 编写程序提示用户输入一个班级中的学生人数 n,再依次提示用户输入 n 个人在课程 A 中的考试成绩,然后计算出平均成绩,显示出来.请使用本书第 9 章中的数组 ...

  8. C++语言程序设计第五版 - 郑莉(第十一章课后习题)

    第11章  流类库与输入输出 11-3 使用 I/O 流以文本方式建立一个文件 test1.txt,写入字符"已成功写入文件!",用其他字处理程序(例如 Windows 的记事本程 ...

  9. C++语言程序设计第五版 - 郑莉(第三章课后习题)

    第3章  函数 3-8 编写函数把华氏温度转换为摄氏温度,公式为:C = (F - 32) * 5/9 在主程序中提示用户输入一个华氏温度,转化后输出相应的摄氏温度. #include<iost ...

最新文章

  1. 你自己不优秀,认识谁都是个屁
  2. 品牌故事第11期之IBM:连亏168亿都逆袭,蓝色巨人的百年兴衰史
  3. [20160311]ora-01732.txt
  4. python下载教程3.7-Python3
  5. php创建压缩文件 保存路径,通过php生成zip压缩文件,支持文件和压缩包路径查找...
  6. php imap模块的添加
  7. mysql rr gap nextkey_mysql中的各种锁把我搞糊涂啦~
  8. 【LeetCode 剑指offer刷题】特殊数题3:204 Count Primes
  9. mongodb数据库恢复 mongo数据库无法启动恢复 mongodb数据库断电数据恢复
  10. 3.2 Tensorflow基础运算
  11. ffmpeg 解码b帧_ffmpeg 解码h264数据丢帧
  12. 倍福TwinCAT(贝福Beckhoff)常见问题(FAQ)-如何在初始化的时候写入参数
  13. CSS选择器优先级排列
  14. 关于anaconda下载包的位置的问题
  15. 专利:专利说明书的主要组成部分
  16. Google Authenticator(谷歌身份验证器)
  17. 抖音神曲《一百万个可能》:“在一瞬间,我们有一百万个可能”
  18. 【yarn】 yarn的安装和使用
  19. 伯克利人工智能研究:针对深度神经网络的物理对抗例子
  20. 计算机怎么安装俩个操作系统,想安装双操作系统,原来是win7,想再安装一个win10,两个系统能共用电脑里的软件吗?...

热门文章

  1. 前端:HTML+CSS+JavaScript实现轮播图
  2. 故障模块名称kernelbase.dll_校园故障报修系统
  3. 如何在IIS中配置https
  4. 圣诞节快要来了,可我就是_我圣诞节想要的一切:前奏便携式无线充电器
  5. 麻省理工公开课《算法导论》学习笔记:第一讲
  6. 新辰:舌尖上的中国2推起长沙90后糕富帅创业:买买提切糕店
  7. UFI 命令 返回值(UFI Command Specification)
  8. HTC 和 SAMSUNG
  9. 网络上摘抄的数据库设计规范
  10. 如何使用CSS和JavaScript构建简单的甘特图