版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C++简朴程序经典案例【案例2-1】设计一种编写仅包括C++程序基本构成元素的程序/*
//注释行开始ThisisthefirstC++program.
Designedbyzrf*/
//注释行结束#include<iostream>
//包括头文献usingnamespacestd;
//打开命名空间std//Thisisthemainfunction
//单行注释语句intmain(void)
//主函数,程序入口{
//块作用域开始intage;
//申明一种变量age=20;
//赋值语句cout<<"Theageis:\n";
//输出一种字符串cout<<age<<endl;
//输出变量中的值return0;
//主函数返回0}
//块作用域结束
【案例2-2】计算圆的周长和面积——C++语言中常量、变量#include<iostream>usingnamespacestd;intmain(){
constfloatPI=3.1415926;
//float型常量floatr=2.0;
//用float型常量初始化变量cout<<"r="<<r<<endl;
//输出圆的半径floatlength;
//float型变量申明length=2*PI*r;
//计算圆的周长cout<<"Length="<<length<<endl;
//输出圆的周长floatarea=PI*r*r;
//计算圆的面积cout<<"Area="<<area<<endl;
//输出圆的面积return0;}【案例2-3】整数的简朴运算——除法、求余运算法和增量减量运算符#include<iostream>usingnamespacestd;intmain(){
intx,y;x=10;
y=3;cout<<x<<"/"<<y<<"is"<<x/y
//整数的除法操作<<"withx%yis"<<x%y<<endl;
//整数的取余操作x++;
--y;
//使用增量减量运算符cout<<x<<"/"<<y<<"is"<<x/y<<"\n"
//整数的除法操作<<x<<"%"<<y<<"is"<<x%y<<endl;
//整数的取余操作return0;}【案例2-4】多重计数器——前置和后置自增运算符#include<iostream>
usingnamespacestd;
intmain()
{
intiCount=1;
iCount=(iCount++)+(iCount++)+(iCount++);
//后置++cout<<"Thefirst
iCount="<<iCount<<endl;iCount=1;
iCount=(++iCount)+(++iCount)+(++iCount);
//前置++cout<<"ThesecondiCount="<<iCount<<endl;iCount=1;
iCount=-iCount++;
//后置++cout<<"Thethird
iCount="<<iCount<<endl;iCount=1;
iCount=-++iCount;
//前置++cout<<"Thefourth
iCount="<<iCount<<endl;return0;
}【案例2-5】对整数“10”和“20”进行位运算——位运算的应用#include<iostream>usingnamespacestd;intmain()
{
cout<<"20&10="<<(20&10)<<endl;
//按位与运算cout<<"20^10="<<(20^10)<<endl;
//按位异或运算cout<<"20|10="<<(20|10)<<endl;
//按位或运算cout<<"~20="<<(~20)<<endl;
//按位取反运算cout<<"20<<3="<<(20<<3)<<endl;
//左移位运算cout<<"-20<<3="<<(-20<<3)<<endl;
//左移位运算cout<<"20>>3="<<(20>>3)<<endl;
//右移位运算cout<<"-20>>3="<<(-20>>3)<<endl;
//右移位运算return0;}【案例2-6】实现逻辑“异或”运算——逻辑运算应用#include<iostream>usingnamespacestd;intmain(){
boolp,q;p=true;
q=true;cout<<p<<"XOR"<<q<<"is"<<((p||q)&&!(p&&q))<<"\n";//输出异或成果p=false;
q=true;cout<<p<<"XOR"<<q<<"is"<<((p||q)&&!(p&&q))<<"\n";//输出异或成果p=true;
q=false;cout<<p<<"XOR"<<q<<"is"<<((p||q)&&!(p&&q))<<"\n";//输出异或成果p=false;
q=false;cout<<p<<"XOR"<<q<<"is"<<((p||q)&&!(p&&q))<<"\n";//输出异或成果return0;}【案例2-7】高效筛选器——用条件运算符“?”构建条件体现式#include<iostream>usingnamespacestd;intmain()
{
intiNum1=1,iNum2,iMax;cout<<"Pleaseinputtwointegers:\n";
cin>>iNum1>>iNum2;iMax=iNum1>iNum2?iNum1:iNum2;
//使用条件运算符构建条件体现式cout<<"Themaxintegeris:"<<iMax<<endl;return0;}【案例2-8】“多计算与单提取”功能的实现——逗号体现式#include<iostream>usingnamespacestd;intmain()
{
intVal1,Val2,Val3,Left,Midd,Righ;Left=10;
Midd=20;
Righ=30;Val1=(Left++,--Midd,Righ++);
//使用逗号体现式Val2=(Righ++,Left++,--Midd);
//使用逗号体现式Val3=(--Midd,Righ++,Left++);
//使用逗号体现式cout<<"Val1=\t"<<Val1<<"\nVal2=\t"<<Val2<<"\nVal3=\t"<<Val3<<endl;return0;}【案例2-9】高效的算术运算符——复合赋值运算符#include<iostream>usingnamespacestd;intmain(){
intn=20;
cout<<"n="<<n<<endl;n+=8;
cout<<"Aftern+=8,n="<<n<<endl;
//使用复合的赋值运算符+=n-=6;
cout<<"Aftern-=6,n="<<n<<endl;
//使用复合的赋值运算符-=n*=1;
cout<<"Aftern*=1,n="<<n<<endl;
//使用复合的赋值运算符*=n/=4;
cout<<"Aftern/=4,n="<<n<<endl;
//使用复合的赋值运算符/=n%=3;
cout<<"Aftern%=3,n="<<n<<endl;
//使用复合的赋值运算符%=return0;}【案例2-10】计算不一样数据类型的存储容量——sizeof运算符#include<iostream>usingnamespacestd;intmain(){
cout<<"Thesizeofanintis:\t\t"<<sizeof(int)<<"bytes.\n";cout<<"Thesizeofashortintis:\t"<<sizeof(short)<<"bytes.\n";cout<<"Thesizeofalongintis:\t"<<sizeof(long)<<"bytes.\n";cout<<"Thesizeofacharis:\t\t"<<sizeof(char)<<"bytes.\n";cout<<"Thesizeofawchar_tis:\t"<<sizeof(wchar_t)<<"bytes.\n";cout<<"Thesizeofafloatis:\t\t"<<sizeof(float)<<"bytes.\n";cout<<"Thesizeofadoubleis:\t"<<sizeof(double)<<"bytes.\n";return0;}【案例2-11】巧妙获取整数部分——double和int数据类型的转换#include<iostream>usingnamespacestd;intmain(){
intnn=10,mm;doublexx=4.741,yy;cout<<"nn*xx="<<nn*xx<<endl;
//体现式类型转换mm=xx;
yy=nn;
//赋值类型转换cout<<"mm="<<mm<<endl<<"yy="<<yy<<endl;cout<<"int(xx)="<<int(xx)<<endl<<"(int)xx="<<(int)xx<<endl;
//强制类型转换cout<<"int(1.412+xx)="<<int(1.412+xx)<<endl;
//强制类型转换cout<<"(int)1.412+xx="<<(int)1.412+xx<<endl;
//强制类型转换return0;}【案例2-12】将分数转换为小数——强制类型转换#include<iostream>usingnamespacestd;intmain(){
for(inti=1;i<=5;++i)cout<<i<<"/3is:"<<(float)i/3<<endl;
//强制类型转换return0;}【案例2-13】安全的除法计算器#include<iostream>usingnamespacestd;intmain(){
inta,b;cout<<"Enternumerator:";
cin>>a;cout<<"Enterdenominator:";
cin>>b;if(b)cout<<"DivideResultis:"<<a/b<<'\n';
//排除除数为零的状况elsecout<<"Dividebyzero!\n";return0;}【案例2-14】猜数游戏——嵌套的if条件语句#include<iostream>#include<cstdlib>usingnamespacestd;intmain(){
intMagNum,GueNum;
MagNum=rand();
//产生随机数cout<<"EntertheGuessnumber:";
cin>>GueNum;if(GueNum==MagNum){
//if语句块起始位置cout<<"*ItisRight*\n"<<MagNum<<"istheMagessnumber.\n";}
//if语句块结束位置else{
//else语句块起始位置cout<<"Sorry,you'rewrong."<<endl;if(GueNum>MagNum)
cout<<"Guessednumberistoohigh.\n";else
cout<<"Guessednumberistoolow.\n";}
//else语句块结束位置return0;}【案例2-15】根据输入月份输出从年初到本月底的天数——不带break的switch#include<iostream>usingnamespacestd;intmain(){
intyear,month,days=0;cout<<"Inputyearandmonth:";
cin>>year>>month;switch(month)
//每个case分支均没有break语句{
case12:days+=31;case11:days+=30;case10:days+=31;case
9:days+=30;case
8:days+=31;case
7:days+=31;case
6:days+=30;case
5:days+=31;case
4:days+=30;case
3:days+=31;case
2:
//判断与否为闰年if(year%4==0&&year%100!=0||year%400==0)
days+=29;else
days+=28;case
1:days+=31;}if(days==0)
cout<<"Wrongmonth"<<endl;else
cout<<"Totaldaysis:"<<days<<endl;return0;}【案例2-16】计算数的阶乘——do-while循环语句#include<iostream>usingnamespacestd;intmain(){
longlimits;cout<<"Enterapositiveinteger:";
cin>>limits;cout<<"Factorialnumbersof"<<0<<"is"<<1<<endl;cout<<"Factorialnumbersof"<<1<<"is"<<1<<endl;longfac=1,i=1;do
//使用do-while循环{
fac*=++i;
cout<<"Factorialnumbersof"<<i<<"is"<<fac<<endl;}while(fac<limits);return0;}【案例2-17】计算数的阶乘——for循环#include<iostream>usingnamespacestd;intmain(){
longlimits;cout<<"Enterapositiveinteger:";
cin>>limits;cout<<"Factorialnumbersof"<<0<<"is"<<1<<endl;cout<<"Factorialnumbersof"<<1<<"is"<<1<<endl;longfac=1;for(inti=2;fac<=limits;i++)
//使用for循环{
fac*=i;cout<<"Factorialnumbersof"<<i<<"is"<<fac<<endl;}return0;}【案例2-18】筛选素数——步长为2的for循环#include<iostream>#include<cstdlib>usingnamespacestd;intmain(){
longn;cout<<"Enterapositiveinteger:";
cin>>n;if(n<2)
cout<<n<<"isnotprime."<<endl;elseif(n<4)
cout<<n<<"isprime."<<endl;elseif(n%2==0)
cout<<n<<"=2*"<<n/2<<endl;else{
for(inti=3;i<=n/2;i+=2)
//步长为2if(n%i==0)
{cout<<n<<"="<<i<<"*"<<n/i<<endl;
exit(0);}cout<<n<<"isprime."<<endl;}return0;}【案例2-19】输出1~20之间的偶数——continue语句#include<iostream>usingnamespacestd;intmain(){
cout<<"Theevennumbersareasfollows:"<<endl;for(inti=0;i<=20;i++){
if(i%2)continue;
//根据条件使用continue结束本次循环cout<<i<<'';}return0;}【案例2-20】记录输入整数的个数并求和——exit()函数#include<iostream>#include<cstdlib>usingnamespacestd;intmain(){
intsum=0,num=0,m;cout<<"Pleaseinputintegers(0:end):"<<endl;do{cin>>m;
num++;
sum+=m;if(m==0){cout<<"Enterednumbers:"<<num<<"integers.\n";cout<<"Thesumis:"<<sum<<endl;exit(0);
//使用exit()函数终止程序}}while(1);return0;}【案例2-21】“剪刀、石头、布”游戏——枚举类型#include<iostream>usingnamespacestd;enumChoice{ROCK,CLOTH,SCISS};
//申明枚举类型ChoiceenumWinner{Play1,Play2,Tie};
//申明枚举类型Winnerintmain(){
intn;
Choicecho1,cho2;
Winnerwinner;cout<<"Chooserock(0),cloth(1),orSciss(2):"<<endl;cout<<"PlayerNo.1:";
cin>>n;
cho1=Choice(n);cout<<"PlayerNo.2:";
cin>>n;
cho2=Choice(n);if(cho1==cho2)winner=Tie;elseif(cho1==ROCK)if(cho2==CLOTH)
winner=Play2;else
winner=Play1;elseif(cho1==CLOTH)if(cho2==SCISS)
winner=Play2;else
winner=Play1;elseif(cho2==ROCK)
winner=Play2;else
winner=Play1;if(winner==Tie)
cout<<"\tTied!\n";elseif(winner==Play1)
cout<<"\tPlayerNo.1wins."<<endl;else
cout<<"\tPlayerNo.2wins."<<endl;return0;}【案例2-22】简朴的学生信息类型——构造体#include<iostream>#include<iomanip>usingnamespacestd;structstudent
//学生信息构造体{
intnum;charname[20];chargender;intage;}stu1={1001,"ZhangSan",'M',19};intmain(){
studentstu2={1002,"LiSi",'M',20};
//申明构造体变量并初始化studentstu3={1003,"WangHong",'F',22};
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 上海民航职业技术学院《数字电路与逻辑设计》2023-2024学年第一学期期末试卷
- 上海交通职业技术学院《虚拟仿真技术》2023-2024学年第一学期期末试卷
- 上海行健职业学院《商业计划书制作与演示》2023-2024学年第一学期期末试卷
- 企业人事管理制度呈现汇编
- 新生儿室院感培训
- 上海工商职业技术学院《基因工程药物学实验》2023-2024学年第一学期期末试卷
- 唐朝的繁荣与贡献
- 撰写金融课课程设计
- 打印行业课课程设计
- 幼儿园布艺项目课程设计
- 2023新能源风电场智慧工地技术方案
- 动作经济原则手边化POU改善
- 销售人员廉洁从业承诺书(6篇)
- 设备综合效率OEE统计表(使用)
- IPC-03技术说明书(适用ATS通用版)
- 部编版四年级语文上册课内阅读复习试题含答案全套
- 高考浙江卷:2023年6月《政治》考试真题与参考答案
- 胃镜室危急值报告登记制度样本(二篇)
- 汽车发明与发展简史
- 中医治疗“伤筋”医案57例
- 2023年电子琴基础教程
评论
0/150
提交评论