您好,欢迎访问三七文档
C++简单程序设计面向对象程序设计面向对象程序设计2主要内容C++语言概述基本数据类型和表达式数据的输入与输出算法的基本控制结构自定义数据类型面向对象程序设计3C++程序实例—例2-1//2_1.cpp#includeiostreamusingnamespacestd;intmain(){coutHello!\n;coutWelcometoc++!\n;}运行结果:Hello!Welcometoc++!C++语言概述面向对象程序设计4数据类型——常量与变量#includeiostreamusingnamespacestd;intmain(){constintPRICE=30;intnum,total;floatv,r,h;num=10;total=num*PRICE;couttotalendl;r=2.5;h=3.2;v=3.14159*r*r*h;coutvendl;}常量变量变量先声明后使用符号常量基本数据类型和表达式面向对象程序设计5数据类型——变量初始化例:inta=3;doublef=3.56;charc='a';intc(5);Page5基本数据类型和表达式面向对象程序设计6数据类型—混合运算时的类型转换不同类型数据进行混合运算时,C++编译器会自动进行类型转换。为了避免不同的数据类型在运算中出现类型问题,应尽量使用同种类型数据。可以采用强制类型转换:例如:floatc;inta,b;c=float(a)/float(b);或c=(float)a/(float)b;基本数据类型和表达式面向对象程序设计7变量的存储类型auto–属于一时性存储,其存储空间可以被若干变量多次覆盖使用。register–存放在通用寄存器中。extern–在所有函数和程序段中都可引用。static–在内存中是以固定地址存放的,在整个程序运行期间都有效。基本数据类型和表达式面向对象程序设计8赋值运算符和赋值表达式复合的赋值运算符有10种复合运算符:+=,-=,*=,/=,%=,=,=,&=,^=,|=例a+=3等价于a=a+3x*=y+8等价于x=x*(y+8)基本数据类型和表达式面向对象程序设计9赋值运算符和赋值表达式——赋值表达式举例a=5表达式值为5a=b=c=5表达式值为5,a,b,c均为5a=5+(c=6)表达式值为11,a为11,c为6a=(b=4)+(c=6)表达式值为10,a为10,b为4,c为6a=(b=10)/(c=2)表达式值为5,a为5,b为10,c为2a+=a-=a*a相当于a=a+(a=a-a*a)Page9基本数据类型和表达式面向对象程序设计10关系运算与关系表达式关系运算是比较简单的一种逻辑运算,优先次序为:====!=优先级相同(高)优先级相同(低)关系表达式是一种最简单的逻辑表达式其结果类型为bool,值只能为true或false。例如:ab,c=a+b,x+y==3基本数据类型和表达式面向对象程序设计11逻辑运算与逻辑表达式逻辑运算符!(非)&&(与)||(或)优先次序:高→低逻辑表达式例如:(ab)&&(xy)其结果类型为bool,值只能为true或false基本数据类型和表达式面向对象程序设计12sizeof运算符语法形式sizeof(类型名)或sizeof(表达式)结果值:“类型名”所指定的类型或“表达式”的结果类型所占的字节数。例:sizeof(short)sizeof(x)基本数据类型和表达式面向对象程序设计13运算符优先级括号++,--,sizeof*,/,%+,-==,!=位运算&&||?:赋值运算逗号运算低高基本数据类型和表达式面向对象程序设计14混合运算时数据类型的转换——隐含转换当参与运算的操作数必须是bool型时,如果操作数是其它类型,编译系统会自动将非0数据转换为true,0转换为false。位运算的操作数必须是整数,当二元位运算的操作数是不同类型的整数时,也会自动进行类型转换,赋值运算要求左值与右值的类型相同,若类型不同,编译系统会自动将右值转换为左值的类型。基本数据类型和表达式面向对象程序设计15简单的输入、输出向标准输出设备(显示器)输出例:intx;coutx=x;从标准输入设备(键盘)输入例:intx;cinx;#includeiostreamusingnamespacestd;intmain(){intyear;boolIsLeapYear;coutEntertheyear:;cinyear;IsLeapYear=((year%4==0&&year%100!=0)||(year%400==0));if(IsLeapYear)coutyearisaleapyearendl;elsecoutyearisnotaleapyearendl;}16例2-2输入一个年份,判断是否闰年。#includeiostreamusingnamespacestd;intmain(){intx,y;coutEnterxandy:;cinxy;if(x!=y)if(xy)coutxyendl;elsecoutxyendl;elsecoutx=yendl;}17例2-3输入两个整数,比较两个数的大小。面向对象程序设计18一般形式switch(表达式){case常量表达式1:语句1case常量表达式2:语句2┆case常量表达式n:语句ndefault:语句n+1}switch语句执行顺序以case中的常量表达式值为入口标号,由此开始顺序执行。因此,每个case分支最后应该加break语句。每个常量表达式的值不能相同,次序不影响执行结果。可以是多个语句,但不必用{}。可以是整型、字符型、枚举型算法的基本控制结构#includeiostreamusingnamespacestd;intmain(){intday;cinday;switch(day){case0:coutSundayendl;break;case1:coutMondayendl;break;case2:coutTuesdayendl;break;case3:coutWednesdayendl;break;case4:coutThursdayendl;break;case5:coutFridayendl;break;case6:coutSaturdayendl;break;default:coutDayoutofrangeSunday..Saturdayendl;break;}}19例2-4输入一个0~6的整数,转换成星期输出。面向对象程序设计20while语句形式while(表达式)语句可以是复合语句,其中必须含有改变条件表达式值的语句。执行顺序先判断表达式的值,若为true时,执行语句。算法的基本控制结构#includeiostreamusingnamespacestd;intmain(){inti(1),sum(0);while(i=10){sum+=i;//相当于sum=sum+i;i++;}coutsum=sumendl;}运行结果:sum=5521面向对象程序设计22do-while语句一般形式do语句while(表达式)可以是复合语句,其中必须含有改变条件表达式值的语句。执行顺序先执行循环体语句,后判断条件。表达式为true时,继续执行循环体与while语句的比较:–While语句执行顺序先判断表达式的值,为true时,再执行语句算法的基本控制结构#includeiostreamusingnamespacestd;intmain(){intn,right_digit,newnum=0;coutEnterthenumber:;cinn;coutThenumberinreverseorderis;do{right_digit=n%10;coutright_digit;n/=10;//相当于n=n/10}while(n!=0);coutendl;}23面向对象程序设计24循环结构与选择结构相互嵌套#includeiostreamusingnamespacestd;intmain(){intn;for(n=100;n=200;n++){if(n%3!=0)coutn;}}算法的基本控制结构面向对象程序设计25break和continue语句break语句使程序从循环体和switch语句内跳出,继续执行逻辑上的下一条语句。不宜用在别处。continue语句结束本次循环,接着判断是否执行下一次循环。算法的基本控制结构面向对象程序设计26typedef语句为一个已有的数据类型另外命名语法形式typedef已有类型名新类型名表;例如typedefdoublearea,volume;typedefintnatural;naturali1,i2;areaa;volumev;自定义数据类型面向对象程序设计27枚举类型—enum只要将需要的变量值一一列举出来,便构成了一个枚举类型。枚举类型的声明形式如下:enum枚举类型名{变量值列表};例如:enumweekday{sun,mon,tue,wed,thu,fri,sat};自定义数据类型面向对象程序设计28结构体——结构的声明结构的概念结构是由不同数据类型的数据组成的集合体。声明结构类型struct结构名{数据类型成员名1;数据类型成员名2;:数据类型成员名n;};自定义数据类型面向对象程序设计29例2-12结构体变量的初始化和使用#includeiostream#includeiomanipusingnamespacestd;structstudent//学生信息结构体{intnum;//学号charname[20];//姓名chargender;//性别intage;//年龄}stu={97001,LinLin,'F',19};intmain(){coutsetw(7)stu.numsetw(20)stu.namesetw(3)stu.sexsetw(3)stu.age;}自定义数据类型运行结果:97001LinLinF19面向对象程序设计30联合体声明形式:union联合名{数据类型成员名1;数据类型成员名2;:数据类型成员名n;};联合体类型变量说明的语法形式联合名联合变量名;引用形式:联合名.成员名自定义数据类型面向对象程序设计31例:unionuarea{charc_data;shorts_data;longl_data;}uareac_datal_datas_data联合体自定义数据类型面向对象程序设计32无名联合无名联合没有标记名,只是声明一个成员项的集合,这些成员项具有相同的内存地址,可以由成员项的名字直接访问。例:union{inti;floatf;}在程序中可以这样使用:i=10;f=2.2;自定义数据类型
本文标题:C++基础语法
链接地址:https://www.777doc.com/doc-5889553 .html