下载

5下载券

加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 谭浩强经典C++

谭浩强经典C++.ppt

谭浩强经典C++

lerking
2011-04-10 0人阅读 举报 0 0 暂无简介

简介:本文档为《谭浩强经典C++ppt》,可适用于IT/计算机领域

C程序设计谭浩强编著清华大学出版社课件制作:南京理工大学陈清华朱红第一章C概述C语言发展历史自从年第一台电子数字计算机ENIAC问世以来随着计算机应用领域的不断扩大促进了计算机技术的高速发展尤其是近年来计算机的硬件和软件都是日新月异。作为应用计算机的一种工具程序设计语言得到不断的充实和完善。每年都有新的程序设计语言问世老的程序设计语言不断地更新换代。世纪年代MartinRichards为计算机软件人员在开发系统软件时作为记述语言使用而开发了BCPL语言(BasicCombinedProgrammingLanguage)。年KenThompson在继承BCPL语言的许多优点的基础上发明了实用的B语言。到了年贝尔实验室的DennisRitchie和Briankernighan在B语言的基础上,作了进一步的充实和完善设计出了C语言。当时设计C语言是为了编写UNIX操作系统的。以后,C语言经过多次改进,并开始流行。C是在C语言的基础上发展和完善的而C是吸收了其它语言的优点逐步成为实用性很强的语言。C语言的主要特点是:、C语言是一种结构化的程序设计语言语言本身简洁、使用灵活方便。既适用于设计和编写大的系统程序又适用于编写小的控制程序也适用科学计算。、它既有高级语言的特点又具有汇编语言的特点。运算符丰富除了提供对数据的算术逻辑运算外还提供了二进制的位运算。并且也提供了灵活的数据结构。用C语言编写的程序表述灵活方便功能强大。用C语言开发的程序其结构性好目标程序质量高程序执行效率高。、程序的可移植性好。用C语言在某一种型号的计算机上开发的程序基本上可以不作修改而直接移植到其它型号和不同档次的计算机上运行。、程序的语法结构不够严密程序设计的自由度大。这对于比较精通C语言的程序设计者来说可以设计出高质量的非常通用的程序。但对于初学者来说要能比较熟练运用C语言来编写程序并不是一件容易的事情。与其它高级语言相比而言调试程序比较困难。往往是编好程序输入计算机后编译时容易通过而在执行时还会出错。但只要对C语言的语法规则真正领会编写程序及调试程序还是比较容易掌握的。随着C语言应用的推广C语言存在的一些缺陷或不足也开始流露出来并受到大家的关注。如:C语言对数据类型检查的机制比较弱缺少支持代码重用的结构随着软件工程规模的扩大难以适应开发特大型的程度等等。为了克服C语言本身存在的缺点并保持C语言简洁、高效与汇编语言接近的特点年贝尔实验室的BjarneStroustrup博士及其同事对C语言进行了改进和扩充并把Simula中类的概念引入到C中。并在年由RickMaseitti提议正式命名为C(CPlusPlus)。后来又把运算符的重载、引用、虚函数等功能加入到C中使C的功能日趋完善。当前用得较为广泛的C有:VC(VisualCPlusPlus)、BC(BorlandCPlusPlus)、ATTC等。简单的C程序介绍高级语言编译过程源程序(文本文件)*CPP目标文件(二进制文件)*OBJ可执行文件(二进制文件)*EXE库文件(各种函数)在VitualC系统中可直接从源程序编译连接至可执行程序但依然要生成*OBJ及*EXE这两个文件。Fcompilelink一个简单的C程序#include<iostreamh>voidmain(void){cout<<“Iamastudentn”输出字符串}主函数函数体开始函数体结束输出流在屏幕上打印引号内的字符串分号一条完整语句的结束符本程序编译执行后在DOS屏幕上打印出Iamastudent包含文件注释或说明编译过程:)启动VisualC,选择“文件”菜单中的“新建”命令选择“文件”标签中的“CSourceFile”选项。)选择源程序存放的目录和输入源程序名单击“确定”。)在编辑器中编写源程序。)单击F或“编译”中的“重建全部”编译源程序若编译通过单击“执行”在DOS屏上看结果任按一键返回编辑器。启动VC编译系统VC编译系统界面单击“File”菜单中“New”命令选择“Files”选项卡选择C源文件命令输入文件名输入文件存放位置单击选择驱动器选择驱动器或目录C源文件编辑界面输入C源代码可以将此源代码另起文件名存盘选择编译命令将源文件cpp生成obj文件如果编译出错会出现提示信息指出错误的位置及种类错误所在行错误的原因双击错误所在行光标移到该行生成可执行文件通过后单击该命令运行程序运行结果显示在DOS屏上注意:不可以在软盘上运行程序!应该把保存在软盘中的源文件拷贝到硬盘的目录中再运行!源程序所在目录未编译前只有一个源程序编译运行后出现众多附加文件同时产生一个子目录DebugDebug目录中有obj和EXE文件#include<iostreamh>voidmain(void){cout<<“i=”显示提示符inti说明变量icin>>i从键盘上输入变量i的值cout<<“i的值为:”<<i<<’n’输出变量i的值}另一个例子第二章数据类型、运算符与表达式HHHHH=运算器(H)(H)用一个字节表示整数范围为~用两个字节表示整数范围为~。一般用四个字节表示整数。(举例)内存CPU内存data外存Program硬盘软盘有符号数无符号数…………(补码)…………常量与变量常量:在程序运行过程中其值一直保持不变的量为常量。常量也区分不同的类型:为整型为实型编辑器只是根据其表面形式来判断其类型。变量:在程序运行过程中其值可以改变的量为变量。变量在程序的执行中能够赋值发生变化。变量有一个名字并在使用之前要说明其类型一经说明就在内存中占据与其类型相应的存储单元。#include<iostreamh>#definePRICE常量在程序中保持不变voidmain(void){intnum,total定义变量,在内存中开辟区间num=变量赋值,为常量total=num*PRICEcout<<“total=“<<total输出结果}其中:num=total=num*PRICE是赋值号不同于数学意义上的等号。numtotalC中有多种数据类型均有常量与变量之分各占不同的内存空间正确定义与使用数据是编写程序的基本前提。变量名的命名方法:变量名、数组名、函数名…称为标识符。标识符只能由字母、数字、下划线这三种字符组成且第一个字符必须为字母或下划线长度不大于个字符大小写不通用。(关键字不能作为标识符)。关键字即是VC的语法要求中使用的字。如intifwhile等。正确的标识符:INT,sum,de,SUM等。变量必须使用前定义以分配空间。举例说明abcEnglishxyxyifElseb()‘def’ChinebbbyAbsFloatfloat一般变量都是用匈牙利命名法命名的。intnCountcharchChoice整型数据整型常量:常量是根据其表面形式来判定整型量即是没有小数点的整数范围:~()有三种形式:)十进制(默认方式))八进制以开头)十六进制以x开头xxaxxdf(举例说明)#include<iostreamh>voidmain(void){intint,int,int定义个整型变量int=默认为十进制int=八进制int=x十六进制cout<<"int="<<int<<endlcout<<"int="<<int<<endlcout<<"int="<<int<<endl}输出int=int=int=整型变量:分为有符号型与无符号型。有符号型:short在内存中占两个字节范围为~()int在内存中占四个字节范围为~()long在内存中占四个字节范围为~无符号型:最高位不表示符号位unsignedshort在内存中占两个字节范围为~unsignedint在内存中占四个字节范围为~unsignedlong在内存中占四个字节范围为~)整型常量亦有长短之分常量中无unsigned型但一个非负的整型常量可以赋给unsigned型的变量。)若一个常量定义为长整型数则在其后加l或L进行区分。如:lLL等内存为其分配四个字节存储。一个数在内存中为当这个数为有符号数时是为无符号数时是内存中的数是以补码的形式存放的。(举例说明)#include<iostreamh>voidmain(){unsignedshortashortintb=a=bcout<<"a="<<a<<endl}结果:不同类型的整型数据间的赋值归根到底就是一条:按存储单元中的存储形式直接传送。abunsignedshorta实型数据实型数又称浮点数有两种表示方式:)十进制形式:指数形式:Eeee前有数字后面必须是整数。实型变量分单精度float和双精度double两种形式:float:占四个字节提供~位有效数字。double:占八个字节提供~位有效数字。举例说明#include<iostreamh>voidmain(void){floata,bdoublec,da=b=ec=ed=ecout<<"a="<<a<<'t'<<"b="<<b<<endlcout<<"c="<<c<<'t'<<"d="<<d<<endl}a=b=c=d=ePressanykeytocontinue如果为实数则用浮点数的形式在内存存储表示如下:实数是既有整数又有小数的数。实数可以表示成:N=S×RJS称为尾数尾数决定有效数字即数字的精度。J表示指数(阶码)。R是基数可取等对具体机器而言基数取好后就不能再变了。数有正有负,所以设置数符阶码亦有正负,所以设置阶符一般用个字节表示一个浮点数也有用个字节表示的。字长一定尾数越多精度越高阶码越多范围越大。当计算机中出现小于机器所能表示的最小数时机器只能当零来处理当出现超过机器所能表示的最大数时出现溢出现象一旦出现溢出就会停止运算。定点数浮点数均会出现溢出现象。字符型数据(char)字符型数据实际上是作为整型数据在内存中存储的。计算机是以字符编码的形式处理字符的因此我们在计算机内部是以ASCII码的形式表示所有字符的。所以位二进制数即可表示出一个字符我们用一个字节的容量(位)存储一个字符。例如:字符A的ASCII码为x或在内存中表示为:在程序中表示为:chargrade定义一个字符型的变量空间(个字节)grade=‘A’必须用‘’表示否则易与标识符混同‘’内括起来的字符表示该字符的ASCII码。进一步由于在内存中的形式与整型数据相同所以可以直接用其整型值给变量赋值。chargradegrade=以下的赋值形式均是等同的。grade='A'grade=grade=xgrade=#include<iostreamh>voidmain(void){chara,ba=‘A’输入ASCII码b=输入十进制数cout<<"a="<<a<<endlcout<<"b="<<b<<endl}输出:a=Ab=A即在内存中的表示均是相同的非打印字符有些ASCII的字符代表某些操作不能打印出来如回车、退格等可用两种方式表示这些字符。)用ASCII码的形式charre=)用转义字符charre=‘n’(p)转义字符虽然包含个或多个字符但它只代表一个字符。编译系统在见到字符“”时会接着找它后面的字符把它处理成一个字符在内存中只占一个字节。典型转义字符:‘n’换行‘b’退格't'下一个输出区若输出中包含这些特定格式则再加一个输出c:tctc表示为cout<<"c:tctc"可以用转义字符表示任一一个ASCII字符‘ddd’(八进制)‘xhh‘(十六进制)'''x''x'''#include<iostreamh>voidmain(void){charc,c,c,ccharn,nc='a'字符常量c=十进制c='x'转义字符c=八进制cout<<"c="<<c<<'t'<<"c="<<c<<endlcout<<"c="<<c<<'t'<<"c="<<c<<endln=‘n’转义字符:回车n=‘t’转义字符:下一个输出区(Tab)cout<<"使用转义字符n"cout<<"c="<<c<<n<<"c="<<c<<ncout<<"c="<<c<<n<<"c="<<c<<n}输出:c=ac=ac=ac=a使用转义字符c=ac=ac=ac=a字符串常量:用""表示在内存中顺序存放以''结束。如:"CHINA"'a'在内存中占一个字节"a"占两个字节实际上内存是对应字符的ASCII码形式标识符常量在C中有二种方法定义标识符常量一种是使用编译预处理指令另一种是使用C的常量说明符const。例如:#definePRICE在程序中凡是出现PRICE均用替代#definePI#defineS“China”constfloatpi=将变量pi定义为常量(举例说明)#include<iostreamh>#definePI#defineS"China"voidmain(void){constfloatpi=变量作为常量使用cout<<"PI="<<PI<<endlcout<<"*PI="<<*PI<<endlcout<<S<<endlPI=PIpi=picout<<"PI="<<PI<<endlcout<<"pi="<<pi<<endl}输出:PI=*PI=ChinaPI=pi=下列常量的表示在C中是否合法?若不合法指出原因若合法则指出常量的数据类型。ueLe‘’“ComputerSystem”“a”‘a’‘’变量)在程序的执行过程中其值可以改变的量称为变量。)变量名必须用标识符来标识。)变量根据其取值的不同值域分为不同类型的变量:整型变量、实型变量、字符型变量、构造型变量、指针型变量等等。)对于任一变量编译程序要为其分配若干个字节(连续的)的内存单元以便保存变量的取值。)当要改变一个变量的值时就是把变量的新的取值存放到为该变量所分配的内存单元中用到一个变量的值时就是从该内存单元中取出数据。)不管什么类型的变量通常均是变量的说明在前使用变量在后。inti,j,k定义了三个整型变量i,j,kfloatx,y,z定义了三个实型变量x,y,zcharc,c说明了二个字符型变量c,cdoubledv说明了一个双精度型变量dv变量赋初值在定义变量的同时给变量赋值即在内存中开辟出一个空间后马上给此空间赋值。但这个空间的值并不是固定不变的在程序的运行中一样可以改变。chara='x',b='d'inta=,a=a=‘A’b=‘n’a=a=inta=定义语句在开辟空间后马上为空间赋值a=重新为该空间赋值算术运算符和算术表达式一、算术运算符和算术表达式-*/用算术运算符连接起来的式子是算术表达式两个整数相除结果为整数==整数才可求余余数的符号与左边数的符号相同。=====二、优先级与结合性()*三、强制转换类型(类型名)(表达式)(double)a(int)(xy)(int)=在强制类型运算后原变量不变但得到一个所需类型的中间变量。如:intxfloaty=x=(int)yx=y=y的值没有改变仍是单精度浮点型四、自增、自减运算符(难点)--inti,ji=j=ii=j=在前,先运算,后赋值inti,ji=j=ii=j=在后,先赋值,后运算i=ii=ii=ii=ii=i=i--i=i-i=--ii=i-i=)自增、自减运算符只能用于变量不可用于常量和表达式因为表达式在内存内没有具体空间常量所占的空间不能重新赋值(xy)(-i)若i=,j=(i)j等于i=,j=)结合方式自右至左优先级最高向右取最大-i-(i)ij(i)j赋值运算符和赋值表达式bmw="="左边必须是变量名。若“=”两边变量类型不同在赋值时要进行类型转换。转换原则:根据左边变量的类型转换。少字节多字节)若多字节变量为unsigned,则转换后多余字节补零。unsignedshortinta=unsignedlongbb=aab有符号型符号扩展shortinta=longbb=a)若多字节变量为有符号型则转换后扩展少字节的最高位。转换后数据的符号不变。ab多字节少字节低位照搬inta=shortintbb=ab=inta=shortintbb=ab=ba赋值表达式a=b=b=a="="的结合性为自右至左复合的赋值运算符a=a=ax*=yx=x*(y)x=xx=x(x)x=yx=xyi=ji=i(j)a=a=a=a*aa=a(a*a)=(*)=a=a()==关系运算符和关系表达式关系运算符(比较运算)<><=>===!===与=a=赋值运算a==判断是否相等<><=>=的优先级大于==!=算术运算符的优先级大于关系运算符的优先级关系表达式:用关系运算符将表达式连接起来称为关系表达式。其值非真即假。在C语言中用非代表真用表示假。关系表达式的结果只有两个真为假为。a=b=c=a>a>bca==a=='a'a>'a'b=a=='a'>'A'b=='a'ca==a逻辑运算符 运算符与或||非!AB结果有出全出A,B同时成立AB结果有出全出A或B有一个成立||A结果有出有出!江苏籍的男生江苏籍的学生和所有男生非江苏籍的学生江苏籍男生例如:两个条件:江苏籍男生江苏籍||男生!江苏籍注意:优先级:!||!算术关系逻辑赋值逗号不可写为<x<应为:<xx<作为条件所有非值均为真作为结果只有或两种。>||<!当前面的表达式可以得出整个表达式的结果时不必再求后面的表达式。abc当a为时表达式为不必求b与c。a||b||c当a为时表达式为不必求b与c。x=y=i=x==||y==x=y=i=i=x==y==x=y=i=判断某年是否为闰年)能被整除)能被整除不能被整除(年不是)year==year==year!=(year==)||(year==year!=)当c=时以下的值各多少?(c=)(c=)(c=)(c==)||(c==)||(c==)(c!=)(c!=)(c>=)(c<=)sizeof()运算符 sizeof()运算符是一个单目运算符用于计算某一个操作数类型的字节数。其格式为:sizeof(<类型>)sizeof(int)其值为sizeof(float)其值为sizeof(double)其值为sizeof(char)其值为逗号运算符和逗号表达式表达式表达式表达式…表达式n顺序求解结果为最后一个表达式的值并且优先级最低。a=(,*,)a=a=*,a,a(a=*,a*),aa=a=下列语句中表达式中i,j的值各为多少、inti=,j=、inti=,j=i=,(j)ii=j*=、inti=,j=、inti=,j=j=i=((i=)*)i=j=i=,j=i=,j=i=,j=i=,j=各类数值型数据间的混合运算整型、实型、字符型数据间可以混合运算。'a'*'b'在进行运算时不同类型的数据要先转换成同一类型的数据再进行运算。转换规则如下:第三章简单的输入输出输入语句:cin程序在执行期间接收外部信息的操作称为程序的输入而把程序向外部发送信息的操作称为程序的输出。在C中没有专门的输入输出语句所有输入输出是通过输入输出流来实现的。要使用C提供的输入输出时必须在程序的开头增加一行:#include<iostreamh>即包含输入输出流的头文件“iostreamh”。有关包含文件的作用在编译预处理部分(第五章)作详细介绍。输入十进制整数和实数cin>><变量名>《>><变量名>》(举例说明)inta,bcin>>a>>b程序运行至此停下等待从键盘输入变量值键盘输入:<CR>或:<CR><CR>均可。输入语句自动过滤空白字符。键盘键盘浮点型数据同整型数据一样。floatc,dcin>>c>>dcharch,chcin>>ch>>ch若输入:ab<CR>则ch为a,ch为b。若输入:ab<CR>则ch为a,ch为b。字符型变量过滤空白字符。cin格式过滤空白字符floatainti,icharch,chcin>>i>>a>>i>>ch>>ch输入:ab<CR>i:在缺省的情况下cin自动跳过输入的空格换言之cin不能将输入的空格赋给字符型变量同样地回车键也是作为输入字符之间的分隔符也不能将输入的回车键字符赋给字符型变量。a:i:ch:ach:b若要把从键盘上输入的每一个字符包括空格和回车键都作为一个输入字符赋给字符型变量时必须使用函数cinget()。其格式为:cinget(<字符型变量>)cinget()从输入行中取出一个字符并将它赋给字符型变量。这个语句一次只能从输入行中提取一个字符。charccinget(c)charch,ch,chcinget(ch)cinget(ch)cinget(ch)输入:AB<CR>则:ch:A并且在输入缓冲区中保留回车键。ch:空格ch:B空格的ASCII码为ch输入十六进制或八进制数据在缺省的情况下系统约定输入的整型数是十进制数据。当要求按八进制或十六进制输入数据时在cin中必须指明相应的数据类型:hex为十六进制oct为八进制dec为十进制。inti,j,k,lcin>>hex>>i指明输入为十六进制数cin>>oct>>j指明输入为八进制数cin>>k输入仍为八进制数cin>>dec>>l指明输入为十进制数当执行到语句cin时若输入的数据为:<CR>结果:i:j:k:l:使用非十进制数输入时要注意以下几点:、八进制或十六进制数的输入只能适用于整型变量不适用于字符型变量实型变量。、当在cin中指明使用的数制输入后则所指明的数制一直有效直到在接着的cin中指明输入时所使用的另一数制为止。如上例中输入k的值时仍为八进制。、输入数据的格式、个数和类型必须与cin中所列举的变量类型一一对应。一旦输入出错不仅使当前的输入数据不正确而且使得后面的提取数据也不正确。cin>>a,bcin>>abcin>>abinta,bcin>>a>>b输出数据cout与输入cin对应的输出是cout输出流。当要输出一个表达式的值时可使用cout来实现其一般格式为:cout<<<表达式>《<<<表达式>》其中运算符“<<”称为插入运算符它将紧跟其后的表达式的值输出到显示器当前光标的位置。inta=floatf=chars=“abcd”cout<<a<<‘t’<<f<<‘t’<<s<<endl‘t’为转义字符Tabendl为回车或‘n’显示器显示器显示器abcdcout将双引号中的字符串常量按其原样输出charch=‘a’,ch=‘b’cout<<“c=“<<ch<<‘t’<<“c=“<<ch<<endlc=ac=b<CR>inti=,i=floata=cout<<“a*i=“<<a*i<<endl<<“a*i=“<<a*i<<endla*i=a*i=指定输出项占用的宽度:在输出的数据项之间进行隔开的另一种办法是指定输出项的宽度。如上面的两个输出语句可改写为:cout<<setw()<<i<<setw()<<j<<endlcout<<setw()<<m<<setw()<<j*k<<endl其中setw()指明其后的输出项占用的字符宽度为即括号中的值指出紧跟其后的输出项占用的字符位置个数并向右对齐。setw是“setwidth”的缩写。使用setw()应注意以下三点:、在程序的开始位置必须包含头文件iomaniph即在程序的开头增加:#include<iomaniph>、括号中必须给出一个表达式(值为正整数)它指明紧跟其后输出项的宽度。、该设置仅对其后的一个输出项有效。一旦按指定的宽度输出其后的输出项后又回到原来的缺省输出方式。输出八、十六进制数和科学表示法的实数对于整型数据可指定以十六进制或八进制输出而对于实型数据可指定以科学表示法形式输出。例如设有如下一个程序:#include<iostreamh>voidmain(void){floatx=,y=coutsetf(ios::scientific,ios::floatfield)表明浮点数用科学表示法输出cout<<x<<’t’cout<<y<<endl}执行该程序后的输出为:ee与cin中类同当在cout中指明以一种进制输出整数时对其后的输出均有效直到指明又以另一种进制输出整型数据为止。对实数的输出也是这样一旦指明按科学表示法输出实数则接着的输出均按科学表示法输出直到指明以定点数输出为止。明确指定按定点数格式输出(缺省的输出方式)的语句为:coutsetf(ios::fixed,ios::floatfield)第四章C的流程控制语句程序的三种基本结构、顺序、循环if语句判断选择语句有三种形式:if(表达式)语句)if(表达式)语句else语句if(a>b)cout<<aif(a>b)cout<<aelsecout<<bif(表达式)语句elseif(表达式)语句elseif(表达式n)语句nelse语句n语句真真语句真语句真语句假假假假语句注意:)if后可跟复合语句。)注意的位置。)注意多重ifelse的搭配。if(a>b){a=b=}else{a=b=}if(i>j)iif(i>j)iif总是与它上面最近的else配对如要改变用复合语句{}。注意书写格式相互配对的语句要对齐。例:输入两个实数按代数值由小到大次序输出这两个数。voidmain(void){floata,b,t定义变量cout<<“InputRealNumber:n"在屏幕上的提示信息cin>>a>>b给变量赋值a:,b:if(a>b){t=aa=bb=t}交换数据用中间变量cout<<a<<‘t’<<b<<endl输出变量}输出结果:嵌套的条件语句(举例说明)x=a=b=ok=ok=if(a<b)if(b!=)if(!ok)x=elseif(ok)x=x=x=条件运算符是C++中的唯一的三目运算符。表达式?表达式:表达式max=a>ba:b求a,b中的大者当a=b=a>b为真表达式的值等于a,max值为当a=b=a>b为假表达式的值等于b,max值为注意:条件运算符的优先级比赋值运算符高x=(x=)x:x结合方向自左至右a>ba:c>dc:d三个表达式的类型可不同z=a>b'A':abx=x=,y=,z=x=((xy)z>=xzyz):cout<<"x="<<x<<endlx=y=z=x=y=zcout<<(z=x>yx:y)<<endly=yz=x=x=x=voidmain(void){intx=,y=,z=x=y=zcout<<x<yy:x<<endlcout<<x<yx:y<<endlcout<<x<<“,”<<y<<endlcout<<z=x>yx:y<<endlcout<<y<<“,”<<z<<endlx=y=z=cout<<(z>=yy==x):<<endlcout<<z>=yy>=x<<endl}xyz输出,,执行以下程序段后变量a,b,c的值分别是:intx=,y=inta,b,ca=(x==y)x:yb=xc=yx=y=a=b=x=c=voidmain(void){inta=,b=,c=if(a=bc)cout<<“***n”elsecout<<“$$$n”}***switch语句多分支选择语句。if语句只有两个分支而实际问题中常常需要用到多分支的选择。如成绩分为A(~)、B(~)、C(~)、D(以下)等。cinget(grade)if(grade==‘A’)cout<<“~n”elseif(grade==‘B’)cout<<“~n”elseif(grade==‘C’)cout<<“~n”elseif(grade==‘D’)cout<<“nopassn”elsecout<<“errorn”switch(表达式){case常量表达式:语句case常量表达式:语句……case常量表达式n:语句ndefault:语句n}switch(grade){case‘A’:cout<<“~n”case‘B’:cout<<“~n”case‘C’:cout<<“~n”case‘D’:cout<<“nopassn”default:cout<<“errorn”}如果grade为‘A’,则结果为~~~nopasserror其流程为:先计算表达式的值然后顺序地与case子句中所列出的各个常量进行比较若表达式的值与常量中的值相等就开始进入相应的case语句执行程序遇到case和default也不再进行判断直至switch语句结束。如果要使其在执行完相应的语句后中止执行下一语句可以在语句后加break。switch(grade){case‘A’:cout<<“~n”breakcase‘B’:cout<<“~n”breakcase‘C’:cout<<“~n”breakcase‘D’:cout<<“nopassn”breakdefault:cout<<“errorn”}注意:、switch与if不同它仅能判断一种逻辑关系即表达式是否等于指定的常量而if可以计算并判断各种表达式。、case子句后必须为常量常常是整型和字符型。、default可以省略这时不满足条件什么也不执行。、case和default只起标号的作用顺序可以颠倒颠倒时注意后面的break语句。、多个case语句可以共用一组程序。case‘A’:case‘B’:case‘C’:cout<<“pass!n”voidmain(void){inti=switch(i){case:icase:icase:idefault:i}cout<<“i=”<<i<<endl}i=i=i=i=intx=,y=,a=,b=switch(x){case:switch(y){case:abreakcase:bbreak}case:abbreakcase:ab}cout<<“a=“<<a<<‘t’<<“b=”<<b<<endla=a=b=a=b=有个整数a,b,c由键盘输入输出其中最大的数。while语句while(表达式){语句组}{语句组}a=while(a<)a=acout<<“a=“<<a当循环语句超过一条时要用{}将语句组组合在一起。求……voidmain(void){inti=,sum=定义变量初始化while(i<=)构造循环{sum=sumi循环体多次执行i=i}cout<<“sum=”<<sum<<endl输出结果}真真真真真真真假sum=循环结束!!实际上是将i不停地累加到一起注意:、循环体如果为一个以上的语句用{}括起。、循环体内或表达式中必须有使循环结束的条件即一定有一个循环变量。、while表达式可以成为语句要特别小心。k=while(k!=)cout<<k,kcout<<endl输出:真真假回车voidmain(void){intnum=while(num<=){numcout<<num<<endl}}真<CR>真<CR>真<CR>假无voidmain(void){inty=while(y)cout<<“y=”<<y<<endl}输出:y=输出是什么?循环几次?真无真无真无真无假-循环:次k=while(k=)k=kcout<<k输出:x=while(x!=)xx=while(x)xx=while(x)x=while(x)以下语句循环退出时x为多少?x=x=x=x=#include<iostreamh>voidmain(){charchwhile(cinget(ch)ch!='n')switch(ch''){case

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/930

谭浩强经典C++

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利