已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 第四章顺序程序设计 4 1C语句概述C程序结构如图所示 C程序 源程序文件1 源程序文件2 源程序文件3 预处理命令 全局变量声明 函数1 函数n 函数首部 函数体 局部变量声明 执行语句 2 4 1C语句概述 简单语句 空语句 复合语句 一条或多条语句 表达式语句 表达式 函数调用语句 函数名 参数表 流程控制语句 结构化语句 条件语句 if语句 switch语句 while语句 do while语句 for语句 非结构化语句 break语句 continue语句 return语句 非限定转向语句 goto C语言数据操作语句 循环语句 3 C语言可以分为以下5类 1 控制语句 完成一定的控制功能 C只有9种控制语句 1 if else 条件语句 2 for 循环语句 3 while 循环语句 4 do while 循环语句 5 continue 结束本次循环语句 6 break 中止执行switch或循环语句 7 switch 多分支选择语句 8 goto 转向语句 9 return 从函数返回语句 上述句子中 表示一个条件 表示内嵌的语句 例如 if x y z x elsez y 4 2 函数调用语句 由一次函数调用加一个分号构成一个语句 例如 printf ThisisaCstatement 3 表达式语句 由一个表达式构成一个语句 例如 a a 3 注意 a a 3是表达式不是语句 4 空语句 即只有一个分号的语句 通常用来作转向点或循环语句中的循环体 5 可以用 把一些语句括起来成为复合语句 又称分程序 例 z x y t z 100 printf f t 注意最后一句中最后的分号不能忽略不写 5 4 3数据输入输出的概念及在C语言中的实现 C语言本身不提供输入输出语句 输入输出是由函数来完成的 C语言函数库中有一批 标准输入输出函数 它是以标准的输入输出设备为输入输出对象的 其中有 putchar 输出字符 getchar 输入字符 printf 格式输出 scanf 格式输入 puts 输出字符串 gets 输入字符串 在使用C语言库函数时 要用预编译命令 include 将有关 头文件 包括到用户源文件中 在头文件中包含了与用到的函数有关的信息 例如 使用标准输入输出库函数 要用到 stdio h 例如 include stdio h 或者 include 6 4 4字符数据的输入输出 4 4 1putchar函数 字符输出函数 格式 putchar c 作用 向终端输出一个字符 c c可以是字符型变量或整型变量 例4 1 输出单个字符 includemain chara b c a B b O c Y putchar a putchar b putchar c 结果为 BOY 7 4 4 2getchar函数 字符输入函数 格式 getchar 作用 从终端输入一个字符 例4 2 输入单个字符 includemain charc c gechar putchar c 结果为输出一个字符 屏幕上马上看到输入的字符 注意了 1 putchar和getchar都只能输入或输出一个字符 2 使用前一定要在函数前面加上 include 8 4 5格式输入与输出 4 5 1printf函数 格式输出函数 1 一般格式 printf 格式控制 输出表列 例如 printf a d b c i c 括弧内包括两部分 1 格式控制 用双引号括起来的字符串 它包括 格式说明 由 和格式字符组成 如 d f等 作用是将输出的数据转换为指定的格式输出 普通字符 即需要原样输出的字符 如上式中的a 逗号 空格b 2 输出表列 是需要输出的一些数据 可以是表达式 9 例 printf a d b c i c 格式说明 格式说明 输出表列 2 格式字符常用的格式字符有 1 d格式字符 用来输出十进制整数 常用方法有 1 d按整型数据的实际长度输出 2 mdm为指定的输出字段的宽度 如果数据的位数小于m 则左端补以空格 若大于m 则按实际位数输出 例 a 123 d 12345输出123 12345 10 3 ld 输出长整型数据 例 longa 135790 printf ld a 如果用 d输出 就会发生错误 因为整型数据的范围为 32768 32767 Long型数据应采用 ld格式输出 2 O格式符 将内存单元中的各位的值按8进制形式输出 如果是有符号数 也将符号位也一起作为八进制数的一部分输出 例 inta 1 printf d 0 a a 结果为 1 177777 11 3 X格式符 以十六进制数形式输出整数 同样不会出现负的十六进制数 例 inta 1 printf x O d a a a 输出结果 ffff 177777 1 4 u格式符 用来输出unsigned型数据 以十进制形式输出 5 C格式符 用来输出一个字符 例 charc a printf c c 输出结果 a 注意 第二句两个c c不同 12 一个整数 只要它的值在0 127范围内 也可以用字符形式输出 在输出前 系统会将该整数作为ASCII码转换成相应的字符 反之 一个字符数据也可以用整数形式输出 例4 4字符数据的输出 main charc a inti 97 printf c d n c c printf c d n i i 运行结果 a 97a 97 13 6 s格式符 用来输出一个字符串 有几种用法 1 s 例如 printf s CHINA 输出CHINA字符串 不包括双引号 2 ms 输出的字符串占m列 如字符串本身长度大于m 则突破m的限制 将字符串全部输出 若串长小于m 则左补空格 3 ms 如果串长小于m 则在m列范围内 字符串左靠 右补空格 4 m ns 输出占m列 但只取字符串左端n个字符 这n个字符输出在m列的右侧 左补空格 5 m ns 输出占m列 但只取字符串左端n个字符 这n个字符输出在m列的左侧 右补空格 如果n m 则m自动取n值 保证n个字符正常输出 14 例4 5字符串的输出main printf 3s 7 2s 4s 5 3s n CHINA CHINA CHINA CHINA 输出的结果为 CHINA CH CHIN CHI 7 f格式符 用来输出实数 包括单 双精度 以小数形式输出 1 f 不指定字段宽度 由系统自动指定 使整数部分全部如数输出 并输出6位小数 注意 单精度实数的有效位数一般为7位 15 例4 6输出实数时的有效位数main floatx y x 111111 111 y 222222 222 printf f x y 运行结果 333333 328125显然 前面7位数字为正确的有效的数字 而后面的5位为不准确的 双精度实数也可用 f格式输出 它的有效位数一般为16位 小数为6位 16 2 m nf指定输出的数据共占m列 其中有n位小数 如果数值长度小于m 则左端补空格 3 m nf指定输出的数据共占m列 其中有n位小数 如果数值长度小于m 则右端补空格 例4 8 输出实数时指定位数 main floatf 123 456 printf f 10f 10 2f 2f 10 2f n f f f f f 结果 123 456001 123 456001 123 46 123 46 123 46 注意 小数点也占一位 17 8 e格式符 以指数形式输出实数 1 e不指定输出数据所占的宽度和数字部分小数位数 由系统自动指定给出6位小数 指数部分5位 之中 e 占1位 指数符号占1位 指数占3位 数值按规范化指数形式输出 例 printf e 123 456 输出 1 234560e 0022 m ne和 m ne参见 7 此处n 指拟输出的数据的小数部分的小数位数 例 若f 123 456printf 10e 10 2e 结果为 1 234560e 002 1 23e 002 突破10个字符的限定 连同最右空格共10个字符 18 9 g格式符用来输出实数 它根据数值的大小 自动选f格式或e格式 选择输出时占宽度较小的一种 且不输出无意义的零 printf函数使用的注意事项 1 除了X E G外 其他格式字符必须用小写字母 2 一个格式说明以 开头 以d o x u c s f e g等字符之一为结束 中间可以插入附加格式字符 3 如果想输出字符 符号 则应该在 格式控制 字符串中用连续的两个 表示 如 printf f 1 0 3 输出 0 333333 19 4 5 2scanf函数 格式输入函数 1 一般形式scanf 格式控制 地址表列 说明 格式控制 的含义同printf函数 地址表列 是由若干个地址组成的表列 可以是变量的地址 或字符串的首地址 例4 9用scanf函数输入数据main inta b c scanf d d d 20 运行时按以下方式输入a b c的值 3 4 5 输入a b c的值 3 4 5 输出a b c的值 程序运行过程 1 按照a b c在内存的地址将a b c的值存进去 2 然后再按照a b c在内存的地址将a b c的值取出来 scanf d d d printf d d d n a b c 21 注意 本例中 d d d 表示按十进制整数形式输入数据 输入数据时 在两个数据之间以一个或多个空格间隔 也可以使用回车键 跳格键tab 但是不能使用逗号作为分隔符 合法输入有 1 3 4 52 3 4 53 34 54 3 按tab键 4 5如果输入格式为 d d d 则用逗号作为分隔符 合法输入为 3 4 5 22 如果在 格式控制 字符串中除了格式说明以外还有其他字符 则在输入数据时应输入与这些字符相同的字符 如果输入格式为 d d d 则用逗号作为分隔符 合法输入为 3 4 5 如果输入格式为 d d d 则用逗号作为分隔符 合法输入为 3 4 5 23 2 格式说明和printf函数中的格式说明相似 以 开始 以一个格式字符结束 中间可以插入附加的字符 具体说明可参见P80表4 3 说明 1 对unsigned型变量所需的数据 可以用 u d或 o x格式输入 2 可以指定输入数据所占列数 系统自动按它截取所需数据 如 scanf 3d 3d 输入 123456则 a 123b 456 24 3 如果 后有一个 附加说明符 表示跳过它指定的列数 例如scanf 2d 3d 2d 是不合法的 这点与printf不同 需要注意 25 3 使用scanf函数时应注意的问题scanf函数中的 格式控制 后面应当是变量地址 而不是变量名 这点与其他高级语言都有所不同 一定注意 错误例 scanf d d a b 26 3 在用 C 格式输入字符时 空格字符和 转义字符 都作为有效字符输入 scanf c c c 如果输入 a b c则 c1 a c2 c3 b4 在输入数据时 遇以下情况时该数据认为结束 1 遇空格 或按 回车 或 跳格 Tab 键 2 按指定的宽度结束 如 3d 只取3列 3 遇到非法输入 例 scanf d c f a b c 输入 123 p123o 26结果为 a 123 b p c 12
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 米面主食制作工操作管理测试考核试卷含答案
- 2026年医院行风建设专题培训课件
- 2026年针刺伤防护与职业暴露处置课件(含案例分析)
- 水路危险货物运输员岗前测试验证考核试卷含答案
- 真空电子器件金属零件制造工创新意识评优考核试卷含答案
- 2026年临床药师工作规范课件(学习辅导版)
- 味精原料粉碎工岗位专业能力考核试卷含答案
- 仲钼酸铵制备工岗位规划考核试卷含答案
- 实验测试员安全实操模拟考核试卷含答案
- 护工岗前工作规范考核试卷含答案
- FDE模式行业观察与实践
- HL1ST601-2023 钢结构焊接连接节点通 用图B册 (Q355钢)
- APQC跨行业流程分类框架 (8.0 版)( 中文版-2026年4月)
- 2025年劳动人事争议仲裁员培训考试试题及答案
- STEM教育与跨学科整合
- TB-T 3356-2021铁路隧道锚杆-PDF解密
- 农药生产经营使用检查表
- 母婴初级理论知识考核试卷
- 母婴护理理论知识考核试卷
- 《幼儿园课程概论》课件-第一章 幼儿园课程概述
- 膀胱阴道瘘修补术后护理查房
评论
0/150
提交评论