




已阅读5页,还剩74页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章C语言快速入门 1 标识符命名规则数据类型 变量和常量运算符和表达式基本输入输出 复习 include 函数功能 计算两个整数相加之和入口参数 整型数据a和b返回值 整型数a和b之和 intAdd inta intb return a b 主函数 main intx y sum 0 printf Inputtwointegers scanf d d 输出x和y相加之和 并列的两个函数其中一个是程序的入口 程序注释 编译预处理命令 复习 include 函数功能 计算两个整数相加之和入口参数 整型数据a和b返回值 整型数a和b之和 intAdd inta intb return a b 主函数 main intx y sum 0 printf Inputtwointegers scanf d d 输出x和y相加之和 程序组成要素 1 语句 程序的基本单位 1 说明语句 2 执行语句赋值语句功能语句语句由表达式组成 表达式由数据和运算符组成2 流程控制 控制语句的执行顺序 1 顺序结构 2 选择结构 3 循环结构 4 函数调用结构 1 程序的主要功能是数据处理 2 数据处理的核心是运算 3 运算是通过各种表达式进行的 4 表达式是运算和数据的组合 什么是规则 程序设计语言的基本规则包括 常数变量运算符表达式函数 把自然语言描述问题的方式转换为C语言的形式表达给计算机 规则 常数 变量 函数 什么是规则 问题 计算机完成上述计算 首先要解决数据的输入和存放问题 1 常数3 5和3 6的存放空间是否相同 2 变量a如何表示 如何存放 3 计算机如何知道3 6和a之间的关系 4 sinx如何输入 如何存放 5 计算机如何识别 运算结果放在哪里 数据的存储与操作 数据的存储数据的操作 程序 类型 运算符 程序的任务是对数据进行处理 数据是程序处理的对象 而运算符是施加给这些数据的操作 数据和运算符是表达式的基本元素 本次课程学习 标识符命名规则数据类型 变量和常量运算符和表达式基本输入输出 C语言的基本字符集 基本字符 ASCII字符数字 0123456789字母 abc zABC Z运算符 特殊符号 下划线 回车 r 换行 n 制表符 t 2 3C语言的基本组成 标识符定义 用来标识变量 常量 函数等的字符序列组成 只能由字母 数字 下划线组成 且第一个字母必须是字母或下划线大小写敏感不能使用关键字建议 见名知意不宜混淆如l与I o与0 例 判断下列标识符号合法性sumSumM D JohndayDate3daysstudent name 33lotus 1 2 3inta b above 123 M D John 3days 33 int 123 a b C语言的关键字 保留字 不能用关键字作标识符 2 2数据类型 变量和常量 预备知识字节和位内存以字节为单元组成每个字节有一个地址一个字节一般由8个二进制位组成每个二进位的值是0或1 2 2 1数据类型 C数据类型 基本类型 复合类型 字符类型char 整型 浮点型 数组 结构体 指针 数据类型决定 1 数据的表示形式2 数据占内存字节数3 数据取值范围4 其上可进行的操作 基本数据类型 数据类型修饰符 longshortsignedunsigned 一般用大写字母是宏定义预处理命令 不是C语句字面常量 整型常量实型常量字符常量字符串常量 如 definePRICE30 2 2 2常量的使用定义 程序运行时其值不能改变的量 即常数 分类 符号常量 用标识符代表常量定义格式 define符号常量常量 例符号常量举例 include definePRICE30main intnum total num 10 total num PRICE printf total d total 运行结果 total 300 变量 整型常量 整常数 三种形式 十进制整数 由数字0 9和正负号表示 如123 456 0八进制整数 由数字0开头 后跟数字0 7表示 如0123 011十六进制整数 由0 x开头 后跟0 9 a f A F表示 如0 x123 0Xff 例12与12L 整型常量的类型根据其值所在范围确定其数据类型在整常量后加字母l或L 认为它是longint型常量 问题 0123 100 x123 100Xff 10 实型常量 实数或浮点数 表示形式 十进制数形式 必须有小数点 如0 123 123 123 0 0 0 123 指数形式 e或E之前必须有数字 指数必须为整数 如12 3e3 123E2 1 23e4 e 5 1 2E 3 5 实型常量的类型默认double型在实型常量后加字母f或F 认为它是float型3 141592 3 141592F 字符常量定义 用单引号括起来的单个普通字符或转义字符 字符常量的值 该字符的ASCII码值 例 A 101 x41 65 如 A 65 a 97 0 48 n 10 如 a A n 101 转义字符 反斜线后面跟一个字符或一个代码值表示 例转义字符举例 main printf 101 x42C n printf Isay Howareyou n printf CProgram n printf Turbo C 运行结果 屏幕显示 ABCIsay Howareyou CProgram Turbo C 字符常量与字符串常量不同 字符串常量定义 用双引号 括起来的字符序列存储 每个字符串尾自动加一个 0 作为字符串结束标志 例 charch ch A 2 2 3变量的定义和使用概念 其值可以改变的量变量名与变量值变量定义的一般格式 数据类型变量1 变量2 变量n 变量初始化 定义时赋初值 例 inta b c floatdata 决定分配字节数和数的表示范围 合法标识符 例 inta 2 b c 4 floatdata 3 67 charch A intx 1 y 1 z 1 intx y z 1 变量的使用 先定义 后使用 例intstudent statent 19 Undefinedsymbol statent infunctionmain 变量定义位置 一般放在函数开头 Example intnumber1 number2 number1 25 number2 23 number1 number2 25 23 23 变量赋值 类型长度运算符sizeofsizeof 表达式 类型名 如 int long longint float double longdouble等已经定义的变量 常量 其它表达式 例2 2 2 使用sizeof操作符测试不同数据类型的长度printf 字符型长度 d n sizeof char printf 整型长度 d n sizeof int printf 短整型长度 d n sizeof short printf 长整型长度 d n sizeof long printf 单精度浮点型长度 d n sizeof float printf 双精度浮点型长度 d n sizeof longdouble 运行结果 字符型长度 1整型长度 4短整型长度 2长整型长度 4单精度浮点型长度 4双精度浮点型长度 8 思考或问答题 1 数据类型决定什么 2 标识符命名规则是什么 3 什么是符号常量 怎样定义 4 什么是符号变量 怎样定义 5 字符串常量与字符常量有什么区别 6 整型变量与字符型变量可以通用 7 定义变量时是否可以赋初值 8 变量不定义可以直接使用吗 例如main inta 23 b 12 c a b printf c d c 小结 1 计算机内存的存储单位是字节 一个字节是8位二进制数 每个字节有一个地址 2 数据是以补码存在内存中的 正数 原码 补码相同负数 最高位为1 其余位为原码取反 再对整个数加11 数据的表示形式2 数据占内存字节数3 数据类型决定 3 数据取值范围4 可进行的操作4 字符型变量在内存中占一个字节 5 整型变量在内存中占4个字节 6 单精度实型变量在内存中占四个字节 7 标识符的使用规则 只能使用字母 数字 下划线 且第一个字符不能是数字 8 符号常量用来代表一个常量 必须用预定义 define 一般符号常量用大写标识符 9 整型变量与字符型变量可以通用 10 字符型常量使用单引号引起来的一个字符 注意转义字符的使用 11 注意字符串常量与字符常量的区别 12 定义变量时可以赋初值 作业 编写一个交换整型变量A和B值的程序 分析 假设A和B是两个装有不同液体的杯子 要想使杯子A和杯子B内容互换必须借助第三个杯子C 首先把A到入C 再把B到入A 最后把C到入B 如图 A B C 1 2 3 main inta b c scanf d d c a a b b c printf a d b d a b 例如 输入5 9输出a 9 b 5 2 3运算符与表达式 赋值运算符算术运算符增量运算符关系运算符逻辑运算符复合赋值运算符表达式求值过程表达式的数据类型及类型转换逗号表达式 认识C中的运算符和表达式 X 5 b c 对数据进行运算的符号 被加工的数据 表达式 认识C中的运算符和表达式 运算符和运算分量构成表达式 C中运算符 算术运算符赋值运算符关系运算符逻辑运算符位运算逗号运算符 共34种 表达式的运算结果称为表达式的值 3 3表达式与运算 认识C中的运算符和表达式 学习运算符应掌握的要点 1 运算符的种类与功能 2 运算符与运算量的关系 A B A B 个数 类型 类型不同 所占空间 数的表示范围 目 有效位和允许的操作不同 单目运算双目运算三目运算 关系 认识C中的运算符和表达式 3 优先级 运算符的执行顺序 X a b c 4 结合性 相同优先级的多个运算符的运算顺序 a b ca b 5 由左向右结合 由右向左结合 5 运算结果的类型 X 5 8 a 100 整型 逻辑型 130 C语言运算符 2 3 2算术运算符和算术表达式基本算术运算符 结合方向 从左向右取负 是右结合优先级 2 3 4 说明 为负号运算符时 为单目运算符 右结合两整数相除 结果为整数参加 运算的两个数中有一个为实数 则结果是double型 因为所有的实数都按double型进行运算 要求两侧均为整型数据 例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 3 1赋值运算符简单赋值运算符符号 格式 变量标识符 表达式作用 将一个数据 常量或表达式 赋给一个变量 复合赋值运算符种类 含义 op op 例a 3 d func c d 2 x x 1 赋值运算符说明 结合方向 自右向左优先级 14左侧必须是变量 不能是常量或表达式 赋值表达式的值与变量值相等 且可嵌套 赋值转换规则 使赋值号右边表达式值自动转换成其左边变量的类型 例3 x 2 y 错a b 3 错 例floatf inti i 10 f i 则f 10 0 例inti i 2 56 结果i 2 例 a b c 5a b 5 a 5 c 6 a b 4 c 6 a b 10 c 2 表达式值为5 a b c值为5 b 5 a 5 表达式值11 c 6 a 11 表达式值10 a 10 b 4 c 6 表达式值5 a 5 b 10 c 2 赋值运算符的工作过程计算右边表达式的值 判断计算结果的类型与左边变量类型是否相同 如果相同 则直接将计算结果赋给左边变量 如果右边表达式的计算结果类型与左边变量的类型不同 但是兼容的 则将计算结果转换成与左边变量相同的类型 并将结果赋值给左边表达式 如果右边表达式计算结果的类型与左边变量的类型不兼容 则程序出错 例a 3 d func c d 2 x x 1 2 3 3增量运算符 作用 使变量值加1或减1种类 前置 i i 先执行i i 1或i i 1 再使用i值 后置i i 先使用i值 再执行i i 1或i i 1 2 3 3增量运算符 说明 不能用于常量和表达式 如5 a b 结合方向 自右向左优先级 2 3 4 例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 k 4 j 4 k 3 j 4 4 3 c 20 a 4 c 15 a 4 例 分析下面程序运行结果 x 4 i 3 x 0 i 4 2 3 8不同类型数据间的转换自动类型转换什么情况下发生运算转换 不同类型数据混合运算时赋值转换 把一个值赋给与其类型不同的变量时输出转换 输出时转换成指定的输出格式函数调用转换 实参与形参类型不一致时转换运算转换规则 不同类型数据运算时先自动转换成同一类型 例2 4 分析下面三段程序的输出结果 d 0 d 1 d 1 2 强制类型转换一般形式 类型名 表达式 例 int x y int x y double 3 2 int 3 6说明 把表达式的运算结果强制转换成数据类型说明符所表示的类型 强制转换得到所需类型的中间变量 原变量类型不变 例main floatx inti x 3 6 i int x printf x f i d x i 结果 x 3 600000 i 3 精度损失问题 2 3 9逗号运算符和逗号表达式形式 表达式1 表达式2 表达式n结合性 从左向右优先级 15 优先级低于赋值运算符 逗号表达式的值 等于表达式n的值用途 常用于循环for语句中 例a 3 5 a 4a 3 5 a 4 a 5例x a 3 6 3 x a 3 6 a a 15 表达式值60 a 15 表达式值20 赋值表达式 表达式值18 x 18 逗号表达式 表达式值18 x 3 2 3 4关系运算符和表达式关系运算符种类 结合方向 自左向右优先级别 例c a b c a b a b c a b ca bc a b c 关系表达式的值 是逻辑值 真 或 假 用1和0表示 例inta 3 b 2 c 1 d f a b a b cb cbf a b c 表达式值1 表达式值1 表达式值0 d 1 f 0 关系运算注意 例若a 0 b 0 5 x 0 3 则a x b的值为 0 例5 2 7 8在C中是允许的 值为 0 例inti 1 j 7 a a i j 4 0 则a 2 例 a 0结果为 A 100结果为 1 0 例注意区分 与 inta 1 b 0 if a b printf aequaltob elseprintf anotequaltob 例应避免对实数作相等或不等的判断如1 0 3 0 3 0 1 0结果为0可改写为 fabs 1 0 3 0 3 0 1 0 1e 6 在数学中经常遇到下面的条件 比如 已知a 50且a 100 再比如 已知a 50或b 50 在C语言中如何表示上述运算呢 这就是我们下面要讲的逻辑运算 关系运算注意 2 3 5逻辑运算符和表达式逻辑运算符种类 逻辑非 逻辑与 逻辑或 逻辑运算真值表 C语言中 运算量 0表示 假 非0表示 真 运算结果 0表示 假 1表示 真 例ab x ya b x y a a b 优先级 结合方向 a x x b a b x y a b x y a a b 优先级 结合方向 例a 4 b 5 aa ba b a b4 0 25 3 2 8 4 0 c d 值为1 值为0 值为1 值为1 值为1 值为1 5 3 2 8 4 0 值为1 优先级 结合方向 短路特性 逻辑表达式求解时 并非所有的逻辑运算符都被执行 只是在必须执行下一个逻辑运算符才能求出表达式的解时 才执行该运算符 例a m a b n c d 结果m 0 n 1 2 4基本输入输出从计算机向外部输出设备 如显示器 打印机 磁盘等 输出数据称为 输出 从输入设备 键盘 磁盘等 向计算机输入数据称为 输入 C语言通过什么方式实现输入输出的 c语言输入输出操作是由函数来实现的 在C语言中标准函数库中提供一批 标准输入输出函数 例如printf函数 输出函数 scanf函数 输入函数 putchar函数 输出函数 getchar函数等 输入函数 为什么使用输入输出库函数时要用 include 因为每个库函数都有一些规则 这些规则包含在一个文件中 比如 stdio h 通过预处理命令把相应的文件装在程序的前面 一起编译 只有这样才能使用后面的库函数 includemain qqqqqqqqqq qqqqqqqqqqmain stdio h 执行预处理命令后 格式输出函数格式 printf 格式控制串 输出列表 功能 按指定格式向显示器输出数据 输出列表 要输出的数据 可以没有 多个时以 分隔 格式控制串 包含三种信息原样输出的普通字符转义字符 格式控制字符 用于指定输出格式 对齐标志符 宽度说明符 类型符例如 printf a db d n a b 输出 a 3b 4 2 4 1格式化输出 普通字符 转义字符 类型符 对齐标志符 宽度说明符 类型符 类型符 是最重要的一种格式控制符 格式化输出 Example char1 U char2 K char3 M printf c c c char1 char2 char3 UKM 例 格式字符串中的 与输出项列表要一一对应 即 类型相同 个数相等 格式字符符号用小写字母 格式字符符号之外的符号均照原样显示 对齐标志符 宽度说明符 类型符 格式化输出 m表示数据占用的最小宽度数据宽度大于m 按实际宽度输出数据宽度小于m时 补空格n对实数表示输出n位小数对字符串表示最多输出的字符个数l长整型整数 加在d o x u前Llongdouble型数 加在f e g前 改变输出内容的对齐方式缺省为右对齐 md输出整数据占m个字符位 右对齐 md输出整数据占m个字符位 左对齐 m nf输出数据占m个字符位 小数点后留n位 右对齐 m nf输出数据占m个字符位 小数点后留n位 左对齐 ld输入输出long型数据 标志 m n 长度 例 如果实际数据所占字符位大于指定的域宽 按实际输出 格式化输出 inta 1234 printf 3d a printf 5d a 12341234 printf Valueis 10 4f 32 6784728 Valueis 32 6785 例 printf Valueis 10 5f 32 6784 Valueis 32 67840 includemain intage floatheight age 21 height 1 73 printf Aliis dyearsoldandhisheightis 5fmeters n age height Aliis21yearsoldandhisheightis1 73000meters 21 1 73 例 重要转义字符 2 4 2格式化输入 格式控制串 同printf要求 类型相同 个数相等输入项列表中的每一项必须是变量 每一个变量名前面必须加上 符号 变量名 格式 scanf 格式控制串 输入项列表 功能 按指定格式从键盘读入数据 存入地址表指定的存储单元中 并按回车键结束 例scanf d 输入 10 则a 10 a在内存中的地址 是地址运算符 例 Example printf Key inacharacterandanumber scanf c d m Key inacharacterandanumber m103 103 Key inacharacterandanumber m103Character m Key inacharacterandanumber m103Character mNumber 103 如 scanf 5d 输入12345678后仅把12345赋予a 其余截去 又如 scanf 4d 4d 输入12345678后1234赋予a 5678赋予b 按宽度自动截取 输入数据宽度 用十进制整数指定输入的宽度 输入分隔符的指定一般以空格 TAB或回车键作为分隔符 例scanf d o x 输入123123123 输出a 123 b 83 c 291 说明 用 c 格式符时 空格和转义字符作为有效字符输入 如scanf c c c 若输入a b c 则a c1 c2 b c3 输入数据时 遇以下情况认为该数据结束 遇空格 TAB 或回车遇宽度结束遇非法输入 如scanf d c f 若输入1234a123o 26 则1234 a a b 123 c 使用scanf函数时应注意的问题 1 scanf函数中的 格式控制 后面应当是变量地址 而不应是变量名 2 如果在 格式控制 字符串中除了格式说明以外还有其他字符 则在输入数据时在对应位置应输入与这些字符相同的字符 scanf d d
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电影获奖发言稿
- 中班认识苗族课件
- 人体发育学课件
- 2025版房产中介公司知识产权保护合作协议
- 二零二五年毛石石材批发市场合作协议
- 二零二五年度新能源设备维修保养与能源管理协议
- 二零二五年度汽车后市场零部件代理合同
- 二零二五年度专业舞台灯光音响租赁合同样本
- 二零二五年度锻件制造企业节能减排技术改造合同
- 2025版智能家居家居装修工程绿色施工安全协议
- 矿山投资入股合同协议
- 餐饮计件薪酬管理制度
- 汽车服务工程专业导论(第2版)课件:汽车概论
- CNAS体系培训课件
- 苏州威微电子材料有限公司建设苏州集成电路高端材料生产项目环境影响报告书
- 太阳能路灯采购安装方案投标文件(技术方案)
- 2025年离婚协议书版模板
- ISO13485质量体系培训讲义
- 2025年度化妆品品牌形象设计与传播合同
- 中国缓冲包装材料行业市场全景监测及投资前景展望报告
- 2025江苏南通市启东市不动产登记服务中心编外劳务人员招聘4人历年高频重点提升(共500题)附带答案详解
评论
0/150
提交评论