A基本数据运算与输入输出.ppt

上传人:cn****1 文档编号:567926048 上传时间:2024-07-22 格式:PPT 页数:63 大小:1.09MB
返回 下载 相关 举报
A基本数据运算与输入输出.ppt_第1页
第1页 / 共63页
A基本数据运算与输入输出.ppt_第2页
第2页 / 共63页
A基本数据运算与输入输出.ppt_第3页
第3页 / 共63页
A基本数据运算与输入输出.ppt_第4页
第4页 / 共63页
A基本数据运算与输入输出.ppt_第5页
第5页 / 共63页
点击查看更多>>
资源描述

《A基本数据运算与输入输出.ppt》由会员分享,可在线阅读,更多相关《A基本数据运算与输入输出.ppt(63页珍藏版)》请在金锄头文库上搜索。

1、第第2章章基本数据运算与输入输出基本数据运算与输入输出(A)主要内容主要内容如何用计算机计算圆面积如何用计算机计算圆面积(2.1-2.4)(2.1-2.4)标识符标识符(2.5)(2.5)基本数据类型基本数据类型(2.9)(2.9)变量定义变量定义(2.6)(2.6)常量常量(2.8(2.8,2.9.1)2.9.1)I/OI/O流控制流控制(3.12)(3.12)小结及作业小结及作业2C+程序设计2.1 2.1 如何用计算机计算圆面积如何用计算机计算圆面积问题描述问题描述计算机从键盘读入圆的半径,输出其面积计算机从键盘读入圆的半径,输出其面积程序将使用变量保存半径和面积,并用一个表达式计算面积

2、程序将使用变量保存半径和面积,并用一个表达式计算面积解决思路解决思路读入半径读入半径利用圆面积公式计算面积利用圆面积公式计算面积输出面积输出面积3C+程序设计2.1 2.1 如何用计算机计算圆面积如何用计算机计算圆面积程序主函数框架程序主函数框架程序清单程序清单intmain()/Step1:Readinradius/Step2:Computearea/Step3:Displaythearea#includeusingnamespacestd;intmain()/Step1:Readinradiusdoubleradius;coutradius;/Step2:Computeareadouble

3、area=radius*radius*3.14159;/Step3:DisplaytheareacoutTheareaisareaendl;return0;console in/outconsole in/out4C+程序设计2.2 2.2 标识符标识符字符集字符集字符是指计算机中使用的字母、数字、单词和符号字符是指计算机中使用的字母、数字、单词和符号用于构造有意义语句的一组字符,这也是任何一种语言的特点用于构造有意义语句的一组字符,这也是任何一种语言的特点C+C+程序的字符集程序的字符集26个大、小写字母:个大、小写字母:az,AZ10数字数字:09其他符号:其他符号:+-*/%&|(),.

4、?:;5C+程序设计2.2 2.2 标识符标识符标识符标识符由字符集元素组成的一串字符由字符集元素组成的一串字符, ,为变量、常量及函数等程序实体命名为变量、常量及函数等程序实体命名分为系统预定义标识符分为系统预定义标识符( (如预编译指令如预编译指令) )和用户自定义标识符和用户自定义标识符( (如变量名,如变量名,函数名函数名) )标志符命名规则标志符命名规则由字母、下划线、数字组成,且第一个符号不能是数字由字母、下划线、数字组成,且第一个符号不能是数字中间不能有空格中间不能有空格C+是大小写敏感,即大写和小写字母是不同的是大小写敏感,即大写和小写字母是不同的最好使用英文单词或其组合,切忌

5、使用汉字或汉语拼音最好使用英文单词或其组合,切忌使用汉字或汉语拼音不能使用保留字作为标志符不能使用保留字作为标志符(参见附录参见附录A)采用见名思义的原则采用见名思义的原则:sum、name、sex,不要太长,一般以不超过,不要太长,一般以不超过31个字符为宜个字符为宜6C+程序设计2.2 2.2 标识符标识符保留字保留字又称关键字又称关键字(Keyword)(Keyword),是预先定义好的标识符,对,是预先定义好的标识符,对C+C+编译程序有特殊含义编译程序有特殊含义在程序中用到的其他名字在程序中用到的其他名字( (标识符标识符) )不能与不能与C+C+的关键字的关键字相同相同关键字也不能

6、重新定义关键字也不能重新定义不同开发环境如不同开发环境如VCVC、BCBC会对保留字有不同扩充会对保留字有不同扩充C/C+C/C+保留字参见教材附录保留字参见教材附录A C+A C+关键字(关键字(P492P492)7C+程序设计2.3 2.3 基本数据类型基本数据类型中学阶段数学课学习的数据类型及运算中学阶段数学课学习的数据类型及运算实数实数(R)(R)、复数、复数(C)(C)355.5355.5,76.876.8有序实数对:有序实数对:2+3i2+3i整数整数(I)(I)、小数、小数35, -6835, -683.5 , 0.8 3.5 , 0.8 自然数自然数(N)(N),正整数,正整数

7、(Z)(Z)0 0,1 1,2 2,3 3, 有理数、无理数有理数、无理数 正数、负数正数、负数常数:常数:,e e自然数整数小数实数复数数数正数负数数有理数无理数8C+程序设计2.3 2.3 基本数据类型基本数据类型C+C+语言中的数据类型语言中的数据类型整型整型 intint字符型字符型单字符型单字符型 charchar宽字符型宽字符型 wchar_twchar_t实实 型型单精度型单精度型 floatfloat双精度型双精度型 doubledouble逻辑型逻辑型 boolbool数据类型数据类型基本数据类型基本数据类型非基本数据类型非基本数据类型数组数组 typetype指针指针 ty

8、pe *type *空类型空类型 voidvoid结构结构 structstruct共用体共用体 unionunion枚举枚举 enumenum类类 classclass9C+程序设计2.3 2.3 基本数据类型基本数据类型C+C+语言中数据为什么要区分类型?语言中数据为什么要区分类型?不同类型的数据代表不同的不同类型的数据代表不同的数据表示形式数据表示形式合法的取值范围合法的取值范围可参与的运算种类可参与的运算种类占用内存空间大小占用内存空间大小对程序当中所用到的所有数据都必须指定其数据类型对程序当中所用到的所有数据都必须指定其数据类型从基本数据类型到抽象数据类型从基本数据类型到抽象数据类型

9、无数据类型无数据类型 voidvoid基本数据类型基本数据类型 构造数据类型构造数据类型 抽象数据类型抽象数据类型10C+程序设计2.3 2.3 基本数据类型基本数据类型基本数据类型:系统事先规定了的数据类型(内置类型)基本数据类型:系统事先规定了的数据类型(内置类型)int,整数,在目前整数,在目前绝大多数机器绝大多数机器上占上占4个字节个字节float,单精度浮点数,一般是单精度浮点数,一般是4个字节长,个字节长,VC内缺省显示为内缺省显示为6位有效位有效数字数字double,双精度浮点数,一般是双精度浮点数,一般是8个字节长,个字节长,VC内缺省显示为内缺省显示为14位位有效数字有效数字

10、char字符,一般是字符,一般是1个字节长个字节长用来表示用来表示256个个ASCII字符,或者字符,或者0255的整数的整数注注意意数据类型标识符为小写字母数据类型标识符为小写字母int大小范围与机器有关大小范围与机器有关11C+程序设计2.3 2.3 基本数据类型基本数据类型基本数据类型修饰符:基本数据类型修饰符:short、long、signed、unsignedshortshortint,短整数,一般,短整数,一般2个字节长,通常简写为个字节长,通常简写为shortlonglongint,长整数,长整数,VC中一般是中一般是4个字节长,通常简写为个字节长,通常简写为longlongdo

11、uble,长双精度(高精度)浮点数,一般是,长双精度(高精度)浮点数,一般是10个字节长。个字节长。signed用来修饰用来修饰char、int、short和和long,说明他们是,说明他们是有符号有符号的整数(正整数、的整数(正整数、0和负整数),一般缺省都是有符号的,所以这个修饰符通常省略和负整数),一般缺省都是有符号的,所以这个修饰符通常省略unsigned用来修饰用来修饰char、int、short和和long,说明他们是无符号的整数(正整数和,说明他们是无符号的整数(正整数和0)12C+程序设计一、无符号的整型数据一、无符号的整型数据大于或等于零的正整数大于或等于零的正整数无符号的短

12、整型无符号的短整型分类分类无符号的基本整型无符号的基本整型无符号的长整型无符号的长整型unsignedshortint标识符标识符unsignedintunsignedlongint2对应内存空对应内存空间的大小间的大小440216-1取值范围取值范围同上同上0232-1注意1、的含义的含义2、标识符为小写字母、标识符为小写字母3、int与机器有关与机器有关2.3 2.3 基本数据类型基本数据类型13C+程序设计二、有符号的整型数据二、有符号的整型数据包括负整数、零、正整数包括负整数、零、正整数有符号的短整型有符号的短整型分类分类有符号的基本整型有符号的基本整型有符号的长整型有符号的长整型si

13、gnedshortint标识符标识符signedintsignedlongint2对应内存对应内存空间的大小空间的大小44取值范围取值范围-2152152.3 2.3 基本数据类型基本数据类型-231231同上同上有符号整数在计算机内存中是以有符号整数在计算机内存中是以补码补码形式存储形式存储14C+程序设计1.求整数的补码规则求整数的补码规则例如:例如:(10)补补=(-10)补补=0000101011110110-10取绝对值取绝对值10000010101111010111110110用二进制用二进制表示表示各位取反各位取反末位加末位加12.由补码推出原码由补码推出原码-10加负号加负号1

14、0000010101111010111110110用十进制用十进制表示表示各位取反各位取反末位减末位减12.3 2.3 基本数据类型基本数据类型下面以下面以一个字节一个字节存储存储有符号有符号整数整数为例分析其为例分析其取值范围取值范围15C+程序设计补码补码00000001110000000-12811111111-10111111112700000000010000001-127原原码码11111110-2取值范围取值范围-128127-2727-12.3 2.3 基本数据类型基本数据类型正数正数负数负数16C+程序设计三、实型:三、实型:一律作为有符号的数据使用一律作为有符号的数据使用2

15、.3 2.3 基本数据类型基本数据类型分类分类标志符标志符字节数字节数缺省有效精度缺省有效精度单精度实数单精度实数float46位位双精度实数双精度实数double814位位实数作为有符号的数据使用实数作为有符号的数据使用,可表示为,可表示为小数形式小数形式和和指数形式指数形式,但在计算机,但在计算机内部都用内部都用浮点方式浮点方式来实现存储来实现存储定点小数:小数点位置固定,位于符号位和第一个数值位之间,如定点小数:小数点位置固定,位于符号位和第一个数值位之间,如-0.34,表示的是纯小数;,表示的是纯小数;浮点数:小数点的位置是可以浮动的数,如浮点数:小数点的位置是可以浮动的数,如浮点数通

16、用表示是将实数分为阶码和尾数两部分:浮点数通用表示是将实数分为阶码和尾数两部分:S为尾数为尾数(正正负均可负均可),一般规定用纯小数形式,一般规定用纯小数形式,r为基数,对二进制而言,为基数,对二进制而言,r=2, j为阶码为阶码(正正负均可负均可),但必须是整数,但必须是整数17C+程序设计2.3 2.3 基本数据类型基本数据类型理论上浮点数在计算机中的存储格式为理论上浮点数在计算机中的存储格式为阶码阶码j j尾数尾数S S阶码阶码符号符号阶码数值阶码数值尾数尾数符号符号位数数值位数数值18C+程序设计浮点数在浮点数在VC6中实际的存储方式为中实际的存储方式为float型型2.3 2.3 基

17、本数据类型基本数据类型31302923222110符号位阶码尾数double double 型型63626152515010符号位阶码尾数阶码:决定数的大小,对应浮点数:阶码:决定数的大小,对应浮点数:2 2-128 -128 2 2127127,尾数:决定数的精度尾数:决定数的精度19C+程序设计例例:float71.3125转转换换为为二二进进制制为为:1000111.0101,将将其其规规范范化化之之后后成成为为:1.000111010126,这里的规范化是指移动小数点使小数点的左边只有一个这里的规范化是指移动小数点使小数点的左边只有一个“1”。内存里实际存储实数的三部分信息内存里实际存

18、储实数的三部分信息:符号(如:符号(如+)、指数(如)、指数(如6)和尾数(即)和尾数(即小数点右边的位,如小数点右边的位,如000111010100),而小数点左边的),而小数点左边的1并不存储。并不存储。01000010100011101010000000000000(428EA000)2.3 2.3 基本数据类型基本数据类型符号位符号位指数位指数位小数部分小数部分指数偏移量指数偏移量单精度浮点数单精度浮点数1位位318位位30-2323位位22-00127双精度浮点数双精度浮点数1位位6311位位62-5252位位51-001023尾尾数数部部分分占占的的位位数数愈愈多多,实实数数的的有

19、有效效数数字字愈愈多多,即即有有效效精精度度愈愈高高。指指数数部部分分占占的位数愈多,则能表示的数值范围愈大。的位数愈多,则能表示的数值范围愈大。实实数数在在操操作作中中存存在在误误差差,例例如如:把把111111.111作作为为float型型数数据据,输输出出的的结结果果是是111111.10920C+程序设计四、字符型四、字符型采用采用 ASCII码字符集,即用码字符集,即用 1个字节存放字符的个字节存放字符的 ASCII码值码值2.3 2.3 基本数据类型基本数据类型分类标志符内存空间取值范围有符号字符型signedchar1-128127无符号字符型unsignedchar102552

20、1C+程序设计2.3 2.3 基本数据类型基本数据类型数据类型数据类型数据长度数据长度适用范适用范围小数点后小数点后有效位数有效位数bool8bits(1Byte)0或或10char8bit(1Byte)02550int32bits(4Byte)-231(231-1)0shortint16bits(2Byte)-32768327670longint32bits(4Byte)-231(231-1)0unsignedshort16(2Byte)0655350unsignedint32bits(4Byte)0(232-1)0unsignedlong32bits(4Byte)042949672950f

21、loat32bits(4Byte)3.410383.410387double64bits(8Byte)1.710-3081.71030816longdouble64bits(8Byte)1.710-3081.7103081622C+程序设计2.4 2.4 变量变量变量:在程序运行中其值可以改变的量变量:在程序运行中其值可以改变的量变量是存储信息的单元,它对应某个内存空间变量是存储信息的单元,它对应某个内存空间变量名代表其存储空间,程序能在变量中存储值和取出值变量名代表其存储空间,程序能在变量中存储值和取出值变量的定义:变量的定义:数据类型数据类型变量名变量名1=初值初值,变量名变量名2=初值初

22、值,;例:例:floatr1=1.5f,r2=0.5f,r3;charch=A;变量的初始化:变量的初始化:为变量赋初值的过程,用赋值运算符为变量赋初值的过程,用赋值运算符“=”=”进进行行定义的同时进行初始化定义的同时进行初始化单独进行初始化单独进行初始化inta,b;unsignedlongsum;a=123,sum=0;b=a;23C+程序设计2.4 2.4 变量变量变量名的含义变量名的含义表示分配给变量的存储空间表示分配给变量的存储空间表示内存空间中存储的数据:变量的值表示内存空间中存储的数据:变量的值每个变量都有一个名字、一个数据类型和一个值每个变量都有一个名字、一个数据类型和一个值

23、注意变量名与变量值的区别注意变量名与变量值的区别 3a变量名(一个符号地址,在对程序编译时系统分配给它一个内存地址)变量值(在程序中对变量取值,实际上是通过变量名找到相应内存地址,从其存储单元中读取数据)存储单元24C+程序设计2.4 2.4 变量变量变量名命名规定变量名命名规定由字母、下划线、数字组成,且第一个符号不能是数字由字母、下划线、数字组成,且第一个符号不能是数字不要与关键字、保留字重名;不要与关键字、保留字重名;中间不能有空格中间不能有空格C+是大小写敏感,即大写和小写字母是不同的是大小写敏感,即大写和小写字母是不同的变量名中不能包含变量名中不能包含”.;,“+-”之类特殊符号之类

24、特殊符号变量名不要与变量名不要与C+中的库函数、类名和对象名相同中的库函数、类名和对象名相同不要使用易混淆的字母不要使用易混淆的字母某些功能的变量采用习惯命名,如循环变量习惯用某些功能的变量采用习惯命名,如循环变量习惯用i,j,k采用见名思义的原则采用见名思义的原则:sum、name、sex,不要太长,一般以不,不要太长,一般以不超过超过31个字符为宜个字符为宜最好使用英文单词或其组合最好使用英文单词或其组合,切忌使用汉字或汉语拼音切忌使用汉字或汉语拼音25C+程序设计2.4 2.4 变量变量变量名命名风格变量名命名风格下划线和大小写通常用来增强可读性下划线和大小写通常用来增强可读性Unix风

25、格:风格:variable_nameWindows风格风格(匈牙利命名法匈牙利命名法):chName,strName指出下列命名的正确性,指出下列命名的正确性,错误的指出原因错误的指出原因x_y,x1,X1,x,y姓名姓名2xvarname指出下列命名的正确性,指出下列命名的正确性,错误的指出原因错误的指出原因_y1Case,51select,Alot,-vvSin,cin,cout,stringD6Xy26C+程序设计2.4 2.4 变量变量匈牙利命名法匈牙利命名法标识符的名字以一个或者多个小写字母开头,用这些字母来指定数据类型标识符的名字以一个或者多个小写字母开头,用这些字母来指定数据类型

26、在标识符内,前缀以后就是一个或者多个第一个字母大写的单词,这些单在标识符内,前缀以后就是一个或者多个第一个字母大写的单词,这些单词指出程序中该对象的用途词指出程序中该对象的用途常用的数据类型的标准前缀常用的数据类型的标准前缀ch字符(字符(char)n整数(整数(integer)bBOOLl长整数(长整数(long)hHANDLE(无符号(无符号int)m_类成员变量类成员变量fn函数(函数(function)例如,例如,nCount表示一个计数器的变量,数据类型是整型。表示一个计数器的变量,数据类型是整型。27C+程序设计#includeusingnamespacestd;intmain()

27、intprice=30;intnum,total;/定义变量定义变量,在内存中开辟区间在内存中开辟区间num=10;/变量赋值变量赋值,10为常量为常量total=num*price;couttotal=total;/输出结果输出结果return0;其中:其中:num=10total=num*PRICE是赋值号,不同于数学意义上的等号!是赋值号,不同于数学意义上的等号!numtotal10300price302.4 2.4 变量变量28C+程序设计2.5 2.5 常量常量在程序运行时保持不变的值,称为在程序运行时保持不变的值,称为常量常量根据常量的数据类型,常量可分为整型常量、实型常量、字符常

28、量、根据常量的数据类型,常量可分为整型常量、实型常量、字符常量、字符串常量、枚举常量字符串常量、枚举常量根据常量的声明,常量可分为根据常量的声明,常量可分为文字常量文字常量和和自定义常量自定义常量文字常量:在程序中出现的、代表数据的文字文字常量:在程序中出现的、代表数据的文字整型文字常量整型文字常量十进制:十进制:78,-132八进制:以八进制:以数字数字0开头开头,后跟一串八进制数字后跟一串八进制数字(注意:数字注意:数字0),如,如012(),03256(),0128()十六进制:以十六进制:以0x开头,后跟开头,后跟09、AF或或af(数字(数字0,字母,字母x),),如如0x123()

29、,0xabc (), 01bc ()10进制数有正负之分,进制数有正负之分,8进制、进制、16进制只能表示无符号整数进制只能表示无符号整数29C+程序设计2.5 2.5 常量常量整型文字常量整型文字常量长整型常量长整型常量123l、123L、123456l、123456L无符号型常量无符号型常量123u、123U实型文字常量实型文字常量小数形式,例如:小数形式,例如:0.123,-5.6,.123,2.0,2.指数形式(科学记数法指数形式(科学记数法)1.5610 -3 1.56E -3, 1.56108 1.56E8,1.56e+8注意注意实数一律用十进制表示:实数一律用十进制表示:0x2.

30、5E的左右必须要有数字:的左右必须要有数字:E2(1E2),),2E(2E+1、2E1)指数部分必须为整数指数部分必须为整数:2.5E+2.530C+程序设计#includeusingnamespacestd;intmain()intint10,int8,int16;/定义定义3个整型变量个整型变量int10=10;/默认为十进制默认为十进制int8=010;/八进制八进制int16=0x10;/十六进制十六进制coutint10=int10endl;coutint8=int8endl;coutint16=int16endl;return0;输出输出int10=10int8=8int16=16

31、2.5 2.5 常量常量31C+程序设计2.5 2.5 常量常量实型文字常量实型文字常量单精度单精度float:一般在内存中占一般在内存中占4个字节,提供个字节,提供7位有效数字位有效数字双精度双精度double:一般在内存中占:一般在内存中占8个字节,提供个字节,提供15位有效数字位有效数字长双精度长双精度longdouble:一般在内存中占:一般在内存中占10个字节,提供个字节,提供19位有效位有效数字数字在在C+中,一个实型常数如果没有任何说明,表示中,一个实型常数如果没有任何说明,表示double型;若要表型;若要表示示float型数,则必须在实数后加上型数,则必须在实数后加上f或或F

32、;若要表示;若要表示longdouble型型数,则必须在实数后加上数,则必须在实数后加上l或或L34.5f/float型型34.5/double型型(系统默认表示系统默认表示)34.5L/longdouble型型34.5l/longdouble型型34.5e23f/float型型34.5e23/double型型(系统默认表示系统默认表示)34.5e23L/longdouble型型34.523l/longdouble型型34.5e400/longdouble型型(范围超过范围超过double表示表示)32C+程序设计#includeusingnamespacestd;intmain()float

33、a,b;doublec,d;a=0.01;b=3.45678e-2;c=3.45678e-2;d=9.7654e-5;couta=atb=bendl;coutc=ctd=dendl;return0;a=0.01b=0.0345678c=0.0345678d=9.7654e-005Pressanykeytocontinue2.5 2.5 常量常量33C+程序设计2.5 2.5 常量常量字符文字常量字符文字常量用一对英文用一对英文单引号单引号括起来的括起来的单个字符单个字符或或转义序列转义序列单个字符:如单个字符:如a,x,$转义序列转义序列:以:以开头后跟一个字符或几个数字开头后跟一个字符或几个

34、数字n回车键回车键,ttab键键ddd1-3位位8进制数进制数所代表的字符所代表的字符:101与与A、65表示同一个字符,表示同一个字符,不需以不需以0开头,表示范围为开头,表示范围为000377(0255)xhh1-2位位16进制数进制数所代表的字符所代表的字符:x41与与A、65表示同一个字符,表示同一个字符,242、362、xF2表示表示,必须用,必须用x或或X引导,表示范围为引导,表示范围为x00xff(0255)将一个字符常量赋值给字符变量,实际上并不是把该字符本身放到内将一个字符常量赋值给字符变量,实际上并不是把该字符本身放到内存单元中,而是将该字符的相应存单元中,而是将该字符的相

35、应ASCII码(整型数)存入,即在内存码(整型数)存入,即在内存中字符数据以中字符数据以ASCII存储,即以整数表示存储,即以整数表示34C+程序设计2.5 2.5 常量常量字符文字常量字符文字常量例:例:charchVar=b,chVar1=ncharchVar2=007;/1-3位位8进制数进制数charchVar3=xff;/1-2位位16进制数进制数charchVar4=97;C+中字符数据和整型数据之间可以相互赋值,但要注意其表示的中字符数据和整型数据之间可以相互赋值,但要注意其表示的范围合理性范围合理性inta=b;/Ok给一个整型变量赋一个字符值给一个整型变量赋一个字符值char

36、b=97;/Ok给一个字符变量赋一个整型值给一个字符变量赋一个整型值coutaendl;结果为结果为98coutbendl;结果为结果为a0与与0的区别的区别常用转义字符:一些特殊字符(无法从键盘输入或者另有它用)用常用转义字符:一些特殊字符(无法从键盘输入或者另有它用)用转义字符表示转义字符表示35C+程序设计#includeusingnamespacestd;intmain()charc1,c2,c3,c4;charn1,n2;c1=a;/字符常量字符常量c2=97;/十进制十进制c3=x61;/转义字符转义字符c4=0141;/八进制八进制coutc1=c1tc2=c2endl;cout

37、c3=c3tc4=c4endl;n1=n;/转义字符:回车转义字符:回车n2=t;/转义字符:下一个输出区转义字符:下一个输出区(Tab)cout使用转义字符使用转义字符n;coutc1=c1n2c2=c2n1;coutc3=c3n2c4=c4n1;return0;输出:输出:c1=ac2=ac3=ac4=a使用转义字符使用转义字符c1=ac2=ac3=ac4=a2.5 2.5 常量常量36C+程序设计2.5 2.5 常量常量字符串文字常量字符串文字常量用一对用一对双引号双引号 括起来的一个或多个字符序列,如:括起来的一个或多个字符序列,如:China,CLanguage,hello!字符串的

38、存储:在内存中,依次存放组成字符串的每个字符的字符串的存储:在内存中,依次存放组成字符串的每个字符的ASCII码值,并且把码值,并且把空字符空字符0(ASCII码值为码值为0)加到字符串的尾部,加到字符串的尾部,作为作为字符串的结束标志字符串的结束标志。字符串的长度字符串的长度:等于字符的个数等于字符的个数字符串存储时占内存的大小:字符串存储时占内存的大小:字符串的长度字符串的长度+1不能将字符串常量赋值给字符变量,如不能将字符串常量赋值给字符变量,如charch=abcd;一个字符占一个内存单元,含有一个字符的字符串占一个字符占一个内存单元,含有一个字符的字符串占2个内存单元,区个内存单元,

39、区分分A与与A,0、0与与0HELLO037C+程序设计2.5 2.5 常量常量用户自定义常量用户自定义常量若希望变量的内容自初始化后一直保持不变,此时可以定义一常量若希望变量的内容自初始化后一直保持不变,此时可以定义一常量若程序中多处都要用到一个常数,此时应定义一常量以避免常数值若程序中多处都要用到一个常数,此时应定义一常量以避免常数值的不一致性的不一致性constfloatpi=3.14159;常量定义时必须初始化,此后程序中对其只能读不能修改常量定义时必须初始化,此后程序中对其只能读不能修改常量名不能放在赋值语句的左边常量名不能放在赋值语句的左边constfloatpi;pi=3.141

40、59;常量在编译时求值常量在编译时求值constintnSize=100*sizeof(int);constintnMax=fnMax(15,23);/fnMax用户自定义函数用户自定义函数38C+程序设计2.5 2.5 常量常量用户自定义常量用户自定义常量#defineC+为兼容为兼容C而保留而保留#define称为编译预定义指令,其语法格式为称为编译预定义指令,其语法格式为#define常量名常量名字符串字符串#definePI3.1415926常量名与字符串之间用空格分隔,行末不用分号,在编译预处理阶段进常量名与字符串之间用空格分隔,行末不用分号,在编译预处理阶段进行字符串直接替换行字符

41、串直接替换在在C+编程中,常量定义应使用编程中,常量定义应使用const不用不用define39C+程序设计#includeusingnamespacestd;#definePI3.1415926/自定义常量自定义常量intmain()constintPRICE=30;/自定义常量,在程序中保持不变自定义常量,在程序中保持不变intnum,total;/定义变量定义变量,在内存中开辟区间在内存中开辟区间num=10;/变量赋值变量赋值,10为文字常量为文字常量total=num*PRICE;couttotal=total;/输出结果输出结果 floatfR,fArea;/定义变量定义变量,在内

42、存中开辟区间在内存中开辟区间fR=3.5f;/变量赋值变量赋值,3.5f为文字常量为文字常量fArea=fR*fR*PI;coutArea=fArea;/输出结果输出结果return0;numtotal10300PRICE302.5 2.5 常量常量40C+程序设计#includeusingnamespacestd;#definePI3.14156#defineSChinaintmain()constfloatpi=3.14156;/变量作为常量使变量作为常量使用用coutPI=PIendl;cout10*PI=10*PIendl;coutSendl;/PI=PI+3;/pi=pi+4;cou

43、tPI=PIendl;coutpi=piendl;return0;输出:输出:PI=3.1415610*PI=31.4156ChinaPI=3.14156pi=3.141562.5 2.5 常量常量41C+程序设计2.5 2.5 常量常量/用计算机计算圆的面积:用计算机计算圆的面积:#includeusingnamespacestd;intmain()const double PI = 3.1415926;/Step1:Readinradiusdoubleradius;coutradius;/Step2:Computeareadoublearea=radius*radius*PI;/Step3

44、:DisplaytheareacoutTheareaisareaendl;return0;42C+程序设计2.6 I/O2.6 I/O流控制流控制程序在执行期间,接收外部信息的操作称为程序在执行期间,接收外部信息的操作称为程序的输入程序的输入(Inpout);而把程序向外部发送信息的操作称为;而把程序向外部发送信息的操作称为程序的输程序的输出出(Output)。在在C+中没有专门的输入输出语句,所有输入输出是通过中没有专门的输入输出语句,所有输入输出是通过输入输出流来实现的。输入输出流来实现的。要使用要使用C+提供的输入输出时,必须在程序的开头增加两提供的输入输出时,必须在程序的开头增加两行:

45、行:#includeusingnamespacestd;包含输入输出流的头文件为包含输入输出流的头文件为iostream.h,有关包含文件的作,有关包含文件的作用,在编译预处理部分(第用,在编译预处理部分(第5章)作详细介绍。章)作详细介绍。43C+程序设计inta,b;cinab;/程序运行至此停下,等待从键盘输入变量值程序运行至此停下,等待从键盘输入变量值键盘输入:键盘输入:35或:或:35均可。均可。输入语句自动过滤空白字符输入语句自动过滤空白字符!a3键盘键盘b5键盘键盘输入语句:输入语句:cin输入十进制整数和实数输入十进制整数和实数:cin.2.6 I/O2.6 I/O流控制流控制

46、44C+程序设计floatc,d;cincd;charch1,ch2;cinch1ch2;若输入:若输入:ab则则ch1为为a,ch2为为b。若输入:若输入:ab则则ch1为为a,ch2为为b。字符型变量过滤空白字符,字符型变量过滤空白字符,cin格式过滤空白字符!格式过滤空白字符!输入语句:输入语句:cincin浮点型数据同整型数据一样浮点型数据同整型数据一样字符型数据字符型数据2.6 I/O2.6 I/O流控制流控制45C+程序设计floata;inti1,i2;charch1,ch2;cini1ai2ch1ch2;输入:输入:345.6781abi2:1在缺省的情况下,在缺省的情况下,c

47、in自动跳过输入的空格自动跳过输入的空格,换言之,换言之,cin不能将输入不能将输入的空格赋给字符型变量;的空格赋给字符型变量;回车键也是作为输入字符之间的分隔符,回车键也是作为输入字符之间的分隔符,也不能将输入的回车键字符也不能将输入的回车键字符赋给字符型变量赋给字符型变量。a:5.578i1:34ch1:ach2:b2.6 I/O2.6 I/O流控制流控制输入语句:输入语句:cincin不同类型数据混合输入不同类型数据混合输入46C+程序设计若若要要把把从从键键盘盘上上输输入入的的每每一一个个字字符符,包包括括空空格格和和回回车车键键都都作作为为一一个个输输入字符赋给字符型变量时,必须使用

48、函数入字符赋给字符型变量时,必须使用函数cin.get(),其格式为:,其格式为:cin.get();cin.get()从从输输入入行行中中取取出出一一个个字字符符,并并将将它它赋赋给给字字符符型型变变量量,该该语语句句一一次只能从输入行中提取一个字符。次只能从输入行中提取一个字符。charc1;cin.get(c1);charch1,ch2,ch3;cin.get(ch1);cin.get(ch2);cin.get(ch3);则:则:ch1:Ach2:空格空格ch3:B输入:输入:AB并且在输入缓冲区中保留回车键!并且在输入缓冲区中保留回车键!2.6 I/O2.6 I/O流控制流控制47C+

49、程序设计输入语句:输入语句:cin输入十六进制或八进制数据:缺省情况下,系统约定输入的整型数输入十六进制或八进制数据:缺省情况下,系统约定输入的整型数是十进制数据;当要求按八进制或十六进制输入数据时,在是十进制数据;当要求按八进制或十六进制输入数据时,在cin中中必须指明相应的数据类型:必须指明相应的数据类型:hex为十六进制,为十六进制,oct为八进制,为八进制,dec为为十进制十进制。inti,j,k,l;cinhexi;/指明输入为十六进制数指明输入为十六进制数cinoctj;/指明输入为八进制数指明输入为八进制数cink;/输入仍为八进制数输入仍为八进制数cindecl;/指明输入为十

50、进制数指明输入为十进制数当执行到语句当执行到语句cin时,若输入的数据为:时,若输入的数据为:11111212结果:结果:i:17j:9k:10l:122.6 I/O2.6 I/O流控制流控制48C+程序设计2.6 I/O2.6 I/O流控制流控制输入语句:输入语句:cin使用使用非十进制数非十进制数输入时,要注意以下几点输入时,要注意以下几点八进制或十六进制数的输入,只能适用于八进制或十六进制数的输入,只能适用于整型变量整型变量,不适用于字符型变,不适用于字符型变量,实型变量量,实型变量当在当在cin中指明使用的数制输入后,中指明使用的数制输入后,则所指明的数制一直有效,直到在则所指明的数制

51、一直有效,直到在接着的接着的cin中指明输入时所使用的另一数制为止中指明输入时所使用的另一数制为止。如上例中,输入。如上例中,输入k的值的值时,仍为八进制。时,仍为八进制。输入数据的输入数据的格式、个数和类型格式、个数和类型必须与必须与cin中所列举的变量类型中所列举的变量类型一一对应一一对应。一旦输入出错,一旦输入出错,不仅使当前的输入数据不正确,而且使得后面的提取数不仅使当前的输入数据不正确,而且使得后面的提取数据也不正确据也不正确。cinab;cinab;inta,b;cinab;49C+程序设计输出语句:输出语句:cout与输入与输入cin对应的输出是对应的输出是cout输出流输出流当

52、要输出一个表达式的值时,可使用当要输出一个表达式的值时,可使用cout来实现,其一般格式为:来实现,其一般格式为:cout.;其中运算符其中运算符“”称为插入运算符,它将紧跟其后的表达式的值,称为插入运算符,它将紧跟其后的表达式的值,输出到显示器输出到显示器当前光标当前光标的位置。的位置。2.6 I/O2.6 I/O流控制流控制50C+程序设计inta=6;floatf1=12.4;chars1=abcd;coutatf1ts1endl;t为转义字符为转义字符Tab,endl为回车或为回车或n显示器显示器显示器显示器显示器显示器a6f112.4s10dcba612.4abcd2.6 I/O2.

53、6 I/O流控制流控制51C+程序设计cout将将双引号中的字符串常量双引号中的字符串常量按其原样输出按其原样输出charch1=a,ch2=b;coutc1=ch1tc2=ch2endl;c1=a,c2=binti1=4,i2=5;floata=3.5;couta*i1=a*i1endla*i2=a*i2endl;a*i1=14a*i2=17.52.6 I/O2.6 I/O流控制流控制52C+程序设计2.6 I/O2.6 I/O流控制流控制使用控制符使用控制符用于对用于对I/O流的格式进流的格式进行控制行控制在头文件在头文件iomanip.h中定义的对象中定义的对象可以直接将控制符插可以直接

54、将控制符插入流中入流中控制符控制符描述描述deciostream.h置基数为置基数为10hex置基数为置基数为16oct置基数为置基数为8setw(n)iomanip.h设域宽为设域宽为n个字符个字符setprecision(n)设显示小数精度为设显示小数精度为n位位setfill(c)设填充字符为设填充字符为csetiosflags(ios:skipws)忽略前导空白忽略前导空白setiosflags(ios:fixed)固定的浮点显示固定的浮点显示setiosflags(ios:scientific)指数表示指数表示setiosflags(ios:left)左对齐左对齐setiosflag

55、s(ios:right)右对齐右对齐setiosflags(ios:uppercase)16进制数大写输出进制数大写输出setiosflags(ios:lowercase)16进制数小写输出进制数小写输出53C+程序设计2.6 I/O2.6 I/O流控制流控制输出语句:输出语句:cout输出八进制或十六进制数:控制符是输出八进制或十六进制数:控制符是hex,oct和和dec,分别对应,分别对应16进进制、制、8进制和进制和10进制数的显示进制数的显示当在当在cout中指明使用的数制输出后,则所中指明使用的数制输出后,则所指明的数制一直有效,直指明的数制一直有效,直到在接着的到在接着的cout中

56、指明输出时所使用的另一数制为止中指明输出时所使用的另一数制为止,如下例中,如下例中,输出输出j的值时,仍为八进制。的值时,仍为八进制。coutdeciendl;couthexiendl;coutoctiendl;coutjendl;10013e91751inti=1001,j=127;coutdeciendl;couthexiendl;coutoctiendl;10013e9175117754C+程序设计2.6 I/O2.6 I/O流控制流控制输出语句:输出语句:coutcout设置值的输出宽度:在输出的数据项之间进行隔开的另一种办法是设置值的输出宽度:在输出的数据项之间进行隔开的另一种办法是

57、指定输出项的宽度指定输出项的宽度setw(6)指明其后的输出项占用的字符宽度为指明其后的输出项占用的字符宽度为6,即括号中的值指出,即括号中的值指出紧跟其后的输出项占用的字符位置个数,并向右对齐,紧跟其后的输出项占用的字符位置个数,并向右对齐,setw是是“setwidth”的缩写的缩写inti=4,j=12,m=7,k=2;coutsetw(6)isetw(10)jendl;coutsetw(5)msetw(10)j*kendl;_4_12_7_2455C+程序设计使用使用setw()应注意以下三点:应注意以下三点:1、在在程程序序的的开开始始位位置置必必须须包包含含头头文文件件iomani

58、p.h,即即在在程程序序的的开开头头增增加:加:#include2 2、括括号号中中必必须须给给出出一一个个表表达达式式(值值为为正正整整数数),它它指指明明紧紧跟跟其其后后输输出项的宽度。出项的宽度。3 3、该设置仅对其后的一个输出项有效该设置仅对其后的一个输出项有效。一旦按指定的宽度输出其后。一旦按指定的宽度输出其后的输出项后,又回到原来的缺省输出方式的输出项后,又回到原来的缺省输出方式2.6 I/O2.6 I/O流控制流控制56C+程序设计2.6 I/O2.6 I/O流控制流控制输出语句:输出语句:cout控制浮点数值显示控制浮点数值显示setprecision(n)控制输出流显示浮点数

59、的数字个数,控制输出流显示浮点数的数字个数,C+默认的流输出默认的流输出数值有效位是数值有效位是6setprecision(n)与与setiosflags(ios:fixed)联合控制小数点右边的数字个数联合控制小数点右边的数字个数setprecision(n)与与setiosflags(ios:scientific)联合控制指数表示法的小数联合控制指数表示法的小数位数位数VC6中中setiosflags(ios:scientific)与与setiosflags(ios:fixed)不能连续使用,不能连续使用,否则后者失效否则后者失效doublefSum=22.0/7;coutfSum end

60、l;coutsetprecision(0)fSum endl;coutsetprecision(2) fSum endl;coutsetiosflags(ios:fixed)setprecision(4)fSum endl;coutsetiosflags(ios:scientific)setprecision(6)fSum endl;57C+程序设计2.6 I/O2.6 I/O流控制流控制输出语句:输出语句:cout设置填充字符:缺省时流使用设置填充字符:缺省时流使用空格符空格符来保证字符间的正确间隔,来保证字符间的正确间隔,setfill用于设置非空字符来填充用于设置非空字符来填充inti=

61、4,j=12,m=7,k=2;coutsetfill(*);coutsetw(6)isetw(10)jendl;coutsetw(5)msetw(10)j*kendl;coutsetfill();58C+程序设计2.6 I/O2.6 I/O流控制流控制输出语句:输出语句:cout强制显示小数点和符号:强制显示小数点和符号:要强制显示小数点,用要强制显示小数点,用setiosflags(ios:showpoint)标志标志要强制显示正数前的正号,用要强制显示正数前的正号,用setiosflags(ios:showpos)标志标志floatfSum=10.0/5;coutfSumendl;cout

62、setiosflags(ios:showpoint)fSumendl;coutsetiosflags(ios:showpos)fSumendl;pos:positive59C+程序设计2.6 I/O2.6 I/O流控制流控制输出语句:输出语句:coutios:right,ios:leftios:uppercase,ios:lowercaseios:skipws忽略前导空白忽略前导空白printf与与scanfC语言中的标准输入输出函数语言中的标准输入输出函数包含在头文件包含在头文件stdio.h中中C+语言中已被语言中已被I/O流完全替代流完全替代60C+程序设计2.6 I/O2.6 I/O流

63、控制流控制printf与与scanfprintf的简单使用的简单使用%d或或%i:输出用十进制表示的:输出用十进制表示的int型数据型数据%u:输出用十进制表示的:输出用十进制表示的unsigned型数据型数据%o:输出用八进制表示的:输出用八进制表示的unsigned型数据型数据%x:输出用十六进制表示的:输出用十六进制表示的unsigned型数据型数据%f:以小数形式输出实数,并且自动按四舍五入形式保留:以小数形式输出实数,并且自动按四舍五入形式保留6位小数位小数;如果如果输出的实数本身不足输出的实数本身不足6位小数,则在小数后面自动补数字位小数,则在小数后面自动补数字0,以凑足,以凑足6

64、位。位。%e或或%E:以指数形式输出实数以指数形式输出实数%g:以小数或指数形式最合适的方式输出浮点数以小数或指数形式最合适的方式输出浮点数%c:输出一个字符:输出一个字符%s:输出字符串输出字符串输出的八进制输出的八进制或十六进制不或十六进制不显示前缀符显示前缀符61C+程序设计2.6 I/O2.6 I/O流控制流控制#includeintmain()inta=10,b=-1;unsignedx=65535;printf(a=%dta=%it,a,a);printf(a=%ota=%xta=%Xn,a,a,a);printf(b=%dtb=%in,b,b);printf(x=%utx=%ot

65、x=%xtx=%Xn,x,x,x,x);printf(b=%otb=%xtb=%Xtx=%dn,b,b,b,x);return0;62C+程序设计小结与作业小结与作业这一节我们主要学习了。这一节我们主要学习了。C+C+语言中的保留字语言中的保留字基本数据类型基本数据类型变量变量常量常量I/OI/O流流作业作业教材教材P46P46:习题:习题 2.12.12.4,2.12,2.172.4,2.12,2.172.19,2.242.19,2.24教材教材P72P72:习题:习题 3.24,3.263.24,3.26预习实验指导书实验二预习实验指导书实验二预习教材第预习教材第2 2章:章:2.92.1563C+程序设计

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号