您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 电子设计/PCB > C++典型案例及常见错误分析
C++简单程序典型案例【案例2-1】设计一个编写仅包含C++程序基本构成元素的程序/*//注释行开始ThisisthefirstC++program.Designedbyzrf*///注释行结束#includeiostream//包含头文件usingnamespacestd;//打开命名空间std//Thisisthemainfunction//单行注释语句intmain(void)//主函数,程序入口{//块作用域开始intage;//声明一个变量age=20;//赋值语句coutTheageis:\n;//输出一个字符串coutageendl;//输出变量中的值return0;//主函数返回0}//块作用域结束【案例2-2】计算圆的周长和面积——C++语言中常量、变量#includeiostreamusingnamespacestd;intmain(){constfloatPI=3.1415926;//float型常量floatr=2.0;//用float型常量初始化变量coutr=rendl;//输出圆的半径floatlength;//float型变量声明length=2*PI*r;//计算圆的周长coutLength=lengthendl;//输出圆的周长floatarea=PI*r*r;//计算圆的面积coutArea=areaendl;//输出圆的面积return0;}【案例2-3】整数的简单运算——除法、求余运算法和增量减量运算符#includeiostreamusingnamespacestd;intmain(){intx,y;x=10;y=3;coutx/yisx/y//整数的除法操作withx%yisx%yendl;//整数的取余操作x++;--y;//使用增量减量运算符coutx/yisx/y\n//整数的除法操作x%yisx%yendl;//整数的取余操作return0;}【案例2-4】多重计数器——前置和后置自增运算符#includeiostreamusingnamespacestd;intmain(){intiCount=1;iCount=(iCount++)+(iCount++)+(iCount++);//后置++coutThefirstiCount=iCountendl;iCount=1;iCount=(++iCount)+(++iCount)+(++iCount);//前置++coutThesecondiCount=iCountendl;iCount=1;iCount=-iCount++;//后置++coutThethirdiCount=iCountendl;iCount=1;iCount=-++iCount;//前置++coutThefourthiCount=iCountendl;return0;}【案例2-5】对整数“10”和“20”进行位运算——位运算的应用#includeiostreamusingnamespacestd;intmain(){cout20&10=(20&10)endl;//按位与运算cout20^10=(20^10)endl;//按位异或运算cout20|10=(20|10)endl;//按位或运算cout~20=(~20)endl;//按位取反运算cout203=(203)endl;//左移位运算cout-203=(-203)endl;//左移位运算cout203=(203)endl;//右移位运算cout-203=(-203)endl;//右移位运算return0;}【案例2-6】实现逻辑“异或”运算——逻辑运算应用#includeiostreamusingnamespacestd;intmain(){boolp,q;p=true;q=true;coutpXORqis((p||q)&&!(p&&q))\n;//输出异或结果p=false;q=true;coutpXORqis((p||q)&&!(p&&q))\n;//输出异或结果p=true;q=false;coutpXORqis((p||q)&&!(p&&q))\n;//输出异或结果p=false;q=false;coutpXORqis((p||q)&&!(p&&q))\n;//输出异或结果return0;}【案例2-7】高效筛选器——用条件运算符“?”构建条件表达式#includeiostreamusingnamespacestd;intmain(){intiNum1=1,iNum2,iMax;coutPleaseinputtwointegers:\n;ciniNum1iNum2;iMax=iNum1iNum2?iNum1:iNum2;//使用条件运算符构建条件表达式coutThemaxintegeris:iMaxendl;return0;}【案例2-8】“多计算与单提取”功能的实现——逗号表达式#includeiostreamusingnamespacestd;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++);//使用逗号表达式coutVal1=\tVal1\nVal2=\tVal2\nVal3=\tVal3endl;return0;}【案例2-9】高效的算术运算符——复合赋值运算符#includeiostreamusingnamespacestd;intmain(){intn=20;coutn=nendl;n+=8;coutAftern+=8,n=nendl;//使用复合的赋值运算符+=n-=6;coutAftern-=6,n=nendl;//使用复合的赋值运算符-=n*=1;coutAftern*=1,n=nendl;//使用复合的赋值运算符*=n/=4;coutAftern/=4,n=nendl;//使用复合的赋值运算符/=n%=3;coutAftern%=3,n=nendl;//使用复合的赋值运算符%=return0;}【案例2-10】计算不同数据类型的存储容量——sizeof运算符#includeiostreamusingnamespacestd;intmain(){coutThesizeofanintis:\t\tsizeof(int)bytes.\n;coutThesizeofashortintis:\tsizeof(short)bytes.\n;coutThesizeofalongintis:\tsizeof(long)bytes.\n;coutThesizeofacharis:\t\tsizeof(char)bytes.\n;coutThesizeofawchar_tis:\tsizeof(wchar_t)bytes.\n;coutThesizeofafloatis:\t\tsizeof(float)bytes.\n;coutThesizeofadoubleis:\tsizeof(double)bytes.\n;return0;}【案例2-11】巧妙获取整数部分——double和int数据类型的转换#includeiostreamusingnamespacestd;intmain(){intnn=10,mm;doublexx=4.741,yy;coutnn*xx=nn*xxendl;//表达式类型转换mm=xx;yy=nn;//赋值类型转换coutmm=mmendlyy=yyendl;coutint(xx)=int(xx)endl(int)xx=(int)xxendl;//强制类型转换coutint(1.412+xx)=int(1.412+xx)endl;//强制类型转换cout(int)1.412+xx=(int)1.412+xxendl;//强制类型转换return0;}【案例2-12】将分数转换为小数——强制类型转换#includeiostreamusingnamespacestd;intmain(){for(inti=1;i=5;++i)couti/3is:(float)i/3endl;//强制类型转换return0;}【案例2-13】安全的除法计算器#includeiostreamusingnamespacestd;intmain(){inta,b;coutEnternumerator:;cina;coutEnterdenominator:;cinb;if(b)coutDivideResultis:a/b'\n';//排除除数为零的情况elsecoutDividebyzero!\n;return0;}【案例2-14】猜数游戏——嵌套的if条件语句#includeiostream#includecstdlibusingnamespacestd;intmain(){intMagNum,GueNum;MagNum=rand();//产生随机数coutEntertheGuessnumber:;cinGueNum;if(GueNum==MagNum){//if语句块起始位置cout*ItisRight*\nMagNumistheMagessnumber.\n;}//if语句块结束位置else{//else语句块起始位置coutSorry,you'rewrong.endl;if(GueNumMagNum)coutGuessednumberistoohigh.\n;elsecoutGuessednumberistoolow.\n;}//else语句块结束位置return0;}【案例2-15】根据输入月份输出从年初到本月底的天数——不带break的switch#includeiostreamusingnamespacestd;intmain(){intyear,month,days=0;coutInputyearandmonth:;cinyearmonth;switch(month)//每个case分支均没有break语句{case12:days+=31;case11:days+=30;case10:days+=31;case9:days+=30;case8:days+=31;case7:days+=31;case6:days+=30;case5:days+=31;case4:days+=30;case3:days+=31;case2://判断是否为闰年if(year%4==0&&year%100!=0||year%400==0)days+=29;elsedays+=28;case1:days+=31;}if(days==0)coutWrongmonthendl;elsecoutTotaldaysis:daysendl;return0;}
本文标题:C++典型案例及常见错误分析
链接地址:https://www.777doc.com/doc-5861722 .html