




已阅读5页,还剩66页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C+程序设计,1,课程概述,课程性质:通识基础课课程目标:理解并熟练运用C语言进行结构化程序设计理解并熟练运用C+语言进行面向对象程序设计课程安排:50%课堂讲授;50%上机实验课程考核:平时成绩40%;期末笔试60%,2,课程内容,第一部分C语言数据类型运算符基本语句函数指针第二部分C+语言类和对象引用友元继承多态和虚函数抽象类模板运算符重载I/O流,3,参考书目,教材C+程序设计教程钱能清华大学出版社参考书目C语言程序设计谭浩强清华大学出版社面向对象的理论与C+实践王燕清华大学出版社,4,第一章概述,程序设计语言程序与算法结构化程序设计面向对象程序设计,5,1.1程序设计语言,机器语言汇编语言高级语言CC+JavaBasicC#,6,1.1程序设计语言,C+编程流程程序编辑编译链接可执行文件,7,1.2程序与算法,程序代码算法求解特定问题的一组有限的操作序列程序=算法+数据结构,8,1.3结构化程序设计,顺序结构选择结构循环结构,9,1.4面向对象程序设计,出现的原因面向对象的基本概念封装继承多态,10,第一个C+程序,#includeintmain()cout“Hello,World!”x;couty;cout“x+y=”x+y=,!,=,=,=,inta,b,c;/a,b,c为整型变量longx,y;/x,y为长整型变量unsignedintp,q;/p,q为无符号整型变量,24,2.1.2字符型,用一对单引号括起来的单个字符,称为字符常量字符变量的类型关键字为char,一般占用1字节内存单元字符变量用来存储字符常量。将一个字符常量存储到一个字符变量中,实际上是将该字符的ASCII码值(无符号整数)存储到内存单元中。可作为整数和字符两种形式输出,可对字符进行整数运算(ASCII码值)语言还允许使用一种特殊形式的字符常量,就是以反斜杠“”开头的转义字符。,25,2.2字符型,语言还允许使用一种特殊形式的字符常量,就是以反斜杠“”开头的转义字符。,其它如下表:,字符形式,n,t,v,b,r,f,ddd,xxh,功能,换行,横向跳格(即跳到下一个输出区),竖向跳格,退格,回车,走纸换页,反斜杠字符“”,单引号(撇号)字符,1到3位8进制数所代表的字符,1到2位16进制数所代表的字符,26,2.1.2字符型,输出形式与整型数不同:inta=65;charb=65;couta“n”;coutb“n”;结果为:65A,27,2.1.3枚举型,自定义整数区间,甚至列举单个整数值enumWeekMon,Tue,Wed,Thu,Fri,Sat,Sun;最大特点是可以给每个值指定一个在程序中直接使用的标记(枚举符)编程中将其当作整数常量用如:inta=6;if(a=Sun)coutr;mj=3.14*r*r;cout圆的面积是:mjy;zc=2*x+2*y;cout矩形的周长是:zcendl;return0;,36,2.1.6数组,数组是同类元素的集合,它的元素排列在连续的空间中,按下标来标记描述数组必须给出元素类型,元素个数元素个数必须在编程时确定,任何变量都不允许数组的定义格式为:类型名数组名常量表达式数组下标从0开始,37,2.1.6数组,例:intaa;/表示inta97;intn=100;intan;/错:元素个数必须预知constintn=100;intan;/okinta;/错:无元素个数inta=1,2,3,4,5;/ok:通过初始化确定元素个数,38,2.1.6数组,数组初始化可选,但须遵循语法无初始化的数组按规定取默认值intarray15=1,2,3,4,5,6;/错:初始值个数超元素个数intarray25=1,2,3,4;/错:不能以逗号方式省略intarray35=1,2,3,;/错:同上intarray45=;/错:初始值不能为空intarray55=1,2,3;/ok:后面元素取0intarray65=0;/ok:元素全为0intarray75;/ok:元素值不确定inta35=1,2,3,4,5,2,3,4,5,6,3,4,5,6,7;,39,2.1.6数组,二维数组二维数组的定义格式为:类型名数组名常量表达式常量表达式inta34;/a为34(3行4列)的数组floatb510;/b为510(5行10列)的数组,40,2.1.6数组,二维数组的初始化分行赋值,如:inta34=1,2,3,4,5,6,7,8,9,10,11,12;全部数据写在一个大括号内,如:inta34=1,2,3,4,5,6,7,8,9,10,11,12;部分元素赋值,如:inta34=1,5,9;仅对a00、a10、a20赋值,其余元素未赋值(编译器自动为未赋值元素指定初值0,41,2.1.6数组,二维数组的初始化如果对全部元素赋初值,则第一维的长度可以不指定,但必须指定第二维的长度。例:inta34=1,2,3,4,5,6,7,8,9,10,11,12;与下面定义等价:inta4=1,2,3,4,5,6,7,8,9,10,11,12;,42,练习3,斐波那契数列如下F0=1F1=1Fn=Fn-1+Fn-2使用数组求出斐波那契数列的前5项,并输出。,43,#includeintmain()intF5;F0=F1=1;F2=F0+F1;F3=F1+F2;F4=F2+F3;cout斐波那契数列的前5项是:F0F1F2F3F4endl;,44,2.1.7字符串型,C-串C语言中没有字符串类型charbuffer7=“Hello!“;本质是一个字符数组,Hello!0,72101108108111330,45,2.1.7字符串型,知道了C-串首地址,即可知道整个串,所以可以用字符首址(字符指针)来操作C-串,但要注意,串的第一个字符与整个串的操作不同,如,C-串的输出操作:char*str=”Hello”;cout*strendl;/显示Hcoutstr的读入方式总是将前导的空格(所谓空格,即包括空格、回车、水平或垂直制表符等)滤掉,将单词读入,在遇到空格时结束本次输入getline总是将行末的回车符滤掉,将其整行输入对字串”Hello,Howareyou?”的两种输入方式for(strings;cins;)couts”“;coutsendl;strings;getline(cin,s);coutsendl;,48,2.1.8指针与引用,指针是一种特殊的变量,它是存放地址的指针必须初始化或者赋值(指向了数据)后,才能进行间接访问(间访)操作int*ip;intiCount=18;int*iPtr=/间访操作,2000,8,地址:2000,iCount,ip,2000,iPtr,49,2.1.8指针与引用,为表示指针变量和它指向的变量之间的关系,用指针运算符“*”表示。运算符“/*将3赋给指针变量num_pointer所指向的变量*/,50,2.1.8指针与引用,定义指针变量的一般形式为基类型*指针变量名;,51,2.1.8指针与引用,下面都是合法的定义:float*pointer_;char*pointer_;可以用赋值语句使一个指针变量得到另一个变量的地址,从而使它指向一个该变量。例如:pointer_;pointer_;,52,2.1.8指针与引用,53,2.1.8指针与引用,指针加减整数的操作表示空间位置上的挪动,但是挪动的字节数与其数据类型相关:对float指针加6实际增加了24个字节对longint指针加5实际增加了20个字节对char指针减7实际减少了7个字节对double指针减2实际减少了16个字节,54,2.1.8指针与引用,数组名本身就是表示元素集合的首地址可以将数组名赋给指针inta3;a1=1;a2=2;a3=3;int*iP=a;cout*(iP+2)“n”;结果为:3,55,2.1.8指针与引用,引用必须初始化,因为引用总是附属于某个实体intsomeInt=5;int结果为:8,56,2.2运算符,运算符:狭义的运算符是表示各种运算的符号。C+语言运算符丰富,范围很宽,把除了控制语句和输入/输出以外的几乎所有的基本操作都作为运算符处理,所以C+语言运算符可以看作是操作符。C+语言丰富的运算符构成C+语言丰富的表达式(是运算符就可以构成表达式)。运算符丰富、表达式丰富、灵活。在C+语言中除了提供一般高级语言的算术、关系、逻辑运算符外,还提供赋值运算符,位操作运算符、自增自减运算符等等。甚至数组下标,函数调用都作为运算符。,57,2.2运算符,58,2.2运算符,C中各类运算符的优先级:,初等运算符()、,单目运算符!、+、+、(类型),算术运算符、/、%,+、,关系运算符、=,=、!=,逻辑运算符&、,条件运算符?:,赋值运算符=、+=、=、=、/=、%=,逗号运算符,59,2.2.1算术运算符和算术表达式,基本的算术运算符:(加法运算符,或正值运算符,如:、)(减法运算符,或负值运算符,如:、)*(乘法运算符,如:*)(除法运算符,如:)(模运算符,或称求余运算符,两侧均应为整型数据,如:的值为)。,60,2.2.1算术运算符和算术表达式,算术表达式和运算符的优先级与结合性基本的算术运算符:用算术运算符和括号将运算对象(也称操作数)连接起来的、符合+语法规则的式子,称为+算术表达式。运算对象包括常量、变量、函数等。例如:*.5a是一个合法的表达式。,61,强制转换,强制转换是通过类型转换运算符来实现。一般形式:(类型说明符)表达式功能:把表达式的结果强制转换为类型说明符所表示的类型。,(int)a将a的结果强制转换为整型量。(int)(x+y)将x+y的结果强制转换为整型量。(float)a+b将a的内容强制转换为浮点数,再与b相加,无论隐式转换,强制转换都是临时转换,不改变数据本身的类型和值。,62,2.2.1算术运算符和算术表达式,自增、自减运算符(+-)作用是使变量的值增或减如:,(在使用之前,先使的值加(减),(在使用之后,使的值加(减),63,2.2.1算术运算符和算术表达式,i+与+i的区别:是先执行后,再使用的值;是先使用的值后,再执行。例如:;如果i的初值是3,则i的值先变成4,再赋给,j的值均为;如果i的初值是3,先将i的值3赋给,的值为,然后变为,64,2.2.1算术运算符和算术表达式,注意:(1)自增运算符(),自减运算符(),只能用于变量,而不能用于常量或表达式,(2)和的结合方向是“自右至左”。,自增(减)运算符常用于循环语句中使循环变量自动加。也用于指针变量,使指针指向下一个地址,65,2.2.1算术运算符和算术表达式,语言中有的运算符为一个字符,有的运算符由两个字符组成,为避免误解,最好采取大家都能理解的写法。例如:不要写成i+j的形式,而应写成(i+)+j的形式,66,2.2.2赋值运算符和赋值表达式,符号=为赋值运算符。,67,一般形式:,赋值表达式,例:x=10为一赋值表达式其中又可以是一个赋值表达式。,例:x=(y=10)相当于y=10;x=y由于赋值号为右结合性,于是()可省略,即为:x=y=10;,68,例:a+=a=aa(设a12),又:a=5+(c=6)c=6,a=11a=(b=4)+(c=6)b=4,c=6,a=10a=(b=10)/(c=2)b=10,c=2,a=5,进一步,还可用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度房地产代理合同大全:特色小镇项目招商代理
- 2025年金融代签合同委托书专业范本
- 2025年货运司机服务外包合作协议书
- 2025版供应链金融三方担保贷款合同
- 2025版水泥企业节能减排技术改造采购合同
- 2025电梯维保安全协议书-电梯安全维保与绿色出行倡议合同
- 2025版企业补充养老保险应收账款质押贷款协议
- 2025年度企业媒体广告投放策略咨询合同
- 2025版茶饮店品牌合作与经营管理协议下载
- 2025年智能农业管理系统研发合作框架协议
- 部编六年级语文上册一二单元教案
- 游泳社会指导员专项理论考试复习题库汇总(附答案)
- 乒乓球体育课教案1
- 工程量确认单
- 先进制造技术第1章
- JJG 966-2010手持式激光测距仪
- 中班语言绘本《点》课件
- 大数据与金融课件
- 浙江省地方课程《人自然社会》课件
- 新版现代西班牙语第二册课后答案
- CS4000高级过程控制实验装置设备操作说明书
评论
0/150
提交评论