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)小结及作业小结及作业2问题描述问题描述计算机从键盘读入圆的半径,输出其面积计算机从键盘读入圆的半径,输出其面积程序将使用变量保存半径和面积,并用一个表达式计算面积程序将使用变量保存半径和面积,并用一个表达式计算面积解决思路解决思路读入半径读入半径利用圆面积公式计算面积利用
2、圆面积公式计算面积输出面积输出面积arearadiusradius3程序主函数框架程序主函数框架程序清单程序清单int main()/Step 1:Read in radius /Step 2:Compute area /Step 3:Display the area#include using namespace std;int main()/Step 1:Read in radius double radius;cout radius;/Step 2:Compute area double area=radius*radius*3.14159;/Step 3:Display the are
3、a cout The area is area endl;return 0;console in/outconsole in/out4字符集字符集字符是指计算机中使用的字母、数字、单词和符号字符是指计算机中使用的字母、数字、单词和符号用于构造有意义语句的一组字符,这也是任何一种语言的特点用于构造有意义语句的一组字符,这也是任何一种语言的特点C+C+程序的字符集程序的字符集26 个大、小写字母:个大、小写字母:az,A Z10 数字数字:09其他符号:其他符号:+-*/%&|(),.?:;5标识符标识符由字符集元素组成的一串字符由字符集元素组成的一串字符,为变量、常量及函数等程序实体命名为变量、
4、常量及函数等程序实体命名分为系统预定义标识符分为系统预定义标识符(如预编译指令如预编译指令)和用户自定义标识符和用户自定义标识符(如变量名,如变量名,函数名函数名)标志符命名规则标志符命名规则由字母、下划线、数字组成,且第一个符号不能是数字由字母、下划线、数字组成,且第一个符号不能是数字中间不能有空格中间不能有空格C+是大小写敏感,即大写和小写字母是不同的是大小写敏感,即大写和小写字母是不同的最好使用英文单词或其组合,切忌使用汉字或汉语拼音最好使用英文单词或其组合,切忌使用汉字或汉语拼音不能使用保留字作为标志符不能使用保留字作为标志符(参见附录参见附录A)采用见名思义的原则采用见名思义的原则:
5、sum、name、sex,不要太长,一般以不超过,不要太长,一般以不超过31个字符为宜个字符为宜6保留字保留字又称关键字又称关键字(Keyword)(Keyword),是预先定义好的标识符,对,是预先定义好的标识符,对C+C+编译程序有特殊含义编译程序有特殊含义在程序中用到的其他名字在程序中用到的其他名字(标识符标识符)不能与不能与C+C+的关键字的关键字相同相同关键字也不能重新定义关键字也不能重新定义不同开发环境如不同开发环境如VCVC、BCBC会对保留字有不同扩充会对保留字有不同扩充C/C+C/C+保留字参见教材附录保留字参见教材附录A C+A C+关键字(关键字(P492P492)7中学
6、阶段数学课学习的数据类型及运算中学阶段数学课学习的数据类型及运算实数实数(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),正整数,正整数(Z)(Z)0 0,1 1,2 2,3 3,有理数、无理数有理数、无理数 正数、负数正数、负数常数:常数:,e e自然数整数小数实数复数数数正数负数数有理数无理数8C+C+语言中的数据类型语言中的数据类型整型整型 int int字符型字符型单字符型单字符型 char char宽字符型宽
7、字符型 wchar_t wchar_t实实 型型单精度型单精度型 float float双精度型双精度型 double double逻辑型逻辑型 bool bool数据类型数据类型基本数据类型基本数据类型非基本数据类型非基本数据类型数组数组 type type指针指针 type type*空类型空类型 void void结构结构 struct struct共用体共用体 union union枚举枚举 enum enum类类 class class9C+C+语言中数据为什么要区分类型?语言中数据为什么要区分类型?不同类型的数据代表不同的不同类型的数据代表不同的数据表示形式数据表示形式合法的取值范
8、围合法的取值范围可参与的运算种类可参与的运算种类占用内存空间大小占用内存空间大小对程序当中所用到的所有数据都必须指定其数据类型对程序当中所用到的所有数据都必须指定其数据类型从基本数据类型到抽象数据类型从基本数据类型到抽象数据类型无数据类型无数据类型 void void基本数据类型基本数据类型 构造数据类型构造数据类型 抽象数据类型抽象数据类型10基本数据类型:系统事先规定了的数据类型(内置类型)基本数据类型:系统事先规定了的数据类型(内置类型)int,整数,在目前整数,在目前绝大多数机器绝大多数机器上占上占4个字节个字节float,单精度浮点数,一般是单精度浮点数,一般是4个字节长,个字节长,
9、VC 内缺省显示为内缺省显示为 6 位有效位有效数字数字double,双精度浮点数,一般是双精度浮点数,一般是8个字节长,个字节长,VC 内缺省显示为内缺省显示为 14 位位有效数字有效数字char字符,一般是字符,一般是1个字节长个字节长用来表示用来表示 256 个个ASCII字符,或者字符,或者0255的整数的整数注注意意 数据类型标识符为小写字母数据类型标识符为小写字母 int 大小范围与机器有关大小范围与机器有关11基本数据类型修饰符:基本数据类型修饰符:short、long、signed、unsigned short short int,短整数,一般,短整数,一般2个字节长,通常简写
10、为个字节长,通常简写为short long long int,长整数,长整数,VC中一般是中一般是4个字节长,通常简写为个字节长,通常简写为long long double,长双精度(高精度)浮点数,一般是,长双精度(高精度)浮点数,一般是10个字节长。个字节长。signed用来修饰用来修饰char、int、short和和long,说明他们是,说明他们是有符号有符号的整数(正整数、的整数(正整数、0和负整数),一般缺省都是有符号的,所以这个修饰符通常省略和负整数),一般缺省都是有符号的,所以这个修饰符通常省略 unsigned用来修饰用来修饰 char、int、short 和和 long,说明
11、他们是无符号的整数(正整数和,说明他们是无符号的整数(正整数和0)12一、无符号的整型数据一、无符号的整型数据大于或等于零的正整数大于或等于零的正整数无符号的短整型无符号的短整型 分类分类无符号的基本整型无符号的基本整型 无符号的长整型无符号的长整型 unsigned short int 标识符标识符 unsigned int unsigned long int 2 对应内存空对应内存空间的大小间的大小4 40216-1 取值范围取值范围同上同上 0232-1注意1、的含义的含义2、标识符为小写字母、标识符为小写字母3、int 与机器有关与机器有关13二、有符号的整型数据二、有符号的整型数据包
12、括负整数、零、正整数包括负整数、零、正整数有符号的短整型有符号的短整型 分类分类有符号的基本整型有符号的基本整型 有符号的长整型有符号的长整型signed short int 标识符标识符 signed int signed long int 2 对应内存对应内存空间的大小空间的大小4 4取值范围取值范围-215215-231231同同上上有符号整数在计算机内存中是以有符号整数在计算机内存中是以补码补码形式存储形式存储141.求整数的补码规则求整数的补码规则例如:例如:(10)补补=(-10)补补=0000101011110110-10取绝对值取绝对值100000101011110101111
13、10110用二进制用二进制表示表示各位取反各位取反末位加末位加12.由补码推出原码由补码推出原码-10加负号加负号10000010101111010111110110用十进制用十进制表示表示各位取反各位取反末位减末位减1下面以下面以一个字节一个字节存储存储有符号有符号整数整数为例分析其为例分析其取值范围取值范围15补码补码00000001 110000000 -12811111111 -101111111 12700000000 010000001 -127原原 码码11111110 -2取值范围取值范围-128 127-27 27-1正数正数负数负数16三、实型:三、实型:一律作为有符号的数
14、据使用一律作为有符号的数据使用 分类分类 标志符标志符 字节数字节数 缺省有效精度缺省有效精度单精度实数单精度实数 float 4 6位位双精度实数双精度实数 double 8 14位位实数作为有符号的数据使用实数作为有符号的数据使用,可表示为,可表示为小数形式小数形式和和指数形式指数形式,但在计算,但在计算机内部都用机内部都用浮点方式浮点方式来实现存储来实现存储定点小数:小数点位置固定,位于符号位和第一个数值位之间,如定点小数:小数点位置固定,位于符号位和第一个数值位之间,如-0.34,表示的是纯小数;表示的是纯小数;浮点数:小数点的位置是可以浮动的数,如浮点数:小数点的位置是可以浮动的数,
15、如311234.561.23456 1012345.6 10浮点数通用表示是将实数分为阶码和尾数两部分:浮点数通用表示是将实数分为阶码和尾数两部分:S 为尾数为尾数(正正负均可负均可),一般规定用纯小数形式,一般规定用纯小数形式,r为基数,对二进制而言,为基数,对二进制而言,r=2,j为阶码为阶码(正正负均可负均可),但必须是整数,但必须是整数jNSr17jNSr1010.01110.100111 2理论上浮点数在计算机中的存储格式为理论上浮点数在计算机中的存储格式为阶码阶码j j尾数尾数S S阶码阶码符号符号阶码数值阶码数值尾数尾数符号符号位数数值位数数值18浮点数在浮点数在VC6中实际的存
16、储方式为中实际的存储方式为float 型型 31 30 29 23 22 21 1 0符号位阶码尾数double double 型型 63 62 61 52 51 50 1 0符号位阶码尾数阶码:决定数的大小,对应浮点数:阶码:决定数的大小,对应浮点数:2 2-128-128 2 2127127,尾数:决定数的精度尾数:决定数的精度19 例:例:float 71.3125 转换为二进制为:转换为二进制为:1000111.0101,将其规范化之后成为:,将其规范化之后成为:1.000111010126,这里的规范化是指移动小数点使小数点的左边只有一个这里的规范化是指移动小数点使小数点的左边只有一
17、个“1”。内存里实际存储实数的三部分信息内存里实际存储实数的三部分信息:符号(如:符号(如+)、指数(如)、指数(如6)和尾数(即)和尾数(即小数点右边的位,如小数点右边的位,如0001 1101 0100),而小数点左边的),而小数点左边的1并不存储。并不存储。0 10000101 0001 1101 01 0000000000000(42 8E A0 00)符号位符号位 指数位指数位 小数部分小数部分 指数偏移量指数偏移量 单精度浮点数单精度浮点数 1位位31 8位位30-23 23位位22-00 127 双精度浮点数双精度浮点数 1位位63 11位位62-52 52位位51-00 102
18、3 尾数部分占的位数愈多,实数的有效数字愈多,即有效精度愈高。指数部分占尾数部分占的位数愈多,实数的有效数字愈多,即有效精度愈高。指数部分占的位数愈多,则能表示的数值范围愈大。的位数愈多,则能表示的数值范围愈大。实数在操作中存在误差实数在操作中存在误差,例如:把例如:把 111111.111 作为作为 float 型数据,输出的结果是型数据,输出的结果是 111111.109 20四、字符型四、字符型 采用采用 ASCII 码字符集,即用码字符集,即用 1 个字节存放字符的个字节存放字符的 ASCII 码值码值 分类 标志符 内存空间 取值范围有符号字符型 signed char 1 -128
19、127无符号字符型 unsigned char 1 025521数据类型数据类型数据长度数据长度适用范围适用范围小数点后小数点后有效位数有效位数bool8 bits(1Byte)0或或10char8bit(1Byte)02550int32 bits(4Byte)-231(231-1)0short int 16 bits(2Byte)-32768327670long int32bits(4Byte)-231(231-1)0unsigned short16(2Byte)0655350unsigned int32 bits(4Byte)0(232-1)0unsigned long32 bits(4B
20、yte)042949672950float32 bits(4Byte)3.41038 3.410387double64 bits(8Byte)1.710-308 1.71030816long double64 bits(8Byte)1.710-308 1.7103081622变量:在程序运行中其值可以改变的量变量:在程序运行中其值可以改变的量变量是存储信息的单元,它对应某个内存空间变量是存储信息的单元,它对应某个内存空间变量名代表其存储空间,程序能在变量中存储值和取出值变量名代表其存储空间,程序能在变量中存储值和取出值变量的定义:变量的定义:数据类型数据类型 变量名变量名1=初值初值,变量名变
21、量名2=初值初值,;例:例:float r1=1.5f,r2=0.5f,r3;char ch=A;变量的初始化:变量的初始化:为变量赋初值的过程,用赋值运算符为变量赋初值的过程,用赋值运算符“=”“=”进进行行定义的同时进行初始化定义的同时进行初始化单独进行初始化单独进行初始化int a,b;unsigned long sum;a=123,sum=0;b=a;23变量名的含义变量名的含义表示分配给变量的存储空间表示分配给变量的存储空间表示内存空间中存储的数据:变量的值表示内存空间中存储的数据:变量的值每个变量都有一个名字、一个数据类型和一个值每个变量都有一个名字、一个数据类型和一个值注意变量名
22、与变量值的区别注意变量名与变量值的区别 3a变量名(一个符号地址,在对程序编译时系统分配给它一个内存地址)变量值(在程序中对变量取值,实际上是通过变量名找到相应内存地址,从其存储单元中读取数据)存储单元24变量名命名规定变量名命名规定由字母、下划线、数字组成,且第一个符号不能是数字由字母、下划线、数字组成,且第一个符号不能是数字不要与关键字、保留字重名;不要与关键字、保留字重名;中间不能有空格中间不能有空格C+是大小写敏感,即大写和小写字母是不同的是大小写敏感,即大写和小写字母是不同的变量名中不能包含变量名中不能包含”.;,“+-”之类特殊符号之类特殊符号变量名不要与变量名不要与C+中的库函数
23、、类名和对象名相同中的库函数、类名和对象名相同不要使用易混淆的字母不要使用易混淆的字母某些功能的变量采用习惯命名,如循环变量习惯用某些功能的变量采用习惯命名,如循环变量习惯用i,j,k采用见名思义的原则采用见名思义的原则:sum、name、sex,不要太长,一般以不,不要太长,一般以不超过超过31个字符为宜个字符为宜最好使用英文单词或其组合最好使用英文单词或其组合,切忌使用汉字或汉语拼音切忌使用汉字或汉语拼音25变量名命名风格变量名命名风格下划线和大小写通常用来增强可读性下划线和大小写通常用来增强可读性Unix风格:风格:variable_nameWindows风格风格(匈牙利命名法匈牙利命名
24、法):chName,strName指出下列命名的正确性,指出下列命名的正确性,错误的指出原因错误的指出原因x_y,x1,X1,x,y姓名姓名2xvarname指出下列命名的正确性,指出下列命名的正确性,错误的指出原因错误的指出原因_y1Case,51select,A lot,-vvSin,cin,cout,stringD6Xy26匈牙利命名法匈牙利命名法标识符的名字以一个或者多个小写字母开头,用这些字母来指定数据类型标识符的名字以一个或者多个小写字母开头,用这些字母来指定数据类型在标识符内,前缀以后就是一个或者多个第一个字母大写的单词,这些单在标识符内,前缀以后就是一个或者多个第一个字母大写的
25、单词,这些单词指出程序中该对象的用途词指出程序中该对象的用途常用的数据类型的标准前缀常用的数据类型的标准前缀ch 字符(字符(char)n 整数(整数(integer)b BOOLl 长整数(长整数(long)h HANDLE(无符号(无符号int)m_ 类成员变量类成员变量fn 函数(函数(function)例如,例如,nCount表示一个计数器的变量,数据类型是整型。表示一个计数器的变量,数据类型是整型。27#includeusing namespace std;int main()int price=30;int num,total;/定义变量定义变量,在内存中开辟区间在内存中开辟区间
26、num=10;/变量赋值变量赋值,10为常量为常量 total=num*price;couttotal=total;/输出结果输出结果 return 0;其中:其中:num=10 total=num*PRICE 是赋值号,不同于数学意义上的等号!是赋值号,不同于数学意义上的等号!numtotal10300price3028在程序运行时保持不变的值,称为在程序运行时保持不变的值,称为常量常量根据常量的数据类型,常量可分为整型常量、实型常量、字符常量、根据常量的数据类型,常量可分为整型常量、实型常量、字符常量、字符串常量、枚举常量字符串常量、枚举常量根据常量的声明,常量可分为根据常量的声明,常量可
27、分为文字常量文字常量和和自定义常量自定义常量文字常量:在程序中出现的、代表数据的文字文字常量:在程序中出现的、代表数据的文字整型文字常量整型文字常量十进制:十进制:78,-132八进制:以八进制:以数字数字0开头开头,后跟一串八进制数字后跟一串八进制数字(注意:数字注意:数字0),如,如012(),03256(),0128()十六进制:以十六进制:以0 x开头,后跟开头,后跟 09、AF 或或 af(数字(数字0,字母,字母x),),如如0 x123(),0 xabc(),01bc()10 进制数有正负之分,进制数有正负之分,8 进制、进制、16 进制只能表示无符号整数进制只能表示无符号整数2
28、9整型文字常量整型文字常量长整型常量长整型常量 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注意注意实数一律用十进制表示:实数一律用十进制表示:0 x2.5 E的左右必须要有数字:的左右必须要有数字:E2(1E2),),2E(2E+1、2E1)指数部分必须为整数指数部分必须为整数:2.5E+2.5 30#includeusing
29、 namespace std;int main()int int10,int8,int16;/定义定义3个整型变量个整型变量 int10=10;/默认为十进制默认为十进制 int8 =010;/八进制八进制 int16=0 x10;/十六进制十六进制 coutint10=int10endl;coutint8=int8endl;coutint16=int16endl;return 0;输出输出int10=10int8=8int16=1631实型文字常量实型文字常量单精度单精度 float:一般在内存中占一般在内存中占 4 个字节,提供个字节,提供 7 位有效数字位有效数字双精度双精度 doubl
30、e:一般在内存中占:一般在内存中占 8 个字节,提供个字节,提供 15 位有效数字位有效数字长双精度长双精度 long double:一般在内存中占:一般在内存中占 10 个字节,提供个字节,提供 19 位有效位有效数字数字在在C+中,一个实型常数如果没有任何说明,表示中,一个实型常数如果没有任何说明,表示double型;若要表型;若要表示示 float 型数,则必须在实数后加上型数,则必须在实数后加上 f 或或 F;若要表示;若要表示 long double 型型数,则必须在实数后加上数,则必须在实数后加上 l 或或 L34.5f/float 型型34.5 /double型型(系统默认表示系
31、统默认表示)34.5L/long double型型34.5l/long double型型34.5e23f/float 型型34.5e23 /double型型(系统默认表示系统默认表示)34.5e23L/long double型型34.523l /long double型型34.5e400/long double型型(范围超过范围超过double表示表示)32#includeusing namespace std;int main()float a,b;double c,d;a=0.01;b=3.45678e-2;c=3.45678e-2;d=9.7654e-5;couta=atb=bendl;
32、coutc=ctd=dendl;return 0;a=0.01 b=0.0345678c=0.0345678 d=9.7654e-005Press any key to continue33字符文字常量字符文字常量用一对英文用一对英文单引号单引号括起来的括起来的单个字符单个字符或或转义序列转义序列单个字符:如单个字符:如 a,x,$转义序列转义序列:以:以 开头后跟一个字符或几个数字开头后跟一个字符或几个数字n 回车键回车键,t tab键键ddd 1-3 位位 8 进制数进制数所代表的字符所代表的字符:101与与A、65表示同一个字符,不表示同一个字符,不需以需以 0 开头,表示范围为开头,表
33、示范围为 000 377(0255)xhh 1-2 位位 16 进制数进制数所代表的字符所代表的字符:x41 与与 A 、65 表示同一个字符,表示同一个字符,242、362、xF2 表示表示,必须用,必须用x 或或 X引导,表示范围为引导,表示范围为x00 xff(0255)将一个字符常量赋值给字符变量,实际上并不是把该字符本身放到内将一个字符常量赋值给字符变量,实际上并不是把该字符本身放到内存单元中,而是将该字符的相应存单元中,而是将该字符的相应ASCII码(整型数)存入,即在内存码(整型数)存入,即在内存中字符数据以中字符数据以ASCII存储,即以整数表示存储,即以整数表示34字符文字常
34、量字符文字常量例:例:char chVar=b,chVar1=n char chVar2=007;/1-3 位位 8 进制数进制数 char chVar3=xff;/1-2 位位 16 进制数进制数 char chVar4=97;C+中字符数据和整型数据之间可以相互赋值,但要注意其表示的中字符数据和整型数据之间可以相互赋值,但要注意其表示的范围合理性范围合理性 int a=b;/Ok 给一个整型变量赋一个字符值给一个整型变量赋一个字符值 char b=97;/Ok 给一个字符变量赋一个整型值给一个字符变量赋一个整型值 coutaendl;结果为结果为 98 coutbendl;结果为结果为 a
35、0 与与 0 的区别的区别常用转义字符:一些特殊字符(无法从键盘输入或者另有它用)用常用转义字符:一些特殊字符(无法从键盘输入或者另有它用)用转义字符表示转义字符表示35#include using namespace std;int main()char c1,c2,c3,c4;char n1,n2;c1=a;/字符常量字符常量 c2=97;/十进制十进制 c3=x61;/转义字符转义字符 c4=0141;/八进制八进制 coutc1=c1tc2=c2endl;coutc3=c3tc4=c4endl;n1=n;/转义字符:回车转义字符:回车 n2=t;/转义字符:下一个输出区转义字符:下一个
36、输出区(Tab)cout使用转义字符使用转义字符n;coutc1=c1n2c2=c2n1;coutc3=c3n2c4=c4n1;return 0;输出:输出:c1=a c2=a c3=a c4=a使用转义字符使用转义字符c1=a c2=a c3=a c4=a36字符串文字常量字符串文字常量用一对用一对 双引号双引号 括起来的一个或多个字符序列,如:括起来的一个或多个字符序列,如:China,C Language,hello!字符串的存储:在内存中,依次存放组成字符串的每个字符的字符串的存储:在内存中,依次存放组成字符串的每个字符的ASCII码值,并且把码值,并且把 空字符空字符0(ASCII码
37、值为码值为0)加到字符串的尾部,加到字符串的尾部,作为作为字符串的结束标志字符串的结束标志。字符串的长度字符串的长度:等于字符的个数等于字符的个数字符串存储时占内存的大小:字符串存储时占内存的大小:字符串的长度字符串的长度+1不能将字符串常量赋值给字符变量,如不能将字符串常量赋值给字符变量,如 char ch=abcd;一个字符占一个内存单元,含有一个字符的字符串占一个字符占一个内存单元,含有一个字符的字符串占2个内存单元,个内存单元,区分区分A与与A,0、0与与0HELLO037用户自定义常量用户自定义常量若希望变量的内容自初始化后一直保持不变,此时可以定义一常量若希望变量的内容自初始化后一
38、直保持不变,此时可以定义一常量若程序中多处都要用到一个常数,此时应定义一常量以避免常数值若程序中多处都要用到一个常数,此时应定义一常量以避免常数值的不一致性的不一致性const float pi=3.14159;常量定义时必须初始化,此后程序中对其只能读不能修改常量定义时必须初始化,此后程序中对其只能读不能修改常量名不能放在赋值语句的左边常量名不能放在赋值语句的左边const float pi;pi=3.14159;常量在编译时求值常量在编译时求值const int nSize=100*sizeof(int);const int nMax=fnMax(15,23);/fnMax用户自定义函数用
39、户自定义函数38用户自定义常量用户自定义常量#defineC+为兼容为兼容 C 而保留而保留#define 称为编译预定义指令,其语法格式为称为编译预定义指令,其语法格式为#define 常量名常量名 字符串字符串#define PI 3.1415926常量名与字符串之间用空格分隔,行末不用分号,在编译预处理阶段常量名与字符串之间用空格分隔,行末不用分号,在编译预处理阶段进行字符串直接替换进行字符串直接替换在在C+编程中,常量定义应使用编程中,常量定义应使用 const 不用不用 define39#include using namespace std;#define PI 3.1415926
40、 /自定义常量自定义常量int main()const int PRICE=30;/自定义常量,在程序中保持不变自定义常量,在程序中保持不变 int num,total;/定义变量定义变量,在内存中开辟区间在内存中开辟区间 num=10;/变量赋值变量赋值,10 为文字常量为文字常量 total=num*PRICE;couttotal=total;/输出结果输出结果 float fR,fArea;/定义变量定义变量,在内存中开辟区间在内存中开辟区间 fR =3.5f;/变量赋值变量赋值,3.5f 为文字常量为文字常量 fArea=fR*fR*PI;coutArea=fArea;/输出结果输出结
41、果 return 0;numtotal10300PRICE3040#include using namespace std;#define PI 3.14156#define S Chinaint main()const float pi=3.14156;/变量作为常量使用变量作为常量使用 coutPI=PIendl;cout10*PI=10*PIendl;coutSendl;/PI=PI+3;/pi=pi+4;coutPI=PIendl;coutpi=piendl;return 0;输出:输出:PI=3.1415610*PI=31.4156ChinaPI=3.14156pi=3.141564
42、1/用计算机计算圆的面积:用计算机计算圆的面积:#include using namespace std;int main()const double PI=3.1415926;/Step 1:Read in radius double radius;cout radius;/Step 2:Compute area double area=radius*radius*PI;/Step 3:Display the area cout The area is area endl;return 0;42程序在执行期间,接收外部信息的操作称为程序在执行期间,接收外部信息的操作称为程序的输入程序的输入(
43、Inpout);而把程序向外部发送信息的操作称为;而把程序向外部发送信息的操作称为程序的输出程序的输出(Output)。在在C+中没有专门的输入输出语句,所有输入输出是通过中没有专门的输入输出语句,所有输入输出是通过输入输出流来实现的。输入输出流来实现的。要使用要使用C+提供的输入输出时,必须在程序的开头增加两提供的输入输出时,必须在程序的开头增加两行:行:#include using namespace std;包含输入输出流的头文件为包含输入输出流的头文件为 iostream.h,有关包含文件的,有关包含文件的作用,在编译预处理部分(第作用,在编译预处理部分(第5章)作详细介绍。章)作详细
44、介绍。43int a,b;cinab;/程序运行至此停下,等待从键盘输入变量值程序运行至此停下,等待从键盘输入变量值键盘输入:键盘输入:3 5 或:或:3 5 均可。均可。输入语句自动过滤空白字符输入语句自动过滤空白字符!a3键盘键盘b5键盘键盘输入语句:输入语句:cin输入十进制整数和实数输入十进制整数和实数:cin .44float c,d;cincd;char ch1,ch2;cinch1ch2;若输入:若输入:ab 则则ch1为为a,ch2为为b。若输入:若输入:a b 则则ch1为为a,ch2为为b。字符型变量过滤空白字符,字符型变量过滤空白字符,cin格式过滤空白字符!格式过滤空白
45、字符!输入语句:输入语句:cincin浮点型数据同整型数据一样浮点型数据同整型数据一样字符型数据字符型数据45float a;int i1,i2;char ch1,ch2;cini1ai2ch1ch2;输入:输入:34 5.678 1a b i2:1 在缺省的情况下,在缺省的情况下,cin自动跳过输入的空格自动跳过输入的空格,换言之,换言之,cin不能将输入不能将输入的空格赋给字符型变量;的空格赋给字符型变量;回车键也是作为输入字符之间的分隔符,回车键也是作为输入字符之间的分隔符,也不能将输入的回车键字符也不能将输入的回车键字符赋给字符型变量赋给字符型变量。a:5.578i1:34ch1:ac
46、h2:b输入语句:输入语句:cincin不同类型数据混合输入不同类型数据混合输入46若要把从键盘上输入的每一个字符,包括若要把从键盘上输入的每一个字符,包括空格和回车键空格和回车键都作为一个输都作为一个输入字符赋给字符型变量时,必须使用函数入字符赋给字符型变量时,必须使用函数cin.get(),其格式为:,其格式为:cin.get();cin.get()从输入行中取出一个字符,并将它赋给字符型变量从输入行中取出一个字符,并将它赋给字符型变量,该语句一该语句一次只能从输入行中提取一个字符。次只能从输入行中提取一个字符。char c1;cin.get(c1);char ch1,ch2,ch3;ci
47、n.get(ch1);cin.get(ch2);cin.get(ch3);则:则:ch1:Ach2:空格空格ch3:B输入:输入:A B并且在输入缓冲区中保留回车键!并且在输入缓冲区中保留回车键!47输入语句:输入语句:cin输入十六进制或八进制数据:缺省情况下,系统约定输入的整型数输入十六进制或八进制数据:缺省情况下,系统约定输入的整型数是十进制数据;当要求按八进制或十六进制输入数据时,在是十进制数据;当要求按八进制或十六进制输入数据时,在 cin 中中必须指明相应的数据类型:必须指明相应的数据类型:hex 为十六进制,为十六进制,oct 为八进制,为八进制,dec 为为十进制十进制。int
48、 i,j,k,l;cinhexi;/指明输入为十六进制数指明输入为十六进制数cinoctj;/指明输入为八进制数指明输入为八进制数cink;/输入仍为八进制数输入仍为八进制数cindecl;/指明输入为十进制数指明输入为十进制数当执行到语句当执行到语句cin时,若输入的数据为:时,若输入的数据为:11 11 12 12结果:结果:i:17j:9k:10l:1248输入语句:输入语句:cin使用使用非十进制数非十进制数输入时,要注意以下几点输入时,要注意以下几点八进制或十六进制数的输入,只能适用于八进制或十六进制数的输入,只能适用于整型变量整型变量,不适用于字符型,不适用于字符型变量,实型变量变
49、量,实型变量当在当在cin中指明使用的数制输入后,中指明使用的数制输入后,则所指明的数制一直有效,直到在则所指明的数制一直有效,直到在接着的接着的cin中指明输入时所使用的另一数制为止中指明输入时所使用的另一数制为止。如上例中,输入。如上例中,输入k的值的值时,仍为八进制。时,仍为八进制。输入数据的输入数据的格式、个数和类型格式、个数和类型必须与必须与cin中所列举的变量类型中所列举的变量类型一一对应一一对应。一旦输入出错,一旦输入出错,不仅使当前的输入数据不正确,而且使得后面的提取不仅使当前的输入数据不正确,而且使得后面的提取数据也不正确数据也不正确。cina b;cinab;int a,b
50、;cinab;49输出语句:输出语句:cout与输入与输入 cin 对应的输出是对应的输出是cout 输出流输出流当要输出一个表达式的值时,可使用当要输出一个表达式的值时,可使用 cout 来实现,其一般格式为:来实现,其一般格式为:cout .;其中运算符其中运算符“”称为插入运算符,它将紧跟其后的表达式的值,称为插入运算符,它将紧跟其后的表达式的值,输出到显示器输出到显示器当前光标当前光标的位置。的位置。50int a=6;float f1=12.4;char s1=abcd;coutatf1ts1endl;t为转义字符为转义字符Tab,endl为回车或为回车或n显示器显示器显示器显示器显
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。