《顺序程序与输入输出.ppt》由会员分享,可在线阅读,更多相关《顺序程序与输入输出.ppt(36页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第三章第三章顺序结构程序设计数据输入输出及程序上机过程1/363.1 如何在终端设备上实现输入输出3.2 标准输入输出函数及其引用3.3 Turbo C上机步骤2/363.1 如何在终端设备上实现输入输出所谓输入输出是以计算机为主体而言的;操作系统分别将键盘和显示器定义为标准输入、输出设备。语言的输入输出操作是由函数来实现的;这些函数放在标准I/O函数库中。标准I/O函数库中的一些公用信息事先放在头文件stdio.h中。3/36在程序开始用命令行#include 把要使用的信息包含到用户程序中。语言的函数库中有一批“标准输入输出函数”,它们以标准的输入输出设备为输入输出对象。由于printf和
2、scanf函数使用频繁,系统允许使用时不加#include命令。4/363.2 标准输入输出函数及其引用 字符输入输出函数getchar()/putchar()格式化输入输出函数printf()/scanf()5/363.2.1 字符输入输出函数getchar()/putchar()getchar()和putchar()是一对用于单个字符输入输出的标准函数。一、putchar()函数功能:在终端的当前位置输出一个字符格式:putchar(字符变量)或putchar(输出字符)6/36#include main()char a,b;a=B;b=o;putchar(a);putchar(b);pu
3、tchar(y);例:Eg201.c运行结果为:Boy7/36putchar()也可以输出控制字符,如putchar(n)。可以将上例的最后一行改为:putchar(a);putchar(n);putchar(b);putchar(n);putchar(y);putchar(n);也可以输出其它转义字符,如:putchar();putchar();8/36二、getchar()函数功能:从终端输入一个字符说明:无参数;用户程序暂停运行,进入getchar()函数等待从键盘上输入字符,直到回车才结束该函数;通过赋值语句将函数的返回值送到某一字符型变量中。例如:ch=getchar();9/36#
4、include main()char ch;ch=getchar();putchar(ch);例:Eg202.cputchar(getchar();10/36、getchar()函数只接收一个字符,而不是一个字符串;、使用putchar、getchar函数需要加上命令行:#include 说明:、只有在按“回车”键之后输入才生效;11/363.2.2 格式化输入输出函数printf()/scanf()12/36一、一、printf()函数函数功能:向终端输出若干个任意指定类型的数据格式:printf(格式控制,参数表列)说明:、由“格式控制”部分控制后面的参数按确定的输出格式在屏幕上输出具体的
5、内容,因此必不可少;、参数表列可以由0到多个具体参数组成,其中的参数可以是常量、变量或表达式,也可以没有任何参数(0参数)。如:printf(This is a C program!)printf(This is a C program!);13/36格式控制可分为三种情况:1、不含有“%”的普通字符串。此时第二部分将没有参数,其结果是将字符串原样显示。printf(This is a C program!n);printf(Hello,World!n);语言中规定了一组以反斜杠()开头后面跟一个字符的符号,称为“转义字符”。意思是将反斜杠后面的字符转换成另外的意义。14/36转义字符转义字符
6、含义含义ASCIIASCII值值00表示字符串结束表示字符串结束0 0nn换行,将当前位置移到下一行开头换行,将当前位置移到下一行开头1010t t水平制表(跳到下一个水平制表(跳到下一个TabTab的位置)的位置)9 9vv垂直制表垂直制表1111bb左退一格,将当前位置移到下一行开头左退一格,将当前位置移到下一行开头8 8r r回车,将当前位置移到本行开头回车,将当前位置移到本行开头1313f f换页,将当前位置移到下页开头换页,将当前位置移到下页开头1212aa响铃响铃7 7 单引号单引号3939双引号双引号3434 反斜杠反斜杠“”“”9292dddddd1 1到到3 3位八进制数代表
7、的字符位八进制数代表的字符xhhxhh1 1到到2 2位十六进制所代表的字符位十六进制所代表的字符15/36例如:Eg204.cprintf(Hello,computer!n);printf(101,012,044);printf(x31,x10,x41);Eg203.cprintf(NotNametSextScoretn);16/362 2、带有格式控制符的的格式输出、带有格式控制符的的格式输出格式控制符由“%”和跟随其后的一个字符构成。如%d、%f、%c、%s等。格式字符格式字符说明说明d d以带符号的十进制形式输出整数以带符号的十进制形式输出整数(正数不输出符号正数不输出符号)o o以八
8、进制无符号形式输出整数以八进制无符号形式输出整数(不输出前导符不输出前导符0)0)x x以十六进制无符号形式输出整数以十六进制无符号形式输出整数(不输出前导符不输出前导符0 x)0 x)u u以无符号十进制形式输出整数以无符号十进制形式输出整数c c以字符形式输出,只输出一个字符以字符形式输出,只输出一个字符s s输出字符串输出字符串f f以小数形式输出单、双精度数,隐含输出以小数形式输出单、双精度数,隐含输出6 6位小数位小数e e以标准指数形式输出单、双精度数,小数位数为以标准指数形式输出单、双精度数,小数位数为6 6位位g g选用选用%f%f或或%e%e格式中输出宽度较短的一种格式,不输
9、格式中输出宽度较短的一种格式,不输出无意义的出无意义的0 017/36在格式控制符中,%和后面跟随的单个字符之间又可以插入以下几种修饰符。字符字符说明说明字母字母l l用于长整型,可加在用于长整型,可加在d d、o o、x x、u u前面前面mm(正整数正整数)数据最小宽度数据最小宽度n n(正整数正整数)对实数,表示输出几位小数;对实数,表示输出几位小数;对字符串,表示截取的字符个数对字符串,表示截取的字符个数-输出的数字或字符在域内向左靠输出的数字或字符在域内向左靠注意:格式控制符的个数与后面的参数个数应相等,且前后位置要一一对应。18/363 3、普通字符串与格式控制符混合使用格式控制符
10、用后面相应位置的常量、变量或表达式的值代替,其余普通字符一律原样显示。Eg210.cEg211.c main()printf(2+3=%d,2*3=%dn,2+3,2*3);输出结果:2+3=5,2*3=619/36二、二、scanf()函数函数功能:等待用户从键盘上输入数据,然后按格式控制的要求对数据进行转换后送到相应的变量地址中去。格式:scanf(格式控制,地址表列)说明:、由“格式控制”部分控制输入的数据按确定的格式送到相应变量的地址单元中;、“地址表列”由若干个地址组成,可以是变量的地址或字符串的首地址。scanf(%d%d%d,scanf(%d%d%d,&a,a,&b,b,&c)c
11、)scanf(%d%d%d,a,b,c)scanf(%d%d%d,a,b,c)20/36格式字符格式字符说明说明d d用来输入带符号的十进制整数用来输入带符号的十进制整数o o用来输入无符号的八进制整数用来输入无符号的八进制整数x x用来输入无符号的十六进制整数用来输入无符号的十六进制整数c c用来输入单个字符用来输入单个字符s s用来输入字符串,将字符串送到一个字符数组中,用来输入字符串,将字符串送到一个字符数组中,在输入时以非空白字符开始,以第一个空白字符在输入时以非空白字符开始,以第一个空白字符结束。字符串以串结束标志结束。字符串以串结束标志00作为最后一个字作为最后一个字符。符。f f
12、用来输入实数,可以用小数形式或指数形式输入用来输入实数,可以用小数形式或指数形式输入e e与与f f作用相同,作用相同,e e与与f f可以相互替换可以相互替换格式控制符:以%开始,以一个格式字符结束。21/36 main()main()int a,b,c;int a,b,c;scanf(%d%d%d,&a,&b,&c);scanf(%d%d%d,&a,&b,&c);printf(a=%d,b=%d,c=%dn,a,b,c);printf(a=%d,b=%d,c=%dn,a,b,c);printf(a+b+c=%d,printf(a+b+c=%d,a+b+ca+b+c););Eg212.c不含
13、其它字符的格式控制部分,输入数据时,两个数据之间以一个或多个空格、用Tab键或回车键分隔。22/36在%和格式字符之间可插入附加的格式说明符。字符字符说明说明l l用于输入长整型数据(可用用于输入长整型数据(可用%ld%ld、%lo%lo、%lx%lx)以及以及doubledouble型数据(用型数据(用%lf%lf或或%le%le)h h用于输入短整型数据(可用用于输入短整型数据(可用%hd%hd、%ho%ho、%hx%hx)mm(正整数正整数)域宽,指定输入数据所占宽度(列数)域宽,指定输入数据所占宽度(列数)*表示本输入项在读入后不赋给相应的变量表示本输入项在读入后不赋给相应的变量23/
14、363 3 3 3、使用、使用、使用、使用scanf()scanf()scanf()scanf()时应注意的一些问题时应注意的一些问题时应注意的一些问题时应注意的一些问题、格式控制符中不带域宽,则以分隔符作字符串的结束,反之则按域宽进行截取。Eg213.c、eg214.c、eg215.c、附加说明符*表示跳过相应的输入数据。Eg216.c、不能企图用格式控制来规定输入数据的精度。scanf(%7.2f,&a)scanf(%7.2f,&a)scanf(%f,&a)scanf(%f,&a)24/36、如果在“格式控制”的字符串中除格式控制符之外还有其它字符,则在输入时应输入相同的字符。scanf(
15、%d scanf(%d,%d,&a,&b)%d,&a,&b)12,34 scanf(%d%d,&a,&b)scanf(%d%d,&a,&b)12 34Eg217.c scanf(%d scanf(%d:%d%d:%d,&a,&b,&c)%d,&a,&b,&c)12:34:56、在用“%c”输入字符时,空格字符和转义字符也都作为有效字符输入。Eg218.c25/36、在输入数据时,遇以下情况之一认为一个数据输入结束:、遇到空格或按Tab键或回车键;、满足域宽,如%4d,输入4位即结束;、遇到非法字符。scanf(%d%c%f,&a,&b,&c)25P12I.3526/363.2.3 字符串输入输
16、出函数gets()/puts()gets()和puts()是两个专门用于字符串输入输出的函数,都可以带一个字符型数组名或字符型指针变量作为函数参数。27/36一、一、puts()函数函数作用:将一个字符串输出到终端格式:puts(字符数组名)#include#include main()main()char str20=China Beijing;char str20=China Beijing;puts(str);puts(str);输出结果为:China Beijingprintf(%s,str);28/36二、二、gets()函数函数作用:从终端输入一个字符串到字符数组格式:gets(字
17、符数组名)#include#include main()main()char str20;char str20;gets(str);gets(str);puts(str);puts(str);Eg219.cscanf(%s,str);?29/36注意:scanf()函数在接收字符串时,以空格或回车符作为分隔符;而gets()函数仅以回车符作为结束符。所以输入带空格的字符串时候必须用gets()函数。30/36 3.3 程序的上机操作过程Turbo C上机步骤31/36一、启动Turbo C1、由DOS平台进入2、由Windows平台进入二、编辑源程序1、工作窗口:主菜单窗口:分别用来实现各项操
18、作;编辑窗口:对源程序进行输入和编辑;信息窗口:用来显示编译和连接时的有关信息;功能键提示行:显示一些功能键的作用。32/362、编辑新文件:命令主菜单的选择:命令主菜单的选择:按F10键,用和选择主菜单,再回车;或Alt键加每个主菜单前的首字母(红色)。如:ALT+F可拉下File菜单。命令子菜单的选择:命令子菜单的选择:拉下子菜单后,用和键选择子菜单命令,再回车。编辑新文件:FileNew保存文件:FileSave 或 F23、编辑已存在的文件:打开文件:FileLoad 或 F3保存文件:FileSave 或 F2另存文件:FileWrite to33/36三、编译源程序CompileC
19、ompile to OBJ 或 Alt+F9编译时如提示错误,则按F6键在源程序和错误提示之间切换,并修改;修改完毕再重新编译,直到无任何错误编译成功。注意:编译完全正确并不代表程序完全正确,只能说明无语法错误,不一定代表算法正确或运行结果正确。Eg220.c34/36四、运行源程序RunRun 或 Ctrl+F9查看结果:RunUser Screen 或 Alt+F5五、退出FileQuit 或 Alt+x35/36本章作业附加附加1、输入一个华氏温度,要求输出摄氏温度。、输入一个华氏温度,要求输出摄氏温度。公式为:公式为:输出要有文字说明,取输出要有文字说明,取2位小数。位小数。附加附加2、输入三角形的三边长,求三角形的面积。、输入三角形的三边长,求三角形的面积。提示:三角形面积公式为:提示:三角形面积公式为:其中:其中:s=(a+b+c)/2,平方根函数为平方根函数为sqrt(),如,如sqrt(a*b)。36/36