




已阅读5页,还剩76页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3章最简单的C程序设计 3 1顺序程序设计举例3 2数据的表现形式及其运算3 3C语句3 4数据的输入输出 3 1顺序程序设计举例 例3 1有人用温度计测量出用华氏法表示的温度 如F 今要求把它转换为以摄氏法表示的温度 如C 解题思路 找到二者间的转换公式 f代表华氏温度 c代表摄氏温度 3 1顺序程序设计举例 includeintmain floatf c f 64 0 c 5 0 9 f 32 printf f f nc f n f c return0 3 1顺序程序设计举例 includeintmain floatf c f 64 0 c 5 0 9 f 32 printf f f nc f n f c return0 定义f和c为单精度浮点型变量 指定f的值 计算c的值 输出f和c的值 3 2数据的表现形式及其运算 3 2 1常量和变量3 2 2数据类型3 2 3整型数据3 2 4字符型数据3 2 5浮点型数据3 2 6怎样确定常量的类型3 2 7运算符和表达式 3 2 1常量和变量 1 常量 在程序运行过程中 其值不能被改变的量 整型常量 实型常量 字符常量 字符串常量 符号常量 definePI3 1416例常量与符号常量的使用 include definePRICE30main intnum total num 10 total num PRICE printf total d n total 3 2 1常量和变量 2 变量 在程序运行期间 变量的值是可以改变的 变量必须先定义 后使用 定义变量时指定该变量的名字和类型 变量名和变量值是两个不同的概念 变量名实际上是以一个名字代表的一个存储单元 从变量中取值 实际上是通过变量名找到相应的内存地址 从该存储单元中读取数据 3 常变量 constinta 3 3 2 1常量和变量 4 标识符 有效字符序列 用来标识对象的名称 如 变量名 符号常量名 函数名 数组名 类型名等 命名规则 只能由字母 数字和下划线3种字符组成 且第一个字符必须为字母或下划线 合法的标识符 如sum average total Class day BASIC li ling不合法的标识符 M D John 123 33 3D64 a b 注意 1 区别大小写 如sum与SUM为不同的变量名 但一般变量名用小写字母 符号常量采用大写字母 2 标识符必须先定义后使用 分配单元 确定类型 语法检查3 在一个程序单元中 分程序或函数中 不能重复定义 4 关键字 P378附录C 不能作为标识符 5 标识符长度无统一规定 TC识别前8个字符student namestudent number只作为同一个变量 6 按义取名 3 2 2数据类型 所谓类型 就是对数据分配存储单元的安排 包括存储单元的长度 占多少字节 以及数据的存储形式 不同的类型分配不同的长度和存储形式 3 2 3整型数据 1 整型数据的分类最基本的整型类型基本整型 int型 占2个或4个字节短整型 shortint VC 6 0中占2个字节长整型 longint VC 6 0中占4个字节双长整型 longlongint C99新增的 3 2 3整型数据 2 整型变量的符号属性整型变量的值的范围包括负数到正数 可以将变量定义为 无符号 类型 扩充的整形类型 有符号基本整型 signed int 无符号基本整型unsignedint 有符号短整型 signed short int 无符号短整型unsignedshort int 有符号长整型 signed long int 无符号长整型unsignedlong int 有符号双长整型 signed longlong int 无符号双长整型unsignedlonglong int 整数类型的有关数据 类型类型说明符长度数的范围基本型int2字节 32768 32767短整型short2字节 215 215 1长整型long4字节 231 231 1无符号整型unsigned2字节0 65535无符号短整型unsignedshort2字节0 65535无符号长整型unsignedlong4字节0 232 1 注 对应不同的机器和编译系统 各类数据所占内存字节数不尽相同 因此数值范围也不同 整型常量的三种表示形式 十进制整数 如 123 456 八进制整数 以0开头的数是八进制数 如 0123表示八进制数123 等于十进制数83 011表示八进制数 11 即十进制数 9 十六进制整数 以0 x开头的数是16进制数 如 0 x123 代表16进制数123 等于十进制数291 0 x12等于十进制数 10 整型数据在内存中的存放形式 数据在内存中是以二进制形式存放的 有符号数用补码表示 如 inti j i 10 j 10 则 i存储为 0000000000001010j存储为 1111111111110110 整数13在内存中实际存放的情况 例整型变量的定义与使用 includemain inta b c d unsignedu a 12 b 24 u 10 c a u d b u printf a u d b u d n c d 运行结果 a u 22b u 14 例整型数据的溢出 includemain inta b a 32767 b a 1 printf d d n a b 运行结果 32767 32768 运行结果分析 有符号整型变量的范围为 32768 32767 运算结果超出此范围 发生 溢出 发生 溢出 时 编写的程序如果没有对此情况进行处理 则程序将根据错误的结果继续运行 3 2 4字符型数据 字符是按其代码 整数 形式存储的C99把字符型数据作为整数类型的一种字符型数据在使用上有自己的特点 3 2 4字符型数据 1 字符与字符代码大多数系统采用ASCII字符集字母 A Z a z数字 0 9专门符号 29个 等空格符 空格 水平制表符 换行等不能显示的字符 空字符 警告 退格 回车等 3 2 4字符型数据 2 字符变量用类型符char定义字符变量charc 系统把 的ASCII代码63赋给变量cprintf d c n c c 输出结果是 63 3 2 4字符型数据 字符 1 和整数1是不同的概念 字符 1 只是代表一个形状为 1 的符号 在需要时按原样输出 在内存中以ASCII码形式存储 占1个字节整数1是以整数存储方式 二进制补码方式 存储的 占2个或4个字节 字符常量 1 用单引号括起来的一个字符 a A 2 转义字符 以 开头的特殊字符 n换行 t水平制表 r回车 反斜杠 dddddd1到3位八进制数字 ASCII码值 xhhhh表示1到2位十六进制数字 ASCII码值 见P40表3 1 P377附录B 字符数据在内存中的存储形式及其使用方法 采用ASCII编码存放 占一个字节 a 97D61H01100001 b 98D62H01100010在表示范围内可以作为整型数据使用 例向字符变量赋以整数 includemain charc1 c2 c1 97 c2 98 printf c c n c1 c2 printf d d n c1 c2 运行结果 9798 3 2 5浮点型数据 浮点型数据是用来表示具有小数点的实数 float型 单精度浮点型 编译系统为float型变量分配4个字节数值以规范化的二进制数指数形式存放参见教材图3 11double型 双精度浮点型 编译系统为double型变量分配8个字节15位有效数字longdouble 长双精度 型 浮点型常量的表示方法 两种表示形式 小数指数 0 1233e 3 1e3 1 8e 3 123e 6 1e 3e3 2 1e3 5 e3 e 注意 字母e 或E 之前必须有数字 且e 或E 后面的指数必须为整数 浮点型常量的表示方法 规范化的指数形式 在字母e 或E 之前的小数部分中 小数点左边有且只能一位非零的数字 例如 123 456可以表示为 123 456e0 12 3456e1 1 23456e2 0 123456e3 0 0123456e4 0 00123456e如果浮点数以指数形式输出 则输出规范化的指数形式 3 2 6怎样确定常量的类型 字符常量 由单撇号括起来的单个字符或转义字符 整型常量 不带小数点的数值 数字跟l或L表示长整型 跟u或U表示无符号整型 系统根据数值的大小确定int型还是long型等浮点型常量 凡以小数形式或指数形式出现的实数C编译系统把浮点型常量都按双精度处理 数字跟f或F表示单精度浮点型 3 2 7运算符和表达式 1 基本的算术运算符 正号运算符 单目运算符 负号运算符 单目运算符 乘法运算符 除法运算符 求余运算符 加法运算符 减法运算符 3 2 7运算符和表达式 说明两个整数相除的结果为整数如5 3的结果值为 舍去小数部分如果除数或被除数中有一个为负值 舍入方向不固定 例如 5 3 有的系统中得到的结果为 1 在有的系统中则得到结果为 2VC 采取 向零取整 的方法如5 3 1 5 3 1 取整后向零靠拢 运算符要求参加运算的运算对象 即操作数 为整数 结果也是整数 如8 3 结果为2 课堂练习 4 3 4 3 5 3 5 3 4 3 4 3 5 3 5 3 3 2 7运算符和表达式 2 自增 自减运算符 作用是使变量的值 或减 i i 在使用i之前 先使i的值加 减 1i i 在使用i之后 使i的值加 减 1例如 j i如果运算之前i的值为3 则运算后i的值为4 j的值也为4 j i 如果运算之前i的值为3 则运算后i的值为4 j的值却为3注意 1 自增 自减运算不能用于常量和表达式3 a b 2 右结合性 i 相当于 i 3 2 7运算符和表达式 3 算术表达式和运算符的优先级与结合性 C算术表达式 用算术运算符和圆括号将运算对象 也称操作数 连接起来的 符合C语法规则的式子 运算对象 常量 变量 函数等 优先级 对于算术运算 必须掌握其优先级具体见P378 附录D 4 结合性 一个运算对象两边有两个优先级相同的运算符时 该运算对象先和左边的运算符结合称左结合性 如先和右边的运算符结合称右结合性 左右结合性 a b c a b c 3 2 7运算符和表达式 4 不同类型数据间的混合运算 运算的两个数中有一个数为float或double型 结果是double型 系统将float型数据都先转换为double型 然后进行运算 2 如果int型与float或double型数据进行运算 先把int型和float型数据转换为double型 然后进行运算 结果是double型 3 字符型数据与整型数据进行运算 就是把字符的ASCII代码与整型数据进行运算 各类数值型数据间的混合运算 混合运算 字符型 整型和浮点型 在进行运算时 不同类型的数据要先转换成同一类型 然后进行运算 这种类型转换由系统自动进行的 3 2 7运算符和表达式 例3 3给定一个大写字母 要求用小写字母输出 解题思路 关键是找到大 小写字母间的内在联系同一个字母 用小写表示的字符的ASCII代码比用大写表示的字符的ASCII代码大32 3 2 7运算符和表达式 includeintmain charc1 c2 c1 A c2 c1 32 printf c n c2 printf d n c2 return0 3 2 7运算符和表达式 includeintmain charc1 c2 c1 A c2 c1 32 printf c n c2 printf d n c2 return0 将字符 A 的ASCII代码65放到c1中 将65 32的结果放到c2中 用字符形式输出 用十进制形式输出 3 2 7运算符和表达式 5 强制类型转换运算符强制类型转换运算符的一般形式为 类型名 表达式 double a 将 转换成double类型 int x y 将x y的值转换成int型 float 5 3 将5 3的值转换成float型 有两种类型转换系统自动进行的类型转换强制类型转换 3 2 7运算符和表达式 6 运算符 1 算术运算符 2 关系运算符 3 逻辑运算符 4 位运算符 5 赋值运算符 及其扩展赋值运算符 6 条件运算符 3 2 7运算符和表达式 6 运算符 7 逗号运算符 8 指针运算符 和 9 求字节数运算符 sizeof 10 强制类型转换运算符 类型 11 成员运算符 12 下标运算符 13 其他 如函数调用运算符 3 3C语句 3 3 1C语句的作用和分类3 3 2最基本的语句 赋值语句 3 3 1C语句的作用和分类 语句分为以下5类 1 控制语句 if switch for while do while continue break return goto等 2 函数调用语句 3 表达式语句 4 空语句 5 复合语句 3 3 2最基本的语句 赋值语句 在C程序中 最常用的语句是 赋值语句输入输出语句其中最基本的是赋值语句 3 3 2最基本的语句 赋值语句 例3 4给出三角形的三边长 求三角形面积 解题思路 假设给定的三个边符合构成三角形的条件关键是找到求三角形面积的公式公式为 其中s a b c 2 include includeintmain doublea b c s area a 3 67 b 5 43 c 6 21 s a b c 2 area sqrt s s a s b s c printf a f tb f t f n a b c printf area f n area return0 include includeintmain doublea b c s area a 3 67 b 5 43 c 6 21 s a b c 2 area sqrt s s a s b s c printf a f tb f t f n a b c printf area f n area return0 对边长a b c赋值 计算s 计算area sqrt为数学函数 计算平方根 调用数学函数加此行 转义字符 使输出位置跳到下一个tab位置 归纳总结 1 赋值运算符 是赋值运算符作用是将一个数据赋给一个变量也可以将一个表达式的值赋给一个变量2 复合的赋值运算符在赋值符 之前加上其他运算符 可以构成复合的运算符 等价于 3 赋值表达式一般形式为 变量赋值运算符表达式对赋值表达式求解的过程 求赋值运算符右侧的 表达式 的值赋给赋值运算符左侧的变量 归纳总结 4 赋值过程中的类型转换两侧类型一致时 直接赋值两侧类型不一致 但都是算术类型时 自动将右侧的类型转换为左侧类型后赋值定义变量时要防止数据溢出5 赋值表达式和赋值语句赋值表达式的末尾没有分号 而赋值语句有分号一个表达式可以包含赋值表达式 但决不能包含赋值语句6 变量赋初值inta 3 b 3 c inta 3 相当于inta a 3 3 4数据的输入输出 3 4 1输入输出举例3 4 2有关数据输入输出的概念3 4 3用printf函数输出数据3 4 4用scanf函数输入数据3 4 5字符数据的输入输出 3 4 1输入输出举例 例3 5求 方程的根 a b c由键盘输入 设 解题思路 首先要知道求方程式的根的方法 由数学知识已知 如果 0 则一元二次方程有两个实根 若记 include includeintmain doublea b c disc x1 x2 p q scanf lf lf lf include includeintmain doublea b c disc x1 x2 p q scanf lf lf lf 程序中调用数学函数sqrt 输入a b c的值 取变量地址 输入3个双精度型实数 将值赋给后面的变量 输出实数 数据占7列 其中小数占2列 3 4 2有关数据输入输出的概念 几乎每一个C程序都包含输入输出 输入输出是程序中最基本的操作之一 1 所谓输入输出是以计算机主机为主体而言的从计算机向输出设备 如显示器 打印机等 输出数据称为输出从输入设备 如键盘 磁盘 光盘 扫描仪等 向计算机输入数据称为输入 2 语言本身不提供输入输出语句输入和输出操作是由C标准函数库中的函数来实现的printf和scanf不是 语言的关键字 而只是库函数的名字putchar getchar puts gets 3 在使用输入输出函数时 要在程序文件的开头用预编译指令 include或 include stdio h 3 4 3用printf函数输出数据 1 printf函数的一般格式printf 格式控制 输出表列 例如 printf i d c c n i c 格式声明 普通字符 可以是常量 变量或表达式 3 4 3用printf函数输出数据 2 常用格式字符 格式符 用来输出一个有符号的十进制整数可以在格式声明中指定输出数据的域宽printf 5d 5d n 12 345 d输出int型数据 ld输出long型数据 3 4 3用printf函数输出数据 2 常用格式字符 格式符 用来输出一个字符charch a printf c ch 或printf 5c ch 输出字符 a 3 4 3用printf函数输出数据 2 常用格式字符 格式符 用来输出一个字符串printf s CHINA 输出字符串 CHINA 3 4 3用printf函数输出数据 2 常用格式字符f格式符 用来输出实数 包括单双精度 以小数形式输出 不指定数据宽度和小数位数 用 f例3 6用 f输出实数 只能得到 位小数 doublea 1 0 printf f n a 3 3 4 3用printf函数输出数据 2 常用格式字符f格式符 用来输出实数 以小数形式输出 指定数据宽度和小数位数 用 m nfprintf 20 15f n 1 3 printf 0f n 10000 3 0 3 4 3用printf函数输出数据 2 常用格式字符f格式符 用来输出实数 以小数形式输出 指定数据宽度和小数位数 用 m nffloata a 10000 3 0 printf f n a 3 4 3用printf函数输出数据 2 常用格式字符f格式符 用来输出实数 以小数形式输出 输出的数据向左对齐 用 m nf 3 4 3用printf函数输出数据 2 常用格式字符f格式符 用来输出实数 以小数形式输出float型数据只能保证6位有效数字double型数据能保证15位有效数字计算机输出的数字不都是绝对精确有效的 3 4 3用printf函数输出数据 2 常用格式字符e格式符 指定以指数形式输出实数 e VC 给出小数位数为 位指数部分占5列小数点前必须有而且只有1位非零数字printf e 123 456 输出 1 234560e 002 3 4 3用printf函数输出数据 2 常用格式字符e格式符 指定以指数形式输出实数 m neprintf 13 2e 123 456 输出 1 23e 002 前面有4个空格 printf的格式控制的完整格式 0m nl或h格式字符下面对组成格式说明的各项加以说明 表示格式说明的起始符号 不可缺少 有 表示左对齐输出 如省略表示右对齐输出 0 有0表示指定空位填0 如省略表示指定空位不填 m n m指域宽 即对应的输出项在输出设备上所占的字符数 n指精度 用于说明输出的实型数的小数位数 未指定n时 隐含的精度为n 6位 l或h l对整型指long型 对实型指double型 h用于将整型的格式字符修正为short型 格式字符 格式字符用以指定输出项的数据类型和输出格式 d 以带符号十进制形式输出整数 o 以无符号八进制形式输出整数 x 以无符号十六进制形式输出整数 u 以无符号十进制形式输出整数 c 以字符形式输出 只输出一个字符 s 输出字符串 f 以小数形式输出实数 隐含输出六位小数 e 以指数形式输出实数 g 选用 f或 e格式中输出宽度较短的一种格式 不输出无意义的0 说明 除了X E G外 其他各式字符必须用小写 可以在printf函数中的 格式控制 字符串中包含转义字符 一个格式说明必须以 开头 以9个格式字符之一为结束 中间可以插入附加格式字符 如果需要输出 则应该在格式控制字符串中用连续两个 表示 例输出十进制整数 includemain inta a 1 printf d a printf 4d a printf 3d a printf 4 3d a printf 4d a printf 04d a printf d n a a 12 printf d a printf 4d a printf 3d a printf 4 3d a printf 4d a printf 04d a printf d n a a 12345 printf d a printf 4d a printf 3d a printf 4 3d a printf 4d a printf 04d a printf d n a 3 4 4
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大数据智能灌溉-洞察与解读
- 2025年职业师专业能力测试卷:人力资源管理与招聘试题
- 2025年消防执业资格考试题库基础知识题库答案
- 2025年大学辅导员招聘考试题库:大学生就业就业职业素养试题
- 2025年中学教师资格考试《综合素质》易错易混题型要点梳理与答案
- 2025年医保政策调整后对医疗服务质量影响考试题库及答案
- 2025年医保知识考试题库及答案:医保定点医疗机构管理政策法规与合规性试题
- 2025年中学教师资格考试《综合素质》易错易混题型(含答案)模拟
- 重建房屋交易协议范本
- 农业物资供销协议书模板
- 走进创业学习通超星期末考试答案章节答案2024年
- 人教版五年级上册道德与法治知识点复习总结梳理
- 七年级地理上册 第一章 第一节 地球和地球仪公开课教案设计 (新版)新人教版
- 施工现场建筑垃圾减量化专项方案
- JTG E51-2009 公路工程无机结合料稳定材料试验规程
- 西安交通大学大学2024硕士研究生招生考试初试试题703马克思主义哲学
- 200个句子涵盖高中英语3500词汇
- 安全培训课件防范社会工程学攻击
- 肿瘤的诊断和治疗
- 儿童领导力的培养
- 《夏夜荷花》阅读答案
评论
0/150
提交评论