第三章 C语言.ppt_第1页
第三章 C语言.ppt_第2页
第三章 C语言.ppt_第3页
第三章 C语言.ppt_第4页
第三章 C语言.ppt_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

1 第三章数据类型 运算符与表达式 主要内容 1 常量的定义与使用 2 整型 实型 字符型变量的声明与使用 3 字符串常量的存贮 4 算术运算符与算术表达式 5 赋值表达式 6 逗号表达式 2 一 C语言的数据类型 数据为什么要区分类型 不同类型的数据代表不同的数据表示形式合法的取值范围占用内存空间大小可参与的运算种类 3 C的数据类型 数据类型 基本类型 构造类型 指针类型 空类型 void 枚举类型 enum 实型 字符型 char 整型 int 共用体类型 union 结构体类型 struct 数组类型 array 双精度型 double 单精度型 float 4 二 常量与变量 1 常量和符号常量程序运行过程中 其值不能改变的量称为常量 常量分为字面常量和符号常量 字面常量从其值上就可以判断其类型 如100 10 2 a 符号常量要求定义 definePI3 1415926 宏定义语句 后面详讲使用符号常量的好处 1 含义清楚 定义符号常量的名称时用有意义的英文单词 2 一改全改 5 符号常量举例 definePI3 1415926main floatr s l v scanf f 6 2 变量 程序运行中其值可以改变的量称为变量 与一个变量相关的内容 变量名 变量的值 变量所占的存贮单元 地址 给变量的起名要符合标识符 Identifier 的定义 C语言规定标识符中可以由字母 数字和下划线组成 且第一个字符必须是字母或下划线 例如 a2 abc ABC a 1 123 8a 7 关于变量的几点说明 变量名由英文字母 数字和下划线组成 区分大小写不可以是数字开头变量的命名要有意义 便于阅读和记忆最好使用英文单词或其组合切忌使用汉语拼音 更不能使用汉字下划线和大小写通常用来增强可读性variablenamevariable nameVariableName variableName UNIX风格 Windows风格 8 5 不允许使用关键字 Keyword 作为标识符的名字int float for while if等6 变量名不要太长 一般不超过8个字符 windows允许不超过255个字符7 变量要遵循 先定义 后使用 的原则8 每个变量都有一个指定的类型 编译时为其分配相应数目的存贮单元 且对其运算的合法性进行检查 9 三 整型数据 1 整型数据在内存中的存放用二进制进行存贮 且用补码表示复习进制 原码 反码 补码方面的知识2 整型常量的表示方法n十进制数 直接写n八进制数 以数字0开头022 037010和10大小不一样n十六进制数 以0 x开头0 x12 0 x1F 0 x1f 10 3 整型变量 整型变量分为以下几类 uint 基本整型ushortulonguunsigned 无符号整型uunsignedshortuunsignedlong 11 3 整型变量 有符号数的最高位为符号位 0表示正数 1表示负数 无符号整数的最高位也为有效位 所以表示正数的范围比有符号数多一倍 12 215 1 215 1inta 32768 32767 长度为2字节的有符号整数表示的范围 0 216 1unsigneda 0 65535 长度为2字节的无符号整数表示的范围 13 4 整型常量的类型 根据数的大小由系统自动定义其类型 int short long 数字后面加U或u表示按无符号数存贮数字后加L或l表示长整型例如 18 20长整型常量123l 123L 123456l 123456L无符号型常量123u 123U 14 5 整数占的内存空间 int short unsigned unsignedshort通常占2个字节 long unsignedlong占4个字节 各种整型数占的内存空间与机器和编译系统有关 15 整数所占字节数举例 VC TC includemain printf DatatypeNumberofbytes n printf n printf char d n sizeof char 11printf int d n sizeof int 42printf shortint d n sizeof short 22printf longint d n sizeof long 44printf float d n sizeof float 44printf double d n sizeof double 88 16 四 实型数据 1 实型常数实型常数有两种表示方法 十进制表示法 123 4科学计数法 指数表示法 e E 之前必须有数字 其后的指数必须为整数 小数点前有且仅有一位的非0数字的指数称为规范化的指数形式如 123e0 1 23e2 12 3e1 指数在输出时按规范化形式输出printf e n 12 3e1 1 230000e 002 17 2 实型变量 实型数在计算机中按指数方式存放 小数部分和指数部分 指数部分位数越多 表示数的范围越大 实型变量有三种类型 u单精度float 4字节 u双精度double 8字节 ulongdouble 16字节 实型数有误差 一个实型数能保证7位有效数字 其余的不精确 123456 789 20 用 f输出仍然是12345678848 1 3 3 1 18 3 实型常数的类型 C语言将实数按双精度处理 数字后加F或f可强制说明为单精度类型 将一个实数赋给一个实型变量时 按变量的类型来确定精度 十进制小数形式 123 45 456 78指数形式 1e 2 4 5e3单精度实型常量 123 45f 456 78F 1e 2f 4 5e3F长双精度型常量 123 45l 456 78L 1e 2l 4 5e3L输出时小数点后面保留6位 19 4 实型数举例 includevoidmain floatx 123 45678 doubley 12345 6789012 printf Datatypeprecision n printf n printf float f n x printf double lf n y 20 五 字符型数据 1 字符常量用单引号括起来的单个字符 a b 0 等 每个字符对应一个相应的整数 是其ASCII码 记住一些常用字符的ASCII码 另外 C包括以 开头的转义字符 用于打印控制 21 22 main printf 1234567812345678 n printf abc tde rf tg n printf h ti b bjk 23 2 字符变量 一个字符变量只存一个字符 char类型占一个字节 存贮字符的ASCII码 所以整型和字符型可以混用 整型数在可显示字符的ASCII码范围内 只需用不同的控制字符就可输出不同的格式 例1main chara b inta ba 65 b 66 printf c c n a b printf d d n a b 24 程序举例 例2大小写字母转换main charc1 c2 c1 a c2 b printf c c c1 32 c2 32 25 程序举例 例3将输入的英文句子中的大写字母改为小写字母 句子以 结束 main chara scanf c c while c if a 65 26 3 字符串常量 用双引号引起来的一串字符 C语言在存贮字符串时 系统在最后一个字符号加一个ASCII码为0的字符 表示字符串结尾 S ABC 在内存中存贮 是空串 是包括一个空格的字符串 a 和 a 的区别 C语言没有字符串变量类型 用字符数组或字符指针来实现 27 4 字符串与数值之间的转换 1 atof atoi atol 把字符串转为double int和long定义在stdlib h中2 sprintf char buffer constchar format argument 可以用来把各种类型的数值转为字符串存贮于字符串buffer中 定义在stdio h中函数的返回结果是存贮在buffer中的字符数 不包括末位的空字符 0 28 include includemain inta doubleb longd a atoi 123 1 b atof 123 45 d atol 123456789 printf d lf ld n a b d 29 includevoidmain charbuffer 200 s computer c l inti 35 j floatfp 1 7320534f Formatandprintvariousdata j sprintf buffer tString s n s j sprintf buffer j tCharacter c n c j sprintf buffer j tInteger d n i j sprintf buffer j tReal f n fp printf Output n s ncharactercount d n buffer j 30 六 变量赋初值 可以在说明变量的同时进行初始化或先声明再初始化 inta a 10 inta 10 31 七 不同类型之间的混合运算 水平方向为必转 竖直方向为不同类型数据混合运算时转的方向 由低转高 32 八 算术运算符和算术表达式 1 C运算符 1 算术运算符 2 关系运算符 3 逻辑运算符 4 位运算符 5 赋值运算符 6 条件运算符 7 逗号运算符 8 指针运算符 9 求字节数运算符 10 强制类型转换运算符 11 分量运算符 12 下标运算符 13 其它 33 2 算术运算符和算术表达式 1 作用举例 2 结合方向 左结合性 即运算对象先与左面的运算符相结合 3 优先级 4 强制类型转换运算符系统自动转换 强制类型转换 类型 表达式 int 3 14 3 5 3 25 3 2与被除数符号相同 34 5 自增 自减运算符i i 先使用i的值 然后进行加1或减1运算 i i 先进行加1或减1运算 然后使用i值说明 自增 自减运算符只能用于变量结合方向是自右至左 右结合性 i 先执行i 运算 然后取负经常用于对循环变量加1或指针变量加1使用自增 自减运算符时要尽量避免歧义 35 i 3printf d d i i i i TC 结果为6 12VC 结果为3 9用多个变量避免歧义i jC编译系统尽可能多地自左至可将若干个字符组成一个运算符 所以等效于 i j 但要尽量用括号避免歧义 36 3 C语言常用的数学函数 函数的参数均为实型 37 九 赋值运算符和赋值表达式 1 赋值运算符变量 表达式 2 类型转换当表达式与变量的类型不一致时 表达式将向变量的类型转换 1 实型数赋给整型变量 自动取整 2 整型数赋给实型数时 数值不变 以浮点的方式存贮到变量中 3 double数赋给float型变量时 截取前7位有效数字 存贮于32位单元中 不能溢出 38 4 float型数赋给double型变量时 数值不变 有效位扩展到16位 存贮在64位单元中 5 字符型赋给整型时 字符数据放在整型变量的低8位 说明 当系统将字符处理为无符号数时 赋给整型时 高8位补0 当系统将字符处理为有符号数时 高8位补与字符最高位相同的8位数 称为符号扩展 6 将整型赋给字符型时 将整型的低8位赋给字符变量 7 int型赋给long型变量时 进行符号扩展 long型赋给int型时 只取低16位 8 unsignedint型赋给long型变量时 不进行符号扩展 高位补0 9 将非unsigned型数据赋给长度相同的unsigned型变量 原样照赋 39 3 复合赋值运算符 在赋值运算符前加上其它运算符 构成符合运算符 注 赋值号右端的表达式做为一个整体凡是二元运算符都可以与赋值号一起组成复合赋值符 40 4 赋值表达式 由赋值运算符将一个变量和一个表达式连接起来的式子称为 赋值表达式 求解过程 将右侧表达式的值赋给左侧的变量 变量的值就是赋值表达式的值a 5 a b 5 等价于b 5 a b 因为赋值运算符是右结合性a a a a a的初值为12 结果为 264 41 十 逗号运算符和逗号表达式 逗号运算符是所有运算符中优先级最低的 逗号不全做运算符 有时做为参数分隔符用逗号将两个表达式连接起来 逗号表达式表达式1 表达式2 表达式n求解的顺序是从左至右 最后一个表达式的值是整个逗号表达式的值 逗号表达式可以嵌套 42 例1 inta 1 b b a 8 a 5 变量a b的值是多少 例2 inta floatb a b 2 5 b printf d f a b 9 1 2 3 5 43 Summary 1 常量定义2 标识符 identifier 的定义3 整型 int 实型 float double 字符型 char 字符串的定义4 算术运算符5 赋值 复合赋值运算6 逗号表达式 44 练习 1 算术表达式的C语言表达式为 2 写出以下程序段的运行结果printf d o x n 11 11 11 printf d o x n 022 022 022 printf d o x n 0 xa3 0 xa3 0 xa3 1113b182212163243a3 45 3 设a b的值分别为200和300 求a b的乘积c main inta 200 b 3

温馨提示

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

评论

0/150

提交评论