《3.1第三章数据的输入和输出.ppt》由会员分享,可在线阅读,更多相关《3.1第三章数据的输入和输出.ppt(29页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第三章 数据的输入和输出本 章 要 点 C C语言语句概述语言语句概述 赋值语句赋值语句 基本输入输出函数使用方法基本输入输出函数使用方法C C程序对数据的处理是通过程序对数据的处理是通过“语句语句”的执行来实现的;的执行来实现的;一条语句完成一项操作(或功能);一条语句完成一项操作(或功能);一个为实现特定目的的程序应包含若干条语句。一个为实现特定目的的程序应包含若干条语句。3.1 C语言语句概述按照C语言语句的作用分类:说明语句注释语句程序流程控制语句声明变量名称、数据类型及声明变量名称、数据类型及其存储属性的说明性语句其存储属性的说明性语句编程者对程序本身的解释编程者对程序本身的解释是是
2、“可执行可执行”的语句,的语句,构成程序的主体构成程序的主体C C语语言言数数据据操操作作语语句句空语句空语句简单语句简单语句复合语句复合语句流程控制语句流程控制语句表达式语句(表达式;)表达式语句(表达式;)函数调用语句(函数名函数调用语句(函数名(参数参数););)(;)(;)(一条或多条语句一条或多条语句)结构化语句结构化语句非结构化语句非结构化语句条件语句条件语句(if(if,switchswitch语句语句)循环语句循环语句whilewhiledo_whiledo_whileforfor限定转向语句限定转向语句非限定转向语句非限定转向语句breakbreakcontinueconti
3、nuereturnreturngotogoto复合语句复合语句一对大括号一对大括号包围若干条语句组成。包围若干条语句组成。格式:格式:【数据说明部分;数据说明部分;】执行语句部分;执行语句部分;注意:复合语句结束的注意:复合语句结束的”之后,不需要分号。之后,不需要分号。简单实例#include main()/*简单程序实例简单程序实例 */int a=10,b=20,c;if(ba)c=a+b;printf(”%dn”,c);else ;控控制制语语句句表达式语句表达式语句复合语句复合语句函数调用语句函数调用语句空语句空语句说明语句说明语句注释语句注释语句C的语句以分号的语句以分号(;)结束
4、结束3.2 数据的输入与输出输入输入是指用户借助计算机的输入设备是指用户借助计算机的输入设备将将数据输入到数据输入到计算机中计算机中。常见的输入设备是常见的输入设备是键盘、鼠标键盘、鼠标输出输出是指从计算机内部是指从计算机内部将将数据输送到用户指定的外数据输送到用户指定的外部输出设备部输出设备。常见的输出设备如常见的输出设备如显示器、打印机、绘图仪显示器、打印机、绘图仪等等语言通过语言通过标准输入标准输入/输出库输出库(I/OI/O库库stdio.hstdio.h)提供的提供的函数函数完成输入完成输入/输出功能。输出功能。标准C语言的系统函数中包括控制台I/O的基本例程在使用控制台I/O函数时
5、,常常涉及到标准输入输出头文件stdio.h在用户程序中应该使用预编译命令头文件包含进来,即在程序中加入语句#include“stdio.h”或#include C C语言的输入语言的输入/输出库函数名称不是关键字。如输出库函数名称不是关键字。如printfprintf、scanfscanf格式输出函数printf调用形式:printf(”格式控制字符串”,参数1,参数2,参数n)其中:控制字符串也称为格式说明串,它用于描述变量的输出方式,格式说明的形式是:附加格式说明符 格式转换字符附加格式说明符部分可以缺省。功能:按照控制字符串中的格式说明依次将后面的各参数进行转换,排放成格式说明中规定的
6、格式,输出到输出设备上。对非格式说明符,则按原样输出。printf(”格式控制字符串”,参数1,参数2,参数n)必须用必须用英文的双引号英文的双引号括起来括起来作用是控制输出项的作用是控制输出项的格式和输出一些提示格式和输出一些提示信息信息要输出的表达式要输出的表达式常量、变量、运算常量、变量、运算符表达式、函数返符表达式、函数返回值等,每个输出回值等,每个输出项之间用项之间用(,)分隔分隔格式控制字符的组成:格式控制字符的组成:普通字符:按原样输出,主要用于输出提示信息。转义字符:指明特定操作。格式说明:由”%”和“格式字符串”组成:%格式字符串它表示按规定的格式输出数据。#include
7、Main()int a=97,b=98;printf(“1:%d%dn”,a,b);printf(“2:%d,%dn”,a,b);printf(“3:%c,%cn”,a,b);printf(“4:a=%d,b=%dn”,a,b);程序运行结果:程序运行结果:1:97 981:97 982:97,982:97,983:a,b3:a,b4:a=97,b=984:a=97,b=98 格式转换字符 说 明 d,i 以十进制形式输出带符号整数(正数不输出符号)o 以八进制无符号形式输出整数(不输出前缀符)x,X 以十六进制无符号形式输出整数(不输出前导符0 x),用x则输出十六进制数的af时以小写形式输
8、出,用X时,则以大写字母输出 u 以无符号十进制形式输出整数 c 以字符形式输出,仅输出一个字符 s 输出字符串 f 以小数形式输出单、双精度数。默认6位小数 e 以标准指数形式输出单、双精度数 g 选用%f或%e格式中输出宽度较短的一种格式,不输出无意义的%输出%附加说明符附加说明符 说说 明明 l l 用于输出长整型数据,可加在格式转换符用于输出长整型数据,可加在格式转换符d,o,x,ud,o,x,u前面前面 m(m(正整数正整数)输出数据的宽度输出数据的宽度 指定宽度指定宽度 实际宽度,补空格实际宽度,补空格 指定宽度指定宽度=实际宽度,按实际输出实际宽度,按实际输出 不指定宽度,按实际
9、输出不指定宽度,按实际输出 .n(.n(正整数正整数)对实数,表示对实数,表示输出输出 n n 位小数。不足补位小数。不足补0 0;多出则舍;多出则舍 入处理。入处理。对字符串,表示对字符串,表示截取的字符个数。不足补空格,多出截取的字符个数。不足补空格,多出 则丢弃。则丢弃。输出的数据在输出域内输出的数据在输出域内向左对齐向左对齐 +正数输出加号;负数输出减号正数输出加号;负数输出减号 0 0 不使用位是否用不使用位是否用0 0填充填充实例:#include main()printf(This is a C program.n);实例:#include int main()int a=1,b
10、=2,c=100;printf(a=%d,b=%3d,d=%3d%n,a,b,a*c/b);printf(%d,%o,%xn,-a,-a,-a);答案:a=1,b=_ _2,d=50%-1,177777,ffff 实例:#include main()char c=a;char ch=Good-bye.;printf(%c,%3c,%3dn,c,c,c);printf(%s,%10s,%-8s,%-12s,%6.4sn,ch,ch,ch,ch,ch);答案:a,_ _a,_97Good-bye.,_Good-bye.,Good-bye.,Good-bye._ _ _,_ _Good格式输入函数s
11、canf调用形式:scanf(”控制字符串”,参数1,参数2,参数n)其中:控制字符串也称为格式说明串,它用于描述变量的输入方式,格式说明的形式是:附加格式说明符 格式转换字符附加格式说明符部分可以缺省。功能:从标准输入设备上读取输入数据,按格式说明的描述将读入的数据赋于相应的参数。参数部分的每个参数,若为一般变量,要在变量名前加“&”(取地址运算符),表示将输入的数据存入变量对应的内存单元(地址)中。scanf(”%d”,&x);scanf(”格式控制字符串”,地址列表)必须用必须用英文的双引英文的双引括起来括起来由普通字符和格式由普通字符和格式说明符组成说明符组成由若干地址组成的列由若干地
12、址组成的列表表变量的地址、字符串变量的地址、字符串的首地址、指针变量的首地址、指针变量等,以逗号等,以逗号(,)间隔间隔格式控制字符的组成:格式控制字符的组成:普通字符:键盘输入时,要按原样输入,一般起 分隔或提示作用。但分隔或提示作用若由用户输入,就失去了本来的意义,一般采用printf来实现。scanf(scanf(“EnterEnter a number?a number?%d d”,&n,&n););格式转换字符 说 明 d 输入十进制整数 o 输入八进制整数 x 输入十六进制整数 c 输入单个字符 s 输入字符串 f 输入实数,可为小数形式或指数形式%输入百分号(%)附加格式说明符
13、说 明 l 用于输入长整型数据及double型数据 h 用于短整型数据m(正整数)用于指定输入数据占据的宽度 *输入赋值抑制符:表示本输入项在读入 后舍弃:scanf(%3d%2d,&x,&y);输入序列:123456ENTER结果:x=123,y=45:scanf(%d,%d:%f,&x,&y,&z);输入序列:1,2:3.5ENTER结果:x=1,y=2,z=3.5 3:scanf(%2d%*2d,%2d,&x,&y);输入序列:12 34,56ENTER结果:x=12,y=56。“*”使得对应的输入数据不赋给相应的变量 4:scanf(%c%c%c,&c1,&c2,&c3);输入:abc
14、 结果:ac1,c2,bc3(其余被丢弃)在用%c输入时,空格和“转义字符”均作为有效字符。5:scanf(%d%d%d,&x,&y,&z);输入序列一:123ENTER结果:x=1,y=2,z=3输入序列二:1TAB2 3ENTER输入序列三:1ENTER 2 3ENTER结果与输入序列一的结果一样。注意:在scanf中,可以使用ENTER、空格或TAB作为数据之间的分隔符。6:scanf(”x=%d,&x);要使x的值等于12,从键盘应怎样输入?正确的输入序列:x=12ENTER 注意:字符 x=被过滤掉了 若输入序列为:12ENTER错误!实例:#include main()int a;
15、float b,c;scanf(”%2d%3f%4f”,&a,&b,&c);printf(”a=%d,b=%f,c=%fn”,a,b,c);输入:12345678987654321输出:a=12,b=345.000000,c=6789.000000scanf()中参数的第二部分一定是地址列表。如果在格式控制字符串中除了格式说明外还有其它字符,则在输入数据时应输入与这些字符相同的字符可以指定输入数据所占的列数,系统自动截取他所需的数据*3d,不赋值输入数据不能规定精度scanfscanf函数在执行过程中应注意的问题:函数在执行过程中应注意的问题:字符输入函数getchar调用形式:c=getch
16、ar();功能:从标准输入设备(键盘)上读入一个一个字符,返回该字符的ASCII码值,并且将敲入的字符“回显”到屏幕上。例:#include stdio.h main()char c;c=getchar();putchar(c);/*输出字符变量c的值*/#include stdio.hmain()char c;c=getchar();putchar(c);接受一个字符接受一个字符=c输出该字符输出该字符c开始开始结束结束运行程序,如果从键盘输入:aENTER则输出为:a如果从键盘输入:abcENTER则输出也为:a注意:注意:调用函数getchar时,程序执行被中断,等待用户从键盘输入数据。
17、当用户键入字符并敲回车键以后,程序继续运行。若用户输入字符后未按回车,则键入的内容一直保留在键盘缓冲区中,只有用户键入回车键后,字符输入函数getchar才进行处理。函数getchar将回车键作为一个字符读入,若程序中有两个以上函数getchar时,应该一次性输入所有字符,最后再按回车。无论输入的是英文字母还是标点符号还是数字,都是作为字符输入。字符输出函数putchar调用形式:putchar(c);功能:通过标准输出设备(显示器)输出变量c。例:将从键盘输入的一个字符复制到标准输出。#include stdio.hmain()char c;c=getchar();while(c!=n)putchar(c);/*输出该字符*/c=getchar();/*再取下一输入字符*/#include stdio.hmain()char c;c=getchar();while(c!=n)putchar(c);c=getchar();接受一个字符接受一个字符=c输出字符输出字符c开始开始结束结束c不是不是n吗?吗?接受一个字符接受一个字符=c成立成立不成立不成立程序功能:按字符接程序功能:按字符接受从键盘上输入的受从键盘上输入的一一行行字符,并显示在屏字符,并显示在屏幕上。幕上。
限制150内