顺序结构程序设计课件_第1页
顺序结构程序设计课件_第2页
顺序结构程序设计课件_第3页
顺序结构程序设计课件_第4页
顺序结构程序设计课件_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、语言程序设计1第第3 3章章 顺序结构程序设计顺序结构程序设计语言程序设计2第第3 3章章 顺序结构程序设计顺序结构程序设计主要内容:主要内容:3.1 3.1 语句概述语句概述3.1.1 C3.1.1 C语言的基本语句语言的基本语句3.1.2 3.1.2 赋值语句赋值语句3.2 3.2 数据的输入数据的输入/ /输出输出3.2.13.2.1字符输入字符输入/ /输出函数输出函数3.2.23.2.2格式输入格式输入/ /输出函数输出函数3.3 3.3 程序举例程序举例语言程序设计3第第3 3章章 顺序结构程序设计顺序结构程序设计3.1 3.1 语句概述语句概述 图图3.1 C3.1 C语言程序结

2、构语言程序结构语言程序设计4第第3 3章章 顺序结构程序设计顺序结构程序设计3.1.1 C3.1.1 C语言的基本语句语言的基本语句 1.1.表达式语句表达式语句C C语言是一种表达式语言,所有的操作运算都语言是一种表达式语言,所有的操作运算都通过表达式来完成。由表达式组成的语句称为表通过表达式来完成。由表达式组成的语句称为表达式语句。达式语句。表达式语句的一般形式为:表达式语句的一般形式为: 表达式;表达式; 应注意:分号是应注意:分号是C C语言的语句中不可缺少的一语言的语句中不可缺少的一部分,因此部分,因此“a=10”a=10”和和“a=10a=10;”是不同的,前是不同的,前者是一个赋

3、值表达式,而后者才是一个赋值语句者是一个赋值表达式,而后者才是一个赋值语句。 语言程序设计5第第3 3章章 顺序结构程序设计顺序结构程序设计例如:例如:sum=0;sum=0;i+;i+;sum+=i+;sum+=i+;x+y;x+y; 2.2.控制语句控制语句控制语句用于完成一定的功能。控制语句用于完成一定的功能。C C语言有语言有9 9中控中控制语句,它们是:制语句,它们是: 语言程序设计6第第3 3章章 顺序结构程序设计顺序结构程序设计(1)if()else(1)if()else( (条件语句条件语句) )(2)for()(2)for()( (循环语句循环语句) )(3)while()(

4、3)while()( (循环语句循环语句) )(4)dowhile()(4)dowhile()( (循环语句循环语句) )(5)continue(5)continue( (结束本次循环语句)结束本次循环语句)(6)break(6)break( (中止执行中止执行switchswitch或循环语句或循环语句) )(7)switch(7)switch( (多分支选择语句多分支选择语句) )(8)goto(8)goto( (转向语句转向语句) )(9)return(9)return ( (从函数返回语句)从函数返回语句) 语言程序设计7第第3 3章章 顺序结构程序设计顺序结构程序设计3.3.函数调用

5、语句函数调用语句 由一个函数调用加一个分号构成一个语句,由一个函数调用加一个分号构成一个语句,其完成特定的任务。其一般形式为:其完成特定的任务。其一般形式为: 函数名函数名( (实际参数表实际参数表) ); 例如:例如: printf(I am a student!);printf(I am a student!);该函数调用语句的作用是:在屏幕上显示该函数调用语句的作用是:在屏幕上显示I I am a student!am a student!。 语言程序设计8第第3 3章章 顺序结构程序设计顺序结构程序设计4.4.复合语句复合语句 复合语句由花括号复合语句由花括号“ ” ”括起来的两条或括

6、起来的两条或两条以上的语句组成。一个复合语句在功能上相两条以上的语句组成。一个复合语句在功能上相当于一条语句。复合语句也可称为当于一条语句。复合语句也可称为“块语句块语句”,复合语句的一般形式为:复合语句的一般形式为: 语句语句1 1;语句;语句2 2; ;语句;语句n n ; 例如:例如: int a=3,b; int a=3,b; / /* *定义部分定义部分* */ / a+; a+; / /* *执行语句执行语句* */ / b b* *=a;=a; / /* *执行语句执行语句* */ / printf(b=%dn,b); printf(b=%dn,b); / /* *执行语句执行语

7、句* */ /语言程序设计9第第3 3章章 顺序结构程序设计顺序结构程序设计5.5.空语句空语句 C C语言中的所有语句都必须由一个分号语言中的所有语句都必须由一个分号“;”作为结束。如果只有一个分号,如:作为结束。如果只有一个分号,如: main( )main( ) ; 这个分号也是一条语句,称为这个分号也是一条语句,称为“空语句空语句”。空语句的一般形式为:空语句的一般形式为: ;空语句是什么也不执行的语句。在程序中空语句是什么也不执行的语句。在程序中空语句常用来做空循环体,可起到延时作用。空语句常用来做空循环体,可起到延时作用。语言程序设计10第第3 3章章 顺序结构程序设计顺序结构程序

8、设计3.1.2 3.1.2 赋值语句赋值语句 赋值语句是由赋值表达式加上分号赋值语句是由赋值表达式加上分号“;”构成的。例如:构成的。例如: a=b+3;a=b+3; a=b=c+5; a=b=c+5; 都是合法的赋值语句。都是合法的赋值语句。 使用赋值语句要注意以下几个方面:使用赋值语句要注意以下几个方面: 赋值号赋值号“=”=”左边必须是变量,不能是常量或变量左边必须是变量,不能是常量或变量表达式。赋值号表达式。赋值号“=”=”右面可以是变量、常量或各右面可以是变量、常量或各种合法的表达式。种合法的表达式。语言程序设计11第第3 3章章 顺序结构程序设计顺序结构程序设计2.2.变量赋初值与

9、赋值语句的区别。变量赋初值与赋值语句的区别。例如:例如:int a=3,b,int a=3,b,* *p=&a,p=&a,* *q; /q; /* *给变量给变量a a和和p p赋初值赋初值* */ /b=5;b=5; / /* *给变量给变量b b赋值赋值* */ /q=&b;q=&b; / /* *给指针变量给指针变量q q赋值赋值* */ /再如:再如:int x=5,y=5,m,n;int x=5,y=5,m,n;m=n=6;m=n=6;这里要注意:这里要注意:int x=5,y=5,m,n;int x=5,y=5,m,n;不能写成不能写成int x=y=5,m,n;int x=y=5

10、,m,n; 也就是说在定义变量时,不允许连续给也就是说在定义变量时,不允许连续给多个变量赋初值。而赋值语句是允许连续给多个多个变量赋初值。而赋值语句是允许连续给多个变量赋值。变量赋值。语言程序设计12第第3 3章章 顺序结构程序设计顺序结构程序设计3.2 3.2 数据的输入数据的输入/ /输出输出 C C语言没有专门的输入或输出语句,但在语言没有专门的输入或输出语句,但在C C的标的标准库函数中提供了常用的输入和输出函数。由于标准库函数中提供了常用的输入和输出函数。由于标准库函数中所用到的变量定义和宏定义均在扩展名准库函数中所用到的变量定义和宏定义均在扩展名为为.h.h的头文件中描述,因此在需

11、要使用标准的头文件中描述,因此在需要使用标准I/OI/O库库中的函数时,应在程序前使用下面的预编译命令,中的函数时,应在程序前使用下面的预编译命令, #include #include 或或#include stdio.h#include stdio.h 将相应的将相应的.h.h头文件包含到用户程序中。头文件包含到用户程序中。 语言程序设计13第第3 3章章 顺序结构程序设计顺序结构程序设计3.2.13.2.1字符输入字符输入/ /输出函数输出函数 1.1.字符输出函数字符输出函数 一般形式为:一般形式为: putchar(c);putchar(c); 该函数的作用是向终端(如显示器)输出一该

12、函数的作用是向终端(如显示器)输出一个字符。个字符。C C可以是字符常量或变量、整型常量或可以是字符常量或变量、整型常量或变量、转义字符。变量、转义字符。 语言程序设计14第第3 3章章 顺序结构程序设计顺序结构程序设计【例例3.23.2】字符输出举例字符输出举例 #include#include void main() void main() char a=A,b=B; char a=A,b=B; putchar(a); putchar(a); putchar(A); putchar(A); putchar(65); putchar(65); putchar(n); putchar(n);

13、putchar(b); putchar(b); putchar(B); putchar(B); putchar(66); putchar(66); 运行结果:运行结果:AAAAAABBBBBB语言程序设计15第第3 3章章 顺序结构程序设计顺序结构程序设计2.2.字符输入函数字符输入函数 一般形式为:一般形式为: getchar();getchar(); 该函数的作用是从终端(如键盘)输入一个该函数的作用是从终端(如键盘)输入一个字符。字符。【例例3.33.3】字符输入举例字符输入举例 #include #include void main() void main() char ch; cha

14、r ch; ch=getchar(); ch=getchar(); putchar(ch); putchar(ch); putchar(n); putchar(n); 运行结果:运行结果:A A A A语言程序设计16第第3 3章章 顺序结构程序设计顺序结构程序设计使用使用getchar()getchar()函数要注意以下几个方面:函数要注意以下几个方面:(1)getchar()(1)getchar()函数的括号函数的括号()()内不允许有任何数据,内不允许有任何数据,但这一对圆括号不可少,这一点要和但这一对圆括号不可少,这一点要和putchar()putchar()区区别开来。别开来。(2)

15、(2)使用本函数前必须包含文件使用本函数前必须包含文件“stdio.h”“stdio.h”。(3)getchar()(3)getchar()函数只能接收一个字符,输入的数函数只能接收一个字符,输入的数字也按字符处理,而且输入的空格、回车都将作字也按字符处理,而且输入的空格、回车都将作为字符读入,当输入多个字符时也只能接收一个为字符读入,当输入多个字符时也只能接收一个字符。因此,在用字符。因此,在用getchar()getchar()函数连续输入两个字函数连续输入两个字符时要注意回车符和空格符。符时要注意回车符和空格符。 语言程序设计17第第3 3章章 顺序结构程序设计顺序结构程序设计当从键盘输

16、入:当从键盘输入:A12A12并按并按【enterenter】键,则变键,则变量量ch1ch1的值是的值是AA,变量,变量 ch2ch2的值是的值是11。 当从键盘输入:当从键盘输入:A 12A 12并按并按【enterenter】键,则键,则变量变量ch1ch1的值是的值是AA,变量,变量 ch2ch2的值是空格符。的值是空格符。 当从键盘输入:当从键盘输入:A A / /* * 代表代表【enterenter】键键* */ /则变量则变量ch1ch1的值是的值是AA,变量,变量 ch2ch2的值是的值是nn。 例如:例如:char ch1,ch2;char ch1,ch2;ch1=getc

17、har();ch1=getchar();ch2=getchar();ch2=getchar();语言程序设计18第第3 3章章 顺序结构程序设计顺序结构程序设计(3)(3)给给getchar()getchar()函数输入字符时不需加单引号,函数输入字符时不需加单引号,输入字符后必须按输入字符后必须按【enterenter】键,字符才能送到键,字符才能送到内存。内存。(4)getchar()(4)getchar()函数得到的字符可以赋给一个字符函数得到的字符可以赋给一个字符型变量或整型变量,也可以不赋给任何变量,可型变量或整型变量,也可以不赋给任何变量,可作为表达式的一部分。作为表达式的一部分。

18、语言程序设计19第第3 3章章 顺序结构程序设计顺序结构程序设计3.2.23.2.2格式输入格式输入/ /输出函数输出函数 1.1.格式输出函数格式输出函数(1)printf(1)printf(要输出的字符序列要输出的字符序列) 注意:注意:“要输出的字符序列要输出的字符序列”必须用英文必须用英文的双引号括起来,它的作用是在屏幕上原样输出的双引号括起来,它的作用是在屏幕上原样输出“要输出的字符序列要输出的字符序列”。 例如:例如: printf(I love china!); printf(I love china!); 在屏幕上将看到:在屏幕上将看到:I love china!I love

19、china!语言程序设计20第第3 3章章 顺序结构程序设计顺序结构程序设计(2)printf(“(2)printf(“输出格式控制符输出格式控制符”,”,输出列表项输出列表项) ) 注意:注意:“输出格式控制符输出格式控制符”必须用英文的双必须用英文的双引号括起来,它的作用是按照输出格式来输出后引号括起来,它的作用是按照输出格式来输出后面的输出列表项的值。面的输出列表项的值。 例如例如 : int x=3,y=4,int x=3,y=4,* *px=&x,px=&x,* *py=&y;py=&y; printf(%d,%d,x,y); printf(%d,%d,x,y); 或写成:或写成:

20、printf(%d,%d, printf(%d,%d,* *px,px,* *py);py); 在屏幕上将会看到:在屏幕上将会看到:3 3,5 5。 语句语句printf(%d,%d,x,y);printf(%d,%d,x,y);的作用是:以的作用是:以%d%d的格式输出变量的格式输出变量x x的值,以的值,以%d%d的格式输出变量的格式输出变量y y的值,的值,中间以逗号分隔。中间以逗号分隔。语言程序设计21第第3 3章章 顺序结构程序设计顺序结构程序设计“输出格式控制符输出格式控制符”可以是:可以是:(1)(1)格式符:即由格式符:即由% %和格式字符组成,如和格式字符组成,如%d,%f%

21、d,%f等。等。(2)(2)普通字符:如普通字符:如printf(“a=%d,b=%dn”,a,b);printf(“a=%d,b=%dn”,a,b);中的中的“a=”a=”、 “ “,” ,” 、“b=”b=”都是普通字符,都是普通字符,普通字符原样输出。普通字符原样输出。(3)(3)转义字符:如转义字符:如printf(“a=%d,b=%dn”,a,b);printf(“a=%d,b=%dn”,a,b);中的中的“n”n”。其含义是。其含义是“换行换行”。C C语言中常用的格式字符共有语言中常用的格式字符共有9 9种,如表种,如表3.13.1所示。所示。语言程序设计22第第3 3章章 顺序

22、结构程序设计顺序结构程序设计格式字符说 明d,i输出带符号的十进制整数(正数不输出符号)o以八进制无符号形式输出整数(不输出前导0)x或X以十六进制无符号形式输出整数(不输出前导0 x),用x则输出十六进制数af时以小写形式输出;用X时,则以大写形式输出u以无符号十进制形式输出整数c输出一个字符s输出字符串的字符,直到遇到“0”,或者输出由精度指定的字符数f以小数形式输出单、双精度数,隐含输出6位小数。若指定的精度为0,小数部分(包括小数点)都不输出e或E以标准指数形式输出单、双精度数,用E时,指数部分的e用大写E,数字部分的小数位数为6位g或G由系统决定采用%f或%e或%E格式,以使输出宽度

23、最小,用G时,指数部分的e用大写E。%输出百分号(%)表3.1 printf( )的格式说明语言程序设计23第第3 3章章 顺序结构程序设计顺序结构程序设计 在格式说明中,在在格式说明中,在% %和上述格式字符之间还可以和上述格式字符之间还可以插入表插入表3.23.2所示的几种附加字符(又称修饰符)。所示的几种附加字符(又称修饰符)。 格式字符说 明l或L输出长整型数据,可以放在d、o、x、u的前面;输出double型数据,可以放在f、e之前h输出短整型数据,可以放在d、o、x、u的前面m输出数据的宽度n对于实数,表示输出n位小数。对于字符串,表示截取字符个数-输出的数据在域内左对齐表3.2

24、printf( )的附加格式说明符 语言程序设计24第第3 3章章 顺序结构程序设计顺序结构程序设计printf()printf()函数常用的格式符如下函数常用的格式符如下. . d d格式符用来输出十进制整数。格式符用来输出十进制整数。%d%d以整数的实际位数输出。以整数的实际位数输出。例如:例如:printf(%d,2009);printf(%d,2009);输出结果为:输出结果为:20092009%+d%+d以整数的实际位数输出以整数的实际位数输出, ,输出时正整数前带输出时正整数前带正号正号“+”+”。例如:例如:printf(%d,2009);printf(%d,2009);输出结果

25、为:输出结果为:+2009+2009语言程序设计25第第3 3章章 顺序结构程序设计顺序结构程序设计%md%md输出的整数占输出的整数占m m列并右对齐,当列并右对齐,当m m大于整数的宽度时,大于整数的宽度时,多余的位用空格填充,当多余的位用空格填充,当m m小于整数的宽度时,按整数的小于整数的宽度时,按整数的实际位数输出。实际位数输出。例如:例如: printf(%8d,2009);printf(%8d,2009);输出结果为:输出结果为: 20092009%-md%-md输出的整数占输出的整数占m m列并左对齐,当列并左对齐,当m m大于整数的宽度时,大于整数的宽度时,多余的位用空格填充

26、,当多余的位用空格填充,当m m小于整数的宽度时,按整数的小于整数的宽度时,按整数的实际位数输出。实际位数输出。例如:例如: printf(%8dn%-8d,2009,2009); printf(%8dn%-8d,2009,2009);输出结果为:输出结果为: 200920092009 2009 语言程序设计26第第3 3章章 顺序结构程序设计顺序结构程序设计 %ld%ld或或%Ld%Ld输出长整型数据,按实际位数输出。输出长整型数据,按实际位数输出。 %hd%hd输出短整型数据,按实际位数输出。输出短整型数据,按实际位数输出。 %mld%mld或或%mLd%mLd输出长整型数据占输出长整型数

27、据占m m列并右对齐,列并右对齐,当当m m大于整数的宽度时,多余的位用空格填充,大于整数的宽度时,多余的位用空格填充,当当m m小于整数的宽度时,按整数的实际位数输出。小于整数的宽度时,按整数的实际位数输出。 %-mld%-mld或或%-mLd%-mLd输出长整型数据占输出长整型数据占m m列并左对列并左对齐,当齐,当m m大于整数的宽度时,多余的位用空格填大于整数的宽度时,多余的位用空格填充,当充,当m m小于整数的宽度时,按整数的实际位数小于整数的宽度时,按整数的实际位数输出。输出。例如:例如:long x=123456;long x=123456;printf(%8ldn%-8ld,x

28、,x);printf(%8ldn%-8ld,x,x);输出结果为:输出结果为: 123456123456123456123456语言程序设计27第第3 3章章 顺序结构程序设计顺序结构程序设计%0md%0md输出的整数占输出的整数占m m列并右对齐,当列并右对齐,当m m大于整数大于整数的宽度时,多余的位用的宽度时,多余的位用0 0填充,当填充,当m m小于整数的宽小于整数的宽度时,按整数的实际位数输出。度时,按整数的实际位数输出。例如:例如:printf(%8d,2009);printf(%8d,2009);输出结果为:输出结果为:注意:没有注意:没有%-0md%-0md格式控制符。格式控制

29、符。语言程序设计28第第3 3章章 顺序结构程序设计顺序结构程序设计o o格式符用来输出八进制整数,其用法同格式符用来输出八进制整数,其用法同d d格格式符,用时把式符,用时把d d格式符改为格式符改为o o格式符即可。格式符即可。例如:例如:short int n=-1;short int n=-1;printf(“%ho”,n);printf(“%ho”,n);输出结果为:输出结果为:177777177777可以看到,八进制形式输出的整数是不考虑可以看到,八进制形式输出的整数是不考虑符号的。符号的。语言程序设计29第第3 3章章 顺序结构程序设计顺序结构程序设计x x或或X X格式符用来输

30、出十六进制数,其用法同格式符用来输出十六进制数,其用法同d d格式符,用时把格式符,用时把d d格式符改为格式符改为x x或或X X格式符即格式符即可。可。例如:例如:short int n=-1;short int n=-1;printf(“%hx ”,n);printf(“%hx ”,n);printf(“%hX”,n);printf(“%hX”,n);输出结果为:输出结果为:ffff FFFFffff FFFF可以看到,十六进制形式输出的整数也是不考可以看到,十六进制形式输出的整数也是不考虑符号的。虑符号的。语言程序设计30第第3 3章章 顺序结构程序设计顺序结构程序设计u u格式符用来

31、输出无符号型的十进制整数,格式符用来输出无符号型的十进制整数,其用法同其用法同d d格式符,用时把格式符,用时把d d格式符改为格式符改为u u格格式符即可。式符即可。例如:例如:short int n=-1;short int n=-1;printf(“%hd,%hu ”,n,n);printf(“%hd,%hu ”,n,n);输出结果为:输出结果为:-1,65535-1,65535从有符号的角度看,它表示的是从有符号的角度看,它表示的是-1-1;从无符号;从无符号数的角度看,它表示的是数的角度看,它表示的是6553565535。语言程序设计31第第3 3章章 顺序结构程序设计顺序结构程序设

32、计 c c格式符用来输出一个字符。有以下用法:格式符用来输出一个字符。有以下用法:%c%c输出一个字符。输出一个字符。%mc%mc输出的字符占输出的字符占m m列并右对齐,多余的位用空列并右对齐,多余的位用空格填充。格填充。%-mc%-mc输出的字符占输出的字符占m m列并左对齐,多余的位用列并左对齐,多余的位用空格填充。空格填充。例如:例如:printf(%4cn%-4c,A, A);printf(%4cn%-4c,A, A);输出结果为:输出结果为: A AA A语言程序设计32第第3 3章章 顺序结构程序设计顺序结构程序设计 s s格式符用来输出一个字符串。有以下用法:格式符用来输出一个

33、字符串。有以下用法: %s%s以字符串的实际长度输出一个字符串。以字符串的实际长度输出一个字符串。 printf(%s,china); printf(%s,china);输出结果为:输出结果为:chinachina%ms%ms输出的字符串占输出的字符串占m m列并右对齐,当列并右对齐,当m m大于字大于字符串的实际长度时,多余的位用空格填充,当符串的实际长度时,多余的位用空格填充,当m m小于字符串的实际长度时,按字符串的实际长度小于字符串的实际长度时,按字符串的实际长度输出。输出。语言程序设计33第第3 3章章 顺序结构程序设计顺序结构程序设计%-ms%-ms输出的字符串占输出的字符串占m

34、m列并左对齐,当列并左对齐,当m m大于字大于字符串的实际长度时,多余的位用空格填充,当符串的实际长度时,多余的位用空格填充,当m m小于字符串的实际长度时,按字符串的实际长度小于字符串的实际长度时,按字符串的实际长度输出。输出。例如:例如:printf(“%8sn%-8s”,“china”,“china”);printf(“%8sn%-8s”,“china”,“china”);输出结果为:输出结果为: chinachinachinachina语言程序设计34第第3 3章章 顺序结构程序设计顺序结构程序设计%m.ns%m.ns在在m m列的位置上输出一个字符串的前列的位置上输出一个字符串的前n

35、 n个字个字符,并右对齐,符,并右对齐,mnmn时,多余的位数用空格填充,时,多余的位数用空格填充,mnmnmn时,多余的位数用空格填充,时,多余的位数用空格填充,mnmn时,输出实际长度的字符串。时,输出实际长度的字符串。例如:例如:printf(%8.2sn%-8.2s,china,china);printf(%8.2sn%-8.2s,china,china);输出结果为:输出结果为: chchchch语言程序设计35第第3 3章章 顺序结构程序设计顺序结构程序设计f f格式符用来输出实数(包括单精度、双精度),以格式符用来输出实数(包括单精度、双精度),以小数形式输出。小数形式输出。 %

36、f%f用于输出单精度小数,也可输出双精度小用于输出单精度小数,也可输出双精度小数,输出时实数的整数部分全部输出,小数部分数,输出时实数的整数部分全部输出,小数部分保留保留6 6位,在有效数据范围内的小数部分要进行位,在有效数据范围内的小数部分要进行四舍五入。四舍五入。例如:例如: printf(%f,12.123456789); printf(%f,12.123456789);输出结果为:输出结果为:12.12345712.123457语言程序设计36第第3 3章章 顺序结构程序设计顺序结构程序设计%lf%lf或或%Lf%Lf用于输出双精度小数,输出时实数的用于输出双精度小数,输出时实数的整数

37、部分全部输出,小数部分保留整数部分全部输出,小数部分保留6 6位,在有效位,在有效数据范围内的小数部分要进行四舍五入。数据范围内的小数部分要进行四舍五入。例如:例如:double x=12.123456789;double x=12.123456789;printf(%lf,x);printf(%lf,x);或写成:或写成:printf(%f,x);printf(%f,x);输出结果为:输出结果为:12.12345712.123457语言程序设计37第第3 3章章 顺序结构程序设计顺序结构程序设计%m.nf%m.nf在在m m列的位置上输出一个实数保留列的位置上输出一个实数保留n n位小位小数

38、,并右对齐,系统自动对在有效数据范围内的数,并右对齐,系统自动对在有效数据范围内的小数部分进行四舍五入。当小数部分进行四舍五入。当m m大于实数总宽度时,大于实数总宽度时,多余的位数用空格填充,当多余的位数用空格填充,当m m小于实数总宽度时,小于实数总宽度时,实数的整数部分按实际宽度输出。实数的整数部分按实际宽度输出。%-m.nf%-m.nf在在m m列的位置上输出一个实数保留列的位置上输出一个实数保留n n位小位小数,并左对齐,系统自动对在有效数据范围内的数,并左对齐,系统自动对在有效数据范围内的小数部分进行四舍五入。当小数部分进行四舍五入。当m m大于实数总宽度时大于实数总宽度时,多余的

39、位数用空格填充,当,多余的位数用空格填充,当m m小于实数总宽度小于实数总宽度时,实数的整数部分按实际宽度输出。时,实数的整数部分按实际宽度输出。语言程序设计38第第3 3章章 顺序结构程序设计顺序结构程序设计例如:例如:printf(%8.2fn%-8.2f,12.123456789,12.123456789);printf(%8.2fn%-8.2f,12.123456789,12.123456789);输出结果为:输出结果为: 12.1212.1212.1212.12 %.nf%.nf实数的整数部分按实际宽度输出,保留实数的整数部分按实际宽度输出,保留n n位小数,位小数,系统自动对在有效

40、数据范围内的小数部分进行四舍五入。系统自动对在有效数据范围内的小数部分进行四舍五入。例如:例如:printf(%.2f,12.123456789);printf(%.2f,12.123456789);输出结果为:输出结果为:12.1212.12语言程序设计39第第3 3章章 顺序结构程序设计顺序结构程序设计 e e格式符用来以指数形式输出一个实数格式符用来以指数形式输出一个实数, ,用法同用法同f f格式符,用时把格式符,用时把f f格式符换成格式符换成e e格式符即可。格式符即可。 g g格式符用来输出实数,系统根据实数的大小,自格式符用来输出实数,系统根据实数的大小,自动选动选f f格式符

41、或格式符或e e格式符输出,输出时选择占宽度较格式符输出,输出时选择占宽度较小的一种格式输出,且不输出无意义的小的一种格式输出,且不输出无意义的0 0。例如:例如:printf(%e,12.123456789);printf(%e,12.123456789);输出结果为:输出结果为:1.212346e+0011.212346e+001语言程序设计40第第3 3章章 顺序结构程序设计顺序结构程序设计【例例3.43.4】输出函数应用举例输出函数应用举例#include#includevoid main()void main() int a=27; int a=27; char ch=A; char

42、 ch=A; float b=12.3456; float b=12.3456; double c=234.123456; double c=234.123456; printf(%4d%-4o%4xn,a,a,a); printf(%4d%-4o%4xn,a,a,a); printf(%-4c%4cn,ch,ch); printf(%-4c%4cn,ch,ch); printf(b=%10.2f,b=%-10.2fn,b,b); printf(b=%10.2f,b=%-10.2fn,b,b); printf(b=%10.2e,b=%-10.2en,b,b); printf(b=%10.2e,

43、b=%-10.2en,b,b); printf(c=%lf,c=%10.2lfn,c,c); printf(c=%lf,c=%10.2lfn,c,c); printf(%s printf(%s,%5.2s,Hello!,Hello!);%5.2s,Hello!,Hello!);语言程序设计41第第3 3章章 顺序结构程序设计顺序结构程序设计使用使用printf()printf()函数要注意以下几个方面:函数要注意以下几个方面: 数据类型应与格式说明符匹配,否则将会出现错数据类型应与格式说明符匹配,否则将会出现错误。误。 intint型数据也可以用型数据也可以用%u%u格式输出;反之,一个格式输

44、出;反之,一个unsignedunsigned型数据也可以用型数据也可以用%d%d、%o%o、%x%x格式输出。格式输出。例如:例如:short int a=-1;short int a=-1;unsigned short b=65534;unsigned short b=65534;printf(%hu,%hdn,a,b);printf(%hu,%hdn,a,b);程序运行结果是:程序运行结果是:6553565535,-2-2语言程序设计42第第3 3章章 顺序结构程序设计顺序结构程序设计除了除了X X、E E、G G、L L可以大写外,其他格式符必须小写,可以大写外,其他格式符必须小写,如

45、如%f%f不能写成不能写成%F%F。如果需要输出如果需要输出“%”%”,则应在格式符内连续使用,则应在格式符内连续使用两个两个% %。例如:。例如:printf(%5.2f%,3.0/100)printf(%5.2f%,3.0/100)输出:输出:33.33%33.33%语言程序设计43第第3 3章章 顺序结构程序设计顺序结构程序设计2.2.格式输入函数格式输入函数 格式输入函数格式输入函数scanf()scanf()用于从键盘输入数据,用于从键盘输入数据,该输入数据按指定的输入格式赋给相应的输入项。该输入数据按指定的输入格式赋给相应的输入项。l注意:注意:“输入格式控制符输入格式控制符”必须

46、用英文的双引必须用英文的双引号括起来,它的作用是按照输入格式从键盘输入号括起来,它的作用是按照输入格式从键盘输入若干类型的数据给后面的输入项。若干类型的数据给后面的输入项。 其一般格式为:其一般格式为: scanf(scanf(输入格式控制符输入格式控制符 ,输入项地址表列,输入项地址表列););语言程序设计44第第3 3章章 顺序结构程序设计顺序结构程序设计(1)(1)格式符:即由格式符:即由% %和格式字符组成,如和格式字符组成,如%d,%f%d,%f等。等。(2)(2)普通字符:如普通字符:如printf(“a=%d,b=%dn”,a,b);printf(“a=%d,b=%dn”,a,b

47、);中的中的“a=” a=” 、“ “ , ”, ”、 “ “b=”b=”都是普通字符,都是普通字符,输入时要照原样入。输入时要照原样入。 表表3.33.3列出了列出了scanf()scanf()函数常用的格式符。函数常用的格式符。 “输入格式控制符输入格式控制符”可以是:可以是:语言程序设计45第第3 3章章 顺序结构程序设计顺序结构程序设计格式字符说 明d,i输入带符号的十进制整数o输入八进制无符号整数x或X输入十六进制无符号整数,大、小写形式相同u输入无符号十进制整数c输入单个字符s输入字符串f输入实数,以小数形式或指数形式e、E、g、G与f作用相同,e与f,g可以相互替换,大小写形式相

48、同表3.3 scanf( )的格式说明 语言程序设计46第第3 3章章 顺序结构程序设计顺序结构程序设计 在格式说明中,在在格式说明中,在% %和上述格式字符之间还可以和上述格式字符之间还可以插入表插入表3.43.4所示的几种附加字符(又称修饰符)。所示的几种附加字符(又称修饰符)。格式字符说 明l或L输入长整型数据,可以放在d、o、x、u的前面;输入double型数据。可以放在f、e之前h输入短整型数据,可以放在d、o、x、u的前面m用来指定输入数据的宽度*表示本输入项在读入后不赋给相应的变量表3.4 scanf( )的附加格式说明符语言程序设计47第第3 3章章 顺序结构程序设计顺序结构程

49、序设计使用使用scanf()scanf()函数要注意以下几个方面:函数要注意以下几个方面: 地址表列要用地址运算符地址表列要用地址运算符“&”&”取变量的地址或用指取变量的地址或用指针变量。针变量。例如:例如: int a,b, int a,b,* *pa=&a,pa=&a,* *pb=&b;pb=&b; scanf(%d%d,&a,&b); scanf(%d%d,&a,&b);或写成:或写成: scanf(%d%d,pa,pb); scanf(%d%d,pa,pb);&a&a、&b&b、papa、pbpb表示把输入的数据送到系统为表示把输入的数据送到系统为变量变量a a和和b b分配的内存中

50、。分配的内存中。下面的写法是错误的。下面的写法是错误的。scanf(%d%d,a,b);scanf(%d%d,a,b);或写成:或写成: scanf(%d%d,scanf(%d%d,* *pa,pa,* *pb);pb);语言程序设计48第第3 3章章 顺序结构程序设计顺序结构程序设计 “ “输入格式控制符输入格式控制符“中的普通字符一定要照原样中的普通字符一定要照原样输入。输入。如:如: scanf(%d%d,&a,&b);scanf(%d%d,&a,&b); 正确的输入格式是:正确的输入格式是:3 53 5 3 35 5 3 3 5 5 “ “ ”代表代表【enterenter】键。键。例

51、如:例如: scanf(”a=%d,b=%d”,&a,&b);scanf(”a=%d,b=%d”,&a,&b); 输入时一定要把普通字符输入时一定要把普通字符“a=” a=” 、“ “ , ”, ”、“b=”b=”照原样输入,否则会出现数据读入错误。照原样输入,否则会出现数据读入错误。 正确的输入格式是:正确的输入格式是:a=3,b=5a=3,b=5按按【enterenter】键。键。如果如果“输入格式控制符输入格式控制符“中没有普通字符,中没有普通字符,则输入时应以一个或多个空格、则输入时应以一个或多个空格、TabTab键或键或【enterenter】键来分隔。键来分隔。语言程序设计49第第

52、3 3章章 顺序结构程序设计顺序结构程序设计可以指定输入数据的宽度,系统会自动按它截取所需的可以指定输入数据的宽度,系统会自动按它截取所需的数据。数据。例如:例如: int a;int a; float b; float b; scanf(“%2d%3f”,&a,&b); scanf(“%2d%3f”,&a,&b); 输入:输入:123456123456 系统自动把系统自动把1212赋给赋给a,a,把把345.0345.0赋给变量赋给变量b b。此方法。此方法也可用于字符型数据。例如:也可用于字符型数据。例如: scanf(“%2c%3c”,&c1,&c2);scanf(“%2c%3c”,&c

53、1,&c2); 输入:输入:abcdefgabcdefg 由于字符型变量只能存放一个字符,因此,系统由于字符型变量只能存放一个字符,因此,系统将将aa赋给赋给c1c1,cc赋给赋给c2c2。语言程序设计50第第3 3章章 顺序结构程序设计顺序结构程序设计需要连续输入多个字符时,字符之间不用分隔,而且空需要连续输入多个字符时,字符之间不用分隔,而且空格、回车等均作为有效字符输入格、回车等均作为有效字符输入. .如果如果% %后面有一个后面有一个* *,则表示本项输入不赋给任何,则表示本项输入不赋给任何变量。变量。例如:例如:scanf(“%c%c”,&c1,&c2);scanf(“%c%c”,&

54、c1,&c2);输入:输入:ABAB 系统把字符系统把字符AA赋给赋给c1c1,把字符,把字符BB赋给赋给c2c2。输入:输入:A BA B 系统把字符系统把字符AA赋给赋给c1c1,把空格符赋给,把空格符赋给c2c2。例如:例如:scanf(%d,%scanf(%d,%* *d,%d,&a,&b);d,%d,&a,&b); 输入:输入:12,34,5612,34,56 系统将系统将1212赋给赋给a a,5656赋给赋给b b。语言程序设计51第第3 3章章 顺序结构程序设计顺序结构程序设计输入数据时不能规定精度。输入数据时不能规定精度。输入输入doubledouble型数据时,一定要在型数

55、据时,一定要在f f、e e之前加字母之前加字母l l或或L L。%d%d、%c%c、%f%f在一起进行混合输入时,要注意输入的格式。在一起进行混合输入时,要注意输入的格式。 例如:例如:scanf(%d%c%f,&x,&y,&z);scanf(%d%c%f,&x,&y,&z); 输入:输入:12 A 23.612 A 23.6 系统把系统把1212赋给赋给x x,把空格符赋给,把空格符赋给y y,z z的值为随机数。的值为随机数。例如:例如: scanf(“%6.2f”,&a);scanf(“%6.2f”,&a); 上述与输入语句是不合法的。上述与输入语句是不合法的。例如:例如: doubl

56、e a;double a; scanf(%lf,&a); scanf(%lf,&a);输入:输入:12A23.612A23.6 系统把系统把1212赋给赋给x x,把字符,把字符AA赋给赋给y y,把,把23.623.6赋给赋给z z。语言程序设计52第第3 3章章 顺序结构程序设计顺序结构程序设计 输入数据时,遇到以下情况认为数据输入结束。输入数据时,遇到以下情况认为数据输入结束。 遇到空格、回车或遇到空格、回车或TabTab键。键。 指定的宽度结束。如指定的宽度结束。如”%2d”%2d”,只取,只取2 2位。位。 遇到非法输入。遇到非法输入。例如:例如: scanf(%d,&a); sca

57、nf(%d,&a); 输入:输入:123A123A 系统只将系统只将123123赋给赋给a a。语言程序设计53第第3 3章章 顺序结构程序设计顺序结构程序设计【例例3.53.5】从键盘输入从键盘输入3 3个数,输出其平均值。个数,输出其平均值。#include#includevoid main()void main() int a,b,c; int a,b,c; float aver; float aver; scanf(%d%d%d,&a,&b,&c); scanf(%d%d%d,&a,&b,&c); aver=(a+b+c)/3.0; aver=(a+b+c)/3.0; printf(aver=%7.2fn,aver); printf(aver=%7.2fn,aver); 输入:输入:1 6 91 6 9 输出:输出: 5.335.33语言程序设计54第第3 3章章 顺序结构程序设计顺序结构程序设计【例例3.63.6】交换两个变量的值。交换两个变量的值。 #include#include void main() void main() int a,b,t, int a,b,t,* *pa=&a,pa=&a,* *pb=&b;pb=&b; scanf(a=%d,b=%d,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论