已阅读5页,还剩52页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二章编制C程序的基础知识 本章重点内容 2 1常量与变量2 2C语言的基本数据类型2 3C语言的常用运算符和表达式 运行程序 第二章编制C程序的基础知识 第一节常量与变量 一 常量 程序运行过程中保持不变的值 运行程序 二 变量 程序运行过程中值可以改变的量 1 标识符 把给程序中的实体 变量 常量 函数 数组 结构体以及文件所起的名字称为标识符 简单的说标识符就是一个名字 标识符的命名规则 只能由英文字母 数字和下划线组成 且第一个字符必为英文字母或下划线 不允许使用关键字作为标识符的名字 标识符区分大小写 标识符命名应以直观且易于拼读为宜 有意义的标识符长度为前8个字符 例2 1 找出下列符号中合法的标识符 3aB abc a bbintnexta3Bok swtch 2 变量 定义形式 类型变量名1 变量名2 其中 方括号内的内容为可选项 可以同时声明多个相同类型的变量 它们之间需要用逗号分隔 例如 floata b c 定义 变量是在程序执行过程中可以改变 可以赋值的量 四种数据类型 第二节C语言的基本数据类型 1 整型常量有以下几种分类方法 按进制分类 分为十进制 八进制和十六进制 一 整型数据 按长短分类 分为长整型 无符号整型和短整型 1 整型常量有以下几种分类方法 八进制的数码范围为0 7 018 十六进制的数码除了数字0 9外 还使用英文字母a f 或A F 表示10 15 如 0 x1e 注意 二 整型 采用定点整数的存储格式 只能表示纯整数 整型常量 1 十进制形式 与数学上的整数表示相同 例如 12 100 0 2 八进制形式 在数码前加数字0 例如 012 1 81 2 80 10 十进制 3 十六进制形式 在数码前加0X 数字0和字母X 例如 0 x12 1 161 2 160 18 十进制 2 定义整型变量的标志是int 二 实型数据 1 实型常量有两种表示形式 十进制小数形式和指数形式 2 实型变量 main inta b 定义a b为整型变量 unsignedintt 定义t为无符号整型变量 floatx y 定义x y为实型变量 a 1 b 2 t 5 x a b y x t printf f f x y 例2 2 变量的定义与使用 例2 3 整型数据的运算 程序代码如下 include stdio h main inta b a 32767 b a 1 printf d d n a b 程序的运行结果为 32767 32768 注意 turboC下运行结果为 1 include stdio h main floata 12 3 printf f n a a以十进制小数形式输出 printf e n a a以指数形式输出 程序的运行结果为 12 3000001 230000e 001 例2 4 实型数据的不同表示 例2 5 实型变量的定义与使用 include stdio h main floata 12 3 printf f n a a以十进制小数形式输出 printf e n a a以指数形式输出 程序的运行结果为 12 3000001 230000e 001 三 字符型数据 1 C语言中有两种类型的字符常量 普通字符 用单引号括起来的单个字符 特殊字符 以 开头的具有特殊含义的字符 转义字符 常用的转义字符 2 字符串常量由双引号括起来的字符序列 字符常量与字符串常量的区别有如下几点 字符常量与字符串常量的表示形式不同 字符常量通常可以给字符型变量赋值 而字符串通常被存放在一个字符数值中 字符串常量要有一个结束符 而字符常量没有结束符 它只有一个字符 字符常量与字符串常量的运算不同 3 字符变量的定义形式 即char 例2 7 转义字符的使用 程序代码如下 include stdio h main printf ab tcde n printf f 101 n 程序的运行结果为 abcdefA 例2 9 将小写字母转换为大写 程序代码如下 include stdio h main charc1 c2 c1 a c2 b c1 c1 32 c2 c2 32 printf c c n c1 c2 程序的运行结果为 AB 运算符的分类 运算符按其操作数个数分为3类 单目运算符 一个操作数 双目运算符 两个操作数 和三目运算符 三个操作数 运算符按其优先级的高低分为15类 优先级最高的为1级 其次为2级等等运算符按其功能分为 算术运算符 关系运算符 逻辑运算符 赋值运算符 逗号运算符等等 第三节C语言的常用运算符和表达式 一 算术运算符及其表达式 二 算术运算符和表达式基本算术运算符 结合方向 从左向右优先级 1 2 3 说明 可为单目运算符时 右结合性两整数相除 结果为整数 要求两侧均为整型数据 例5 2 5 2 0 例5 2 5 2 1 10 5 1 5 5 2 例5 2 2 5 2 0 2 5 例5 2 1 5 2 11 10 15 1 05 5 2 2 自反算术赋值运算符 复合的赋值运算符1 复合运算符 10种 位运算 左移 右移 按位与 按位或 按位异或 例如 a 3相当于a a 3 x y 8相当于x x y 8 x 3相当于x x 32 意义 简化程序 使程序精炼 提高编译效率 例 a b c 5a b 5 a 5 c 6 a b 4 c 6 a b 10 c 2 赋值表达式1 概念 由赋值运算符将一个变量和一个表达式连接起来的式子 2 一般形式 变量 赋值运算符 表达式 例a b c 5 自右向左 右结合 注意 连续赋值在这里的表达式中是允许的 但在前面讲的定义语句中是不可以的 赋值运算说明 结合方向 自右向左优先级 左侧必须是变量 不能是常量或表达式赋值转换规则 使赋值号右边表达式值自动转换成其左边变量的类型赋值表达式的值与变量值相等 且可嵌套 例 a 12 a a a a 例 inta 2 a 4 1 a a a a 3 a 264等价于a a a a a a a 0等价于a a a a a a a a 3 例2 11 复合的赋值运算符的应用 已知a 12 n 5 求下列表达式的值 a a 相当于a a a a 2 相当于a a 2 a 2 3 相当于a a 2 3 a a a 相当于a a a a a n 2 相当于n n 2 得到n值为1 再计算a a n a a a a 上述表达式的计算结果分别为24 10 60 0 0 0 3 自增和自减运算符 自增 自减运算符 作用 使变量值加1或减1种类 前置 i i 先执行i 1或i 1 再使用i值 后置i i 先使用i值 再执行i 1或i 1 例j 3 k j j 3 k j j 3 printf d j j 3 printf d j a 3 b 5 c a b a 3 b 5 c a b 说明 不能用于常量和表达式 如5 a b 结合方向 自右向左优先级 1 2 3 4 正负号运算符 5 强制类型转换运算符 强制类型转换运算符 将一个表达式转换成所需类型 一般形式 类型名 表达式 例 int x int x y int x y double 3 2 int 3 6说明 强制转换得到所需类型的中间变量 原变量类型不变 例2 13 main floatx inti x 3 6 i int x printf x f i d x i 结果 x 3 600000 i 3 二 关系运算符及其表达式 关系运算符和关系表达式 一 关系运算符及其优先次序 1 C语言的6种关系运算符 2 优先次序 前4种运算符的优先级相同 后两种也相同 且前4种高于后2种 关系运算符优先级低于算术运算符 关系运算符的优先级高于赋值运算符 例 c a bc a b a b c a b ca ba bca b c 注 即相当于 二 关系表达式1 概念 用关系运算符将两个表达式连接起来的式子 称关系表达式 例 a b a 3 b 5 a b b表达式的值为1 a b c表达式的值为1b cbd的值为1f a b cf的值为0 例2 14 关系运算符的计算 若a 1 b 2 c 3 x 4 y 5 请计算下列表达式的值 1 c a b 2 a b c 3 a bc 5 a b x y 6 a b x y 7 a a b 8 a b 上述表达式的计算结果分别为0 0 1 0 0 0 0 1 三 逻辑运算符及其表达式 C语言有三种基本的逻辑运算 布尔运算 与 逻辑乘 用 表示 相当于其它语言中的AND 或 逻辑加 用 表示 相当于其它语言中的OR 非 逻辑非 用 表示 相当于其它语言中的NOT 逻辑运算的结果值有两个 false 假 true 真 规则 设有两个布尔量x1 x2与运算 x1 x2当x1 x2均为真时 x1 x2结果为真 否则为假 或运算 x1 x2当x1 x2二者其中有一个为真时 结果即为真 只有均为假时 才为假 非运算 x1当x1为真时 结果为假 当x1为假时 结果为真 逻辑运算符与逻辑表达式 根据上面的运算规则考虑 aba ba b atruetruefalsetruetruefalsefalsefalse truetruefalsefalsetruetruefalsetruefalsefalsefalsetrue 真值表 说明 例 a 4 b 5 a值为0a b值为1a b值为1 a b值为14 0 2值为1 在进行逻辑表达式的求解中 并不是所有的逻辑运算都被执行 只是在必须执行下一个逻辑运算符才能求出表达式的解时 才执行该运算符 例 a b c 四 赋值运算符及其表达式 五 逗号运算符及其表达式 逗号运算符和逗号表达式一 逗号运算符又称顺序求值运算符二 一般表达式 表达式1 表达式2三 求解过程 先求解表达式1 再求解表达式2 整个表达式的值是表达式2的值 例 a 3 5 a 4a的值为15 右边表达式的值为60注意 在c语言中 逗号优先级最低 低于赋值运算 注意 1 应用逗号表达式的目的一般是想得到各个表达式的值 常用于循环的FOR语句中 而并非一定需要和使用整个逗号表达式的值 如例1 2 2 并非所有的地方出现的逗号都作为逗号表达式看待 在函数中只是起参数分隔的作用 例如 printf d d a b 区别 printf d d d a b a b 此句中 a b 则是逗号表达式 其值为b的值 例a 3 5 a 4a 3 5 a 4 a 5例x a 3 6 3 x a 3 6 a例a 1 b 2 c 3 printf d d d a b c printf d d d a b c b c 赋值表达式 表达式值18 x 18 a 15 表达式值60 a 15 表达式值20 逗号表达式 表达式值18 x 3 1 2 3 3 2 3 赋值表达式 表达式值18 x 18 例2 15 逗号运算符的使用 1 3 5 6 8 2 a 3 5 a 4 3 a 3 5 a 4 a 5 4 x a 3 6 3 5 x a 3 6 a上述表达式的计算结果分别为14 60 20 18 18 例 ch2 6 c includemain intx y 7 floatz 4 x y y 6 y z printf x d n x 运行结果 x 3 六 各类型数据之间的转换 floata 2 0 intb 6 c 3 a b c 1 5 a fabs 5 12 0 3 5 4 0 1 5 2 5 97 int 99 5 5 104 5 double 思考inta 1 b 2 表达式a b 3的结果是多少 inta 10000 b 30000 表达式a b的结果是多少 如何修改 main inta b c floatx y z a b 1 b 2 x a y b z b c int z printf x f y f z f n x y z printf a d b d c d n a b c 例2 16 综合应用实例 main inta b c floatx b 1 a b c 2 x a b a c printf x f a d b d c d x a b c 例2 17 赋值运算和逗号运算符的应用 本程序运行结果为 x 2 000000 a 4 b 1 c 2 符号常量 将一个常量用一个定义的标识符来表示 这个量就称为符号常量 符号常量的定义形式如下 define标识符常量值注意 在程序之前定义符号常量 通常常量名用大写字母表示 例2 18 定义一个符号常量PI表示 求圆的面积 definePI3 14159 定义常量PI include stdio h main intr floats r 1 s PI r r printf s f s 程序的运行结果为 3 141590 技能训练整型 实型与字符型数据变量
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 闽南科技学院《材料成形工艺基础》2025-2026学年期末试卷
- 广东高中学考试题及答案
- 合肥科技职业学院《中西医结合妇科》2025-2026学年期末试卷
- 刨花板工安全培训强化考核试卷含答案
- 低压电器及元件装配工安全演练知识考核试卷含答案
- 照明设计师岗前岗位知识考核试卷含答案
- 治安学专业实习心得体会
- 变压器装配工安全演练水平考核试卷含答案
- 成人肠内营养耐受不良识别与防治专家共识总结2026
- 初一语文诊断测试高频考点及答案
- 2026广东广州大学第二次招聘事业编制人员6人备考题库【含答案详解】
- 2025年新疆能源职业技术学院辅导员招聘笔试真题附答案
- 落实诉访分离工作制度
- 2026南京大数据集团有限公司招聘50人备考题库带答案详解(完整版)
- 2026年安徽省C20教育联盟中考数学一模试卷(含简略答案)
- 2026江苏省国有资本投资运营集团有限公司招聘笔试备考题库及答案解析
- 2026校招:国家电投题库及答案
- 2026年全日制劳动合同(2026标准版·五险一金版)
- 2026年无锡职业技术学院单招职业技能考试备考试题含详细答案解析
- 污水处理工程沟通协调方案
- 2026年交管12123驾照学法减分题库100道含答案(夺分金卷)
评论
0/150
提交评论