您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 天津大学C++ 第2章 C++简单程序设计
第一部分C++结构化程序设计第二章C++简单程序设计金志刚教授天津大学通信系✿顺序结构语句A语句B入口出口2.1程序的三种基本结构✿选择结构(或称分支结构)条件成立?语句A语句BYesNo入口出口✿循环结构(当型循环)条件成立?语句YesNo入口出口流程图说明:当条件成立时,反复执行语句部分,直到条件不成立退出循环,继续执行循环结构后面的语句。条件成立?语句YesNo入口出口流程图说明:先执行语句部分,再判断条件是否成立,若成立再执行,反复进行,直到条件不成立,退出循环后继续往下执行后面的语句。✿循环结构(直到型循环)2.2C++语句C++语句包括:说明语句、表达式语句、空语句、复合语句、控制语句、函数调用和流对象调用语句。✿空语句:只由一个分号构成。✿复合语句:将一组语句用{}括起来,在语法上等价于一条语句。✿控制语句:选择语句、循环语句和转移语句。✿表达式语句:表达式之后加上分号。例:intx=1;x=x+10;//表达式语句2.3选择语句选择语句:if语句switch语句if语句if(表达式)语句if语句执行流程表达式语句非00形式1:#includeiostream.hvoidmain(){inta;cout“请输入一个整数:”;cina;if(a0)a=-a;cout”|a|=”aendl;}例:输入一个数,输出该数的绝对值。if语句形式2:if(表达式)语句1else语句2if语句执行流程语句1表达式语句2非00✿else不能单独使用,它必须与一个if配对使用。#includeiostream.hvoidmain(){intx,y,z;cout请输入两个整数:;cinxy;if(xy)z=x;elsez=y;cout较大的一个数是:zendl;}例:比较两个数的大小,输出较大者。讨论:if语句的嵌套if语句中又出现if语句,称为if语句的嵌套。嵌套if语句中若有多个if和else,else总是和它上面离它最近的、并且没有和其它else配对的if配对。例1:输入一个数,若其大于0,则输出1;小于0,输出-1;等于0,输出0。#includeiostream.hvoidmain(){floatx;inty;cout请输入一个数:;cinx;if(x==0)y=0;elseif(x0)y=1;elsey=-1;#includeiostream.hvoidmain(){floatx;inty;cout请输入一个数:;cinx;if(x==0)y=0;elseif(x0)y=1;elsey=-1;coutyendl;请输入3个数:1.52.13.2程序运行结果:程序运行结果:max=1.5例2:求三个数中的最大数。请输入3个数:1.52.13.2max=3.2#includeiostream.hvoidmain(){doublea,b,c,max;cout请输入3个数:;cinabc;max=a;if(bc)if(ba)max=b;elseif(ca)max=c;coutmax=maxe}#includeiostream.hvoidmain(){doublea,b,c,max;cout请输入3个数:;cinabc;max=a;if(bc){if(ba)max=b;}elseif(ca)max=c;coutmax=max}switch语句的基本形式switch(表达式){case常量值1:语句1[break;]case常量值2:语句2[break;]……case常量值n:语句n[break;][default:语句n+1[break;]]}说明:•表达式应该是整型、字符型和枚举型。•“常量值i”的类型与“表达式”类型一致,且每个常量值都不能相同。•[]表示其中内容是可选的。•每个case和default的次序可以任意,不影响执行结果。switch语句执行流程No计算表达式值常量1常量2常量n┋选default语句1语句2语句n语句n+1选break选break选break┋┋选break===≠≠≠YesYesNoNoNoYesYesYes#includeiostream.hvoidmain(){intx,a,b,c,d;a=b=c=d=0;cinx;switch(x){case1:a++;break;default:d=1;case2:b++;break;case3:c++;break;}coutabcdendl;}例3:switch语句使用举例。输入1执行程序:结果为1000输入2结果为0100输入5结果为0101#includeiostream.hvoidmain(){intx,a,b,c,d;a=b=c=d=0;cinx;switch(x){case1:a++;case2:b++;case3:c++;break;default:d=1;break;case0:;//空语句}coutabcdendl;}例4:switch语句使用举例。输入1执行程序:结果为1110输入2结果为0110输入5结果为0001输入0结果为00002.4循环结构1.循环重复执行一段程序的过程称为循环。3.C++的循环语句被重复执行的程序段称为循环体。2.循环体while语句、do-while语句、for语句while语句while(表达式)语句语句形式:表达式?语句非00执行流程✿语句即为循环体,它可以是一条简单语句也可以是复合语句。#includeiostream.hvoidmain(){intn(2),s(0);while(n=100){s+=n;n+=2;}couts=sendl;}例1:求100以内的偶数之和。程序说明:循环体内有两条简单语句,必须把它们放到复合语句内。例:利用公式求e的近似值,直到为止。输出n及e的值。!1!31!21!111ne#includeiostream.hvoidmain(){intn;doublee,u;n=1;e=u=1.0;while(u1.0e-7){u/=n;e+=u;n++;}coutn=n;coute=eendl;}程序执行结果:710!1nn=12e=2.71828do-while语句do语句while(表达式);语句形式:(退出循环)表达式?语句非00执行流程✿语句即为循环体,它可以是一条简单语句也可以是复合语句。例2:输入一个正整数,然后把这个数的各位数字反序输出。程序说明:do-while的循环体至少执行一次。#includeiostream.hvoidmain(){intx;do{cout输入一个正整数:;cinx;}while(x=0);do{cout(x%10);}while((x/=10)!=0);coutendl;}输入一个正整数:123321程序运行结果:例3:输入一个正整数,然后把这个数的各位数字反序输出。#includeiostream.hvoidmain(){intx;do{cout输入一个正整数:;cinx;}while(x=0);inty=0,z=x;do{y=y*10+z%10;}while((z/=10)!=0);coutx“的反序数是:”yendl;}for语句✿e1、e2、e3为表达式。它们之间用“;”号分隔;✿e1、e2、e3均可省略,但“;”不能省略;e2的缺省值是1。✿语句即为循环体,它可以是一条简单语句也可以是复合语句。语句形式:for(e1;e2;e3)语句执行流程计算e1判断e2?语句计算e3非00例3:求1+1/2+1/3+...+1/n,n由键盘输入。程序说明源程序#includeiostream.hvoidmain()intn;doubles=0;cinn;for(inti=1;i=n;i++)s+=1.0/i;couts=s¡®\n¡¯;(1)程序第7行不能写成:s+=1/i;(2)可省略for中的e1,写成:inti=1;for(;i=n;i++)s+=1.0/i;多重循环(循环的嵌套)✿在一个循环语句的循环体内又出现另一个循环语句,称为循环的嵌套。✿for、while和do-while语句都可以互相嵌套。….for(…){…while(…){…..}….}….例:例4:求100以内的所有素数。程序说明:素数是只能被1和自身整除的数。1不是素数。#includeiostream.h#includeiomanip.hvoidmain(){intk,i;for(k=2;k=100;k++){i=2;while(k%i!=0)i++;if(k==i)coutsetw(5)k;if(k%10==0)coutendl;}}2.5跳转语句✿跳转语句:实现无条件转移控制的语句。✿C++有3个跳转(辅助)语句,它们是:breakcontinuegotobreak语句语句形式:break;在switch语句中在循环体内出现位置:在执行循环体时,若遇到break语句,则终止循环,转去执行循环体后面的语句。功能:例1:break语句使用举例。猜字母程序。程序说明:•猜字母最多只能进行5次。•变量count用于记录已进行的猜字母次数。#includeiostream.hvoidmain(){charc1;constcharch='s¡¯;intcount;for(count=1;;count++){cout¡°请输入一个英文字母:¡±;cinc1;if(c1==ch){cout猜对了!\nbreak;}if(count=5){cout不能再猜了!\n;break;}cout猜错了,再试一次!\n;continue语句语句形式:continue;中止本次循环的执行,立即执行下一次循环。出现位置:只用于循环语句中。功能:程序说明:•猜字母最多只能进行5次。•变量count用于记录已进行的猜字母次数。例2:continue语句使用举例。猜字母程序。#includeiostream.hvoidmain(){charc1;constcharch='s¡¯;intcount;for(count=1;;count++){cout¡°请输入一个英文字母:¡±;cinc1;if(c1==ch){cout猜对了!\nbreak;}if(count5){cout猜错了,再试一次!\ncontinue;}cout不能再猜了!\n;break;goto语句goto标号;形式:无条件地转去执行标号所指出的语句。用途:•goto语句的使用被限制在一个函数内。注意:•goto语句的使用会破坏程序的结构,使程序的可读性差,尽量不用。例3:求1+1/2+1/3+...+1/n,n由键盘输入。#includeiostream.hvoidmain()intn;doubles=0;cinn;for(inti=1;i=n;i++)s+=1.0/i;couts=s¡®\n¡¯;}#includeiostream.hvoidmain()intn;doubles=0;cinn;inti=1;l1:if(i=n){s+=1.0/i;i++;
本文标题:天津大学C++ 第2章 C++简单程序设计
链接地址:https://www.777doc.com/doc-4134030 .html