




已阅读5页,还剩83页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二章C+简单程序设计,清华大学郑莉,C+语言程序设计,2,本章主要内容,C+语言概述基本数据类型和表达式数据的输入与输出算法的基本控制结构自定义数据类型,3,C+语言的产生,C+是从C语言发展演变而来的,首先是一个更好的C引入了类的机制,最初的C+被称为“带类的C”1983年正式取名为C+从1989年开始C+语言的标准化工作于1994年制定了ANSIC+标准草案于1998年11月被国际标准化组织(ISO)批准为国际标准,成为目前的C+,C+语言概述,4,C+的特点,全面兼容C它保持了C的简洁、高效和接近汇编语言等特点对C的类型系统进行了改革和扩充C+也支持面向过程的程序设计,不是一个纯正的面向对象的语言支持面向对象的方法,C+语言概述,5,C+程序实例例2-1,/2_1.cpp#includeusingnamespacestd;voidmain(void)coutHello!n;coutWelcometoc+!n;运行结果:Hello!Welcometoc+!,C+语言概述,6,C+字符集,大小写的英文字母:AZ,az数字字符:09特殊字符:空格!#%.,(),C+语言概述,7,词法记号,关键字C+预定义的单词标识符程序员声明的单词,它命名程序正文中的一些实体文字在程序中直接使用符号表示的数据操作符用于实现各种运算的符号分隔符(),:;用于分隔各个词法记号或程序正文空白符空格、制表符(TAB键产生的字符)、换行符(Enter键所产生的字符)和注释的总称,C+语言概述,8,标识符的构成规则,以大写字母、小写字母或下划线(_)开始。可以由以大写字母、小写字母、下划线(_)或数字09组成。大写字母和小写字母代表不同的标识符。,C+语言概述,9,数据类型常量与变量,#includeusingnamespacestd;voidmain(void)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;,Page9,基本数据类型和表达式,10,#includeusingnamespacestd;voidmain(void)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;,数据类型整型数据,整型常量,shortunsignedshort2字节int、unsignedint4字节longunsignedlong4字节,整型变量,基本数据类型和表达式,11,数据类型整型数据及取值范围,类型说明符位数数值范围短整short16-3276832767基本int32-231(231-1)长整long32-231(231-1)无符号unsignedshort16065535unsignedint320(232-1)unsignedlong320(232-1),基本数据类型和表达式,12,#includeusingnamespacestd;voidmain(void)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;coutvb?a:b;,基本数据类型和表达式,28,sizeof运算符,语法形式sizeof(类型名)或sizeof(表达式)结果值:“类型名”所指定的类型或“表达式”的结果类型所占的字节数。例:sizeof(short)sizeof(x),基本数据类型和表达式,29,位运算按位与(,基本数据类型和表达式,31,位运算按位异或(),运算规则两个操作数进行异或:若对应位相同,则结果该位为0,若对应位不同,则结果该位为1,举例:计算071052071:00111001052:()00101010071052:00010011,基本数据类型和表达式,32,位运算按位异或(),用途:使特定位翻转(与0异或保持原值,与1异或取反)例如:要使01111010低四位翻转:01111010()0000111101110101,基本数据类型和表达式,33,位运算取反(),单目运算符,对一个二进制数按位取反。例:025:0000000000010101025:1111111111101010,基本数据类型和表达式,34,位运算移位,左移运算()右移后,低位:舍弃高位:无符号数:补0有符号数:补“符号位”,基本数据类型和表达式,35,运算符优先级,括号+,-,sizeof*,/,%+,-=,!=位运算不可写为:if(a=b;)0)t=a;,语句,41,复合语句,将多个语句用一对大括号包围,便构成一个复合语句例如sum=sum+i;i+;,语句,42,简单的输入、输出,向标准输出设备(显示器)输出例:intx;coutx;,43,顺序结构分支结构循环结构,算法的基本控制结构,44,如何解决分支问题?,例2-2输入一个年份,判断是否闰年。,算法的基本控制结构,#includeusingnamespacestd;voidmain(void)intyear;boolIsLeapYear;coutyear;IsLeapYear=(year%4=0,45,运行结果:Entertheyear:20002000isaleapyear,46,47,if(表达式)语句例:if(xy)couty)coutx;elsecouty;if(x!=y)if(xy)coutyendl;elsecoutxyendl;elsecoutx=yday;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;,53,54,一般形式switch(表达式)case常量表达式1:语句1case常量表达式2:语句2case常量表达式n:语句ndefault:语句n+1,switch语句,执行顺序以case中的常量表达式值为入口标号,由此开始顺序执行。因此,每个case分支最后应该加break语句。,算法的基本控制结构,55,使用switch语句应注意的问题,case分支可包含多个语句,且不用。表达式、判断值都是int型或char型。若干分支执行内容相同可共用一组语句。,算法的基本控制结构,56,如何有效地完成重复工作,例2-5求自然数110之和分析:本题需要用累加算法,累加过程是一个循环过程,可以用while语句实现。,算法的基本控制结构,#includeusingnamespacestd;voidmain()inti(1),sum(0);while(i=10)sum+=i;/相当于sum=sum+i;i+;coutsum=sumn;coutThenumberinreverseorderis;doright_digit=n%10;coutright_digit;n/=10;/相当于n=n/10while(n!=0);couti;while(i=10)sum+=i;i+;coutsum=sumi;dosum+=i;i+;while(i=10);coutsum=sumn;coutNumbernFactors;for(k=1;k=n;k+)if(n%k=0)coutk;coutendl;,66,运行结果1:Enterapositiveinteger:36Number36Factors123469121836运行结果2:Enterapositiveinteger:7Number7Factors17,67,68,例2-9编写程序输出以下图案,*,算法的基本控制结构,#includeusingnamespacestd;voidmain()inti,j,n=4;for(i=1;i=n;i+)/输出前4行图案for(j=1;j=30;j+)cout;/在图案左侧空30列for(j=1;j=8-2*i;j+)cout;for(j=1;j=2*i-1;j+)cout*;coutendl;,69,for(i=1;i=n-1;i+)/输出后3行图案for(j=1;j=30;j+)cout;/在图案左侧空30列for(j=1;j=7-2*i;j+)cout*;coutendl;,70,71,循环结构与选择结构相互嵌套,#includeusingnamespacestd;voidmain()intn;for(n=100;n=200;n+)if(n%3!=0)cout0)i+;if(nn;cout正整数个数:i负整数个数:jendl;,73,74,break和continue语句,break语句使程序从循环体和switch语句内跳出,继续执行逻辑上的下一条语句。不宜用在别处。continue语句结束本次循环,接着判断是否执行下一次循环。,算法的基本控制结构,75,typedef语句,为一个已有的数据类型另外命名语法形式typedef已有类型名新类型名表;例如typedefdoublearea,volume;typedefintnatural;naturali1,i2;areaa;volumev;,自定义数据类型,76,枚举类型enum,只要将需要的变量值一一列举出来,便构成了一个枚举类型。枚举类型的声明形式如下:enum枚举类型名变量值列表;例如:enumweekdaysun,mon,tue,wed,thu,fri,sat;,自定义数据类型,77,枚举类型enum,枚举类型应用说明:对枚举元素按常量处理,不能对它们赋值。例如,不能写:sun=0;枚举元素具有缺省值,它们依次为:0,1,2,.。也可以在声明时另行指定枚举元素的值,如:enumweekdaysun=7,mon=1,tue,wed,thu,fri,sat;枚举值可以进行关系运算。整数值不能直接赋给枚举变量,如需要将整数赋值给枚举变量,应进行强制类型转换。,自定义数据类型,78,例2-11,设某次体育比赛的结果有四种可能:胜(win)、负(lose)、平局(tie)、比赛取消(cancel),编写程序顺序输出这四种情况。分析:由于比赛结果只有四种可能,所以可以声明一个枚举类型,声明一个枚举类型的变量来存放比赛结果。,自定义数据类型,#includeusingnamespacestd;enumgame_resultWIN,LOSE,TIE,CANCEL;intmain()game_resultresult;enumgame_resultomit=CANCEL;intcount;for(count=WIN;count=CANCEL;count+)result=(game_result)count;if(result=omit)coutThegamewascancelledn;elsecoutThegamewasplayed;if(result=WIN)coutandwewon!;if(result=LOSE)coutandwelost.;coutn;return0;,79,运行结果Thegamewasplayedandwewon!Thegamewasplayedandwelost.ThegamewasplayedThegamewascancelled,80,81,结构体结构的声明,结构的概念结构是由不同数据类型的数据组成的集合体。声明结构类型struct结构名数据类型成员名1;数据类型成员名2;:数据类型成员名n;;,自定义数据类型,82,结构体结构的声明,举例:structstudent/学生信息结构体intnum;/学号charname20;/姓名chargender;/性别intage;/年龄floatscore;/成绩charaddr30;/住址,自定义数据类型,83,结构体结构变量说明,变量说明形式结构名结构变量名;注意:结构变量的存储类型概念、它的寿命、可见性及使用范围与普通变量完全一致。结构变量说明在结构类型声明之后,二者也可同时进行。结构变量占内存大小可用sizeof运算求出:sizeof(运算量),自定义数据类型,84,结构体结构变量的初始化和使用,初始化说明结构变量的同时可以直接设置初值。使用结构体成员的引用形式:结构变量名.成员名,自定义数据类型,85,例2-12,结构体变量的初始化和使用#include#includeusingnamespacestd;structstudent/学生信息结构体intnum;/学号charname20;/姓名chargender;/性别intage;/年龄stu=97001,LinLin,F,19;voidmain()coutsetw(7)stu.numsetw(20)setw(3)stu.sexsetw(3)stu.age
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 自考专业(计算机应用)题库含完整答案详解【历年真题】
- 主管护师(中级)每日一练试卷含答案详解【培优】
- 自考专业(工商企业管理)预测复习附参考答案详解(突破训练)
- 自考专业(法律)高分题库附完整答案详解(网校专用)
- 电竞公司资产盘点管理办法
- 重难点解析人教版7年级数学上册期末试题及完整答案详解(历年真题)
- 个人理财计划的制定与实施手册
- 中级银行从业资格之中级银行业法律法规与综合能力题库检测模拟题附参考答案详解(a卷)
- 广场可行性研究报告
- 中级银行从业资格之中级银行业法律法规与综合能力综合提升测试卷及完整答案详解【各地真题】
- 眼的生物化学讲义
- GB/T 3098.15-2023紧固件机械性能不锈钢螺母
- 陈琦《教育心理学》课件
- 封头理论重量计算公式
- 护理副高职称答辩5分钟简述范文
- (3)-2-1-药物的跨膜转运
- 幼小衔接资料合集汇总
- 八年级数学平面直角坐标系测试题
- GB/T 28575-2020YE3系列(IP55)三相异步电动机技术条件(机座号63~355)
- 储油罐有限空间作业安全技术措施表
- 传媒公司员工劳动合同(标准版)
评论
0/150
提交评论