




已阅读5页,还剩86页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第四章顺序程序设计 数据的输入数据的输出顺序程序设计举例 4 1C语句概述 语句 向计算机发出的操作命令 程序 为完成某一特定功能而编写的语句序列 C程序特点 C程序由若干函数组成 每个函数由数据定义部分和执行语句组成 C语句共分五类 控制语句表达式语句函数调用语句空语句复合语句 1 控制语句 if else for while do while continuebreakswitchgotoreturn if x y z x elsez y 条件 语句 2 表达式语句 一般形式 表达式 a 34a 34 x x y 赋值语句与赋值表达式if a b 0 x a if a b 0 x a 3 函数调用语句 一般形式 函数名 实参表 如 max2 a b printf ABC sin 0 157 4 空语句 语句只包含一个分号 5 复合语句 一般形式 语句1 语句2 语句n 如 if x y sum sum x y x elsey 0 说明 相当于一个语句最后一个语句末尾的分号不可省 书写格式 无固定要求 一行多句a 3 b 5 x a b 一句多行printf d d n a b C语言不提供输入输出语句 其输入输出操作是由函数来实现的 本章介绍四个最基本的输入输出函数 1 printf函数2 scanf函数 格式输出函数 格式输入函数 3 putchar函数4 getchar函数 字符输出函数 字符输入函数 格式输入输出函数是指可以按给定的格式 在标准输入输出设备上进行输入和输出的函数 包括 printf函数scanf函数 4 2 格式输出函数printf 一 printf函数的一般形式 printf 格式控制 输出表列 格式控制给出输出控制格式 输出表列是一个表达式表 要输出的数据 printf函数的功能 向终端输出若干各种类型数据 对不同类型的数据要用不同的格式字符 格式控制 参数要放在双引号内 二 格式字符及用法 1 d格式符 输出十进制数 1 d 按十进制整数的实际长度输出 2 md 指定域宽m 指定输出的位数 宽度 当数据的长度大于m时 按数据的实际长度输出 当数据的长度小于m时 左面补空格 若x 32 5d md 左对齐若x 32 5d 3 ld 输出长整型数据int short2字节32768 32767long4字节 21亿 dinta 3200032000longc 8000014464 2 o格式符 以八进制形式输出整数 输出数值不带符号 x 17 o 21y 45 o 55如 inta 17 printf o d a a 输出为 21 17 3 x X格式符 以十六进制形式输出x 17 x 11y 45 x 2d如 inta 45 printf x d a a 输出为2d 45 4 u格式符 以无符号十进制形式输出unsignedinta 65535 printf u d a a 输出为 65535 1 5 c格式符 输出单个字符main charx a inty 97 printf c d n x x printf c d n y y 可指定域宽 mc一个整数 只要它的值在0 255范围内 也可用字符型式输出 同样 一个字符数据也可用整数形式输出 6 s格式符 输出一个字符串 1 s 输出字符串 printf s china china 2 ms 输出的字符串占m位 如字符串大于m位 则按实际位数输出 若字符串小于m位 则左补空格 ms 为右补空格 7s china 7s china 6 s格式符 输出一个字符串 3 m ns 共占m位 取左端开始取n个字符且向右靠 左补空格 m ns n个字符向左靠 右补空格 7 2s ch 3s chi只指定n 未指定m时 按m n处理 S格式符举例 1 printf s goodmorning goodmorning 2 printf 8s goodmorning goodmorning 3 printf 15s goodmorning goodmorning 4 printf 8 4s goodmorning good5 printf 8 4s s goodmorning good good good 7 f格式符 以小数形式输出单 双精数 f 不指定长度 由系统自动指定 整数部分全部输出 小数部分六位 lf double如 s 2 5 printf f s 其输出结果是 2 500000 2 m nf 指定域宽和精度指定输出数据共占m位 小数点占一位 其中小数为n位 若数值长度小于m 左端补空格 m nf 表示输出数值向左对齐 右端补空格 3 0m nf 数字前空位补0main floatf 123 456 printf f 10 2f 10 2f 8f f f f f 8 e格式符 以指数形式输出 1 e 由系统自动指定给出5位小数 指数部分占4位 floata 123 4567 e1 23457e 02四舍五入5位4位 8 e格式符 以指数形式输出 2 m ne m ne m是总的输出位数 n是数值部分中小数的位数 若 f 123 456printf 10 2e 10 2e f f 输出结果是 1 2e 02 1 2e 02 9 g格式符 以e和f中较短的一种输出 不输出无意义的零 输出实数 根据数值的大小自动选择f格式或e格式中输出宽度较小的那一种 且不输出无意义的零 a 123 456 printf g e f n a a a 123 456 1 23456e 02 123 456001 参数说明 printf a d a b d n a a b 格式说明普通字符输出项列表格式控制参数 格式字符 将输出的数据转换为指定的格式输出 普通字符 原样输出 如空格 逗号 换行符 0m nl h格式字符 三 printf函数中的输出表列 是可选的 输出表列 中各项可以是常量 变量或表达式 输出多个数据时 用逗号分隔 输出项数据类型必须与格式符指定的数据类型一致 输出列表 为表达式时 按右结合性顺序进行各表达式的求值 printf函数中的输出表列 输出项列表 为表达式时 按右结合性顺序进行各表达式的求值 例 设a 5printf d d d n a 5 a 2 5 a 输出的结果是 13 8 0 四 说明 除X E G外 其他格式字符必须小写 格式说明以 开头 d o x u c s f e g结尾 格式控制字符串中的其他字符 printf f f c c n f c 原样输出 printf 可输出 分析输出结果 printf d n 34 printf 5d n 34 printf f n 123 45 printf 12f n 123 45 printf e n 123 45 printf 13e n 123 45 printf g n 123 45 分析输出结果 main inta 5 b 7 floatx 67 8564 y 789 124 charc A longn 1234567 unsignedu 65535 pintf d d n a b printf 3d 3d n a b printf f f n x y printf 10f 10f n x y printf 8 2f 8 2f 4f 4f n x y x y printf e 10 2e n x y printf c d o x n c c c c printf ld lo x n n n n printf u o x d n u u u u printf s 5 3s n COMPUTER COMPUTER 填空 121081317 1 已知整型变量a的值是10 执行函数语句 printf d d a a 其输出结果是 2 若函数语句改为 printf d d d a a 5 7 a 其输出结果是 以下语句的输出结果应为 floatx 342 82724 printf 4 2f n x A 输出格式描述符的域宽不够 不能输出B 输出342 83C 输出342 82D 输出 342 82 提供数据的方法 赋值语句 只能提供确定值 输入函数 通过键盘输入 给计算机提供多个 任意的数据 4 3 格式输入函数scanf 一 一般形式 scanf 格式控制 地址表列 格式控制 与printf中的含义相同 地址表列 是由若干地址组成的表列 地址表示方法 变量名3 scanf函数功能 将用户输入的数值存入变量 或字符串 的地址 H 地址表列 是由若干地址组成的表列 可以是变量的地址 或字符串的首地址 字符串的首地址用存放字符串的数组名表示 后面将要讲到 变量的地址用变量名前加地址运算符 来表示 如变量a的地址写作 a 二 格式控制参数 1 格式字符有d o x u c s f e 与格式输出函数中的含义相同int 用d x o u i描述float 用f e g描述char 用c描述字符串 用s描述2 scanf附加的格式说明符号 ml h格式字符 用于输入长整型数据 ld 以十进制型实输入长整型数 lo 以八进制型实输入长整型数 lx 以十六进制型实输入长整型数 用于输入双精度实型数据 lf le 用于输入double型实型数据 l格式说明符的作用 用于输入短整型数据 hd 以十进制型实输入短整型数 ho 以十进制型实输入短整型数 hx 以十六进制型实输入短整型数 h格式说明符 m 域宽说明符 用来指定输入数据所占的列数 m是正整数 scanf 2d 3f 3d 若运行时输入1234567890 则按指定宽度截取 a 12 b 345 000000 c 67890被舍弃 123 4567890 a 12 b 3 400000 c 567 scanf 4c 输入 book a b 赋值抑制符 与 对应位置的输入项不赋给相应的变量而被忽略 scanf 2d 3d 4f 输入 1234567 890 x 12 y 67 800000 2 输入数据的分隔 根据格式项中指定的域宽分隔数据scanf 2d 3f 3d 输入 1234567890a 12b 345 000000c 678d 90 scanf 格式控制参数 地址列表 变量地址格式说明项输入分隔符 使用分隔符 使用分隔符 a 默认分隔符scanf d d d 等待a 2b 3c 5输入235默认分隔符 空格回车Tab键 b 自己指定分隔符 1 scanf d d 输入应为 a 123 b 456 格式字符串中的普通字符必须原样输入 提示输入 应使用另外的printf语句 据格式符含义截取 当输入流中数据类型与格式字符要求不符时 认为这一数据项结束 scanf d c f 输入 123b456 789x 123y b z 456 789输入 123book789x 123y b z 不确定 三 scanf函数执行中应注意的问题 格式控制参数后接变量地址 而非变量名 输入数据时不能规定精度 不能对实型数指定小数位宽度 如 scanf 5 2f 不合法 若格式控制字符串中除了格式说明之外还有其他的字符 则在输入数据时应输入与之相同的字符 如 scanf d d 用 c格式符时 空格 转义字符都作为有效字符输入 scanf c c c a b c 输入 x y za x b c y 输入数据时 遇以下情况时该数据认为结束 空格 回车或跳格宽度结束非法输入scanf d c f 输入 1234a123o 26则 a 1234b ac 123 4 4 字符输出函数putchar 1 函数的功能 向终端输出一个字符 2 格式 putchar 参数 3 参数 可为字符 整型变量 字符常量4 说明 putchar函数是在标准I O库中的一个函数 使用之前要将标准I O库中的头文件 stdio h 用一条预编译命令包含在源程序中 如 include include stdio h include stdio h main chara b c a B b O c Y putchar a putchar b putchar c 同样 putchar函数也可以输出转义字符putchar a putchar n putchar b putchar n putchar c putchar n 4 5 字符输入函数getchar 1 getchar函数的功能 从终端输入一个字符2 格式 getchar 不带参数3 include stdio h 4 函数值 所输入字符值注意 getchar函数没有参数 但后面的圆括号不能省略 getchar函数举例 include stdio h main charc c getchar putchar c 运行时等待用户输入字符 输入后回车 aa includemain charch1 ch2 ch1 getchar ch2 getchar if ch1 a 练习 1 若k1 k2 k3 k4均为int型变量 为将整数10赋给k1和k3 20赋给k2和k4 则对应下列语句的正确输入方式是 scanf d d A 1020B 10 20102010 20C 10 20D 10 2010 2010 20 2 若使用下述程序段将整数30和浮点数5 5分别赋给变量a和b 那么输入应为 inta floatb scanf a d b f A 30 5 5B a 30 b 5 5C 30 5 5D a 30 b 5 5 3 若ch为char型变量 k为int型变量 为将字符 c 赋给ch 整数555赋给k 正确的scanf函数调用语句和相应的数据输入是 A scanf 3c 3d 输入 abc 555 4 已定义intm charcc 若从键盘输入整数30和字符 分别赋给变量m和cc 正确的操作是 A scanf d d c 1030 已定义doublex 3 5 y 3 2 若按照f格式输出 则表达式 int x 0 5的值是 表达式y x 的值是 y x 相当于y x y y x 3 2 3 5 6 7x x 1 8 参数说明 printf a d a b d n a a b 格式说明普通字符格式控制参数输出项列表 格式字符 将输出的数据转换为指定的格式输出 普通字符 原样输出 如空格 逗号 换行符 0m nl h格式字符 printf函数中的输出表列 是可选的 输出表列 中各项可以是常量 变量或表达式 输出多个数据时 用逗号分隔 输出项数据类型必须与格式符指定的数据类型一致 输出列表 为表达式时 按右结合性顺序进行各表达式的求值 scanf 格式控制参数 地址列表 变量地址格式说明项输入分隔符 ml h格式字符 scanf函数 注意 格式控制参数后接地址 而非变量名输入数据时不能规定精度用 c格式符时 空格 转义字符都作为有效字符输入输入数据时 遇以下情况时该数据认为结束 空格 回车或跳格宽度结束非法输入scanf d c f 输入 1234a123o 26则 a 1234b ac 123 4 6 顺序程序设计 例 输入三角形的三边长 求三角形面积 过程 明确处理对象 根据数据特点和取值范围 确定变量名称及类型a b c s float 选择可靠 周全 实现方法尽量简单且速度较快的算法 进行相应的运算 处理 画流程图 根据流程图编写和调试程序 流程图 输入边长值 a b c且b c a且a c b s a b c 2area sqrt s s a s b s c 输出三角形面积 结束 流程线 不成立 成立 起止框 输入输出框 判断框 处理框 开始 输出 非三角形 includemain floata b c s area printf Pleaseinput3floats scanf f f f 例 从键盘输入一个大写字母 要求改用小写字母输出 过程 明确已知条件 确定变量名称及类型charc 进行相应的处理 ASCII值加32 将计算结果按所要求的格式输出 c 相关说明语句 include includemain charc1 c2 c1 getchar printf c d n c1 c1 c2 c1 32 printf c d
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 实习生实习协议及职业规划辅导与劳动权益保障服务合同
- 演出票务推广补充协议
- 核电站核安全操作员岗位全职聘用及职业资格认证合同
- 母婴用品店智能化设备与特色商品供应协议
- 动作捕捉数据采集与三维模型重建租赁合同
- 小红书店铺运营策略与品牌建设合作合同
- 商业街区户外广告位租赁合作协议
- 《侵袭性肺炎的临床诊断与治疗》课件
- 《手腕骨折的认识与处理》课件
- 食品安全课件比赛参赛指南
- 2024年台州市委统战部下属事业单位选聘笔试真题
- 山西太原事业单位考试《行测》模拟题带答案2024年
- 2025年中考英语第一次模拟考试(苏州卷)(原卷版)
- 福州一号线盾构法地铁工程整体施工组织设计
- 公务员考试-经济基础知识模拟题-计量经济学-协整与误差修正模型
- 资源与运营管理-第一次形考任务-国开-参考资料
- 五年级下册数学教案 - 8.1《复式条形统计图》 北师大版
- 2025年二建《建筑工程管理与实务》考前必刷必练题库500题(含真题、重点题)
- 2025云南师范大学辅导员考试题库
- 学生健康档案管理制度
- Unit 7 A Day to Remember Section A (课件)-2024-2025学年英语人教版7年级下册
评论
0/150
提交评论