c语言第3章顺序结构程序设计.ppt

上传人:sh****n 文档编号:7420925 上传时间:2020-03-21 格式:PPT 页数:35 大小:538KB
返回 下载 相关 举报
c语言第3章顺序结构程序设计.ppt_第1页
第1页 / 共35页
c语言第3章顺序结构程序设计.ppt_第2页
第2页 / 共35页
c语言第3章顺序结构程序设计.ppt_第3页
第3页 / 共35页
点击查看更多>>
资源描述
本章要求 了解结构化程序的算法描述掌握C语言中数据的输入 输出方法顺序结构程序设计 本章重点 C程序中数据的输入 输出方法 顺序 选择 循环 分支 一 什么是算法 算法是解决一个问题采取的方法和步骤的描述 1 有穷性 算法须在执行有穷多个计算步骤后终止2 确定性 算法的每个步骤必须都是精确定义的 无二义性的 3 有效性 算法中的每一个步骤必须有效地执行 并能得到确定结果 4 输入 一个算法中可以没有输入 也可以有一个或多个输入信息5 输出 一个算法应有一个或多个输出 算法的特性 一 自然语言与伪代码表示算法自然语言就是指人们日常使用的语言 可以是汉语 英语或其它语言 伪代码是用介于自然语言和计算机语言之间的文字和符号 包括数学符号 来描述算法 二 算法的表示 例的伪代码表示如下 Begin 算法开始 输入A B CIFA B则A Max否则B MaxIFC Max则C MaxPrintMaxEnd 算法结束 例 输入三个数 然后输出其中最大的数 算法可以写成 1 输入A B C 2 若A B 则MAX A 否则MAX B 3 若C MAX 则MAX C 4 输出MAX MAX即为最大数 结构化程序的算法描述 1 常用的流程符号l起止框 表示算法的开始和结束 l处理框 表示初始化或运算赋值等操作 l输入输出框 表示数据的输入输出操作 l判断框 表示根据一个条件成立与否 决定执行两种不同操作中的其中一个 l流程线 表示流程的方向 二 用流程图表示算法 用流程图表示如下图所示 例 输入三个数 然后输出其中最大的数 三 用N S流程图表示算法 C语言中实现顺序结构的语句 赋值语句 变量声明语句 符号常量声明语句等 三 赋值语句 赋值语句是由赋值表达式再加分号构成的表达式语句 其一般形式为 变量 表达式 1 赋值符 右边的表达式可以又是一个赋值表达式因此 下述形式是正确的 变量 变量 表达式 其展开之后的一般形式为 变量 变量 表达式 例如 a b c d e 5 按照赋值运算符的右结合性 因此实际上等效于 e 5 d e c d b c a b 2 注意变量说明中给变量赋初值和赋值语句的区别 给变量赋初值是变量说明的一部分 赋初值后的变量与其后的其它同类变量之间仍必须用逗号间隔 而赋值语句则必须用分号结尾 3 在变量说明中 不允许连续给多个变量赋初值 如下述说明是错误的 inta b c 5 必须写为inta 5 b 5 c 5 而赋值语句允许连续赋值 4 注意赋值表达式和赋值语句的区别 赋值表达式是一种表达式 它可以出现在任何允许表达式出现的地方 而赋值语句则不能 下述语句是合法的 if x y 5 0 z x 下述语句是非法的 if x y 5 0 z x 说明 右边的表达式可以是变量 常量 函数调用等表达式 5 语句中的 称为赋值号 它不同于数学中的等号 如A A 1在数学中是不成立的 但在程序设计中表示取变量A单元中的值 将其加1后 仍然放回到A变量的存储单元 6 赋值符号 左边一定只能是变量名 不能是常量 符号常量 表达式 例如 z x y 是合法的 下面的赋值语句都是错的 5 x 左边是常量 sin x 20 左边是函数调用 即是表达式 7 赋值符号 两边的数据类型一般要求应一致 如果两边的类型不同 则以左边变量或对象属性的数据类型为基准 如果右边表达式结果的数据类型能够转换成左边变量或对象属性的数据类型 则先强制转换后 赋值给左边的变量 若都是数值型 但精度不同 强制转换成左边变量的数据精度 例如 有定义intx floaty x 3 5415926 取其整数赋值给x x的值为3 y 123 将整数123转换实数123 0 赋值给y 执行后 y的值是123 0 小数点补六个0 数据输入 输出的概念 内存 RAM 从键盘将数据输入 从数据文件读入 将数据输出到屏幕 将数据输出到文件 数据输入 输出是相对计算机内存 在 语言中所有的数据输入 输出都是由库函数完成的 因此都是函数语句 在C语言中使用库函数时 要使用预编译命令 include将相关的头文件 h 包含到用户源文件中 使用形式 include 头文件 或 include 说明 1 标准输入 输出头文件是 stdio h2 printf 和scanf 函数不需要头包含文件3 常用的输入输出函数有 printf scanf putchar getchar 四 数据格式输入 scanf 函数 scanf 的功能 从键盘上输入数据 该输入数据按指定的输入格式被赋给相应的输入项 函数一般格式为 scanf 控制字符串 输入项地址列表 控制字符串规定数据的输入格式 其内容由格式说明和普通字符两部分组成 输入项地址列表由一个或多个变量地址组成 各变量地址之间用逗号 分隔 scanf 中各变量要加地址操作符 表示如下 变量名 scanf d d c 控制字符串的两个组成部分 格式说明和普通字符 1 格式说明格式说明规定输入项中的变量以何种类型的数据格式被输入 形式是 各个格式字符及其意义见表3 3 各修饰符是可选的 这些修饰符是 1 字段宽度 2 l和h 可与d o x一起使用 l表示输入数据为长整数 h表示输入数据为短整数 3 字符 表示按规定格式输入但不赋予相应变量 作用是跳过相应的数据 例 scanf 3d a 输入123456 按宽度 输入一个整数123赋给变量a 例 scanf ld hd x i x按长整型读入 i按短整数读入 例如 scanf d d d x y z 执行该语句 若输入为 结果为x 1 y 3 z未赋值 被跳过 EX3 11 C includemain intx y scanf 2d 3d 4d 2 普通字符普通字符包括空格 转义字符和可打印字符 1 空格在有多个输入项时 一般用空格或回车作为分隔符 若以空格作分隔符 则当输入项中包含字符类型时 可能产生非预期的结果 2 可打印字符 例如 scanf d c a ch 输入32q期望a 32 ch q 但实际上 分隔符空格被读入并赋给ch 例如 scanf d d c 当输入为 1 2 q即 a 1 b 2 ch q若输入为12q除a 1正确赋值外 对b与ch的赋值都不能正确赋值 这些不打印字符应是输入数据分隔符 scanf在读入时自动去除与可打印字符相同的字符 使用scanf函数还必须注意以下几点 1 scanf函数中没有精度控制 如 scanf 5 2f 则输入应为a 5 b 6 c 7 五 数据格式输出 printf 函数 格式化输出函数printf 功能 按控制字符串规定的格式 向输出设备输出各输出项其基本格式为 printf 控制字符串 输出项列表 输出项可以是常量 变量 表达式 其类型与个数必须与控制字符串中格式字符的类型 个数一致 当有多个输出项时 各项之间用逗号分隔 控制字符串由格式说明和普通字符两部分组成 1 格式说明一般格式为 格式字符规定了输出项的输出格式 常用格式字符见表3 2 1 字段宽度修饰符该修饰符用于确定数据输出的宽度 精度 小数位数 对齐方式等 用于产生更规范整齐的输出 下表列出了字段宽度修饰符 例如 voidmain inta 123 floatx 12 345678 printf 5d 5 2f n a x printf 2d 2 1f n a x 程序的运行结果如下 说明 当指定宽度小于数据的实际宽度时 对整数 按该数的实际宽度输出 对浮点数 相应小数位的数四舍五入 若度宽小于等于浮点数整数部分的宽度 则该浮点数按实际位数输出 但小数位数仍遵守宽度修饰符给出的值 2 对齐方式修饰符一般的输出数据为右对齐格式 加 号 变为 左对齐 方式 例如 voidmain inti 123 floata 12 34567 printf 6d 10 4f n i a printf 6d 10 4f n i a printf 6d 10 4f n i a 程序运行结果如图所示 3 l和h可以与输出格式字符d f u等连用 以说明是用long型或short型格式输出数据 如 hd短整型 lf双精度型 ld长整型 hu无符号短整型 2 普通字符普通字符包括可打印字符和转义字符 可打印字符是一些说明字符 这些字符按原样显示在屏幕上转义字符是不可打印的字符 它们其实是一些控制字符 控制产生特殊的输出效果 常用的有 t n 其中 t为水平制表符 作用是跳到下一个水平制表位 n 为回车换行符 遇到 n 显示自动换到新的一行 例如 voidmain inti 123 longn 456 floata 12 34567 y 20 5 printf d 4d ta 7 4f n tn ld n i a n printf y 5 2f n y 程序运行的输出结果 注意 1 输出项从右向左计算后 按格式说明的顺序 类型和要求对应输出 格式说明和输出项的个数类型应相同 如不匹配系统不能正确输出 格式说明的个数少于输出项个数 多余的输出项将不输出 格式说明的个数多于输出项个数 多余的格式说明将输出随机的值 整型数据按 f输出或者实型数据按 d输出 均出现输出错误结果 2 格式字符除X 表示输出的十六进制数用大写字母输出 E 表示输出的指数e用大写字母E输出 G 表示若选用指数形式输出 则用大写字母E输出 外 必须是小写字母 如 d不能写成 D 3 若想输出字符 则在格式字符串中用连续两个 表示 如 printf f 1 0 4 则输出 0 250000 注意 试编写求梯形面积的程序 数据由键盘输入 分析 设梯形上底为A 下底为B 高为 面职为 则S A B 2 程序如下 voidmain floata b h s printf pleaseinputa b h scanf f f f 六 字符数据非格式输入 输出函数 1 字符输入函数 getchar getchar 函数的格式 getchar getchar 函数的作用 从系统的输入设备键盘输入一个字符 从功能角度来看 scanf 函数可以完全代替getchar 函数 例 charc1 则c1 getchar 可使用等价语句 scanf c 说明 1 getchar 函数一次只能返回一个字符 即调用一次只能输入一个字符 2 程序第一次执行getchar 函数时 系统暂停等待用户输入 直到按回车键结束 如果用户输入了多个字符 则该函数只取第一个字符 多余的字符 包括换行符 n 存放在键盘缓冲区中 如果程序再一次执行getchar 函数 则程序就直接从键盘缓冲区读入 直到读完后 如果还有getchar 函数才会暂停 再次等待用户输入 2 字符输出函数 putchar putchar 函数的格式 putchar ch 该函数的功能是向显示器终端输出一个字符 其中 ch可以是一个字符变量或常量 也可以是一个转义字符 说明 1 putchar 函数只能用于单个字符的输出 且一次只能输出一个字符 2 从功能角度printf 函数可以完全代替putchar 函数 其等价形式 printf c ch 例输入一个字符 回显该字符并输出其ASCII码值 includevoidmain charch1 ch2 ch1 getchar ch2 getchar putchar ch1 putchar ch2 printf c n c ch1 ch2 程序运行后 若ch1 ch2分别得到字符A B 应输入AB 如果输入A 则实际上ch1被赋值为字符A ch2被赋值为字符换行符 n 例3 16 从键盘上输入一个英文小写字母 编程输出该字母所对应的ASCII码和所对应的大写字母 分析 在ASCII字符集中 大写字母A Z是连续的 ASCII值从65 90 小写字母a z也是连续的 ASCII值从97 122 因此每对字母的ASCII码值差是相同的 都是32 即 a A b B c C z Z 都是32 所以将小写字母的ASCII码值减去32 则得到的是所对应的大写字母ASCII码值 同理 将大写字母的ASCII码值加上32 则得到的是所对应的小写字母ASCII码值 上机内容 第2章课后习题 其中读程序写运行结果题要上机验证 P44例3 15 例3 17 例3 18 例3 19 例3 20
展开阅读全文
相关资源
相关搜索

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


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

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


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