《《C程序设计基础》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《C程序设计基础》PPT课件.ppt(50页珍藏版)》请在金锄头文库上搜索。
1、第一章C+程序设计基础本章内容oC+语言概述oC+程序开发过程oC+程序实例o基本数据类型o常量、变量及引用o运算符与表达式o基本输入/输出2o本章重点n常量、变量和引用n运算符与表达式31.1C+语言概述oC+语言与程序设计n语言:人类交流思想的工具n程序设计:就是将解决某个问题的过程用程序设计语言描述出来,计算机按这个描述去逐步实现。n程序设计语言:编写程序的语言。n与+语言1.14o程序设计语言分为n结构化程序设计语言(第14章)n面向对象程序设计语言(第58章)1.151.2C程序开发过程出错出错编辑源程序预处理程序编译程序连接程序装入程序输出结果执行程序输入、修改源程序出错出错出错出
2、错磁盘磁盘输入数据1.261.3+程序实例例1:在屏幕输出Hello,youarewelcome!/*Helloprogram*/#includevoidmain()coutHello,youarewelcome!;/你好你好,欢迎你欢迎你!o程序说明:n两种注释n编译预处理行nmain()函数:void、函数体、程序执行处n语句:一行可以写若干条语句,每个语句用“;”作为结束。1.37例2:编写程序从键盘任意输入2个数,输出这2个数的和。#include void main() int a,b,n; cout ab; n=a+b; couta+b=nendl;o程序说明:n第行为变量定义n第
3、4行是输出语句n第行输入n第行是赋值运算n第行中endl也可以用“”代替,表示换行。1.381.4基本数据类型o程序中处理的数据分为不同的类型。类型不同,存储方式和使用的场合也不同。数据类型数据类型基本数据类型基本数据类型整型(整型(int)字符型(字符型(char)浮点型(浮点型(float、double)布尔型(布尔型(bool)非基本数据类型非基本数据类型构造类型构造类型指针类型指针类型空空类类型型(void)数组类型数组类型结构类型(结构类型(struct)联合类型(联合类型(union)枚举类型(枚举类型(enum)类类型类类型(class)1.491.5常量、变量及引用o字面常量n
4、整型o十进制数o八进制数:以数字0开头的整数,由数字0-7组成o十六进制数:以0x开头的整数,由数字0-9和字母a-f组成o说明:n八进制数和十六进制数只能表示无符号整数n任一整型常数后跟字母l(或L)时,为长整型.如:12345Ln任一整型常数后跟字母u(或U)时,为无符号整型.如:7895u1.510常量n浮点型o浮点型常数有两种形式n小数形式:3.14159,-0.55,-123.0n指数形式:+5.25e-80.5678e05q指数形式表示浮点型数时指数形式表示浮点型数时e(e(或或E)前可以是整数或小数,但后的指数部前可以是整数或小数,但后的指数部 分必须是整型数。分必须是整型数。q
5、浮点型数总是按浮点型数总是按double类型存储的,只有在数的后面加上才按类型存储的,只有在数的后面加上才按float类类 型存储,如型存储,如1.234E-6f。q长双精度(长双精度(longdouble)型常量通常在双精度数后面加上型常量通常在双精度数后面加上l或或L表示,如表示,如1.2345e-12L。1.511常量n字符型o用单引号括起来的单个字符q字符型常量中的单引号作为定界符,不是字符型常量内容。字符型常量中的单引号作为定界符,不是字符型常量内容。q字符型常量具有数值,其值就是该字符的字符型常量具有数值,其值就是该字符的ASCII码值。而且值可以作为码值。而且值可以作为 整数参与
6、运算:整数参与运算: 如如 +5 +5 结果为字符结果为字符 如如 9-6结果为数字字符结果为数字字符 如如 A+32结果为结果为 结果为整数。结果为整数。q可以是可以是ASCII字符集中任意可打印字符,包括空格字符集中任意可打印字符,包括空格. .q转义字符转义字符( (见表见表-3 -3 ) 1.512常量n字符串o用双引号括起来的一串字符o例如:Thisisastring,Aq字符串中可以包含空格、转义字符、中文字符等。字符串中可以包含空格、转义字符、中文字符等。q双引号作为字符串的定界符,计算字符串长度时双引号不计算在内双引号作为字符串的定界符,计算字符串长度时双引号不计算在内q编译程
7、序在存储字符串常量时自动在字符串最后加一个编译程序在存储字符串常量时自动在字符串最后加一个00作为作为一个字符串的结束标志,一个字符串的结束标志,00占一个字节位置。占一个字节位置。q一个字符占一个字节,一个汉字占两个字节。一个字符占一个字节,一个汉字占两个字节。q在程序设计中字符串通常用字符数组或字符指针存放。在程序设计中字符串通常用字符数组或字符指针存放。1.513常量n布尔o仅有两个值,即true和falseo符号常量o符号常量在使用前必须进行说明。符号常量的说明形式为:nconst数据类型名常量名常量值;n数据类型名const常量名常量值;n例如:constintm=100;const
8、floatpi=3.14159;q符号常量在说明时一定要赋初值,其值程序中不能修改。符号常量在说明时一定要赋初值,其值程序中不能修改。q符号常量名不要和一般变量名重名。符号常量名不要和一般变量名重名。q使用符号常量可以提高程序的可读性,增强程序的可维护性。使用符号常量可以提高程序的可读性,增强程序的可维护性。 1.514变量o标识符n用来为变量、符号常量、数组、函数、类型等命名n标识符有以下规则o必须由字母、下画线和数字组成,且第个字符应是字母或下画线o不能使用C+的关键字作为标识符oC+中区分大小写1.515o变量n在程序中可以改变值的量n每个变量在内存中占有一定的存储单元,该存储单元中存放
9、变量的值。在程序设计中可以根据需要改变变量的值。n每个存储单元都有一个地址。 12.345变量名变量名X1变量值变量值存储单元存储单元1.516n变量在使用之前必须先定义例如:例如:chara,b,c;/定义、为字符型变量定义、为字符型变量intx,yx,y;/定义、为整型变量定义、为整型变量longints1,s2;/定义定义s1、s2为长整型变量为长整型变量n变量的初始化-变量在定义的同时可以给其赋值intx=0,y=12;doublew1=12.3456,w2=-0.4567e-4;charch(B);longintx1(1),y1(100);1.517程序举例#includevoidm
10、ain()intd1=5,d2=20;doublex1=12.5,x2=-5.0;charch1(*),ch2(A);coutd1+d2endl;coutx1-x2endl;coutch1“ch2+3endl;252517.5 17.5 * D* D运行结果:运行结果:1.518引用o程序中定义过的变量再给它起一个别名o说明引用的形式为:数据类型引用名=变量名;或数据类型引用名(变量名);n例如:inta;int&refa=a;变量名和引用名是对同一个存储单元的操作变量名和引用名是对同一个存储单元的操作 1.519#includevoidmain()inta(5);int&rea=a;cout
11、areaendl;rea=10;coutareaendl;输出结果:输出结果: 5 510101.520枚举类型o说明枚举类型的形式为:enum枚举类型名枚举元素;n例如:enumcolourred,yellow,blue,white,black;o定义枚举型变量形式enumcolourred,yellow,blue,white,blackc1,c2;或enumcolourred,yellow,blue,white,black;colourm1,m2;1.521o枚举型使用说明:n枚举元素在说明后都自动有一个整数值n可以在说明枚举类型时另指定一个整数值,指定元素后边的各元素值按增1的顺序重新排
12、列,而没有指定的元素值仍按系统自动给定的值。n例如:enumdeast,west,south=10,north; south的值10,north的值为11,east的值为0,west值为11.522o仅能给枚举变量赋枚举元素值。o枚举变量进行增或减,比较运算。o枚举变量不能用于输入,输出时仅输出枚举值的顺序号。1.5231.6运算符与表达式o表达式由操作数和运算符组成n操作数:常量、变量及函数调用返回值。n运算符:对操作数进行的运算和处理1.624算术运算符与算术表达式o算术运算符包括:(加)(减)*(乘)(除)(取余)o优先级为:先*、,后、o两个整型数相除,取商的整数部分。例如:8/5结果
13、为,5/8结果为。o两实型数相除,结果为实型数,例如:8.05.0结果为1.6o用于求两个整数相除的余数,例如:5为,而105为0o参加运算的两个操作数的类型不同时,按由低到高规则转换后计算1.625inta=10,b=4;doublex=1.5;charc1=A;longw=12345;表达式1:(a+b)*x-w/c1表达式2:a*x-b*x+w/15+(c1+4)算术表达式举例:算术表达式举例: 表达式1和表达式2的计算过程及最后类型。1.626赋值运算符与赋值表达式o简单赋值运算符,形式为:变量操作数 其中:操作数可以是变量和C+任意合法的表达式o例如:inta(15)doubleda
14、ta,s;data=-8.1245;/将-8.1245存入data变量s=a*50+data/3;/将表达式a*50+data/3结果存入sq赋值表达式的值和类型为赋值表达式的值和类型为“”号左边变量的值和类型。号左边变量的值和类型。 1.627复合赋值运算符o包括n,*,n例如:a;相当于a=a+b;ab;相当于a=a+b;a*;相当于a=a*b;a;相当于a=a/b;a;相当于a=a%b;q由于有存储功能,复合赋值运算符由于有存储功能,复合赋值运算符左边必须是变量名。以下左边必须是变量名。以下是错误的是错误的a+ba+b+=c+=c; q当当复复合合赋赋值值运运算算的的右右边边是是表表达达
15、式式时时,将将表表达达式式视视为为一一个个整整体体,例例如如-=x+y;相当于:相当于:= =-(-(+y) +y) 1.628自增和自减运算符o自增自减运算符有如下4种形式n+i,前置自增,将i的值先加1,再使用i的值。ni+,后置自增,先使用i的值,然后i的值加1。n-i,前置自减,将i的值先减1,再使用i的值ni-,后置自减,先使用i的值,然后i的值减1q因为有加减和赋值的功能,运算对象必须是变量,不能是常数或表达式。因为有加减和赋值的功能,运算对象必须是变量,不能是常数或表达式。q单独作为一个语句使用时,前置增单独作为一个语句使用时,前置增( (减减) )或后置增或后置增( (减减)
16、)是一样的,是一样的,但若和其他运算符组合使用,采用前置或后置就会产生不同的结果。但若和其他运算符组合使用,采用前置或后置就会产生不同的结果。q运算符运算符+(或(或- - -)是一个整体,使用时两个)是一个整体,使用时两个+ +(或)之间不要有空。(或)之间不要有空。q+(或(或- - -)运算符是单目运算符)运算符是单目运算符. . 1.629自增自减运算符举例:#includevoidmain()inta(2),b(2),d1,d2;a+;b-;cout“a=“a“b=“bendl;d1=+a;cout“a=”a“d1=“d1endl;d2=b-;cout“b=“b“d2=“d2endl
17、; a=3 b=1a=3 b=1a=4d1=4b=0d2=1输出结果:输出结果:1.630关系运算符与关系表达式o包括小于小于等于大于大于等于等于!不等于1.631o关系表达式的值是整数值关系表达式的值是整数值0或或1,当关系式成,当关系式成立时为立时为1;否则为;否则为0 。o关系运算符两边操作数可以是整型、浮点型、关系运算符两边操作数可以是整型、浮点型、字符型、指针及枚举型字符型、指针及枚举型 。o关系运算符可以在一个关系式中连续使用,关系运算符可以在一个关系式中连续使用,但若用但若用 -1=式判断是否在式判断是否在-,1区间,则是错误的。区间,则是错误的。o注意区别注意区别“”和和“”。
18、 o注意注意=和!和!=运算符的优先级比其它关系运算符的优先级比其它关系运算符低。运算符低。1.632关系运算符使用举例:输出结果为:输出结果为:#includevoidmain()inta5,b6;coutb:b)n;couta=b:(a=b)n;couta=b:(a=b)n;couta!=b:(a!=b)n;: :!:!:1.633逻辑运算符与逻辑表达式o逻辑运算符是:&逻辑“与”|逻辑“或”!逻辑“非”q逻辑表达式的值取值为逻辑表达式的值取值为1 1或或0 0。q逻辑运算符两边的操作数可以是任意基本数据类型,只要是或非值逻辑运算符两边的操作数可以是任意基本数据类型,只要是或非值 即可。任
19、何非即可。任何非0 0值的数据都作为值的数据都作为1 1参与逻辑运算。参与逻辑运算。 q注意多个注意多个 & & 或或 | | 符使用时的符使用时的“短路操作短路操作”。 1.634逻辑运算符使用举例:#includevoidmain()inta,b,c,x,y;a=1;b=2;c=0;couta+-1endl;cout(a&b|!c)endl;coutb/+aendl;x=+a|+b&+c;/短路短路coutabcxendl;a=b=c=-1;y=+a&+b&+c;/短路短路coutabcyabc;cinx1x2;1.744输出流对象coutocout的使用形式:coute1e2en;o例如
20、:intn10;cout3.14159;coutn=endl;o当用cout输出一个表达式的值时,表达式最好用括号括起来,因为当表达式中运算符级别低于时,编译会出错使用使用cin和和cout在程序开始处要加上预编译命令:在程序开始处要加上预编译命令:#include1.745输出流对象cout(续)oC+98标准头文件扩展名改变,去掉了.ho采用名称空间(namespace)。目的是避免一个程序不同模块中相同名称所引起的命名冲突o使用关键字using将std名称空间中的标识符全部引入用户程序中o使用范围限定符:显示的说明某个标识符46输出格式o默认格式输出:n输出一个整型数或字符时,原样输出值
21、;n输出一个float型数时,默认提供6位有效数字;1.747默认格式输出举例#includevoidmain()inta=123;longintb=1234567;floatx1=12.34,x2=23.456789;doubley=12.34567890123;couta=anb=bendl;coutx1=x1x2=x2endl;couty=yendl;a=123b=1234567x1=12.34000x2=23.45679y=12.3456789012300 输出结果:输出结果:1.748在输入输出流中使用控制符o+提供控制符控制输出数据的格式。常用的几个控制符:dec转换为十进制数输入
22、输出hex转换为十六进制数输入输出oct转换为八进制数输入输出setw(int)设置输出的宽度,只对其后的第一个数据起作用setprecision(int)设置浮点数输出的有效数字位数setfill(char)设置填充字符endl插入换行符o使用以上格式控制符时,要加上头文件:#include1.749使用格式控制符举例输出结果:输出结果:#include#includevoidmain()intx=24;doubley=12.3456789;coutdecx;couthexx;coutoctxn;coutdec;/以下仍按十进制输出以下仍按十进制输出coutsetw(8)x,xendl;coutsetw(8)setfill(*)xendl;coutsetprecision(5)yendl;24183024,24*2412.3461.750