顺序程序设计2.ppt_第1页
顺序程序设计2.ppt_第2页
顺序程序设计2.ppt_第3页
顺序程序设计2.ppt_第4页
顺序程序设计2.ppt_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第四章顺序程序设计 结构化程序包含三种基本结构即 顺序结构分支结构循环结构 在计算机系统中 按一定的顺序执行的语句系列构成顺序结构 在顺序结构中 语句是从上至下顺序执行的 如果执行的顺序发生变化 则执行的结果也可能会发生变化 4 1顺序执行语句 C语句 以 作分隔符 编译后产生机器指令 C语言中 程序是由若干条语句组成的 每条语句以分号 结尾 从上至下顺序执行的 语句有三种 表达式语句函数调用语句复合语句 4 1 1表达式语句 构成 表达式加分号 如12 5 8 y 12 a 20 b 12 赋值语句 数值表达式语句 逻辑表达式语句 赋值语句 调用函数带分号作为一个单独的语句 此语句被称为函数调用语句 被调用的函数可以是C的标准库函数 也可以是用户自定义函数 标准库函数调用语句如下 scanf f f f printf Thearea f n x y 4 1 2函数调用语句 4 1 3复合语句 用法 用 括起来的一组语句一般形式 数据说明部分 执行语句部分 说明 后不加分号语法上和单一语句相同复合语句可嵌套例 z x y t z 100 pritnf f t 例4 4 inta 10 b 20 变量定义语句 floatz 变量定义语句 z x y 执行语句 printf z f n x y 执行语句 复合语句可以出现在程序的任何位置 它是一个整体 相当于一条语句 在很多情况下 C语言的控制语句针对一条语句操作 如后面第5章的if语句 第6章的for语句 while语句等 而一条语句远远不足以描述我们要解决的问题 此时 就需要把多条语句用 对括起来形成一个复合语句 这样 既能表达出我们要解决的问题 又符合C语言的语句语法规定 空语句 程序控制语句 9种 其它语句 4 1 3C语言程序的一般结构及书写规则 预处理命令部分 include主函数部分自定义函数部分 预处理命令部分由若干预处理命令组成 这些预处理命令一般以 开头 C语言程序被编译之前 C的编译系统先用它的预处理程序对这些特殊的命令进行处理 再将处理结果和程序一起进行通常的编译处理以得到目标代码 include头文件main 变量声明或自定义函数说明 语句序列 返值类型自定义函数名 参数表 自定义函数体 C语言程序的一般结构 由于主函数要调用自定义函数 而自定义函数又书写在主函数之下 所以 在主函数的 内的开始处必须存在对自定义函数的说明语句 例4 2 includemain intx 10 y 20 z voidshow int int 对将要调用的自定义函数的说明 show x y 用户自定义函数调用语句 voidshow inta intb 用户自定义函数 printf a db d n a b 若主函数调用自定义函数 而自定义函数书写在主函数之上 则在主函数的 内不需要书写对自定义函数的说明语句而可直接调用 例4 3 includevoidshow inta intb 用户自定义函数 printf a db d n a b main intx 10 y 20 voidshow int int 对要调用的自定义函数的说明可缺少 show x y 用户自定义函数调用语句 实际上 在C语言中 若函数A 可能是主函数 可能是用户自定义函数 调用函数B 当函数B处在函数A之下时 则函数A中必有对函数B的说明语句 否则系统出错 当函数B处在函数A之上时 则函数A中不需有对函数B的说明语句 4 2数据输入与输出在 中的实现C语言无I O语句 I O操作由函数实现 include数据输出字符输出函数putchar c 数据输入字符输入函数getchar 格式 变量名 getchar 或getchar 功能 等待用户从键盘输入一个标准字符给计算机 输入一个字符后 程序继续向下执行 说明 在两种格式中 变量名 getchar 格式用得最多 它表示输入的字符送给变量保存 而格式getchar 表示输入的字符送给计算机 没有具体接受变量 相当于程序执行到此处时 计算机系统暂停 等待用户输入一个字符后 程序继续向下执行 实际编程中有时采用后一种方式有意让程序在某处暂停 以便用户看清计算机输出的有关信息或作某些思考后 再按任意键往后继续执行程序 1 getchar 函数的使用 格式 getchar 功能 从键盘读一字符返值 正常 返回读取的代码值 出错 返回EOF 1 例 ch3 4 c includemain intc printf Enteracharacter c getchar printf c hex x n c c 运行结果 Enteracharacter A A hex41 1 getchar 函数的使用 2 putchar 函数的使用格式 putchar 字符型参数 参数 c为字符常量 变量或表达式功能 将字符型参数表示的字符显示于屏幕当前光标处 说明 注意该函数带有一个字符型的参数 而getchar 函数没有参数 返值 正常 为显示的代码值 出错 为EOF 1 ch3 1 c includemain intc chara c 65 a B putchar c putchar n putchar a 运行结果 AB 例 例4 5 字符输入输出函数应用示例 includemain charch 定义字符变量ch printf Inputacharacter 输出一行提示 ch getchar printf nThecharacteryouinputis n putchar ch Inputacharacter kThecharacteryouinputis k 4 2 2 字符串的输入输出函数gets puts gets 用来从键盘输入一个字符串给计算机 puts 函数向屏幕输出一个指定的字符串内容 1 gets 函数的使用格式 gets 字符型数组名或字符型指针名 功能 等待用户从键盘输入一个字符串给计算机 输入的字符串内容由字符型数组名或字符型指针名指示内存空间以存放 完毕后 程序继续向下执行 说明 从键盘输入的字符串内容可以含有空格 按回车键则结束串的输入 在常用的格式输入函数scanf 用法中 scanf 也可用来输入字符串 但串中不能有空格 因为按空格或回车键时 串的输入就结束了 2 puts 函数的使用格式 puts 字符型数组名 puts 字符型指针名 puts 字符串常量 功能 将字符型数组名或字符型指针名指示的内存空间存放的字符串内容显示于屏幕当前光标处 例2 char sp puts sp 例3 puts program 注意与putchar的区别 putchar g 例1 charstr 25 puts str 例4 6 字符串输入输出函数应用示例 CH3 6 C includemain charstr 25 char sp printf Inputthefirststring gets str puts str printf inputthesecondstring gets sp puts sp 程序运行如下 加下划线的部分为用户输入内容 Inputthefirststring Cprogramdesigning Cprogramdesigninginputthesecondstring Howareyou Howareyou 格式 printf 格式控制串 输出表 功能 按指定格式向显示器输出数据返值 正常 返回输出字节数 出错 返回EOF 1 格式输出函数 输出表 要输出的数据 可以没有 多个时以 分隔 格式控制串 包含两种信息格式说明 修饰符 格式字符 用于指定输出格式普通字符或转义序列 原样输出格式字符 inta 567 printf d a inta 567 printf x a inta 65 printf o a inta 567 printf u a chara 65 printf c a printf s ABC floata 567 789 printf e a floata 567 789 printf f a floata 567 789 printf g a printf 567 237 1067 567 A ABC 5 677890e 02 567 789000 567 789 说明格式字符要用小写格式字符与输出项个数应相同 按先后顺序一一对应输出转换 格式字符与输出项类型不一致 自动按指定格式输出 例main unsignedintu 65535 printf u d n u 输出结果 u 1 例inta 3 b 4 printf d d n a b printf a d b d n a b 例inta 3 b 4 printf d d n a b printf a d b d n a b 输出结果 34a 3 b 4 附加格式说明符 修饰符 例inta 1234 floatf 123 456 charch a printf 8d 2d n a a printf f 8f 8 1f 2f 2e n f f f f f printf 3c n ch 运行 1234 1234结果 123 456000 123 456000 123 5 123 46 1 23e 02 a 例staticchara Hello world printf s n 15s n 10 5s n 2 5s n 3s n a a a a a 运行结果 Hello world Hello world HelloHelloHel 例m n 例inta 1234 floatf 123 456 staticcharc Hello world printf 8d 8d n a a printf 10 2f 10 1f n f f printf 10 5s 10 3s n c c 运行结果 1234 1234 123 46 123 5 Hello Hel 例 例inta 1234 floatf 123 456 printf 08d n a printf 010 2f n f printf 0 8d n a printf 0 10 2f n f 例0 例inta 123 printf o o X X n a a a a 例 例longa 65536 printf d 8ld n a a 例l 00001234 0000123 46 000 1234 000 123 56 173 0173 7B 0X7B 0 65536 格式输入函数 格式 scanf 格式控制串 地址表 功能 按指定格式从键盘读入数据 存入地址表指定的存储单元中 并按回车键结束返值 正常 返回输入数据个数 地址表 变量的地址 常用取地址运算符 格式字符 d i o x u c s f e 例scanf d 输入 10 则a 10 例scanf x 输入 11 则a 17 附加格式说明符 修饰符 例scanf 4d 2d 2d 输入19991015 则1999 yy 10 mm 15 dd 例scanf 3d 4d f 输入12345678765 43 则123 k 8765 43 f 例scanf 2d 3d 2d 输入12 345 67 则12 a 67 b 例scanf 3c 2c 输入abcde 则 a c1 d c2 输入分隔符的指定一般以空格 TAB或回车键作为分隔符其它字符做分隔符 格式串中两个格式符间字符 例scanf d o x 输入123123123 输出a 123 b 83 c 291 例scanf d d d 输入12 30 45 则12 h 30 m 45 s 例scanf d d a b 输入3 4 则3 a 4 b 例scanf a d b d c d 输入a 12 b 24 c 36 说明 用 c 格式符时 空格和转义字符作为有效字符输入 如scanf c c c 若输入a b c 则a c1 c2 b c3 如scanf d c f 若输入1234a123o 26 则1234 a a b 123 c 例intx charch scanf d 执行 123 输出 x 123 ch 10 例intx charch scanf d 执行 123 输出 x 123 ch 10 解决方法 1 用getchar 清除 2 用函数fflush stdin 清除全部剩余内容 3 用格式串中空格或 c 来 吃掉 例intx charch scanf d 程序举例 ch3 12 c include includemain floata b c s area scanf f f f 例输入三角形边长 求面积 输入 3 4 6 输出 a 3 00 b 4 00 c 6 00s 6 50area 5 33 例从键盘输入大写字母 用小写字母输出 ch3 13 c include stdio h main charc1 c2 c1 getchar printf c d n c1 c1 c2 c1 32 printf c d n c2 c2 输入 A 输出 A 65a 97 ch3 14 c include includemain floata b c disc x1 x2 p q scanf a f b f c f 输入 a 1 b 3 c 2 输出 x1 1 00 x2 2 00 预备知识计算机中数的表示及进制转换数码 基与权数码 表示数的符号基 数码的个数权 每一位所具有的值数制 各种进制之间的转换二进制 八进制 十六进制转换成十进制方法 按权相加 各种进制之间的转换 整数 二进制 八进制 十六进制转换成十进制方法 按权相加 十进制转换成二进制 八进制 十六进制原理 方法 连续除以基 从低到高记录余数 直至商为0 二进制与八进制之间的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论