数据类型和输入输出.ppt_第1页
数据类型和输入输出.ppt_第2页
数据类型和输入输出.ppt_第3页
数据类型和输入输出.ppt_第4页
数据类型和输入输出.ppt_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C+实用教程,第2章 数据类型和基本输入/输出,C+实用教程,2,目录,2.1 计算机内的数据表示 2.2 基本数据类型 2.3 字面常量 2.4 变量 2.5 标识符常量 2.6 基本输入输出,C+实用教程,3,2.1.1 数制,十进制数(Decimal)基数为10,计数规则是逢10进1。 二进制数(Binary)基数为2,计数规则是逢2进1。 八进制数(Octonary)基数为8,计数规则是逢8进1。 十六进制数(Hexadecimal)基数为16,计数规则是逢16进1。,C+实用教程,4,2.1.2 机内的数值表示,1. 机器数的符号及编码 符号数字化 最高位为符号位 用0表示正,1表示负 编码:原码、反码、补码 2. 机器数中小数点的位置 定点表示法 浮点表示法 :IEEE-754,C+实用教程,5,IEEE-754,s,e,m,0 低位,高位 w-1,位长 w,C+实用教程,6,计算公式:V=(-1) s2EM,当e各位为全0时,E=1-(2e(位数)-1-1);M=m。 单精度数:E=-126,V=(-1) s 2-126 m 双精度数:E=-1022,V=(-1) s 2-1022 m 当e各位不为全0且不为全1时 E=e(值)-(2e(位数)-1 -1);M=1+m。 单精度数:V=(-1)s 2 e(值)-127 (1+m) 双精度数:V=(-1)s 2 e(值)-1023 (1+m) 所有位全为0,表示0.0。 阶码位全为1,尾数位全为0,表示无穷大。符号位表示正无穷或负无穷。,C+实用教程,7,实例,若有一个单精度十进制数80.0 (80.0)=(1010000.0)b=1.01 26 符号位 指数部分 尾数部分 0 10000101 01000000000000000000000,C+实用教程,8,2.1.3 机内非数值编码,非数值数据(字符)表示 用若干位组成的二进制数来表示一个符号 一个二进制数只能与一个符号唯一对应,即符号集内所有二进制数不能相同 字符编码方式 1. ASCII码 2. 汉字编码GB231280 3. ISO/IEC 10646、Unicode编码 4. GBK,C+实用教程,9,2.1 计算机内的数据表示 2.2 基本数据类型 2.3 字面常量 2.4 变量 2.5 标识符常量 2.6 基本输入输出,C+实用教程,10,2.2 基本数据类型,C+实用教程,11,2.2.1 整型(int),二进制编码(补码),在32位计算机中是用4字节(32位长)来存储。 short(短型) long(长型) signed(有符号,缺省值) unsigned(无符号),C+实用教程,12,整型类别,C+实用教程,13,2.2.2 实型,浮点型,在C+中,用于表示实型的类型有float(单精度)、double(双精度)和long double (长双精度),C+实用教程,14,2.2.3 字符型(char),char字符类型用于表示ASCII编码字符,它有三种不同的类型:char、unsigned char和signed char。 在ANSI/ISO C+中,还有另一种字符类型wchar_t,表示双字节编码字符,称为宽字符。,C+实用教程,15,2.2.4 布尔型(逻辑型)bool,占1字节的存储空间 任何数值都可自动转换成bool值 0可被转换成false 任何不等于0的数值都被转换成true,C+实用教程,16,整型类别,C+实用教程,17,2.1 计算机内的数据表示 2.2 基本数据类型 2.3 字面常量 2.4 变量 2.5 标识符常量 2.6 基本输入输出,C+实用教程,18,2.3 字面常量,数据分为常量和变量两大类。 在C+程序运行过程中,其值始终保持不变的数据称为常量。 常量可分字面常量和标识符常量两类。 所谓字面常量,是指能直接从其字面形式即可判别其类型的常量,又称直接量。,C+实用教程,19,2.3.1 整数常量,C+中的整数可用十进制、八进制和十六进制来表示。 八进制整数,以数字0开头且由07的数字组成的数 十六进制整数,以0x或0X开头且由09,AF或af组成的数 整数常量的后缀:以L或l表示长整型整数,以U或u表示无符号整数,以U(u)和L(l)的组合表示无符号长整型整数。默认时(没有添加后缀),则可能是int或long类型,这取决于该整数的大小。,C+实用教程,20,示例,#include void main( ) cout123“ “0123“ “-0123 “ “0x15“ “ -0x15 “ “0x123“ “-0x123endl; ,C+实用教程,21,2.3.2 实数常量,实数即浮点数 十进制数和指数两种表示形式 十进制数形式由整数部分和小数部分组成(必须有小数点),如0.123,.234,0.0。 指数形式,科学计数法(E或e前必须有数字,且指数必须是整数),如123e5或123E5都表示123105。 实数常量的后缀:以F(或f)表示单精度浮点数,以L(或l)表示长双精度浮点数。缺省时,默认为双精度浮点数。,C+实用教程,22,示例,float型提供7位有效数字,double型提供15位有效数字, long double型提供19位有效数字。 #include void main() coutsizeof(1.23)“ “ sizeof(1.23f)endl ,C+实用教程,23,2.3.3 字符常量,用单引号括起来的字符称为字符常量,如:a, x, ?, $ 转义字符是以“”开头的字符序列。当转义字符引导符后接数字时,用来指定字符的ASCII码值。 0、0和0的区别 0表示整数 0表示数字0字符 0表示ASCII码值为0的字符,C+实用教程,24,C+中的转义字符,字符形式 值 功能 a 0x07 响铃 n 0x0A 换行 t 0x09 制表符(横向跳格) v 0x0B 竖向跳格 b 0x08 退格 r 0x0D 回车 0x5C 反斜杠字符“” “ 0x22 双引号 0x27 单引号 ddd 13位八进制数 xhh 12位十六进制数,C+实用教程,25,示例,在内存中,字符数据以ASCII码存储,即以整数表示,所以C+中字符数据和整型数据之间可以相互赋值,只要注意其表示的范围合理。 #include void main() int x1=A,x2=0,x3=0; char c=97; coutx1“ “x2“ “x3“ “cendl; ,C+实用教程,26,2.3.4 字符串常量,由一对双引号括起来的字符序列,简称字符串, 如“CHINA”,”a”。 字符串常量中字符的个数称为字符串长度。 在C+中,字符串常量总是以0结束。 “CHINA“ “a“ a 字符常量和字符串常量区别开来,C+实用教程,27,2.3.5 布尔常量,用关键字false和true来表示,它们与布尔型含义相同。 ture 1 false 0,C+实用教程,28,2.1 计算机内的数据表示 2.2 基本数据类型 2.3 字面常量 2.4 变量 2.5 标识符常量 2.6 基本输入输出,C+实用教程,29,2.4 变量,变量是指在程序执行中其值可以改变的量。 变量的作用是存取程序中需要处理的数据,它“对应”于某个内存空间。 变量有3个基本要素 合法的变量名 变量的数据类型 变量的数值,C+实用教程,30,2.4.1 变量名命名,命名标识符必须遵循下列规则: 标识符由大、小写英文字母、数字字符(09)和下划线组成,且第1个字符必须 为字母或下划线,其后跟零个或多个字母、数字、下划线 C+语言中的大、小写是敏感的 不能与关键字同名 标识符在命名时要考虑标识符的有效长度以及标识符的易读性。 匈牙利命名法,C+实用教程,31,2.4.2 变量的定义,定义变量的目的是通知编译器为其开辟内存空间。 C+变量满足“即用即定义”的编程习惯,但要遵循“先定义,后使用”的原则。 在同一个作用域中,不能对同一个变量重新定义。 int myAge, myWeight; double area, width, length;, , ;,C+实用教程,32,2.4.3 变量赋值和初始化,引用变量,就是使用变量名来引用变量的内存空间。变量名是内存空间的一个标识,对变量名的操作也是对其内存空间的操作。 给变量赋初值的方法 在变量定义后,使用赋值语句来赋初值 在变量定义的同时赋给变量初值 在多个变量的定义语句中单独对某个变量进行初始化,C+实用教程,33,变量初始化的两种形式,实例 int nNum1, nNum2=3, nNum3; int nNum1, nNum2(3), nNum3;, =,=, ;, (),(), ;,C+实用教程,34,2.1 计算机内的数据表示 2.2 基本数据类型 2.3 字面常量 2.4 变量 2.5 标识符常量 2.6 基本输入输出,C+实用教程,35,2.5 标识符常量,标识符常量,又称符号常量,它用一个标识符来代替一个数值。 同变量相似,标识符常量在使用前同样需要先进行声明。在C+中,标识符常量可以有三种形式: const修饰的只读变量 #define定义的常量 enum类型的枚举常量,C+实用教程,36,2.5.1 const只读变量,在定义变量时,若使用关键字const来修饰,该变量是只读的,即在程序中对其只能读取不能修改 只读变量必须在定义时赋初值 const标识符常量的值不能修改,const = ,=, ;,C+实用教程,37,例Ex_PI 标识符常量:const修饰的只读变量,#include using namespace std; const double PI = 3.14159265; / PI是一个只读变量 int main() double r = 100.0, area; area = PI * r * r; / 引用PI cout“圆的面积是:“area “n“; return 0; / 指定返回值 ,C+实用教程,38,2.5.2 #define标识符常量,#define PI 3.14159265 #define定义一个标识符常量 ,不是C+语句,因此行尾没有分号。 在C+编程中,标识符常量都是用const定义,而不使用#define。,#define ,C+实用教程,39,2.5.3 枚举常量,枚举常量是在由关键字enum指定的枚举类型中定义的,枚举类型属于构造类型,它是一系列的有标识符的整型常量的集合,因此枚举常量实质上是整型标识符常量。 用enum一次可以定义多个标识符常量。,enum 枚举常量1,枚举常量2,;,C+实用教程,40,2.5.3 枚举常量,例如:enum Week Sun, Mon, Tue, Wed, Thu, Fri, Sat ; 定义枚举时,其花括号中的名称代表某个整数值,默认时,第一个名称对应整数0,第二个对应1, 也可以规定枚举元素对应的整数值; enum Color red=5,green,yellow,blue=20,orange ;,C+实用教程,41,2.1 计算机内的数据表示 2.2 基本数据类型 2.3 字面常量 2.4 变量 2.5 标识符常量 2.6 基本输入输出,C+实用教程,42,2.6 基本输入/输出,流是C+的一个核心概念,数据从一个位置到另一个位置的流动抽象为“流”。当数据从键盘流入到程序中时,这样的流称为输入流;当数据从程序中流向屏幕或磁盘文件时,这样的流称为输出流。 C+提供了4个标准流对象: cin:处理标准输入,即键盘输入 cout:处理标准输出,即屏幕输出 cerr、clog:处理标准出错信息,并将信息显示在屏幕上,C+实用教程,43,2.6.1 输入流(cin),cin可以获得键盘的多个输入值 提取运算符“”可以连续写多个,每个提取运算符后面跟一个获得输入值的变量或对象。 提取运算符“”能自动将cin输入值转换成相应变量的数据类型。 从键盘输入的数据的个数、数据类型及顺序,必须与cin中的列举的变量一一匹配。,cin ;,C+实用教程,44,2.6.2 输出流(cout),通过cout可以输出一个整数、实数、字符及字符串。 插入运算符“”可以连续写多个,每个后面可以跟一个要输出的常量、变量、转义序列符及表达式等。,cout ;,C+实用教程,45,例Ex_Cout cout的输出,#include using namespace std; int main() cout“ABCDt“1234“t“endl; return 0; ,C+实用教程,46,2.6.3 格式算子oct、dec和hex,格子算子是一个对象,用于进行格式控制,可以直接用插入符或提取符来操作。 C+提供的预定义格式算子见P.578 表C.1。 格子算子oct、dec和hex能分别将输入或输出的整数转换成八进制、十进制及十六进制。,C+实用教程,47,例Ex_ODH 格

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论