




已阅读5页,还剩30页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
共25页第1页,数据的输入和输出,C语言程序设计,第四章,共25页第2页,本章要点,掌握C语言中输入输出数据的方法掌握各种格式的使用,共25页第3页,数据输入输出的概念输出:从计算机向显示器、打印机等外部设备输出数据。输入:从标准输入设备键盘、鼠标等向计算机输入数据。C语言不提供输入输出语句,输入输出操作是由C函数库中的函数实现。,两个基本的输出(输入)函数:即:格式输出(输入)函数字符输出(输入)函数,共25页第4页,4.1.1格式输出函数,函数的基本功能格式:printf(格式控制串,输出表列)功能:从标准输出设备上,按指定的格式输出对应的变量。,printf(.),4.1数据输出,2.函数说明:(1)格式控制串由双引号括起来,由“%”和格式符以及普通字符(即需要原样输出的字符组成)。(2)输出表列是需要输出的一些数据,可以是常量、变量或表达式。(3)输出的参数必须与格式控制符中的格式说明在类型、个数和位置上一一对应。,共25页第5页,例:#includemain()inta=3,b=4;printf(“a=%db=%d”,a,b);运行结果:a=3b=4,格式说明(格式字符),普通字符,输出表列,共25页第6页,3.格式说明符一般格式:%-m.nl格式符,说明如下:-当数据的宽度小于显示宽度时,数据左对齐,右方补空格.m输出数据占m个字符位,不够右对齐,左边填空格。n输出数据有n位小数m.n输出数据占m列,n位小数对不同类型的数据使用不同的格式字符。有以下几种格式符:,共25页第7页,d:以十进制带符号形式输出整型数o:以八进制无符号形式输出整型数x:以十六进制无符号形式输出整型u:以十进制无符号形式输出整型数f:以小数形式输出单、双精度实型数e:以指数形式输出单、双精度实型数c:以字符形式输出一个字符s:以字符形式输出一个字符串ld:以十进制带符号形式输出长整型数,基本格式控制符,共25页第8页,(1)d格式符:输出十进制整数。%d按整型数据的实际长度输出。%mdm为指定的输出字段的宽度.若数据的位数小于m,则左端补以空格;若大于m,则按实际位数输出。%ld输出长整型数据.,例:inta=1234;printf(“%3d”,a);printf(“%5dn”,a);printf(“%-5d”,a);,12341234,1234,左对齐,右补空,共25页第9页,以下程序运行后的输出结果是?main()intx,y,z;x=y=1;z=x+,y+,+y;printf(%d,%d,%d,x,y,z);A)2,3,3B)2,3,2C)2,3,1D)2,2,1,共25页第10页,(2)o格式符以八进制数形式输出整数。将内存单元中的各位的值(0或1)按八进制形式输出,输出的数值不带符号,将符号也作为八进制数的一部分输出。例如,-1在内存单元中(以补码形式存放)如下:inta=-1;-1:printf(“%d,%o”,a,a);输出:,1111111111111111,VC+下,-1,177777,(3)x格式符,以十六进制数形式输出整数。(4)u格式符,以十进制形式输出无符号型数据。例#includemain()unsignedinta=65535;intb=-2;printf(“a=%d,%o,%x,%un”,a,a,a,a);printf(“b=%d,%o,%x,%un”,b,b,b,b);输出:a=-1,177777,ffff,65535b=-2,177776,fffe,65534,VC+下,共25页第12页,(5)c格式符输出一个字符。整数的值在33126范围内,也可以用字符形式输出。在输出前,将该整数转换成相应的ASCII字符;字符数据也可以用整数形式输出。例#includemain()charc=a;inti=97;printf(%c,%dn,c,c);printf(%c,%dn,i,i);输出:a,97a,97,共25页第13页,s格式符输出一个字符串。说明:若不指定字符宽度和对齐方式,则输出全部字符串.例如:printf(%s,CHINA);程序运行输出:CHINA若指定宽度m,实际字符个数大于m,按实际宽度输出;如果实际字符个数小于m,字符右对齐,左边填空格。例如:printf(“s1=%s,s2=%3s,s3=%-5.2s,s4=%.3s,abcd,abcd,abcd,abcd);程序运行输出:s1=abcd,s2=abcd,s3=ab,s4=abc,共25页第14页,(7)f格式符以小数形式输出实数(包括单、双精度)。1)%f,不指定字段宽度,由系统自动指定,使整数部分全部输出,并输出6位小数(输出双精度数据,也是6位,但误差降低)。2)%m.nf,指定输出的数据共占m列,其中有n位小数.若数据长度小于m,则左端补空格。例:floatx=15.3,y=222.225111;printf(“%f,%6.2fn”,x,y);,共25页第15页,(8)e格式以指数形式输出实数。1)%e不指定输出数据所占的宽度和数字部分小数位数,由系统自动指定给出6位小数,指数部分占5位,其中“e”占一位,指数符号占一位,指数占3位.数值按标准化指数形式输出(小数点前有1位非零数字)。例如:printf(“%e”,123.456);输出:1.234560e+002e格式输出的实数共占13列宽度.,3位,6位,共25页第16页,g格式符:根据数值的大小输出实数,自动选f格式或e格式(选择输出时占宽度较小的一种),且不输出无意义的零。例如:f=123.468;printf(“%f%e%g”,f,f,f);输出如下:123.4680001.234680e+002123.468,10列,13列,10列,共25页第17页,几点说明:,1.格式控制串的控制符号与变量表要一一对应,即:类型相同,个数相等2.格式控制符号用小写字母3.格式控制符号之外的符号均照原样显示4.若需显示百分号,格式为:%5.如果实际数据所占字符位大于指定的域宽,按实际输出,共25页第18页,例:分析程序的执行结果main()inta=16;chare=A;unsignedb;longc;floatd;b=65535;c=123456;d=123.45;printf(”a=%d,%4d,%-6d,c=%ldn”,a,a,a,c);printf(”%o,%x,%un”,b,b,b);printf(”%f,%e,%13.3e,%gn”,d,d,d,d);printf(”%c,%s,%7.3sn”,e,”China”,”Beijing”);,这里7指输出宽度,3表示输出该字符串的前3个字符。,共25页第19页,4.1.2字符输出函数,格式:putchar(字符变量),功能:在标准输出设备上,输出指定的字符。,说明:,putchar,*一次调用只能输出一个字符*加上分号成为字符输出语句*使用时在程序开头用编译预处理命令,#include”stdio.h”或:#include,头文件,请详见附录E,共25页第20页,例:#includemain()chara,b,c;a=B;b=O;c=Y;putchar(a);putchar(b);putchar(c);输出:BOY,共25页第21页,#includemain()charc=a;putchar(c);,charc1,c2,c3;c1=a;c2=b;c3=c;putchar(c1);putchar(c2);putchar(c3);,abc,abc,?,putchar(n);,例,与putchar(97);putchar(98);putchar(99);等效与printf(“%c%c%c”,c1,c2,c3);等效,charc1,c2,c3;c1=a;c2=b;c3=c;putchar(c1);putchar(n);putchar(c2);putchar(n);putchar(c3);,共25页第22页,4.2.1格式输入函数,一般形式:scanf(格式控制字符串,地址表列)“格式控制字符串”的含义同printf函数,“地址表列”:要求是变量的地址,或字符串的首地址.例如:inta,b,c;scanf(“%d%d%d”,说明:*scanf函数中的“格式控制”后面应当是变量地址而不是变量名。*输入数据时,在两个数据之间以一个或多个空格间隔,也可以用回车键、跳格键tab分隔。,4.2数据的输入,共25页第23页,*输入时可以指定域宽,不允许规定精度.,inta,b;scanf(“%3d%3d”,floatx;scanf(“%8.2f”,*输入时,遇下列情况结束,*回车,空格*宽度结束*非法输入,输入123456系统自动将123赋给a,456赋给b,如:intk;scanf(“%3d”,输入:123456789k为:123,例:main()inta,b,c;scanf(%d%d%d,scanf(“%d,%d,%d”,输入:123abc789输出:a=123,b=a,c=b,d=c,e=789,注意格式说明符以外的其他字符,*在用“%c”格式输入字符时,空格字符和“转义字符”都作为有效字符输入.如,scanf(%c%c%c,输入:xyzx字符赋给a,空格字符赋给b,y字符赋给c,共25页第26页,输入double型数据,必须用格式说明符%lf或%le,输入long型数据,必须用%ld。标准C在scanf中不使用%u说明符,对unsigned型数据,以%d或%o、%x格式输入。%后的“*”为附加说明符,用来表示跳过它对应的数据。输入时格式控制符中不能加“n”。在scanf函数的格式控制字符串中尽量不要出现普通字符,尤其不能将输入提示放在其中。需要显示输入提示应该调用printf函数实现。,提示注意:,例:doublea;intb;floatc;scanf(%f,%2d,%*d,%5f,输入:5.3,12,456,1.23456回车,结果:a=0.000000b=12c=1.234000,原因是格式符用错了.应该用lf或le格式,这里必须用%lf格式,这里可以用%f格式或%lf格式,共25页第28页,#includemain()inta;floatb,c;scanf(“%2d%3f%4f”,输入:12345678987654321,输出?,a=12,b=345.000000,c=6789.000000,例:,共25页第29页,4.2.2getchar函数(字符输入函数)一般形式:getchar()-没有参数功能:从键盘输入一个字符。说明:1)只能输入一个字符2)可以将获得的字符赋给int型或char型的变量例#includemain()charc;c=getchar();putchar(c);运行时键入字符a,必须要回车则输出为:a,注意:输入字符时不要带撇号,共25页第30页,例:从键盘读入一个字符,将该字符及其它前、后字符输出到显示器。,#includestdio.hmain()intc;c=getchar();putchar(c-1);putchar(c);putchar(c+1);,不要丢掉头文件,共25页第31页,#includemain()chara,b,c,d;scanf(“%c%c”,当执行程序时,按下列方式输入数据:1234,则输出结果是A)1234B)12C)12D)12334,练习:,程序举例,例:输入三角形的三边长,求三角形面积.为简单起见,设输入的三边长a,b,c能构成三角形.#includemath.hmain()floata,b,c,s,area;scanf(%f,%f,%f,输入:3,4,6输出如下:a=3.00,b=4.00,c=6.00,s=6.50area=5.33,注意:此例调用了函数库中的函数sqrt,必须在程序开头加上include命令,把头文件“math.h”包含到程序中。,共25页第33页,本章学习要点,1.格式输入函数:scanf,格式输出函数:printf,常用格式:%d,%f,%s,%c,%o,%ld2.scanf函数中的“格式控制”后面是变量地址,而不是变量名.3.putchar函数(字符输出函数)4.getchar函数(字符输入函数),地址,精度,域宽,注意:,共25页第34页,实验的准备及VC+6.0上机环境,1.计算机程序设计实验的准备(1)复习与本次实
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 压力管道安全培训感受课件
- 2025年机器人行业智能机器人技术应用前景与产业发展研究报告
- 2025年生物医药行业生物医药技术高新发展与健康产业前景研究报告
- 2025年文化传媒行业文化传媒产业发展前景研究报告
- 2025年人工智能在医疗保健行业应用案例与市场前景报告
- 2025年智能医疗行业智能医疗设备市场前景展望研究报告
- 2025年汽车行业共享汽车市场前景研究报告
- 2025年文化行业文创产品市场前景分析研究报告
- 2025年无人机行业无人机应用案例与发展前景研究报告
- 宿迁市2025江苏宿迁市商务局局属事业单位招聘工作人员5人笔试历年参考题库附带答案详解
- 《分子生物学基础知识》课件
- GB/T 45147-2024道路车辆总质量大于3.5 t的车辆气制动系统试验使用滚筒制动试验台获取和使用参考值
- 食管纵隔瘘护理
- 建筑项目水泥采购合同
- 华为ICT大赛网络赛道考试题库(786题)
- 水果采购协议样本
- 中职英语(高教版2021基础模块1)Part01-Unit2-Transportation
- 哲学与人生 第二课 树立科学的世界观2.1
- 2024-2030年中国止痛药品市场供需形势及未来前景动态研究研究报告
- 风电110KV升压站土建工程施工方案
- 2018低压电力线高速载波通信互联互通技术规范第3部分:检验方法
评论
0/150
提交评论