第二章数据输出与输入PPT讲稿.ppt

上传人:石*** 文档编号:43983206 上传时间:2022-09-20 格式:PPT 页数:38 大小:1.87MB
返回 下载 相关 举报
第二章数据输出与输入PPT讲稿.ppt_第1页
第1页 / 共38页
第二章数据输出与输入PPT讲稿.ppt_第2页
第2页 / 共38页
点击查看更多>>
资源描述

《第二章数据输出与输入PPT讲稿.ppt》由会员分享,可在线阅读,更多相关《第二章数据输出与输入PPT讲稿.ppt(38页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第二章数据输出与输入第1页,共38页,编辑于2022年,星期二2.1 C语言的基本语句n一个实际的C程序是一系列语句的集合,每一条语句都用来完成一定的操作任务,C程序的每一条语句都要有分号结束,但变量声明部分不算严格意义上的C语句。main()int a,b;a=2;b=+a;printf(“%d,%dn”,a,b);严格说来,应不称为语句。C语句分为以下几类:(1)控制语句 (2)函数调用语句(3)表达式语句(4)空语句(5)复合语句第2页,共38页,编辑于2022年,星期二2.1 格式化输出n数据的“输入”和“输出”是相对于计算机主机而言的。nC语言本身不提供输入输出语句,输入输出操作是通

2、过调用库函数来实现的,例如:printf和scanf就是c语言中用于实现数据输入、输出的库函数之一。n因为c语言的输入输出库函数都位于一个名为stdio.h的头文件中,所以,每一个c语言程序的开始都要用下面的编译预处理命令将该头文件包括到用户编辑的文件中去。#include “stdio.h”或#include 第3页,共38页,编辑于2022年,星期二n格式化输出函数printfn功能:向显示屏输出数据。n语法:printf(格式控制,输出列表);n例如:printf(“%d,%d”,x,y);2.1格式化输出第4页,共38页,编辑于2022年,星期二Printf函数说明:一、一、格式控制部

3、分是用双引号括起来的字符串,用于描述输出时的格式要求,其中包含两种信息:其中包含两种信息:(1)普通字符和转义字符常量,普通字符原样输出,转义字符按所表示的字符含义输出;(2)格式说明:如%d,%c等形式的字符串,指定输出表列中相应的变量或表达式的值的输出形式。见P34表2-1例如:若已知整型变量a的值为2,整型变量b的值为3,程序中有输出语句:printf(“a=%d,b=%d”,a,b);输出结果为()。格式说明,规范数据说明信息,原样输出a=2,b=3第5页,共38页,编辑于2022年,星期二格式说明对应的输出数据格式格式说明输出数据格式%d或%i输出有符号的十进制整型数%f输出精度或双

4、精度且小数点后有6位数%c输出一个字符%o输出八进制无符号整型数%x或%X输出十六进制无符号整型数%u输出无符号十进制整数%c或%E不常用第6页,共38页,编辑于2022年,星期二Printf函数举例例3 若有以下程序段int m=32767,n=032767;Printf(“%d,%on”,m,n);执行后输出的结果是:32767,32767例4 若有以下程序段int m=0 xabc,,n=0 xabc;m-=n;Printf(“%Xn”,m);执行后输出的结果是:0第7页,共38页,编辑于2022年,星期二Printf函数说明:二、二、输出数据列表包括需要输出的一些数据。各个数据间用逗号

5、分隔开。输出数据的个数与输出控制中的格式说明个数相等,并且在顺序上要一一对应且类型匹配。例如:printf(“%d,%f”,3.89,6);三、三、在输出控制中,格式说明个数应与输出项的个数相同。如果说明个数少于输出项的个数,多余的输出项则不输出;如果格式说明的个数多于输出项个数,则对多余的格式说明输出不定值。第8页,共38页,编辑于2022年,星期二例1 有以下程序:Main()int i=2000;float j=2.71828;printf(“i=%d,j=%f,j*10=%f”,i,j,j*10);结果是:i=2000,j=2.718280,j*10=27.182800Printf函数

6、举例:例2 有以下程序Main()int a=666,b=888;printf(“%dn”,a,b);结果是:666第9页,共38页,编辑于2022年,星期二Printf函数举例:例3:若有程序段 int m=32767,n=032767;printf(“%d,%on”,m,n);执行后输出结果是:32767,32767例4:若有程序段 int m=0 xabc,n=0 xabc;m-=n,printf(“%Xn”,m);执行后输出结果是:0例5:若变量a,b已定义为int 类型并赋值21和55,要求用printf函数以a=21,b=55的形式输出,完整的输出语句是 printf(“a=%d,

7、b=%d”,a,b);函数说明二第10页,共38页,编辑于2022年,星期二nPrintf函数说明:(1)可以在%和格式字符间加入一个整数来控制输出数据宽度,如果整数指定宽度大于实际输出数据宽度,数据输出采用右对齐方式,左边自动补空格;反之,则以实际宽度输出。2.1 格式化输出输出语句输出结果Printf(“%d”,254);254Printf(“%2d”,254);254Printf(“%4d”,254);254Printf(“%f”,1.25);1.250000Printf(“%10f”,1.25);1.250000第11页,共38页,编辑于2022年,星期二(2)当在%和格式字符f之间加

8、入“整数1.整数2”来控制输出数据的格式时,“整数1”用于指定输出数据占的总宽度,“整数2”用于指定输出实数的小数部分的位数。2.1 格式化输出输出语句输出结果Printf(“%4.4f”,1.25);1.2500Printf(“%7.4f”,1.25);1.2500Printf(“%2.0f”,1.25);1第12页,共38页,编辑于2022年,星期二(3)如果需要在输出的八进制数前添加0,或在输出的十六进制前添加0 x,可在%号和格式字符o和x之间插入一个#号。2.1 格式化输出输出语句输出结果Printf(“%o”,254);376Printf(“%#o”,254);0376Printf

9、(“%#x”,254);0 xfe第13页,共38页,编辑于2022年,星期二Printf函数举例:例如:main()int a,b;clrscr();/*清屏*/a=123,b=12345;printf(“%d,%2d,%d,%10dn”,a,a,b,b);结果:123,123,12345,12345第14页,共38页,编辑于2022年,星期二n字符输出函数putcharn语法:putchar(字符常量或字符变量);n功能:将括号内的字符常量或字符变量的值显示在屏幕上。如:#include main()char c;c=A;putchar(c);putchar(n);putchar(c);c

10、A 2.2字符数据的输出第15页,共38页,编辑于2022年,星期二n格式化输入函数scanfn用于在程序运行时,由用户自行输入数值送入相应变量保存。n语法:scanf(格式控制,地址表列);n说明:格式控制含义与printf中的相同,地址表列一般是由若干个变量的地址组成的。2.3 格式化输入例:#define PI 3.14159 Main()float r,area;scanf(“%f”,&r);area=PI*r*r;Printf(“area=%f”,area);“&”是求地址运算符,&r表示取变量r的地址。第16页,共38页,编辑于2022年,星期二2.3 格式化输入格式说明输入数据格

11、式格式说明输入数据格式%d输入十进制整型数%x输入十六进制整型数%c输入一个字符%u输入无符号的十进制整数%o输入八进制整型数%f输入单精度或双精度数Scanf函数中格式说明说明:(1)当从键盘输入多个数值数据时,输入数值数据之间用分隔符(包括空格符、制表符和回车符;但不包括逗号)隔开。且格式说明类型与输入项类型一一对应匹配,个数相同。如:int x,y,z;scanf(“%d%d%d”,&x,&y,&z);则键盘输入格式:1020 30 例 如下输入语句 int x,y,z;scanf(“%d%d”,&x,&y,&z);如输入形式为 1020 30 则只能对x和y变量分别输入10和20.第1

12、7页,共38页,编辑于2022年,星期二说明:(2)与printf相似,在scanf函数中的格式字符前可以用一个整数指定输入数据所占的宽度,但对实数不能指定小数的位数。例如:如下语句 int a,b;scanf(“%3d%2d”,&a,&b);printf(“%d,%d”,a,b);输入数据123456789,输出结果为123,45(3)路过输入数据的方法。可以在格式字符与%之间加入一个“*”使输入过程路过输入的数据。如:int x,y,z;scanf(“%d,%d,%d”,&x,&y,&z);如下输入:1020 30 40 则将会10赋给变量x,跳过20,30赋给变量y,40赋给变量z。2.

13、3 格式化输入第18页,共38页,编辑于2022年,星期二(4)、若在scanf函数的输入控制串中含有其他的字符,则在输入时要求一一对应的位置原样输入这些字符。如:int x,y,z;scanf(“%d,%d,%d”,&x,&y,&z);如下输入:1020 30 40 则将会10赋给变量x,跳过20,30赋给变量y,40赋给变量z。2.3 格式化输入例:执行以下程序时输入1234567,则输出结果是#include Main()int a=1,b;scanf(“%2d%2d”,&a,&b);printf(“%d%dn”,a,b);12 34第19页,共38页,编辑于2022年,星期二小结:小结

14、:1、scanf的输入分隔符不包含逗号,因此在使用键盘输入数据时,不能以逗号作为分隔符。如果需要以逗号作分隔符,则格式为:scanf(“%d,%d”,&a,&b);则输入为10,202、一般情况下,scanf的格式控制字符串中不要包含其他非格式控制符,否则往往容易混淆。3、使用scanf时,如果数据输入未能完成,则程序一直等待键盘输入,此时用户应该完成数据输入。4、使用scanf给变量赋值和直接使用赋值语句给变量赋值,都能使变量的值发生改变,但二者有本质区别。2.3 格式化输入第20页,共38页,编辑于2022年,星期二n字符输入函数getcharn语法:getchar();注意:()内为空n

15、功能:要求用户在程序执行时从键盘上输入一个字符,输入的字符先放在缓冲区中,等待用户按回车键确认,用户敲入回车键后,该函数才真正获得输入的字符,同时将输入的字符显示在屏幕上。n使用时,一般用一个字符变量接收getchar()获得的字符。例:#include main()char c;c=getchar();putchar(c);例:#include main()putchar(getchar();2.4 格式化字符输入第21页,共38页,编辑于2022年,星期二n说明:nc语言程序执行时,首先会找到main函数,然后按顺序执行main函数内部的每条语句,当遇到scanf语句时,程序会暂停,等待用

16、户输入数据后按回车,才继续向下运行,运行到main函数的最后一条语句后,运行结束,可以看结果了。n用户输入时应按格式控制部分要求的格式输入,否则会出错。(1)格式控制部分若有普通字符,按原样输入。(注:scanf函数的格式控制部分中,不应该出现转义字符。)(2)格式控制部分若有格式说明符,如%d,%f等,要求输入相应格式的数据。第22页,共38页,编辑于2022年,星期二n思考:像上例的scanf(“%d%d”,&a,&b);语句,格式说明部分只要求输入两个十进制整数,并且两个%d相连,之间没有任何间隔符,那么在输入的时候是不是直接输入两个相连的整数呢?第23页,共38页,编辑于2022年,星

17、期二2.5 顺序结构程序设计举例 例1:输入一个华氏温度,要求输出对应的摄氏温度(保留两位小数),转换公式为c=5/9(f-32)。n分析问题,找出求解问题的方法和步骤(简称问题求解的算法)。n该问题的求解步骤很简单,首先要从键盘输入一个华氏温度,存储在一个变量里,供以后做华氏温度向摄氏温度的转换用;接着,使用转换公式,将转换后的摄氏温度值保存在另一变量中,等待输出;然后输出该摄氏温度值。第24页,共38页,编辑于2022年,星期二n用c语言语句描述上面的算法,写成完整的程序。main()float f,c;scanf(“%f”,&f);c=5.0/9*(f-32);printf(“%.2fn

18、”,c);书写程序时,注意:(1)首先,应考虑程序中要使用几个变量,每个变量的含义及类型(2)变量应在有了确定值后,才可以使用(3)数学表达式到c语言表达式的转换 2.5 顺序结构程序设计举例第25页,共38页,编辑于2022年,星期二 例2:输入两个整数,分别存放在变量a和b中,要求将这两个变量的值互换,输出它们的值。n分析:完成该问题的算法可分为以下几步:(1)输入两个数,分别存入a和b中(2)将a,b变量的值相互交换(3)输出交换后的a和b的值问题是:第(2)步如何具体实现?2.5 顺序结构程序设计举例第26页,共38页,编辑于2022年,星期二 main()int a,b,c;scan

19、f(“%d,%d”,&a,&b);printf(“first:a=%d,b=%dn”,a,b);c=a;a=b;b=c;printf(“later:a=%d,b=%dn”,a,b);2.5 顺序结构程序设计举例第27页,共38页,编辑于2022年,星期二 例3:编写c程序,按下列公式计算并输出s的值,其中,a和b的值由键盘输入。s=2ab/(a+b)2n分析:求解该问题的算法分为以下几步(1)输入a和b的值(2)由公式计算出s的值(3)输出s2.5 顺序结构程序设计举例第28页,共38页,编辑于2022年,星期二 main()float a,b,s;scanf(“%f,%f”,&a,&b);s

20、=2*a*b/(a+b)*(a+b);printf(“s=%fn”,s);2.5 顺序结构程序设计举例第29页,共38页,编辑于2022年,星期二 若程序如下,则不能实现题意要求的功能。为什么?main()int a,b;float s;scanf(“%d,%d”,&a,&b);s=2*a*b/(a+b)*(a+b);printf(“s=%fn”,s);2.5 顺序结构程序设计举例第30页,共38页,编辑于2022年,星期二 思考:如果要求对上面的程序作修改,但不允许改变变量的类型,使程序仍能实现题意要求的功能,应该怎么办?第31页,共38页,编辑于2022年,星期二习题1、以下程序运行时若从

21、键盘输入:10 20 30。输出结果是#include “stdio.h”Main()int i=0,j=0,k=0;Scanf(“%d%*d%d”,&i,&j,&k);Printf(“%d,%d,%d”,i,j,k);10,30,0第32页,共38页,编辑于2022年,星期二习题2已知字符A的ASCII代码值为65,以下程序运行时若从键盘输入:B33。输出结果是#include stdio.hmain()char a,b;a=getchar();scanf(%d,&b);a=a-A+0;b=b*2;printf(%c%c,a,b);1 B第33页,共38页,编辑于2022年,星期二习题3有以

22、下程序 main()int m=0256,n=256;printf(%o%on,m,n);程序运行后的输出结果是256 400第34页,共38页,编辑于2022年,星期二习题4有以下程序main()int a=666,b=888;printf(%dn,a,b);程序运行后的输出结果是 666第35页,共38页,编辑于2022年,星期二习题5设有以下程序main()int x=102,y=012;printf(%2d,%dn,x,y);执行后输出结果是 102,10第36页,共38页,编辑于2022年,星期二习题6执行以下程序时输入1234567,则输出结果是_。#include main()int a=1,b;scanf(%2d%2d,&a,&b);printf(%d%dn,a,b);12 34第37页,共38页,编辑于2022年,星期二第38页,共38页,编辑于2022年,星期二

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

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

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com