




已阅读5页,还剩38页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二章基本数据类型及其运算 学习目标了解数据类型的一般概念 熟悉C语言中的基本数据类型熟悉C语言中常量与变量的概念 掌握定义常量与变量的方法掌握C语言中的基本运算掌握基本的输入输出函数的用法了解C语言操作符的优先级与结合性 2 1C语言的数据类型 数据类型的一般概念C语言数据类型关系图常量整型常量实型常量字符型常量与反斜杠字符常量字符串常量符号常量 数据类型的一般概念 确定了以值为元素的数据集值的可能范围 即定义域确定了操作 运算 集不同数据类型具有不同的操作集 不同数据类型的数据之间也可以进行混合运算规定了值的存储格式不同类型数据在计算机中存储格式不同 相同类型数据在不同计算机与编译器下的存储格式也可能不同数据处理的基本对象常量与变量 均属于某种数据类型 C语言数据类型关系图 整型常量 十进制表示以数字1 9开头的0 9序列 如9 876 55十六进制表示以 0 x 或 0X 开头的0 9 A a F f序列 如0 x55 0 x1F 0 x2a0 x5516 8510八进制表示以0开头的0 7序列 如0550558 4510 注意不要与十进制混淆 实型常量 一般形式 小数表示法由整数部分 小数点与小数部分组成例 3 1416 2 718281828指数形式 科学计数法由尾数部分 字符 E e 与指数部分组成例 3 14e3 3 14 103 2 7E 2 2 7 10 2 字符型常量与反斜杠字符常量 字符型常量以单引号括起来的单一字符 如 A c 字符常量按照其在字符集 一般为ASCII表 中的编码值存储并参与运算反斜杠字符常量以 开头 后跟字符或数字 用于表示一个特定含义的字符 例如 n 表示换行字符 称为转义字符序列常与普通字符混杂于某个字符串中 ASCII码表 转义序列及其意义 字符串常量 字符串 以双引号括起来的一串字符例 Tsinghua ProgramminginC 字符串的长度 其中的字符数目长度n 占用n 1字节 最后一个字节存储NULL字符 0 例 Tsinghua 占用9个字节 字符串常量与字符常量不同字符串至少占用一个字节 为什么 符号常量 宏定义 define指令 预处理命令例 definePI3 14一旦定义 可以代替常量使用可理解为对常量进行命名目的与意义增强程序可读性使用有意义的名字命名增强程序的可维护性将值定义为符号常量 则程序中仅需要修改一次 include definePI3 14intmain floatr area r 3 0 area PI r r printf f area return0 2 2数据类型及变量 基本数据类型变量及变量的定义变量的初始化 基本数据类型 基本数据类型的分类字符型 char 整型 int 浮点型 float 双精度浮点型 double 无型 void基本数据类型的长度 位数 和取值范围与计算机和C编译器有关整型二进制位数与CPU字长相同 字符单字节 浮点型4字节 双精度浮点型8字节修饰符有符号 signed 无符号 unsigned 短型 short 长型 long修饰除void之外的其他四种基本数据类型 整数的取值范围 浮点数与无型数据的取值范围 变量与变量的定义 变量的定义 在程序执行过程中 其值改变的量与常量的定义不同 常量在程序执行期间不可改变值系统为每个变量分配合适的存储空间 以存放其值保存待处理的数据 中间与最终运算结果变量的四个基本特征 VANT值 value 在任一时刻 每个变量均具有惟一值地址 address 每个变量均具有惟一地址 且除非其生命结束 地址不可更改名称 name 每个变量具有固定的名称或名字标识类型 type 每个变量均具有确定的类型 不可更改 变量的定义与使用示例 includeintmain charc intx y z unsignedlongdistance floatm m 1 11 m 2 m m m 2 2 printf f n m return0 定义三个整型变量x y z 定义字符变量c 定义无符号长整型变量distance 定义浮点型变量m 对浮点型变量m进行赋值 计算过程中修改m的值 再次修改m的值 输出m的值 计算结果 变量的初始化 在定义变量时设定初始值 charc c floatx y z 4 53 doublea 15 5 b 2 0 将z初始化为4 53 x y未初始化 将变量c初始化为 c ASCII值99 a b均进行初始化 未初始化变量并不意味空值可以参与运算 但没有意义 往往导致错误结果 2 3运算符与表达式 运算符 操作符 与表达式概述混合类型数据的运算赋值语句与赋值表达式算术运算符与算术表达式关系运算符与关系表达式逻辑运算符与逻辑表达式位运算符其他运算符与表达式 运算符与表达式概述 表达式由操作符与操作数组成的序列 完成一系列的运算 得到最终的计算结果表达式结果的数据类型由参与运算的操作数确定操作数常量 变量 函数调用 括号内的子表达式操作符种类繁多 意义丰富 功能强大 39个 46种优先级 15级 操作符及其优先级 混合类型数据的运算 混合类型数据运算表达式中的数据类型不可能总相同在实际运算前将两个操作数转换成同一数据类型类型转换隐式类型转换 系统自动进行基本原则 确保运算精度不会降低整数提升 从短型到长型 先有符号后无符号浮点数转换 从float到double再到longdouble显式类型转换 程序员手工进行可简化计算 提高程序效率格式 类型标识符 表达式 例 b c int a 隐式类型转换的例子 charch d inti 6 floatf 10 0 doubled 0 2 result result ch i 4 f d f i 计算过程 ch i结果为16 整型 4 f d结果为6 0 双精度浮点型 f i结果为4 0 浮点型 result结果为40 0 双精度浮点型 赋值语句与赋值表达式 赋值表达式赋值操作符 优先级较低赋值表达式的值 赋值操作符赋给目标变量的值例 while c getchar EOF 赋值语句以分号结束的赋值表达式格式 变量名 表达式 例 b c int a 赋值语句对左边变量名或等价的数组元素名实施写操作右边的表达式结果若与左边的类型不同 则先转换再赋值 此时可能导致数据精度的损失 复合赋值操作符 注意事项赋值操作符右边的子表达式作为整体参与运算例 y x 1等价于y y x 1 算术运算符与算术表达式 基本算术运算符加 减 乘 除 余 递增递减运算符前缀 先递增递减 再参与运算后缀 先参与运算 再递增递减操作数必须为变量 而不能为其他表达式算术表达式例 x b sqrt b b 4 a c 2 a 递增递减运算符前缀 先递增递减 再参与运算后缀 先参与运算 再递增递减 i 后缀 或 i 前缀 相当于i i 1i 后缀 或 i 前缀 相当于i i 1 k1 3 k2 3 j 5 m1 k1 j m2 k2 j n k1 k2 m1 20m2 15n 8 关系运算符与关系表达式 关系运算符大于 等于 小于 不等于 关系表达式关系运算符与两个操作数构成的表达式运算结果 真或假C语言以0表示假 以非0表示真 经常以1表示 示例例 x y a b 常用于条件语句 if grade 60 printf Fail n 逻辑运算符与逻辑表达式 逻辑运算符逻辑与 逻辑或 逻辑非 逻辑表达式逻辑运算符与一个或两个操作数构成的表达式运算结果 真或假x y 若x y均为真 则结果为真 否则为假x y 若x y均为假 则结果为假 否则为真 x 若x为真 则结果为假 否则为真复杂逻辑表达式例 x y a b 3 2计算时一定要留意运算符的优先级 拿不准时加括号 位运算符 位运算符 以单独的二进制位为操作对象按位与 按位或 按位异或 按位取反 左移 位运算表 按位与运算 按位与 用以屏蔽某些位或取出某些位示例 x x y 其中x原为0 xB675 y原为0 x00FFx为16位 取出低8位 高8位置0 x 0 xB675 y 0 x00FF x x y 测试指定位是否为0测试左边第4位是否为0 y x 0 x1000 结果 y为0表示测试位为0 否则为1 按位或运算 按位或 用以打开某些位 将其置1 示例 x x y 其中x原为0 xB675 y原为0 x00FFx为16位 低8位全置1 高8位不变 x 0 xB675 y 0 x00FF x x y 按位异或运算 按位异或 用以判断两个操作数相应位是否相异示例 x x y 其中x原为0 xB675 y原为0 x00FFx为16位 x 0 xB675 y 0 x00FF x x y 按位异或的本质 按位进行的不进位加法按位异或既可使各位翻转 也可使各位保持 按位取反运算 按位取反 将单个操作数的所有位全部翻转示例 x x 其中x原为0 xB675 x 0 xB675 x x 移位运算符 左移 相当于乘2n 原高位舍弃 低位补0格式 操作对象 左移位数例 y x n 其中x原为0 xB675 n为2 x 0 xB675 y x n 右移 相当于除2n 原低位舍弃 高位补0 无符号数 或符号位 有符号数 格式 操作对象 右移位数例 y x n 其中x原为0 xB675 n为2 x 0 xB675 y x n 其他运算符与表达式 条件运算符与条件表达式格式 表达式1 表达式2 表达式3计算过程 先计算表达式1的值 若为真 则结果为表达式2的值 否则为表达式3的值例 x a b a b 上例等价于 if a b x a elsex b 逗号运算符与逗号表达式以逗号连接的表达式计算过程 从左到右逐个计算各个子表达式 结果为最后一个子表达式的值例 z x m n y m n x y 2 4基本输入输出函数 基本事实输入输出是语言与算法必须具备的功能C语言本身没有输入输出语句或命令 输入输出需使用标准库函数基本输入输出函数原型位于头文件 stdio h 中输入输出函数格式化输出函数格式化输入函数字符输入输出函数 格式化输出函数printf 格式化输出函数printf 调用格式printf 输出格式描述字符串 输出项列表 例 printf age d n age y 格式转换说明符 d 十进制整数 i 十进制整数 f 浮点数 e 指数形式的浮点数 c 单个字符 s 字符串 u 无符号整数 x 十六进制整数 o 八进制整数 m n y m 表示以 y 格式输出时 数据所占用的位数 场宽 n 可选 表示小数点后的位数 表示数据左对齐 缺省时 数据右对齐 前补空格 格式化输出示例 指出下述程序的运行结果 includeintmain intx y z x 10 y 15 z 25 printf Resultsasfollows n printf x d y d z d n x y z printf x y d nx y z d n x y x y z return0 Resultsasfollows x 10 y 15 z 25x y 25x y z 50 格式化输入函数scanf 格式化输入函数scanf 调用格式scanf 输入格式描述字符串 输入项列表 例 scanf d c 说明输入格式转换说明符与输出格式转换说明符相同用户在终端输入的数据逐一存放到输入项列表中变量所在的地址空间 对于普通变量 变量名前需添加取址操作符多个输入项的分隔 格式描述串中其他字符需在输入数据时一并输入 未分隔的两个输入项在输入数据时使用空格 Tab或回车键分隔 格式化输入示例 下述程序中的数据如
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 五官立体感的塑造
- 废弃防水材料环保处置技术与发展趋势
- 信用卡公交优惠活动方案
- 信访迎难而上活动方案
- 修缮公司年会策划方案
- 俱乐部套餐活动方案
- 俱乐部网球活动方案
- 值班团建活动方案
- 假日彩电促销活动方案
- 假期引流活动方案
- 人工智能技术在化学教育中的应用
- 中国国防历史与国防建设课件
- 本地生活如何玩转抖音引流
- 柔性矿物绝缘电缆技术要求
- PT100与温度对照表
- 销售话术900句(培训资料)
- 国开学习网《小学语文教学研究》形考任务1-5答案
- 春香传(主演:王志萍-陈娜君)
- 仪器校准管理课件
- 2023年06月中国社会科学院金融研究所第一批专业技术人员公开招聘笔试历年难、易错考点试题含答案解析
- 2023年杭州市滨江区数学六下期末质量跟踪监视试题含解析
评论
0/150
提交评论