顺序结构程序设计课件.ppt

上传人:石*** 文档编号:42272004 上传时间:2022-09-15 格式:PPT 页数:65 大小:5.04MB
返回 下载 相关 举报
顺序结构程序设计课件.ppt_第1页
第1页 / 共65页
顺序结构程序设计课件.ppt_第2页
第2页 / 共65页
点击查看更多>>
资源描述

《顺序结构程序设计课件.ppt》由会员分享,可在线阅读,更多相关《顺序结构程序设计课件.ppt(65页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、顺序结构程序设计1第1页,此课件共65页哦大连理工大学软件学院大连理工大学软件学院2v赋值表达式和赋值语句赋值表达式和赋值语句v简单的格式输入与输出简单的格式输入与输出要点要点第2页,此课件共65页哦大连理工大学软件学院大连理工大学软件学院3主要内容主要内容1 1 程序的三种基本结构程序的三种基本结构2 C2 C语句概述语句概述3 3 赋值表达式和赋值语句赋值表达式和赋值语句4 4 数据输入输出的概念及在数据输入输出的概念及在C C语言中的实现语言中的实现5 5 字符数据的输入输出字符数据的输入输出6 6 简单的格式输入与输出简单的格式输入与输出7 7 较复杂的输入输出格式控制较复杂的输入输出

2、格式控制第3页,此课件共65页哦大连理工大学软件学院大连理工大学软件学院41 程序的三种基本结构程序的三种基本结构v一个良好的程序由以下三种基本结构组成:一个良好的程序由以下三种基本结构组成:(1)(1)顺序结构顺序结构 (2)(2)选择结构选择结构 (3)(3)循环结构循环结构第4页,此课件共65页哦大连理工大学软件学院大连理工大学软件学院5顺序结构顺序结构 数据的输入和传递数据的输入和传递 数据的操作数据的操作 结果的输出结果的输出BeginEndAInputCBOperationOnput1 程序的三种基本结构程序的三种基本结构第5页,此课件共65页哦大连理工大学软件学院大连理工大学软件

3、学院62 C语句概述语句概述C程序的结构:程序的结构:C程序源程序文件1源程序文件2源程序文件n预处理命令函数n函数1数据声明函数首部函数体数据声明执行语句第6页,此课件共65页哦大连理工大学软件学院大连理工大学软件学院7vC C语句分为语句分为5 5类类控制语句控制语句函数调用语句函数调用语句表达式语句表达式语句空语句空语句复合语句复合语句2 C语句概述语句概述一个语句经编译后产生若干条机器指令一个语句经编译后产生若干条机器指令第7页,此课件共65页哦大连理工大学软件学院大连理工大学软件学院83 赋值表达式和赋值语句赋值表达式和赋值语句1.1.赋值运算符赋值运算符 赋值符号赋值符号“”就是赋

4、值运算符,它的作用是将一个数据就是赋值运算符,它的作用是将一个数据赋给一个变量。赋给一个变量。例:例:“a=3”2.2.复合的赋值运算符复合的赋值运算符在赋值符在赋值符“”之前加上其他运算符,可以构成复合的运算符。之前加上其他运算符,可以构成复合的运算符。例:例:等价于等价于 先计算加先计算加,再赋给,再赋给 把常量赋给把常量赋给变量变量 第8页,此课件共65页哦大连理工大学软件学院大连理工大学软件学院92.2.复合的赋值运算符复合的赋值运算符凡是二元(二目)运算符,都可以与赋值符一起组合成复合赋值凡是二元(二目)运算符,都可以与赋值符一起组合成复合赋值符。有关算术运算的复合赋值运算符有:符。

5、有关算术运算的复合赋值运算符有:,*,语言采用这种复合运算符,一是为了语言采用这种复合运算符,一是为了简化程序简化程序,使程序精练,使程序精练,二是为了二是为了提高编译效率提高编译效率,能产生质量较高的目标代码。,能产生质量较高的目标代码。3 赋值表达式和赋值语句赋值表达式和赋值语句第9页,此课件共65页哦大连理工大学软件学院大连理工大学软件学院103.3.赋值表达式赋值表达式 v一般形式为:变量一般形式为:变量 赋值运算符赋值运算符 表达式表达式v例:例:a=3v赋值运算符左侧的标识符称为赋值运算符左侧的标识符称为“左值左值”v赋值运算符右侧的表达式称为赋值运算符右侧的表达式称为“右值右值”

6、v注意注意:运算表达式和常量就不能作为左值任何左值都可做右值3 赋值表达式和赋值语句赋值表达式和赋值语句第10页,此课件共65页哦大连理工大学软件学院大连理工大学软件学院11 v思考题:思考题:v下列各式中,下列各式中,a、b、c的值及赋值表达式的值分别是多少?的值及赋值表达式的值分别是多少?a=b=c=15a=(b=6)+3a=(b=7)+(c=2)a=(b=10)*(c=2)3 赋值表达式和赋值语句赋值表达式和赋值语句第11页,此课件共65页哦大连理工大学软件学院大连理工大学软件学院12 3.赋值表达式分析赋值表达式:(a=3*5)=4*3 赋值表达式为左值右值vv说明:说明:先执行括号内

7、的运算,将先执行括号内的运算,将1515赋给赋给a a,然后执行,然后执行4*34*3的运算,得的运算,得1212,再把,再把1212赋给赋给a a。最后。最后a a的值为的值为1212,整个表达式的值为,整个表达式的值为1212。vv注意:注意:赋值表达式作为左值时应加括号赋值表达式作为左值时应加括号 vv思考:思考:a=3*5=4*3?3 赋值表达式和赋值语句赋值表达式和赋值语句第12页,此课件共65页哦大连理工大学软件学院大连理工大学软件学院13 v赋值表达式也可以包含赋值表达式也可以包含复合的赋值运算符复合的赋值运算符。例:例:a+=a-=a*av赋值表达式作为表达式的一种,不仅可以出

8、现在赋值语句中,而且赋值表达式作为表达式的一种,不仅可以出现在赋值语句中,而且可以可以以表达式形式出现在其他语句以表达式形式出现在其他语句(如输出语句、循环语句等)中(如输出语句、循环语句等)中。例:例:printf(“%d”,a=b);3 赋值表达式和赋值语句赋值表达式和赋值语句第13页,此课件共65页哦大连理工大学软件学院大连理工大学软件学院14赋值过程中的类型转换赋值过程中的类型转换v如果赋值运算符两侧的如果赋值运算符两侧的类型一致类型一致,则直接进行赋值。,则直接进行赋值。例:例:i=6 (假设假设i已定义为已定义为int型型)v如果赋值运算符两侧的类型不一致,但都是数值型或字符型如果

9、赋值运算符两侧的类型不一致,但都是数值型或字符型时,在赋值时要进行时,在赋值时要进行类型转换类型转换。v类型转换是类型转换是系统自动系统自动进行的。进行的。3 赋值表达式和赋值语句赋值表达式和赋值语句第14页,此课件共65页哦大连理工大学软件学院大连理工大学软件学院15v转换规则:转换规则:将将浮点型数据(包括单、双精度)赋给整型变量浮点型数据(包括单、双精度)赋给整型变量时,先对浮点数取时,先对浮点数取为整,然后赋予整型变量。为整,然后赋予整型变量。将将整型数据赋给单、双精度变量整型数据赋给单、双精度变量时,数值不变,但以浮点数形式存储时,数值不变,但以浮点数形式存储到变量中。到变量中。赋值

10、过程中的类型转换赋值过程中的类型转换第15页,此课件共65页哦大连理工大学软件学院大连理工大学软件学院16赋值过程中的类型转换赋值过程中的类型转换 将将一个一个double型数据赋给型数据赋给float变量变量时,截取时,截取其前面其前面7位有效数字,存放到位有效数字,存放到float变量的存储单变量的存储单元(元(4个字节)中。但应注意数值范围不能溢出;个字节)中。但应注意数值范围不能溢出;将将一个一个float型数据赋给型数据赋给double变量变量时,数值不时,数值不变,有效位数扩展到变,有效位数扩展到16位,在内存中以位,在内存中以8个字节个字节存储。存储。字符型数据赋给整型变量字符型

11、数据赋给整型变量时,将字符的时,将字符的ASCII码码赋给整型变量。赋给整型变量。第16页,此课件共65页哦大连理工大学软件学院大连理工大学软件学院17将将一个占字节多的整型数据赋给一个占字节少的整型变量一个占字节多的整型数据赋给一个占字节少的整型变量/字符变量字符变量时,时,只将其低字节原封不动地送到该变量。只将其低字节原封不动地送到该变量。例:例:i=289;/*已定义已定义i为整型变量为整型变量*/c=a;/*已定义已定义c为字符变量为字符变量*/c=i;/*将一个占将一个占2字节的字节的int型数据赋给型数据赋给char型变量型变量*/注意:要避免进行这种赋值,因为赋值后数值可能发生要

12、避免进行这种赋值,因为赋值后数值可能发生失真失真。如果一定要进行这种赋值,应当保。如果一定要进行这种赋值,应当保证赋值后数值不会发生变化。证赋值后数值不会发生变化。赋值过程中的类型转换赋值过程中的类型转换第17页,此课件共65页哦大连理工大学软件学院大连理工大学软件学院18将将有符号整数赋值给长度相同的无符号整型变量有符号整数赋值给长度相同的无符号整型变量时,按字节原样赋值。时,按字节原样赋值。void main()unsigned short a;/*定义定义a为无符号整型变量为无符号整型变量*/short b;/*定义定义b为有符号整型变量为有符号整型变量*/b=-1;a=b;printf

13、(%un,a);说明:说明:由于由于a a是无符号整型变量,因此不能用是无符号整型变量,因此不能用%d%d输出格式符,而要用输出无符号数的输出格式符,而要用输出无符号数的“%u%u”格式符。格式符。运行结果:65535赋值过程中的类型转换赋值过程中的类型转换第18页,此课件共65页哦大连理工大学软件学院大连理工大学软件学院19说明:说明:执行执行“b=ab=a”时,将时,将a a的两个字节的两个字节(全全1)1)赋给赋给b b,由于是有符号的整型数,笫,由于是有符号的整型数,笫1 1个二进位是个二进位是1 1表示此数表示此数是一个负数,是一个负数,1616位全位全1 1是是-1-1的补码。的补

14、码。将将无符号整数赋值给长度相同的有符号整型变量无符号整数赋值给长度相同的有符号整型变量时,应注意不要超时,应注意不要超出有符号整型变量的数值范围,否则会出错。出有符号整型变量的数值范围,否则会出错。void main()unsigned short a;short b;a=65535;/*两个字节两个字节16位全为位全为1*/b=a;/*b的数值范围为的数值范围为-3276832767*/printf(%dn,b);运行结果 -1赋值过程中的类型转换赋值过程中的类型转换第19页,此课件共65页哦大连理工大学软件学院大连理工大学软件学院20v转换规则:转换规则:按存储单元中的存储形式直接传送

15、赋值过程中的类型转换赋值过程中的类型转换第20页,此课件共65页哦大连理工大学软件学院大连理工大学软件学院21v赋值语句是由赋值语句是由赋值表达式赋值表达式加上一个加上一个分号分号构成。构成。v赋值表达式的作用是将一个表达式的值赋给一个变量。赋值表达式的作用是将一个表达式的值赋给一个变量。v赋值表达式具有赋值表达式具有计算计算和和赋值赋值双重功能。程序中的计算功能主要是由赋值双重功能。程序中的计算功能主要是由赋值语句来完成。语句来完成。v语言的赋值语句与其他高级语言的赋值语句之间的差异:语言的赋值语句与其他高级语言的赋值语句之间的差异:(1)语言中的赋值号语言中的赋值号“”是是一个运算符一个运

16、算符,在其他大多数语言中赋,在其他大多数语言中赋值号不是运算符。值号不是运算符。(2)要区别赋值表达式和赋值语句。其他多数高级语言没有要区别赋值表达式和赋值语句。其他多数高级语言没有“赋值赋值表达式表达式”这一概念。这一概念。赋值语句赋值语句第21页,此课件共65页哦大连理工大学软件学院大连理工大学软件学院22注意赋值号注意赋值号“”与等号与等号“=”的区别的区别以下两者截然不同!以下两者截然不同!if(a=b)if(a=b)if(a=b)if(a=b)赋值语句赋值语句第22页,此课件共65页哦大连理工大学软件学院大连理工大学软件学院23v程序中对变量赋初值的方法有两种程序中对变量赋初值的方法

17、有两种在定义变量的在定义变量的同时使变量初始化同时使变量初始化(更方便)(更方便)int a=3;/*指定指定a为整型变量,初值为为整型变量,初值为3*/float f=3.56;/*f为浮点型变量,初值为浮点型变量,初值3.56*/char c=a;/*指定指定c为字符变量,初值为为字符变量,初值为a*/int a=b=c=3;用用赋值语句赋值语句对变量赋值对变量赋值 int a;/*指定指定a为整型变量为整型变量*/a3;/*赋值语句,将赋值语句,将3赋给赋给a*/变量赋初值变量赋初值 第23页,此课件共65页哦大连理工大学软件学院大连理工大学软件学院24课堂练习课堂练习v编程验证:编程验

18、证:v分别执行以下赋值表达式之后,变量分别执行以下赋值表达式之后,变量a、b、c的值以及赋值表达式的的值以及赋值表达式的是分别是多少。是分别是多少。(1)a=3;(2)a=2;a*=9;(3)a=b=c=12;(4)a=(b=7)/(c=2);(5)a=4;a+=a-=a*a;(6)a=3*5=4*3;第24页,此课件共65页哦大连理工大学软件学院大连理工大学软件学院25(一一)所谓输入输出是以计算机主机为主体而言的所谓输入输出是以计算机主机为主体而言的4 数据输入输出的概念及数据输入输出的概念及在在C语言中的实现语言中的实现显示器显示器显示器显示器,打印机打印机打印机打印机)键盘键盘键盘键盘

19、,鼠标鼠标鼠标鼠标,扫描仪扫描仪扫描仪扫描仪v C提供的提供的IO函数实现内存外部设备进行数据交互功能函数实现内存外部设备进行数据交互功能v 它们以库的形式存放在系统中,它们以库的形式存放在系统中,v 不是不是c语言文本中的组成部分。语言文本中的组成部分。第25页,此课件共65页哦大连理工大学软件学院大连理工大学软件学院264 数据输入输出的概念及数据输入输出的概念及在在C语言中的实现语言中的实现v标准输出操作 printf(),putchar(),puts()v标准输入操作 scanf(),getchar(),gets()v复杂输入和输出 有格式的有格式的IO函数函数第26页,此课件共65页

20、哦大连理工大学软件学院大连理工大学软件学院27v用用putcharputchar函数输出一个字符函数输出一个字符vputcharputchar函数(字符输出函数):向终端输出一个字函数(字符输出函数):向终端输出一个字符。符。v一般形式为一般形式为 putchar(c)putchar(c)c可以是字符型变量或整型变量 5 字符数据的输入输出字符数据的输入输出第27页,此课件共65页哦大连理工大学软件学院大连理工大学软件学院28v用用getchargetchar函数输入一个字符函数输入一个字符vgetchargetchar函数(字符输入函数)函数(字符输入函数):从终端输入一个字从终端输入一个字

21、符。符。vgetchargetchar函数没有参数,一般形式为函数没有参数,一般形式为 getchargetchar()()函数的值就是从输入设备得到的字符 5 字符数据的输入输出字符数据的输入输出第28页,此课件共65页哦大连理工大学软件学院大连理工大学软件学院296 简单格式的输入与输出简单格式的输入与输出v用简单的用简单的printfprintf函数输出数据函数输出数据vprintfprintf函数(格式输出函数):向终端(或系统隐函数(格式输出函数):向终端(或系统隐含指定的输出设备)输出若干个任意类型的数据。含指定的输出设备)输出若干个任意类型的数据。vprintfprintf函数的

22、一般格式为:函数的一般格式为:printfprintf(格式控制,输出表列)(格式控制,输出表列)例:例:printf(printf(”%d,%cn%d,%cn”,i,c),i,c)第29页,此课件共65页哦大连理工大学软件学院大连理工大学软件学院30printf(格式控制,输出表列)用简单的用简单的printf函数输出数函数输出数据据用双撇号括起来的字符串,也称“转换控制字符串”格式说明:由“”和格式字符组成,如、等。它的作用是将输出的数据转换为指定的格式输出。格式说明总是由“”字符开始的。普通字符:需要原样输出的字符。例如上面printf函数中双撇号内的逗号、空格和换行符。需要输出的一些数

23、据,可以是常量、变量或表达式。第30页,此课件共65页哦大连理工大学软件学院大连理工大学软件学院31vprintfprintf函数的例子:函数的例子:printf(printf(“a=%d b=%da=%d b=%d”,a,a,b)b)|格式说明格式说明 输出表列输出表列若若a=3a=3,b=4b=4输出为输出为 “a=3 b=4a=3 b=4”用简单的用简单的printf函数输出数函数输出数据据第31页,此课件共65页哦大连理工大学软件学院大连理工大学软件学院32v基本的格式字符有以下几种:基本的格式字符有以下几种:d d格式符。按十进制整型数据的实际长度输出。格式符。按十进制整型数据的实际

24、长度输出。i i格式符。作用与格式符相同,按十进制整型格式符。作用与格式符相同,按十进制整型数据的实际长度输出。一般习惯用数据的实际长度输出。一般习惯用%d%d而少用而少用%i%i。c c格式符。用来输出一个字符。格式符。用来输出一个字符。一个值在0255范围内的整数,也可以用“%c”使之按字符形式输出 用简单的用简单的printf函数输出数函数输出数据据第32页,此课件共65页哦大连理工大学软件学院大连理工大学软件学院33运行结果:,v例例3.5 3.5 字符数据的输出。字符数据的输出。#include#includevoid main()void main()char c=a;char c

25、=a;int i=97;int i=97;printf(%c,%dn,c,c);printf(%c,%dn,c,c);printf(%c,%dn,i,i);printf(%c,%dn,i,i);用简单的用简单的printf函数输出数函数输出数据据第33页,此课件共65页哦大连理工大学软件学院大连理工大学软件学院34格式符,用来输出一个字符串。格式符,用来输出一个字符串。例:例:printf printf(,CHINA);输出字符串输出字符串“CHINA”(不包括双引号)(不包括双引号)格式符。用来输出实数(包括单、双精度),格式符。用来输出实数(包括单、双精度),以小数形式输出,不指定整个字段

26、的长度,由系以小数形式输出,不指定整个字段的长度,由系统自动指定。一般的处理方法是:整数部分全部统自动指定。一般的处理方法是:整数部分全部输出,并输出位小数。输出,并输出位小数。注意:注意:在输出的数字中并非全部数字都是有效数字。单精度实数的有效在输出的数字中并非全部数字都是有效数字。单精度实数的有效位数一般为位数一般为6-6-位,双精度实数的有效位数一般为位,双精度实数的有效位数一般为15-1615-16位。位。用简单的用简单的printf函数输出数据函数输出数据第34页,此课件共65页哦大连理工大学软件学院大连理工大学软件学院35运行结果:.结果中只有前七位是有效数字。由于x和y是单精度变

27、量,所以x+y也只能保证7位的精度,后面几位是没有意义的。用简单的用简单的printf函数输出数函数输出数据据v例例3.6 输出实数时的有效位数。输出实数时的有效位数。#includevoid main()float x,y;x=11111111.11111111;y=22222222.22222222;printf(%fn,x+y);第35页,此课件共65页哦大连理工大学软件学院大连理工大学软件学院36运行结果:33333333.333333 x和y是双精度变量,能提供16位精度,但是由于用%f格式输出,只能输出6位小数,有两位被省掉了。v例例3.7 3.7 输出双精度数时的有效位数。输出双

28、精度数时的有效位数。#includevoid main()double x,y;x=11111111.11111111;y=22222222.22222222;printf(%fn,x+y);用简单的用简单的printf函数输出数函数输出数据据%17.8f可全部输出可全部输出第36页,此课件共65页哦大连理工大学软件学院大连理工大学软件学院37(6)(6)格式符,用格式说明格式符,用格式说明 指定以指数形式输出实指定以指数形式输出实数。数。例:例:printfprintf(,123.456123.456);输出如下);输出如下 1.2345601.234560 e+002e+002 6 6列列

29、 5 5列列C编译系统自动指定给出数字部分的小数位数为位,指数部分占5位 用简单的用简单的printf函数输出数函数输出数据据第37页,此课件共65页哦大连理工大学软件学院大连理工大学软件学院38vscanfscanf函数:按照变量在内存的地址将变量函数:按照变量在内存的地址将变量值存进去。值存进去。v一般格式:一般格式:scanfscanf(格式控制,地址表列)(格式控制,地址表列)同printf函数是由若干个地址组成的表列,可以是变量的地址,或字符串的首地址用简单的用简单的scanf函数输入数函数输入数据据第38页,此课件共65页哦大连理工大学软件学院大连理工大学软件学院39运行情况:运行

30、情况:3 4 5 3 4 5(输入输入a,b,ca,b,c的值,的值,)3 3,4 4,5 5 (输出(输出a,b,ca,b,c的值)的值)a a在内存中的地址在内存中的地址&是地址运算符是地址运算符输入数据时,在两个数据之间以一个或多个空格间隔,也可以用Enter键、Tab键。v例例3.8 3.8 用用scanfscanf函数输入数据。函数输入数据。v#include#includevoid main()void main()int a,b,c;int a,b,c;scanf(scanf(“%d%d%d%d%d%d”,&a,&b,&c);,&a,&b,&c);printf(printf(“%

31、d,%d,%dn%d,%d,%dn”,a,b,c);,a,b,c);用简单的用简单的scanf函数输入数函数输入数据据第39页,此课件共65页哦大连理工大学软件学院大连理工大学软件学院40vscanfscanf函数的格式说明与函数的格式说明与printfprintf函数的相似,以开函数的相似,以开始,以一个格式字符结束,中间可插入附加的字符。始,以一个格式字符结束,中间可插入附加的字符。例:例:scanf(scanf(”%d%d%d%d%d%d”.&a,&b,&c);.&a,&b,&c);/*/*格式控制字符串中包含格式控制字符串中包含3 3个格式说明符个格式说明符%d*/%d*/scanf(

32、scanf(”a=%db=%dc=%da=%db=%dc=%d”.&a,&b,&c);.&a,&b,&c);/*/*格式控制字符串中包含格式说明符以外的字格式控制字符串中包含格式说明符以外的字符符*/用简单的用简单的scanf函数输入数函数输入数据据第40页,此课件共65页哦大连理工大学软件学院大连理工大学软件学院41说明:(1)scanf1)scanf函数中的函数中的“格式控制格式控制”后面应当是变量地址,而不应是变量名。后面应当是变量地址,而不应是变量名。(2)(2)如果在如果在“格式控制格式控制”字符串中除了格式说明以外还有其他字符,字符串中除了格式说明以外还有其他字符,则在输入数据时在

33、对应位置应输入与这些字符相同的字符。则在输入数据时在对应位置应输入与这些字符相同的字符。(3)(3)在用在用“”格式输入字符时,空格字符和格式输入字符时,空格字符和“转义字符转义字符”都作为都作为有效字符输入。有效字符输入。(4)(4)在输入数据时,空格,在输入数据时,空格,“回车回车”、“跳格跳格”(TabTab)键或遇非法输)键或遇非法输入,认为该数据结束。入,认为该数据结束。(5)(5)对对unsignedunsigned型变量所需的数据,可以用型变量所需的数据,可以用%u%u或或%d%d格式输入。格式输入。用简单的用简单的scanf函数输入数函数输入数据据第41页,此课件共65页哦大连

34、理工大学软件学院大连理工大学软件学院42v输出数据格式控制输出数据格式控制v除了上节所介绍的基本的格式控制外,还可以用下面一些格式符和除了上节所介绍的基本的格式控制外,还可以用下面一些格式符和附加字符。附加字符。为指定的输出字段的宽度。如果数据的位数小于,则为指定的输出字段的宽度。如果数据的位数小于,则左端补以空格,若大于,则按实际位数输出。左端补以空格,若大于,则按实际位数输出。例例:printf(:printf(“%4d,%4d,a,b%4d,%4d,a,b”););若若:a=123:a=123,d=12345,d=12345,则输出结果为则输出结果为:123123,12345123457

35、 较复杂的格式输入与输出较复杂的格式输入与输出(自学)(自学)第42页,此课件共65页哦大连理工大学软件学院大连理工大学软件学院43%ld%ld 对于对于intint型数据占型数据占2 2字节的系统,在输出长字节的系统,在输出长整型整型数据时要在格式字符数据时要在格式字符d d前面加一个英文字毋前面加一个英文字毋l l。例例:long a=135790;/*long a=135790;/*定义定义a a为长整型变为长整型变量量*/printf(printf(“%ld,a);%ld,a);%d只适用于范围为-3276832767的整型数据,超过此范围的整数,应该用%ld输出 说明:说明:如果用的

36、是如果用的是VC+6.0VC+6.0,由于,由于intint型和型和longlong型数据都分配型数据都分配4 4个个字节,因此用字节,因此用%d%d可以输出可以输出intint和和longlong型数据,不必要用型数据,不必要用%ld%ld。输出数据格式控制输出数据格式控制第43页,此课件共65页哦大连理工大学软件学院大连理工大学软件学院44%以以8 8进制整数形式输出。由于是将内存单元中的各位进制整数形式输出。由于是将内存单元中的各位的值(或)按八进制形式输出,因此输出的数值的值(或)按八进制形式输出,因此输出的数值不带符不带符号号,即将符号位也一起作为八进制数的一部分输出。,即将符号位也

37、一起作为八进制数的一部分输出。例:例:int a=-1;int a=-1;printf(%d printf(%d,%o%o,a a,a);a);在内存单元中的存放形式(以补码形式存放)如下:在内存单元中的存放形式(以补码形式存放)如下:输出为输出为:,1111111111111111用%d输出的结果1,111,111,111,111,111|1 7 7 7 7 7二进数111就是8进数7。因此上面的数用8进制数表示为17777 输出数据格式控制输出数据格式控制第44页,此课件共65页哦大连理工大学软件学院大连理工大学软件学院45%以以1616进制数形式输出整数。同样进制数形式输出整数。同样不会

38、出现负的不会出现负的十六进制数。十六进制数。例:例:int a=-1;int a=-1;printf(printf(“%x,%o,%d%x,%o,%d”,a,a,a);,a,a,a);输出结果为输出结果为 ffffffff,177777177777,-1-1 同样可以用同样可以用 “%1x%1x”输出长整型数,也可以指定输出输出长整型数,也可以指定输出字段的宽度,如字段的宽度,如“%12x%12x”。输出数据格式控制输出数据格式控制第45页,此课件共65页哦大连理工大学软件学院大连理工大学软件学院46%用来输出无符号用来输出无符号(unsigned)(unsigned)型数据,以十进型数据,以

39、十进制整数形式输出。一个有符号整数(制整数形式输出。一个有符号整数(intint型)也可型)也可以用以用%u%u格式输出;反之,一个格式输出;反之,一个unsignedunsigned型数据也可型数据也可以用以用%d%d格式输出。按相互赋值的规则处理。格式输出。按相互赋值的规则处理。unsignedunsigned型数据也可用型数据也可用%o%o或或%x%x格式输出。格式输出。c c 用来指定输出字符数据的宽度用来指定输出字符数据的宽度m m 如果有如果有printf(printf(“%3c%3c”,c);,c);则输出则输出“a a”,即变量输出占列,前列,即变量输出占列,前列补空格。补空格

40、。输出数据格式控制输出数据格式控制第46页,此课件共65页哦大连理工大学软件学院大连理工大学软件学院47Turbo C 2.0Turbo C 2.0环境下的运行结果环境下的运行结果:a=-1a=-1,177777177777,ffffffff,6553565535b=-2b=-2,177776177776,fffefffe,6553465534VC+6.0VC+6.0环境下的运行结果环境下的运行结果:a=65535a=65535,177777177777,ffffffff,6553565535=-2=-2,3777777777637777777776,fffffffefffffffe,4294

41、9672944294967294v例例3.9 3.9 无符号数据的输出。无符号数据的输出。#include#includevoid main()void main()unsigned int a=65535;int b=-2;unsigned int a=65535;int b=-2;printf(printf(“a=%d,%o,%x,%una=%d,%o,%x,%un”,a,a,a,a);,a,a,a,a);printf(printf(“b=%d,%o,%x,%unb=%d,%o,%x,%un”,b,b,b,b);,b,b,b,b);输出数据格式控制输出数据格式控制第47页,此课件共65页哦

42、大连理工大学软件学院大连理工大学软件学院48 指定输出的字符串占列。如果字符串本身长度大于,则突破的指定输出的字符串占列。如果字符串本身长度大于,则突破的限制,将字符串全部输出。若串长小于,则左补空格。限制,将字符串全部输出。若串长小于,则左补空格。-如果串长小于,则在列范围内,字符串向左靠,右补空格。如果串长小于,则在列范围内,字符串向左靠,右补空格。.n.n 输出占列,但只取字符串中左端个字符。这个字符输出在输出占列,但只取字符串中左端个字符。这个字符输出在列的右侧,左补空格。列的右侧,左补空格。.其中、含义同上,个字符输出在列范围的左侧,右其中、含义同上,个字符输出在列范围的左侧,右补空

43、格。如果,则自动取值,即保证个字符正常输出。补空格。如果,则自动取值,即保证个字符正常输出。.指定输出的实数共占列,其中有位小数。如果数值长度小于,则左指定输出的实数共占列,其中有位小数。如果数值长度小于,则左端补空格。端补空格。.与与.基本相同,只是使输出的数值向左端靠,右端补空格。基本相同,只是使输出的数值向左端靠,右端补空格。输出数据格式控制输出数据格式控制第48页,此课件共65页哦大连理工大学软件学院大连理工大学软件学院49v例例3.10 3.10 字符串的输出。字符串的输出。#include#includevoid main()void main()printf(printf(“%3

44、s,%7.2s,%.4s,%-5.3sn%3s,%7.2s,%.4s,%-5.3sn”,“CHINACHINA”,“CHINACHINA”,“CHINACHINA”,“CHINACHINA”););运行结果:运行结果:CHINA,_CH,CHIN,CHI_CHINA,_CH,CHIN,CHI_ 输出数据格式控制输出数据格式控制第49页,此课件共65页哦大连理工大学软件学院大连理工大学软件学院50v例例3.11 3.11 输出实数时指定小数位数。输出实数时指定小数位数。#include#include void mainvoid main()()float f=123.456;float f=1

45、23.456;printf(printf(“%f%10f%10.2f%.2f%-10.2f%f%10f%10.2f%.2f%-10.2fn n”,f f,f f,f f,f f,f);f);运行结果:运行结果:123.456001 123.456001 _123.46 123.46 123.46_123.456001 123.456001 _123.46 123.46 123.46_ 输出数据格式控制输出数据格式控制第50页,此课件共65页哦大连理工大学软件学院大连理工大学软件学院51运行结果:运行结果:r1=1.53r1=1.53r2=21.83r2=21.83r3=123.71r3=123

46、.71v例例3.123.12求求3 3个圆的周长,输出结果时上下按小数点对齐,取两位个圆的周长,输出结果时上下按小数点对齐,取两位小数。小数。#include#include#define PI 3.1415926#define PI 3.1415926void main()void main()double r1=1.53,r2=21.83,r3=123.71,s1,s2,s3;double r1=1.53,r2=21.83,r3=123.71,s1,s2,s3;s1=2.0*PI*r1;s1=2.0*PI*r1;s2=2.0*PI*r2;s2=2.0*PI*r2;s3=2.0*PI*r3;

47、s3=2.0*PI*r3;printf(r1=%10.2fnr2=%10.2fnr3=%10.2fn,r1,r2,rprintf(r1=%10.2fnr2=%10.2fnr3=%10.2fn,r1,r2,r3);3);输出数据格式控制输出数据格式控制第51页,此课件共65页哦大连理工大学软件学院大连理工大学软件学院52 m.ne和-m.ne、和“”字符的含义与前相同。此处指拟输出的数据的小数部分(又称尾数)的小数位数。若123.456,则:printf(%e%10e%10.2e%.2e%-10.2e,f,f,f,f,f);输出如下:1.234560e+002 1.234560e+002 1.2

48、3e+002 1.23e+002 13列 13列 10列 9列 1.23e+002 10列说明:未指定,自动使.超过给定的列,乃突破列的限制,按实际长度输出。第3个数据共占列,小数部分占列。只指定,未指定,自动使等于数据应占的长度。第5个数据应占列,数值只有列,由于是“”,数值向左靠,右补一个空格。(注:有的C系统的输出格式与此略有不同)输出数据格式控制输出数据格式控制第52页,此课件共65页哦大连理工大学软件学院大连理工大学软件学院53 (10)%g 用来输出实数.它根据数值的大小,自动选格式或格式(选择输出时占宽度较小的一种),且不输出无意义的零。例:若123.468,则printf(,)

49、;输出如下:123.468000 1.234680e+002 123.468 10列 13列 10列说明:用格式输出占列,用格式输出占列,用格式时,自动从上面两种格式中选择短者(今以格式为短)故占列,并按格式用小数形式输出,最后3个小数位为无意义的,不输出,因此输出123.468,然后右补3个空格。格式用得较少。输出数据格式控制输出数据格式控制第53页,此课件共65页哦大连理工大学软件学院大连理工大学软件学院54说明:说明:v除了除了X X,E E,G G外,其他各式字符必须用小写。外,其他各式字符必须用小写。v可以在可以在printfprintf函数中的函数中的“格式控制格式控制”字符串中包

50、含字符串中包含转义字符。转义字符。v一个格式说明必须以一个格式说明必须以“%”开头,以开头,以9 9个格式字符之个格式字符之一为结束,中间可以插入附加格式字符。一为结束,中间可以插入附加格式字符。v想输出想输出%,则应该在格式控制字符串中用连续两个,则应该在格式控制字符串中用连续两个%表示表示输出数据格式控制输出数据格式控制第54页,此课件共65页哦大连理工大学软件学院大连理工大学软件学院55格式字符格式字符说明说明d,id,i用来输入有符号的十进制整数用来输入有符号的十进制整数 u u用来输入无符号的十进制整数用来输入无符号的十进制整数 o o用来输入无符号的八进制整数用来输入无符号的八进制

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com