C语言入门经典(第四版)2-编程初步.ppt

上传人:max****ui 文档编号:8311859 上传时间:2020-03-28 格式:PPT 页数:41 大小:418.50KB
返回 下载 相关 举报
C语言入门经典(第四版)2-编程初步.ppt_第1页
第1页 / 共41页
C语言入门经典(第四版)2-编程初步.ppt_第2页
第2页 / 共41页
C语言入门经典(第四版)2-编程初步.ppt_第3页
第3页 / 共41页
点击查看更多>>
资源描述
第02章编程初步 现在读者一定很渴望编写程序 让计算机与外界进行实际的交互 我们不希望程序只能做打字员的工作 显示包含在程序代码中的固定信息 的确 编程的内涵远不止此 理想情况下 我们应能从键盘上输入数据 让程序把它们存储在某个地方 这会让程序更具多样性 程序可以访问和处理这些数据 而且每次执行时 都可以处理不同的数据值 每次运行程序时输入不同的信息正是整个编程业的关键 在程序中存储数据项的地方是可以变化的 所以叫做变量 variable 而这正是本章的主题 2 1计算机的内存 首先看看计算机如何存储程序要处理的数据 为此 就要了解计算机的内存 在开始编写第一个程序之前 先简要介绍计算机的内存 计算机执行程序时 组成程序的指令和程序所操作的数据都必须存储到某个地方 这个地方就是机器的内存 也称为主内存 mainmemory 或随机访问存储器 RandomAccessMemory RAM 2 2什么是变量 变量是计算机里一块特定的内存 它是由一个或多个连续的字节所组成 每个变量都有一个名称 可以用该名称表示内存的这个位置 以提取它包含的数据或存储一个新数值 2 3计算机绘图系统的硬件组成 变量有几种不同的类型 每种变量都用于存储特定类型的数据 首先看看用于存储数值的变量 在程序里存放数字的方法很多 下面从最简单的方法开始 整数变量变量的命名变量的使用变量的初始化算术语句 2 3 1整数变量 首先是存储整数的变量 整数是没有小数点的数字 例如 110 999 000 000 1这些数值是整数 但这对程序而言并不完全正确 整数是不能包含逗号的 所以第二个值在程序里应该写成10999000000 2 3 2变量的命名 给变量指定的名称一般称为变量名 变量的命名是很有弹性的 它可以是一个或多个大写或小写字母 数字和下划线 有时下划线也算做字母 下面是一些正确的变量名 RadiusdiameterAuntie MayKnotted WoolD678 2 3 3变量的使用 前面介绍了如何声明及命名变量 但这和在第一章学到的知识相比并没有太多用处 下面编写另一个程序 在产生输出前使用变量的值 2 3 4变量的初始化 在上面的例子 用下面的语句声明每个变量 intCats Thenumberofcatsaspets 用下面的语句设定变量Cats的值 Cats 2 将变量Cats的值设为2 2 3 5算术语句 上面的程序是第一个真正做了些事情的程序 它非常简单 仅仅相加了几个数字 但这是非常重要的一步 它是运用算术语句进行运算的一个基本例子 下面介绍一些更复杂的计算 2 4变量与内存 前面介绍了整数变量 但未考虑过它们占用多少内存空间 每次声明变量时 计算机都会给它分配一块足够大的内存空间 来保存该类型的变量 相同类型的不同变量总是占据相同大小的内存 字节数 但不同类型的变量需要分配的内存空间就不一样了 2 5整数变量类型 有5种基本的变量类型可以声明为存储带符号的整数值 无符号的整数值参见下一节 每种类型都用不同的关键字或关键字组合来指定 无符号的整数类型使用整数类型指定整数常量 2 5 1无符号的整数类型 对于每个存储带符号整数的类型 都有一个对应的类型来存储无符号的整数 它们占用的内存空间与无符号类型相同 每个无符号的类型名称都与带符号的类型名称相同 但要在前面加上关键字unsigned 2 5 2使用整数类型 在大多数情况下 int或long类型的变量就能满足我们的需求 偶尔需要unsignedint或unsignedlong 下面是声明这些类型的例子 unsignedintcount 10 unsignedlonginchesPerMile 63360UL intbalance 500 2 5 3指定整数常量 整数变量有不同的类型 整数常量也有不同的类型 例如 如果将整数写成100 它的类型就是int 如果要确保它是long类型 就必须在这个数值的后面加上一个大写L或小写l 所以 long类型的整数100应写为100L 虽然写为100l也是合法的 但应尽量避免 因为小写字母l与数字1很难辨别 2 6浮点数 浮点变量用来存储浮点数 浮点数包含的值带小数点 也可以表示分数和整数 下面是浮点数的例子 1 60 000087655 899由于浮点数的表示方式 它的位数是固定的 然而它的取值范围要比整数大得多 浮点数通常表示为一个小数值乘以10的次方 2 7浮点数变量 浮点数变量的声明方式和整数变量类似 只需给浮点数类型使用对应的关键字即可 floatRadius doubleBiggest 如果需要存储至多有7位精确值的数 范围从10 38到10 38 就应需要使用float类型的变量 类型float的值称为单精度浮点数 从表2 6中得知 它占用4个字节 使用类型double的变量可以存储双精度浮点数 类型double的变量占用8个字节 有15位精确值 范围从10 308到10 308 它足以满足大多数的需求 但某些特殊的应用程序需要更精确 更大的范围 此时可以使用longdouble 2 8使用浮点数完成除法运算 如前所见 除法运算使用的是整数操作数时 通常会得到整数结果 除非除法运算的左操作数刚好是右操作数的整数倍 否则其结果是不正确的 当然 在将饼干分给孩子们的例子中 整数除法运算的方式是没问题的 但将10尺长的厚板均分成4块时 就有问题了 这时就需要用到浮点数了 控制小数位数控制输出字段宽度 2 8 1控制小数位数 在上个例子的输出中有太多不必要的0 擅长使用量尺和锯子 并不说明能用长度为2 500000量尺切割木板 更不用说用2 500001长度的量尺了 可以用格式指定符指定小数点后面的位数 例如 要使输出的小数点后有两位数 就可以使用格式指定符 2f 如果小数点后需要有3位数 则可以使用 3f 2 8 2控制输出字段宽度 输出的字段宽度是输出值所使用的总字符数 包括空格 它一般是默认的 printf 函数确定了输出值需要占用多少个字符位置 小数点后的位数由我们指定 并将它用作字段宽度 但我们可以自己确定字段宽度 如果要求输出一列排列整齐的数值 就应确定其字段宽度 如果让printf 函数指定字段宽度 输出的数字列就不整齐 2 9较复杂的表达式 算术要比两个数相除复杂得多 事实上 如果要进行复杂的算术运算 也可以使用笔和纸 有了加减乘除的工具 就可以开始进行一些真正复杂的计算了 对于较复杂的的计算 需要更多地控制表达式的计算顺序 括号可以提供这方面的能力 当遇到错综复杂的情况时 括号还有助于使表达式更清晰 2 10定义常量 前面的例子将Pi定义为变量 但它是一个不会改变的常量 的值是一个不循环的无限小数 其值总是固定不变 唯一的问题是 在指定它时精确到几位数 最好确保它的值在程序里保持不变 使之不会因错误而改变 极限值sizeof运算符 2 10 1极限值 当然 一定要确定程序中给定的整数类型可以存储的极限值 头文件定义的符号表示每种类型的极限值 2 10 2sizeof运算符 使用sizeof运算符可以确定给定的类型占据多少字节 当然 在C语言中sizeof是一个关键字 表达式sizeof int 会得到int类型的变量所占的字节数 所得的值是一个size t类型的整数 size t类型在标准头文件 和其他头文件如 中定义 对应于一个基本整数类型 但是 与size t类型对应的类型可能在不同的C库中有所不同 所以最好使用size t变量存储sizeof运算符生成的值 即使知道它对应的基本类型 也应如此 2 11选择正确的类型 必须仔细选择在计算过程中使用的变量类型 使之能包含我们期望的值 如果使用了错误的类型 程序就可能出现很难检测出来的错误 2 12定义常量 在程序2 14计算季度收入的表达式中 可以控制操作的执行 得到正确的结果 RevQuarter QuarterSold 150 Revenue Per 150 要使结果正确 必须修改这个语句 以浮点数的方式计算表达式 如果可以把QuarterSold的值转换为float类型 该表达式就会以浮点数的方式计算 问题就解决了 要把变量从一种类型转换为另一种类型 应把目标类型放在变量前面的括号中 自动转换类型隐式类型转换的规则赋值语句中的隐式类型转换 2 12 1自动转换类型 该程序的第二个版本的输出如下 Salesrevenuethisquarteris 1930 50即使表达式中没有显式转换类型 结果也是浮点数形式 但它仍是错误的 这是因为编译器在处理涉及不同类型的值操作时 会自动把其中一个操作数的类型转换为另一个操作数的类型 2 12 2隐式类型转换的规则 确定二元运算中的哪个操作数要转换为另一个操作数的类型时 其机制相当简单 其基本规则是 将值域较小的操作数类型转换为另一个操作数类型 但在一些情况下 两个操作数都要转换类型 2 13再谈数值数据类型 为了完整论述数值数据类型 下面讨论一些前面未提及的内容 第一个未涉及的类型是char char类型的变量可以存储单个字符的代码 它只能存储一个字符代码 即一个整数 所以被看作整数类型 可以像其他整数类型那样处理char类型存储的值 因此可以在算术运算中使用它 字符类型字符的输入输出宽字符类型枚举存储布尔值的变量复数类型 2 13 1字符类型 在所有数据的类型中 char类型占用的内存空间最少 它一般只需一个字节 存储在char类型变量的整数可以表示为带符号或无符号的值 这取决于编译器 2 13 2字符的输入输出 使用scanf 函数和格式指定符 c 可以从键盘上读取单个字符 将它存储在char类型的变量中 2 13 3宽字符类型 wchar t类型的变量存储多字节字符码 一般占用两个字节 在处理Unicode字符时 就需要使用wchar t类型 wchar t类型在标准头文件中定义 所以需要在使用该类型的源文件中包含该头文件 在char类型的字符常量前面加上修饰符L 就可以定义一个宽字符常量 2 13 4枚举 在编程时 常常希望变量存储一组可能值中的一个 例如一个变量存储表示当前月份的值 这个变量应只存储12个可能值中的一个 分别对应于1 12月 C语言中的枚举 enumeration 就用于这种情形 2 13 5存储布尔值的变量 Bool类型存储布尔值 布尔值一般是比较的结果true或false 第3章将学习比较操作 并使用其结果做出判断 Bool类型的变量值可以是0或1 对应于布尔值false和true 由于值0和1是整数 所以 Bool类型也被看作整数类型 2 13 6复数类型 本节假定读者学过复数 如果读者未学过这个内容 可以跳过本节 如果对复数的概念比较模糊 这里将介绍它的基本特性 复数的形式是a bi 在电子学中是a bj 其中i是 1的平方根 a和b是实数 A是实数部分 bi是复数的虚数部分 复数可以看作实数 a b 的有序对 2 14赋值操作的op 形式 C语言是一种非常简洁的语言 提供了一些操作的缩写形式 考虑下面的代码 number number 10 这类赋值操作是给一个变量递增或递减一个数字 它非常常见 所以有一个缩写形式 number 10 2 15数学函数 math h头文件包含各种数学函数的声明 为了了解这些数学函数 下面介绍最常用的函数 所有的函数都返回一个double类型的值 2 16设计一个程序 下面设计本章末的一个真实例子 在一个新程序中试用一些数值类型是一个很不错的想法 这里将从头开始编写一个程序 涉及编程的所有基本要素 包括问题的初始描述 问题的分析 解决方案的准备 编写程序 运行程序 以及测试它 确保它正常工作 该过程的每一步都会引入新问题 而不仅仅是纸上谈兵 问题分析解决方案 2 16 1问题 许多人都对树的高度很感兴趣 如果将树砍倒 量出它的高度 就可以确定离树多远才是安全的 这对于患有神经衰弱的人来说非常重要 问题是如何不使用非常长的梯子 就可以确定树的高度 因为长梯也会对人和树枝带来危险 为了确定树的高度 可以向朋友求助 最好找一个个子比较矮的朋友 假定要测量的树比自己和朋友都高 比自己还矮的树很容易测量出其高度 除非这棵树长满了刺 2 16 2分析 现实问题很少能用适合于编程的方式来表达 在编写代码之前 需要确保完全理解了问题及其解决方式 只有这样 才能估计出创建解决方案所需的时间和精力 分析阶段应增强对问题的理解 确定解决它的逻辑过程 一般这需要大量的工作 这包括找出问题阐述中模糊或遗漏的细节 只有全面理解了问题 才能开始以适合编程的形式表达解决方案 2 16 3解决方案 第一步获取计算树高需要的值 这意味着必须包含stdio h头文件 因为需要使用printf 和scanf 函数 接着确定存储这些值的变量 之后 就可以使用printf 提示输入数字 使用scanf 从键盘上读取值 2 17小结 本章介绍了许多基础知识 讨论了C程序的构建方式 各种算术运算 如何选择合适的变量类型等 除了算术运算之外 还学习了输入输出功能 通过scanf 将值输入变量 通过Printf 函数把文本 字符值和数值变量输出到屏幕上 读者可能不能第一次就掌握所有这些内容 但可以在需要时复习本章
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!