版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第3 3章章 顺序结构顺序结构本章内容本章内容数据的输入输出数据的输入输出程序举例程序举例C C程序的语句程序的语句123说明语句说明语句说明语句包括说明语句包括变量(或数组)定义语句和函数变量(或数组)定义语句和函数声明语句声明语句两种,而最常用的是变量(或数组)两种,而最常用的是变量(或数组)定义语句,通过变量定义语句确定变量的类型定义语句,通过变量定义语句确定变量的类型与初值。与初值。例如:例如:char ch1char ch1,ch2ch2; int xint x,y y,z=1z=1; float afloat a,b b,c c; double d1double d1,d2d2;
2、执行语句可分为以下五类执行语句可分为以下五类: 1 1、表达式语句。如:、表达式语句。如: k=k+1; k=k+1; 为赋值语句为赋值语句 k+1k+1;为表达式语句为表达式语句k+;k+;为自增语句为自增语句 a=(b=5)+(c=3);2 2、复合语句。如:、复合语句。如: z=x+yz=x+y;t=z/100t=z/100; 一个复合语句在语法上作为一条语句处理,一个复合语句在语法上作为一条语句处理,在一对花括号中的语句数量不限。在一对花括号中的语句数量不限。 复合语句花括号必须配对;右花括号的后面复合语句花括号必须配对;右花括号的后面不加分号不加分号。在复合语句中,不仅可以有执行语句
3、,还可在复合语句中,不仅可以有执行语句,还可以有说明语句以有说明语句. . 如:如: int a=5; b=a*a; 3 3、空语句。、空语句。“;”4 4、函数调用语句。如:、函数调用语句。如:printf(printf(“* * *bookbook* * *”) ); 5 5、控制语句、控制语句(9(9种种) )。如:。如:ifif语句,语句,forfor语句等语句等C C语言中没有提供输入输出语句,其输入输出操语言中没有提供输入输出语句,其输入输出操作,是通过作,是通过C C语言系统所提供的语言系统所提供的输入输出函数输入输出函数 来来实现的。实现的。1 1、默认的、默认的标准输入输出设
4、备是键盘和显示器。标准输入输出设备是键盘和显示器。2 2、输入输出函数被放在标准的、输入输出函数被放在标准的I/OI/O函数库中,库函数库中,库中的公用信息存放在头文件中的公用信息存放在头文件stdio.hstdio.h中,若要中,若要使用这些输入输出函数,必须在源程序的开使用这些输入输出函数,必须在源程序的开始使用预处理命令:始使用预处理命令: #include #include stdio.hstdio.h格式:格式:getchar( )getchar( )功能:从功能:从键盘键盘上输入一个字符。函数的值就是从上输入一个字符。函数的值就是从键盘上得到的字符。键盘上得到的字符。能获取空格、回
5、车、能获取空格、回车、制表符。制表符。如:如:char ch;char ch; ch=getchar( ); ch=getchar( );注意:注意:getchar( )getchar( )只能接收只能接收一个字符一个字符,而且只有,而且只有在用户敲入回车键在用户敲入回车键后,读入才开始执行。后,读入才开始执行。main() char ch1, ch2; ch1 = getchar(); ch2 = getchar(); printf(%d %dn, ch1, ch2); 输入:输入:A 程序的输入都建有一个缓冲区,即程序的输入都建有一个缓冲区,即输入缓冲区。当一次键盘输入结束输入缓冲区。当一
6、次键盘输入结束时时,会将输入的数据存入输入缓冲区会将输入的数据存入输入缓冲区, getchar()函数从输入流缓冲区中读函数从输入流缓冲区中读取值,而非从键盘取值,而非从键盘(终端终端)缓冲区读取。缓冲区读取。输入字符输入字符A后,回车(后,回车(n)会一起读)会一起读入输入流缓冲区。所以第一次入输入流缓冲区。所以第一次getchar取走字符取走字符A后会留下字符后会留下字符n,第二次第二次getchar直接从缓冲区中把直接从缓冲区中把n取走。取走。格式:格式: putchar(ch) putchar(ch)功能:将功能:将chch的值向的值向标准输出设备标准输出设备输出。其中输出。其中chc
7、h可可以是字符型变量以是字符型变量, ,整型变量整型变量, ,字符型常量。字符型常量。也可以输出转义字符也可以输出转义字符 。例:例: # include “stdio.h ” main ( ) char a, b, c ; a=T; b=e; c=a; putchar (a); putchar (b); putchar (c); 结果:结果:Tea格式:格式: printf (printf (“控制字符串控制字符串”,输出项列表输出项列表) )功能:功能:按控制字符串按控制字符串规定的输出格式,规定的输出格式,将输出项列将输出项列表表中的各输出项的值依次输出到显示器上。中的各输出项的值依次输
8、出到显示器上。 其中:其中:控制字符串包括控制字符串包括: 格式说明:格式说明:%m%mn l n l 格式字符格式字符 作用是将输出的数据转换为格式字符规定的作用是将输出的数据转换为格式字符规定的格式,然后输出。格式,然后输出。 printf(“%d”,15)格式字符格式字符意意 义义d以十进制有符号形式输出整型数据以十进制有符号形式输出整型数据o以八进制无符号形式输出整型数据(不带前导以八进制无符号形式输出整型数据(不带前导0)x以十六进制无符号形式输出整型数据(不带前导以十六进制无符号形式输出整型数据(不带前导0 x)u以十进制无符号形式输出整型数据以十进制无符号形式输出整型数据c输出一
9、个字符输出一个字符s输出字符串中的字符,直到遇到输出字符串中的字符,直到遇到“0”,或者输出由精度指,或者输出由精度指定的字符数定的字符数f以小数形式输出单精度和双精度数据,隐含的小数位数为以小数形式输出单精度和双精度数据,隐含的小数位数为6e以规格化的指数形式输出单精度和双精度数据,隐含的小以规格化的指数形式输出单精度和双精度数据,隐含的小数位数为数位数为6printf(“%5.2f”,23.45)字字 符符意意 义义字母字母l用于长整型整数的输出,可加在格式符用于长整型整数的输出,可加在格式符d、o、x、u前面前面m(正整数)(正整数)指定输出数据所占的宽度,若输出的数据位数指定输出数据所
10、占的宽度,若输出的数据位数m,为保,为保证数据的正确性,则按实际位数输出;如果数据的位数证数据的正确性,则按实际位数输出;如果数据的位数m,则多出的位数补空格,则多出的位数补空格.n(正整数)(正整数).n称为精度称为精度。对实数,表示输出位小数;对字符串,对实数,表示输出位小数;对字符串,表示截取的字符个数;表示截取的字符个数;对于整数,指定必须输出的数字对于整数,指定必须输出的数字个数,若输出的数字少于指定的个数,则前面补个数,若输出的数字少于指定的个数,则前面补0,否则,否则按原样输出按原样输出输出的数字或字符左对齐输出的数字或字符左对齐使输出的数字总是带使输出的数字总是带“”或或“”号
11、号0在输出的数据前加前导在输出的数据前加前导“0”#使输出的八进制数(或十六进制数)带前导使输出的八进制数(或十六进制数)带前导0(或(或0 x)输出项列表:输出项列表:是需要输出的一些数据,可以是一是需要输出的一些数据,可以是一个或者是多个输出项,当有多个输出项时,输出个或者是多个输出项,当有多个输出项时,输出项之间用逗号项之间用逗号“,”隔开,输出项可以是常量、隔开,输出项可以是常量、变量或表达式。输出项的个数和类型必须与控制变量或表达式。输出项的个数和类型必须与控制字符串的格式字符的个数、类型相匹配。字符串的格式字符的个数、类型相匹配。printf (printf (“控制字符串控制字符
12、串”,输出项列表,输出项列表) )printf(“a=%db=%d“,15,27);printf(“hello word“);1 1、在格式控制字符串中,格式说明与输出项从左到、在格式控制字符串中,格式说明与输出项从左到右在类型上必须一一对应匹配。对右在类型上必须一一对应匹配。对 long long 型数据要型数据要使用使用 %ld%ld 格式输出。格式输出。2 2、在格式控制字符串中,格式说明与输出项的个数、在格式控制字符串中,格式说明与输出项的个数应该相同。如果格式说明的个数少于输出项的个数,应该相同。如果格式说明的个数少于输出项的个数,则多余的输出项不输出;如果格式说明的个数多于则多余的
13、输出项不输出;如果格式说明的个数多于输出项的个数,则对于多余的格式项将输出不定值输出项的个数,则对于多余的格式项将输出不定值(或(或0 0值)。值)。在格式控制字符串中,除了合法的格式说明外,可在格式控制字符串中,除了合法的格式说明外,可以包含任意的合法字符(包括转义字符),这些字以包含任意的合法字符(包括转义字符),这些字符在输出时符在输出时“原样照印原样照印”。3、若需输出百分号若需输出百分号% % 斜杠斜杠 % % 4 4、在输出语句中改变输出变量的值,如:、在输出语句中改变输出变量的值,如:int a=5; int a=5; printf(“%d%dn”,a,a+);printf(“%
14、d%dn”,a,a+);5 5、printfprintf函数的返回值通常是本次调用函数的返回值通常是本次调用中输出字符的个数。中输出字符的个数。main ( ) char ch=a; int a=123 ; float x=12.3456 ; printf ( “Hello computer n”); printf (“ %c, %d n”, ch , ch ); printf (“ %.5d,%.2d,%5d,%05d n” , a , a , a , a); printf (“ %f ,%10.3f ,%5.5f ,%2.3fn” , x , x, x, x); Hello compute
15、ra,9700123,123, 123,0012312.345600, 12.346,12.34560,12.346int a=12478;格式控制符格式控制符输出结果输出结果 %d %8d %3d %-8d 12478 124781247812478float a= 1274.678 ;格式控制符格式控制符输出结果输出结果 %f %e %8.2f %6.2f %10.2e %-10.2e1274.6780001.274678e+00 1274.681274.68 1.3e+0031.3e+003c= “hello” ;格式控制符格式控制符输出结果输出结果 %s %3s %7s %7.2s %
16、-7.2shellohello hellohehe格式:格式: scanf (scanf (“控制字符串控制字符串”,地址表列地址表列) )功能:功能:按控制字符串规定的输入格式,从键盘上将输按控制字符串规定的输入格式,从键盘上将输入的数据依次存到输入项地址表列所指定入的数据依次存到输入项地址表列所指定的内存单元中。的内存单元中。地址表列:地址表列:变量的地址表,即:变量的地址表,即:& &变量名,变量名,& &变量名,变量名, 控制字符串:控制字符串:与与printf()printf()函数类似。函数类似。 main ( ) int a , b , c ; scanf (“ %d %d %d
17、”, &a , &b , &c); printf (“ a=%d , b=%d , c=%d n” , a , b , c); printf (“ s=%d” , a+b+c); 从键盘上输入:从键盘上输入: 3 12 110屏幕上则显示:屏幕上则显示: a=3 , b=12 , c=110 s=125注意:注意:1 1、输入、输入longlong整型数据时,在整型数据时,在“”和和“d d” 之间之间必须加必须加“l l”;输入;输入doubledouble型数据时,在型数据时,在“% %”和和“f(e)f(e)”之间也必须加之间也必须加l l。否则得不到正确。否则得不到正确的数据。的数据。
18、2 2、当指定输入数据所占的宽度、当指定输入数据所占的宽度m m时,系统自动按时,系统自动按宽度宽度m m截取所需数据。但不能对实型数据指定截取所需数据。但不能对实型数据指定小数位的宽度。小数位的宽度。 例:例: scanf(scanf(“%4d%2d%4d%2d”,&a,&b);,&a,&b); 若输入:若输入:123456 123456 则将则将1234a 1234a ,56b56b scanf(scanf(“%7.2f%7.2f”,&a); ,&a); 不合法。不合法。3、输入项与控制字符串中的格式说明从左到右、输入项与控制字符串中的格式说明从左到右在类型上必须一一对应匹配。在类型上必须
19、一一对应匹配。4 4、数据输入的合法结束:、数据输入的合法结束:空格(一个或多个)、空格(一个或多个)、回车、回车、TABTAB键、数据域宽,非法输入。键、数据域宽,非法输入。5 5、在用、在用“%c%c”格式输入字符时,空格符、制表符格式输入字符时,空格符、制表符或回车符、或回车符、“转义字符转义字符”等都是有效字符。等都是有效字符。但是,如果在格式说明之间加入了空格后,但是,如果在格式说明之间加入了空格后,这时输入字符中的空格符、制表符和回车符这时输入字符中的空格符、制表符和回车符都将作为间隔符。都将作为间隔符。例例: 已知:已知:char c1 , c2 , c3 ; int a , b ; float d , e;格式输入语句格式输入语句 输入数据的格式输入数据的格式 变量获得的值变量获得的值scan
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论