基本数据类型及其操作.ppt_第1页
基本数据类型及其操作.ppt_第2页
基本数据类型及其操作.ppt_第3页
基本数据类型及其操作.ppt_第4页
基本数据类型及其操作.ppt_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

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

文档简介

1 第2章基本数据类型及其操作 2 1C语言的基本数据类型2 2常量与变量2 3常用运算符与表达式2 4数据的输入与输出2 5应用实例本章小结 2 2 1基本数据类型 一个程序应包括对数据的描述和对数据处理的描述 对数据的描述 即数据结构 在C语言中 系统提供的数据结构 是以数据类型的形式出现的 对数据处理的描述 即计算机算法 算法是为解决一个问题而采取的方法和步骤 是程序的灵魂 实际上 一个程序除了数据结构和算法外 还必须使用一种计算机语言 并采用结构化方法来表示 3 C语言提供的数据结构 是以数据类型形式出现的 具体分类如下 1 基本类型 分为整型 实型 又称浮点型 字符型和枚举型四种 2 构造类型 分为数组 结构体和共用体三种 3 指针类型 4 空类型 4 1 整数的存储 以二进制形式存储 一个数据占据2 4个字节内存 数据有正 负 负数以补码方式存放 或参与运算 如十进制数100 二进制为01100100 2 实数的存储 采用指数形式存储 一个数占据4个字节内存 数值部分3个字节 指数部分一个字节 也是采用二进制数形式 3 字符数据的存储 存放字符的ASCII码值 占一个字节 例如 字符 A 的ASCII码值为65 转换为二进制数为 01000001 5 2 2常量和变量 一 常量 常量的类型 可通过书写形式来判别 1 常量的概念在程序运行过程中 其值不能被改变的量称为常量 2 常量的分类 1 整型常量 分十进制 八进制 十六进制 123 67 十进制 056 024 八进制 0 x123 0 x56 十六进制 2 实型常量 12 56 3 0e 4 指数形式 表示3 0 104 3 字符常量 A c 6 等 也包括转义字符 参见P16表2 1 4 符号常量 用一个标识符代表一个常量 6 案例2 1符号常量的使用 definePI3 1415926 定义符号常量的命令行 include 文件包含预处理命令 voidmain doubler s v 定义双精度浮点型变量r r 3 5 为半径r赋值 s 4 0 PI r r 计算表面积 v 4 0 3 0 PI r r r 计算体积 printf s f v f n s v 输入计算结果 该例题中PI就是符号常量 使用符号常量需要用命令行定义 定义符号常量格式为 define标识符常量串例如 definePI3 1415926表示把符号常量的值定义为3 1415926 7 二 变量1 变量的概念在程序运行过程中 其值可以被改变的量称为变量 2 变量的两个要素 1 变量名 每个变量都必须有一个名字 变量名 变量命名遵循标识符命名规则 2 变量值 在程序运行过程中 变量值存储在内存中 在程序中 通过变量名来引用变量的值 8 3 标识符 即名称 命名规则 1 有效字符 只能由字母 数字和下划线组成 且以字母或下划线开头 2 有效长度 随系统而异 但至少前 个字符有效 如果超长 则超长部分被舍弃 3 C语言的关键字不能用作变量名 注意 C语言对英文字母的大小写敏感 即同一字母的大小写 被认为是两个不同的字符 习惯上 变量名和函数名中的英文字母用小写 以增加可读性 9 4 变量的定义与初始化在 语言中 要求对所有用到的变量 必须先定义 后使用 且称在定义变量的同时进行赋初值的操作为变量初始化 1 变量定义的一般格式 存储类型 数据类型变量名 变量名2 例如 floatradius length area 2 变量初始化的一般格式 存储类型 数据类型变量名 初值 变量名2 初值2 例如 floatradius 2 5 length area 10 2 2 1整型数据 1 分类根据占用内存字节数的不同 整型变量又分为 类 1 基本整型 关键字为int 2 短整型 关键字为short int 3 长整型 关键字为long int 4 无符号整型 unsigned 无符号型又分为无符号基本整型 unsigned int 短整型 unsignedshort 和长整型 unsignedlong 三种 只用来存储无符号整数 11 2 占用内存字节数与值域上述各类型整型变量占用的内存字节数 随系统而异 在TC中 一般用 字节表示一个int型变量 且long型 字节 int型 字节 short型 字节 显然 不同类型的整型变量 其值域不同 例如 TC编译系统中一个int型变量 其取值范围是 32768 32767 一个unsigned型变量的值为 0 65535 P19表2 2 类型匹配规则类型匹配规则为 一个整型常量 可以赋给能容纳下其值的整型变量 12 2 2 2实型数据 一 实型变量 语言的实型变量 分为两种 1 单精度型 关键字为float 一般占 字节 32位 提供 位有效数字 2 双精度型 关键字为double 一般占 个字节 提供15 16位有效数字 二 实型常量 表示形式实型常量即实数 又称浮点数 其值有两种表达形式 1 十进制形式 例如3 14 9 8 2 指数形式 E e 例如3 0 5等 13 案例2 2计算三门课的平均分 includevoidmain intenglish math c 定义3个整型变量 intsum 定义整型变量sum floataverage 定义单精度浮点类型average printf 请输入英语成绩 scanf d 14 2 2 3字符型数据 一 字符常量1 字符常量的定义用一对单引号括起来的单个字符 称为字符常量 例如 A 等 2 转义字符 语言还允许使用一种特殊形式的字符常量 就是以反斜杠 开头的转义字符 注意 如果反斜杠或单引号本身作为字符常量 必须使用转义字符 15 二 字符变量字符变量的类型关键字为char 一般占用1字节内存单元 1 变量值的存储字符变量用来存储字符常量 将一个字符常量存储到一个字符变量中 实际上是将该字符的ASCII码值 无符号整数 存储到内存单元中 P342附录CASCII码表例如 charch1 ch2 定义两个字符变量 ch1 ch2 ch1 a ch2 b 给字符变量赋值 16 2 特性字符数据在内存中存储的是字符的ASCII码 一个无符号整数 其形式与整数的存储形式一样 所以 语言允许字符型数据与整型数据之间通用 0 255 1 一个字符型数据 既可以字符形式输出 也可以整数形式输出 2 允许对字符数据进行算术运算 此时就是对它们的ASCII码值进行算术运算 17 案例2 3 将给定的小写字母转换为大写 includevoidmain charc1 c2 定义两个字符类型的变量 c1 a 将字符常量 a 赋给字符变量c1 c2 b 将字符常量 b 赋给字符变量c2 c1 c1 32 求字符 a 对应的大写字母 c2 c2 32 求字符 b 对应的大写字母 printf c c n c1 c2 输出字符变量c1 c2的值 18 三 字符串常量1 字符串常量的概念和字符串长度字符串常量是用一对双引号括起来的若干字符序列 字符串中字符的个数称为字符串长度 长度为0的字符串 即一个字符都没有的字符串 称为空串 表示为 一对紧连的双引号 例如 Howdoyoudo Goodmorning 等 都是字符串常量 其长度分别为14和13 空格也是一个字符 19 2 字符串的存储C语言规定 在存储字符串常量时 由系统在字符串的末尾自动加一个 0 作为字符串的结束标志 注意 在源程序中书写字符串常量时 不必加结束字符 0 如果有一个字符串为 CHINA 则它在内存中的实际存储如下所示 最后一个字符 0 是系统自动加上的 它占用 字节而非 字节内存空间 20 综上所述 字符常量 A 与字符串常量 A 是两回事 1 定界符不同 字符常量使用单引号 而字符串常量使用双引号 2 长度不同 字符常量的长度固定为1 而字符串常量的长度 可以是0 也可以是某个整数 3 存储要求不同 字符常量存储的是字符的ASCII码值 而字符串常量 除了要存储有效的字符外 还要存储一个结束标志 0 21 2 3常用运算符与表达式 在 语言中 除控制语句和输入输出函数外 其它所有基本操作都作为运算符处理 1 五种基本算术运算符 减法 取负 求余数 1 关于除法运算 C语言规定 两个整数相除 其商为整数 小数部分被舍弃 例如 5 2 2 2 关于求余数运算 要求两侧的操作数均为整型数据 否则出错 22 案例2 4 计算表达式1 1 2 1 3 1 4 1 5的值 当 左右两边的操作数都是整数时 其结果也为整数 例如 1 2 0 若 左右两边的操作数有一个是实数 其结果为实数 1 0 2 0 5 includevoidmain floatx 定义一个浮点型变量x x 1 1 0 2 1 0 3 1 0 4 1 0 5 printf x f n x 输出变量x的值 23 2 表达式和算术表达式 1 表达式用运算符和括号将运算对象 常量 变量和函数等 连接起来的 符合 语言语法规则的式子 称为表达式 单个常量 变量或函数 可以看作是表达式的一种特例 将单个常量 变量或函数构成的表达式称为简单表达式 其它表达式称之为复杂表达式 2 算术表达式表达式中的运算符都是算术运算符 例如 3 6 9 x y 2 1等 都是算术表达式 24 3 运算符的优先级与结合性 1 语言规定了运算符的优先级和结合性 所谓结合性是指 当一个操作数两侧的运算符具有相同的优先级时 该操作数是先与左边的运算符结合 还是先与右边的运算符结合 自左至右的结合方向 称为左结合性 反之 称为右结合性 结合性是 语言的独有概念 除单目运算符 赋值运算符和条件运算符是右结合性外 其它运算符都是左结合性 25 4 数据类型转换 1 在 语言中 整型 实型和字符型数据间可以混合运算 如果一个运算符两侧的操作数的数据类型不同 则系统按 先转换 后运算 的原则 首先将数据自动转换成同一类型 然后在同一类型数据间进行运算 转换规则如下所示 char shortfloatintunsignedlongdouble 向下的箭头 表示必须的转换 char和short型必须转换成int型 float型必须转换成double型 横向向右的箭头 表示不同类型的转换方向 注意 箭头方向只表示数据类型由低向高转换 不要理解为int型先转换成unsigned型 再转换成long型 最后转换成double型 精度低 精度高 26 2 除自动转换外 语言也允许强制转换 数据类型强制转换的一般格式为 要转换成的数据类型 被转换的表达式 当被转换的表达式是一个简单表达式时 外面的一对圆括号可以缺省 例如 double a 等价于 double a 将变量a的值转换成double型 int x y 将x y的结果转换成int型 float 5 2 等价于 float 5 2 将5转换成实型 再除以2 2 5 float 5 2 将5整除2的结果 2 转换成实型 2 0 注意 强制转换类型得到的是一个所需类型的中间量 原表达式类型并不发生变化 例如 double a只是将变量a的值转换成一个double型的中间量 其数据类型并未转换成double型 27 5 赋值运算符及其表达式 1 是一个赋值运算符 2 a 3是赋值表达式 3 赋值表达式加上一个分号构成语句 如 a 3 if a b 0 t a 红色部分是一个条件该语句的含义是 先将b的值赋予a 若a的值大于0 则将a的值赋予t 这里的a b是一个赋值表达式 注意 赋值表达式和赋值语句的差别 28 2 4数据的输入与输出 输入 输出以计算机为主体 输入是指从输入设备 键盘等 向计算机输入数据 输出是指从计算机向输出设备 显示器等 输出数据 C语言本身不提供输入输出语句 输入输出操作通过C系统函数库的函数来完成的 如输入函数 scanf getchar 输出函数 printf putchar 等 在使用系统函数库的函数时 要用编译预处理命令 include 将有关的 头文件 包含到用户的源文件中 29 1 单个字符的输出 putchar 函数 案例2 5 putchar 函数的格式和使用方法 include 编译预处理命令 文件包含 voidmain charch1 N ch2 E ch3 W putchar ch1 putchar ch2 putchar ch3 输出 putchar n putchar ch1 putchar n 输出ch1的值 并换行 putchar E putchar n 输出字符 E 并换行 putchar ch3 putchar n 程序运行结果如下 NEWNEW 30 putchar 函数的格式 putchar ch 其中ch可以是一个字符变量或常量 也可以是一个转义字符 putchar 函数的作用是向终端输出一个字符 1 putchar 函数只用于输出单个字符 且一次只能输出一个字符 另外 从功能角度来看 printf 函数可以完全代替putchar 函数 2 在程序中使用putchar 函数 务必牢记 在程序 或文件 的开头加编译预处理命令 也称包含命令 include 31 2 单个字符的输入 getchar 函数 案例2 6 getchar 函数的使用 includemain charr r getchar 输入一个字符 putchar r 输出该字符 putchar n a 键盘输入的字符数据 a 屏幕显示的输出数据 程序执行时输入一个字符a并按回车键后 在屏幕上看到结果 32 getchar 函数的格式 getchar getchar 函数的作用 从系统输入设备 如键盘 输入一个字符 另外 从功能角度来看 scanf 函数可以完全代替getchar 函数 1 getchar 函数只能用于单个字符的输入 一次输入一个字符 当需要多个字符时 可通过循环输入实现 2 程序中要使用getchar 函数 必须在程序 或文件 的开头加上编译预处理命令 include注意 函数getchar 和putchar ch 在格式上和应用上的差别 33 3 格式化输出函数printf 函数 案例2 7 已知圆半径radius 1 5 求圆的周长和面积并输出 includevoidmain floatradius length area pi 3 1415926 radius 1 5 length 2 pi radius 求圆周长 area pi radius radius 求圆面积 printf radius f n radius 输出圆半径 printf length 7 2f area 7 2f n length area 34 printf 函数的作用 向计算机系统默认的输出设备 一般指终端或显示器 输出一个或多个任意类型的数据 printf 函数的一般格式如下 printf 格式控制 输出表列 1 格式控制格式控制时用双引号括起来的字符串 也称 转换控制字符串 可以包含三种信息 格式说明 格式说明的一般形式如下 格式字符 35 转义字符例如 中printf 函数中的 n 就是转义字符 输出时产生一个 换行 操作 普通字符 除格式字符和转义字符之外的其它字符 格式字符串中的普通字符 原样输出 例如 printf radius f n radius 2 输出表列输出表列是可选的 如果要输出的数据不止1个 相邻2个之间用逗号分开 必须与 输出表列 中 输出项的数据类型一致 否则会引起输出错误 下面的printf 函数都是合法的 1 printf Iamastudent n 2 printf d 3 2 3 printf a fb 5d n a a 3 是普通字符 36 3 格式字符输出不同类型的数据 要使用不同的格式字符 常用的有 格式字符d 以带符号的十进制整数形式输出 案例2 8 格式字符d的使用 includevoidmain intn1 123 longn2 123456 用3种不同格式 输出int型数据n1的值 printf n1 d n1 5d n1 5d n n1 n1 n1 用3种不同格式 输出long型数据n2的值 printf n2 ld n2 5ld n n2 n2 printf n1 ld n n1 37 格式字符f 以小数形式 按系统默认的宽度 输出单精度和双精度实数 案例2 9 显示输出浮点数 左对齐 右对齐 includevoidmain floatf 123 456 doubled1 d2 d1 1111111 111 d2 2222222 222 printf f 10 2f 10 2f 2f n f f f f printf d1 d2 f n d1 d2 数据右对齐 数据左对齐 38 对于实数 也可使用格式符 e 以标准指数形式输出 尾数中的整数部分大于等于1 小于10 小数点占一位 尾数中的小数部分占5位 指数部分占4位 其中e占一位 指数符号占一位 指数占2位 共计11位 也可使用格式符 g 让系统根据数值的大小 自动选择 f或 e格式 且不输出无意义的零 39 格式字符c 输出一个字符 只占一列宽度 案例2 10 格式字符c的使用 includevoidmain charc A inti 65 printf c c 5c d n c c c printf i d c n i i 需要强调的是 在C语言中 整数可以用字符形式输出 字符数据也可以用整数形式输出 40 格式字符s 输出一个字符串 案例2 11 格式字符s的使用 includevoidmain printf s 5s 10s n Internet Internet Internet printf 10 5s 10 5s 4 5s Internet Internet Internet 运行结果如下 注意 系统输出字符和字符串时 不输出单引号和双引号 41 4 使用说明 printf 可以输出常量 变量和表达式的值 但格式控制中的格式说明符 必须按从左到右的顺序 与输出表中的每个数据一一对应 否则出错 格式字符x e g可以用小写字母 也可以用大写字母 使用大写字母时 输出数据中包含的字母也大写 除了x e g格式字符外 其它格式字符必须用小写字母 例如 f不能写成 F 格式字符紧跟在 后面就作为格式字符 否则将作为普通字符使用 原样输出 42 6 格式输入 scanf 函数 案例2 12 scanf 函数用来从键盘向计算机输入数据的 includevoidmain floatx y z aver scanf f f f 43 在程序中给计算机提供数据 可以用赋值语句 也可以用输入函数 在C语言中 可使用scanf 函数 通过键盘输入 给计算机同时提供多个 任意的数据 1 scanf 函数的一般格式scanf 格式字符串 输入项首地址表 格式字符串 格式字符串可以包含3种类型的字符 格式字符 空格和修饰字符 格式指示符与printf 函数的相似 空白字符作为相邻2个输入数据的缺省分隔符 非空白字符在输入数据时 必须原样一起输入 44 输入项首地址表 由若干个输入项首地址组成 相邻2个输入项首地址之间 用逗号分开 输入项地址表中的地址 可以是变量的首地址 也可以是字符数组名或指针变量 变量首地址的表示方法 变量名其中 是地址运算符 2 scanf 函数的功能 从键盘上接收格式化输入 45 3 格式字符格式说明符与输出函数中一样 一般形式为 格式字符 格式字符类型字符类似输出 例如案例3 6的scanf 函数语句中 格式字符串 f 附加说明符 最好不使用 指定该项输入数据所占列数为n 换句话说 读取输入数据中相应的n位 按需要的位数赋给相应的变量 多余部分被舍弃 例如 scanf 3c 3c 46 使用scanf 注意事项 1 对应 d f d 从键盘上输入数据时 整型或实型数据可以用空格 回车或Tab键隔开 但对于 c c 输入字符时不需要隔开 2 格式字符串 中出现的普通字符 包括转义字符 务必原样输入 例如 scanf d d 正确的输入操作为 n1 12 n2 36 n 47 4 输入数据时 遇到以下情况 系统认为该数据结束 1 遇到空格 或者回车键 或者Tab键 2 遇到输入域宽度结束 例如 3d 只取3列 3 遇到非法输入 例如 在输入数值数据时 遇到字母等非数值符号 数值符号仅由数字字符0 9 小数点和正负号构成 48 格式化的输入 输出功能强 可以用来输入输出整数 实数 字符和字符串 但是语法较复杂 要求比较严格 尤其是格式输入函数scanf 输入 输出函数中用到的格式字符较多 请注意区别并应用 格式输入 输出函数scanf printf 使用时 系统要求把 stdio h 头文件包含到用户的源文件中 字符输入 输出函数只能用来输入或输出字符 使用时一定要把 stdio h 头文件包含

温馨提示

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

评论

0/150

提交评论