第4章(常量、变量及表达式).ppt

上传人:sccc 文档编号:5908920 上传时间:2023-09-02 格式:PPT 页数:81 大小:851.04KB
返回 下载 相关 举报
第4章(常量、变量及表达式).ppt_第1页
第1页 / 共81页
第4章(常量、变量及表达式).ppt_第2页
第2页 / 共81页
第4章(常量、变量及表达式).ppt_第3页
第3页 / 共81页
第4章(常量、变量及表达式).ppt_第4页
第4页 / 共81页
第4章(常量、变量及表达式).ppt_第5页
第5页 / 共81页
点击查看更多>>
资源描述

《第4章(常量、变量及表达式).ppt》由会员分享,可在线阅读,更多相关《第4章(常量、变量及表达式).ppt(81页珍藏版)》请在三一办公上搜索。

1、C语言程序设计,数据类型、运算符、表达式及简单的输入输出函数,第四章,第四章数据类型、运算符、表达式及简单的输入输出函数,数据类型常量变量运算和运算符运算表达式简单的输入输出函数,字符集:编程可使用的字符,C语言程序的基本标识符,英文字母 a z,A Z;阿拉伯数字 0 9;特殊符号(!%*:;?/以及空格、换行等),12cd,$123,#11,M.D.Ritchie。这里所表示的标识符都是错误的。,标识符:,标识符规定:,例:sun,day,month,student_name,c1string_2。,1.标识符由字母、下划线、数字三种字符组成,且第一个字符必须是字母或者下划线。+*.汉字等

2、均不能出现。2.字母区分大小写;3.标识符不能是关键字。,用来标明变量名、函数名、数组名、结构体名、文件名、类型名等的符识。标识符就是有效字符的序列,一个名字。用英文!,保留字(关键字)(见书P43 表4-1 C语言的保留字)预定义标识符(库函数名,如:stdio;预编译命令,如:include)用户定义标识符,4.2 数据类型,整型实型(浮点型)字符型(字符串)枚举型,单精度型双精度型,数组类型结构体类型共同体类型,基本类型,构造类型,指针类型,数组类型相同的数据集合,常量形式变量形式,结构体类型不同的数据集合,按进制分类:十进制。例:10,35,-1289。八进制,以 0 开头。例:010

3、(o是字母)。对应十进制 8 十六进制,以 0 x 开头。例:0 x10。对应十进制 16 按字节长度分类:短型 2个字节。长型 4个字节。长型常量后加字母L。例:15L,0 x10,010。,程序运行中数值不改变的量,十进制数形式,由数字和小数点组成。例:1.3415926 指数形式,由尾数、字母e或E和指数组成。例:1E3 表示:1乘10的三次方(1103)。,4.3 常量,返回,1、整型数,2、实型(浮点数)数,字符常量,3、字符型数据,字符串常量,转义字符,即普通字符用单引号括起来。在C语言中,字符型数据是用ASCII码来表示(储存)的。例:A(65),a(97)。在C语言中,字符型数

4、据与整型数据可通用:10+R,即一串普通字符用双引号括起来。例:“Turbo C”,“China”。,以“”开头的字符表示特定的含义。此时字符转变为另外的意义。例:n 表示回车换行,r 表示回车。,(1)数,(2)字符常量,(3)字符串常量,A和“A”不相同!,小 结,注意,用“”包围的一个或多个字符,如:“hello”,单一字符,用 包围,如:A,8,类 型 进 制 表 示 范 围整型数 八、十、十六 015,15,0 x15-215 215-1长整型数 八、十、十六 015L,15L,0 x15L-231 231-1实型数 十 123.5,1.235e+2 10-381038,(4)特殊的

5、字符常量(转义字符),后跟一个字符或一个数字,表示控制代码和用于功能定义的字符 如:,字符 功能 n 回车换行 r 回车 t 水平制表 b 退格 v 垂直制表 f 换页 a 响铃警报“双引号字符 101 A x41 A,符号常量,对常量命名,即用符号代替常量;先定义后使用;格式:#define 符号常量 常量 例:#define PI 3.1415926宏定义,不用分号;好处:1.增强可读性 2.可维护性,避免多处修改(如:求周长,体积)。,常量与变量,常量的本质不占据任何存储空间属于指令的一部分,编译后不再更改变量:程序运行时可以随时改变定义变量时,给变量分配存储单元(如:一个字节),如宿舍

6、号码对应一个房间,变量名对应一段存储空间。通过变量对内存修改、存取;对变量的存取就是对存储单元的存取。要先定义变量的类型,决定占用的内存空间,才能存取。,2.3.1 变量的数据类型 2.3.2 变量的使用 2.3.3 变量数据的存储与读取 2.3.4 其它变量,2.3 变量,返回,12cd,$123,#11,M.D.Ritchie。这里所表示的标识符都是错误的。,变量:,变量名:,标识符:,标识符规定:,例:sun,day,month,student_name,c1string_2。,用来标明变量名、函数名、数组名、结构体名、文件名、类型名等的符识。名字。英文!,变量的名字。用标识符标识变量名

7、。,程序运行中其值改变的量。,标识符由字母(区分大小写)、下划线、数字三种字符组成,且第一个字符必须是字母或者下划线。书P5,表1-2,C语言的31个保留字。,1、整型变量:表示整型数据(整数)的变量。,2、实型变量:,2.3.1 变量的数据类型,1)按照存储空间分三种(限制了表达范围):基本型:int 变量名 2个字节。短整型:short int 变量名 2个字节。长整型:long int 变量名 4个字节。2)符号(正负号):int变量名 无符号型:unsigned short int 变量名 long int 变量名,表示实型数据(实数)的变量。单精度型:float 变量名 4个字节。双

8、精度型:double 变量名 8个字节。,3、字符型变量:,4、字符串数组:,表示字符型数据的变量。char 变量名 1个字节。,表示字符串型数据的数组。char 变量名 下标 字符串数组:是一个地址量。字符串数组表示字符串的第一个字符的地址。,2.3.1 变量的数据类型,5、表 变量的数据类型、字节长度、位数、数据范围,1、变量的定义(声明),例:int a;float b,c,d;char c1,string;,变量定义的格式:,存储类型 数据类型标识符 变量1,变量2,变量n;,2.3.2 变量的使用,在C语言中,所使用的每一个变量在引用前都须先定义,否则在程序编译时会发生错误。变量的定

9、义就是按一定的方式为其使用的变量指定数据类型(标识符)、变量名(标识符)。在程序编译时,为其分配存储空间。,变量的定义意义在于,计算机在编译时,对每一个变量分配对应和固定的存储单元(地址),为其程序的使用创造必要条件。,int i,j number;float x,y;char name;static double u,v;int a;int a1;extern float a2;extern char str;,变量定义举例:,例:int a=3;int b=0,c=0;float f=5.8;char c1=e;char string 10=“Beijing”;,2、变量的初始化,给变量赋

10、初值的过程叫变量的初始化。C 语言允许在定义变量的同时对变量赋值。,注意:没有赋初值的变量,并不意味着该变量中没有数值。此时,对于静态型(static)变量中的值是0,其它存储类型变量一个随机数。变量初始化的意义:程序编译完成后,变量已被赋值。,(1)初始化:定义的同时赋值 int i=5,j=6;float x=10.1;char name=A;,(2)先定义,后赋值。int i;float x=10.1;char name;i=5;x=20.5;name=A;i=d;,变量的赋值的方法:,在程序中使用变量,称为变量的引用。如进行数值计算、数据处理等。使用变量时,先定义,后引用。,3、变量的

11、引用,2.3.3 变量数据的存储与读取,变量所代表的数据是存储在(计算机)内存中。在使用中往往希望数据的存储应灵活、多样,以便于编程。,变量数据的存储形式有:静态存储 static 静态型 extern 外部型 动态存储 auto 自动型 register 寄存器型这部分的内容在第五章函数中详细介绍。,1、变量数据的存储,变量 内存,a,b,变量 地址 内 存,a 2000,b 2002,直接读取:,间接读取:,2、变量数据的读取,变量名实际代表一个确定的存储单元。程序编译完成后,变量就与数据存储单元一一对应。对变量读取操作,就是到对应的存储单元中读取数据。,(指针)变量中存放的是数据内存的地

12、址,在这种情况下,首先拿存放数据的地址,然后,再到对应的地址中读取数据。,2.3.4 其它变量,指针变量(第六章):,数组变量(第四章):,结构体变量(第八章):,联合体变量(第八章):,类型标识符*变量名;,类型标识符 数组名下标;,struct 结构体名 结构体成员表 结构体变量;,union 联合体名 联合体成员表列;,变量的存储类型:,存储类型 数据类型 变量名,auto 自动型,使用最多,可缺省不写。static 静态型。register寄存器型,少用。extern 外部型。,变量说明格式:,英文字母、数字、下划线;首字符必须是字母;中间不能有空格,一般用小写;不要和关键字重名。,变

13、量名:,小 结,2.4 运算和运算符,2.4.1 运算 2.4.2 运算符,返回,2.4 运算和运算符,2.4.1 运算,运算,运算符,运算量,运算表达式,对数据进行处理的过程,表示各种数据处理的符识,被处理的数据,运算符+运算量,(1)算术运算符(2)关系运算符(3)逻辑运算符(4)赋值运算符(5)自反赋值运算符(6)自增自减运算符(7)逗号运算符(8)条件运算符(9)指针运算符(10)地址运算符(11)结构体成员运算符(12)指向结构体成员运算符(13)下标运算符(14)圆括号运算符(15)大括号运算符(16)长度运算符(17)数据类型转换运算符(18)位运算运算符,2.4.2 运算符,+

14、、-、*、/、%、=、=、!=&、|、!=+=、-=、*=、/=、%=+、-,?:*&.-()sizeof(类型标识符)(类型标识符)表达式&、|、,返回,(1)算术运算符,名称 运算符 运算规则 正+取原值 负-取负值 加+加法+减-减法-乘*乘法*除/除法/对于整数,则为整除,余数舍去;实数则不然。例:1/3*3=0 1.0/3.0*3.0=1.0 模%整除取余(只适用于整数)分子分母,结果=余数。例:12%5 分子分母,结果=分子。例:2%5,注意:C 语言中乘法、除法运算符的表示与数学中的表示不同。(乘法不能写成mn,m n,mn;没有乘方运算符。除法不能写成m n),注:避免除数为0

15、,关系运算符:对两个操作量进行大小比较的运算符,名 称 运算符 小于 大于等于=等于=不等于!=,注意:C 语言中小于等于、大于等于、等于、不等于运算符的表示与数学中的表示()不同。,(3)逻辑运算符,1.逻辑运算把一切“非 0”的数作为真(用1表示),把“0”数作为假(用0表示)。逻辑运算是“非 0”和“0”两类数据或真和假两类种状态的运算。,2.名 称 运算符 非!单目运算符 与&双目运算符 或|双目运算符,!非,|或,3.真值表决定逻辑运算结果!,&与,有假则假,全真则真。,有真则真,全假则假。,(4)赋值运算符,(5)自反赋值运算符,名 称 运算符 赋 值=格式:变量=表达式;先计算等

16、号右边的表达式,然后将其值赋给等号左边的变量。,名 称 运算符 加赋值+=减赋值-=乘赋值*=除赋值/=模赋值%=,例:,a+=b a=a+b a-=b a=a ba*=b a=a*ba/=b a=a/ba%=b a=a%b,例:,x=x+10;y=x*x+x;,C语言赋值运算符与数学中的等号其含义有着本质的不同。赋值表示操作,有结果。,(6)自增自减运算符:让变量自己加1或者减1,名 称 运算符 说 明 例增 1(前缀)+先加1,后使用。+i 增 1(后缀)+先使用,后加1。i+减 1(前缀)-先减1,后使用。-i减 1(后缀)-先使用,后减1。i-,例:,int j;i=3;j=+i;结果

17、:j的值为4。i的值为4。,而,int j;i=3;j=i+;结果:变量j的值为3,变量i将3赋给j后自加1变为4。,自增自减运算仅限用于变量。自增自减运算不能用于常量或表达式。单目运算符,结合性为自右向左。,(8)条件运算符,(9)指针运算符,(10)地址运算符,(11)结构体成员运算符,(12)指向结构体成员运算符,(7)逗号运算符,,,?:,*,&,.,-,(13)下标运算符,名 称 运算符下标 用于数组运算。详细内容在第四章数组中介绍。,(14)圆括号运算符,名 称 运算符圆括号()例:(3+5)*88-21/7,在函数的定义、引用中也应用圆括号。详细内容在第五章函数中介绍。,(15)

18、大括号运算符,(16)长度运算符(函数),名 称 运算符大括号 用于含括函数的函数体、分程序的程序体。,名 称 运算符长度 sizeof,格式:,求数据类型或表达式结果值的字节长度。,例:sizeof(int);结果:等于2。,sizeof(数据类型标识符 或表达式);,(18)位运算运算符,(17)数据类型转换运算符,&对应的位均为1,该位结果才为1。测试某位是否为0|对应的位均为0,该位结果才为0。设置某位为1 对应的位不同为1,相同为0。使各位翻转。逢1变0,逢0变1,(数据类型标识符)表达式,按位与按位或按位异或取反左移右移,名 称 运算符,数据类型转换格式:,相当于乘2的n次方,左边

19、移出的舍去,右边补0:例:x=1,则x4之后,x=10000,即十进制16;,相当于除以2的n次方,右边移出的舍去,左边补0,运算符,运算符优先级 结合性(见附录B),返回,例(1)注意表达式的正确书写:写出 5x10 的c语言表达式:,5x10 错!5x&x10,(2)若已知 x=y=5,a=b=10,下列各式执行后b的值为多少?x5&(b=20)ax5|(b=20)ax=5|(b=20)ax=10&(b=20)a,0 b=10 1 b=20,1 b=10,1 b=20,(3)若已知 a=5,b=3,c=2,d=6,则ab?a:cd?c:d 的值为多少?,条件运算符的结合性是自右至左,上式相

20、当于ab?a:(cd?c:d),5,(4)3x a+b 的c语言表达式:3*x/(a+b),与运算:第一个为0,则第二个不再计算,或运算:第一个为非0,则第二个不再计算,2.5 运算表达式,2.5.1 算术表达式 2.5.2 关系表达式 2.5.3 逻辑表达式 2.5.4 条件表达式 2.5.5 赋值表达式 2.5.6 逗号表达式 2.5.7 混合表达式,返回,2.5.1 算术表达式,由算术运算符连接常量、变量或表达式构成。结果是:整数、实数。优先级:先乘除、后加减。结合性(双目运算符):自左向右。,运算表达式 用运算符将运算对象连接的算式。,例:2*a+b/3,4.0/3*3.14159*R

21、*R*R1/6*3.14159*D*D 球体积、表面积,求算术表达式的值:1+5*3/4,结果:4,2.5.2 关系表达式,1.由关系运算符连接常量、变量或表达式构成。2.关系表达式的结果:逻辑型 关系不满足,结果为:假(用0表示)。如:103.优先级:1)=优先级同,=和!=优先级同;而前者的优先级又高于后者。2)都比算术运算符优先级低。4.结合性(双目运算符):自左向右,5.例:1)a b 若:a=300,b=301,则关系表达式结果为:0 2)5(45)结果为:1 3)若x=10,y=5,则关系表达式的值 x=y+5 结果为:1(x=3)5+y 结果为:1*x=yy+5 结果为:x=1(

22、运算符的优先级+=)5)除了整型、实型以外,字符型(ASCII码)也可参与计算:a b 结果为:1,2.5.3 逻辑表达式,1.由逻辑运算符连接常量、变量或表达式构成。2.逻辑表达式的结果:逻辑成立结果为真,即等于1。5&1(结果为1)逻辑不成立结果为假,即等于0。4&0(结果为0)3.逻辑表达式两边的表达式,先理解成逻辑值(即表达式值为0,则为假0;表达式值不为0,则为真1),再做逻辑运算。4.优先级:!高于&,&高于|。&、|都比关系运算符低,!比算数运算符高。5.结合性:自左向右,例:a1&b 若:a=1,b=5,结果为0。例:a+6|b0 若:a=1,b=5,结果为1。,6.特殊之处:

23、&有假则假。例如:a&(b=2),若a=0,则b就不计算了,表达式为0|有真则真。例如:a|(b=2),若a=1,则b就不计算了,表达式为1,条件表达式,由条件运算符连接表达式构成。,例:ab?a:b 结果:a如果大于b表达式等于a,否则表达式等于b。例:!a?2*b:b,表达式 1?表达式 2:表达式 3;,条件表达式格式:,2.5.5 赋值表达式,由赋值运算符连接常量、变量或表达式构成。,例:,赋值表达式格式:,变量=常量、变量、表达式;,例:,例:,int x,y;x=5;y=10;x=10*(y=5);,char c1;c1=a;,char str20=“Microsoft”;,自反赋

24、值表达式格式:,变量+=表达式;,变量-=表达式;,变量*=表达式;,变量/=表达式;,变量%=表达式;,例:,int a=1,b=1,c=3;a+=5;b*=5;c%=1;c/=1;,a=a+5;b=b*5;c=c%1;c=c/1;,注意:左端只能为变量!,赋值运算与自反赋值运算的结合性是自右至左。例:已知 x=10,则x+=x-=20的值为:,(1)x-=20 x=x-20 x=-10,(2)x+=-10 x=x+(-10)x=-20,-20,例:int x,y,a;x=y=10;y+a=20;,错,逗号表达式,1.由逗号运算符连接常量、变量或表达式构成。,3.逗号表达式求解过程,顺序求表

25、达式的值(先求表达式1,再求表达式2,再求,直到求表达式n),整个表达式的值是最后一个表达式的值。4.优先级最低,自左向右结合。,2.逗号表达式格式:,表达式 1,表达式 2,表达式 n;,例:,例:,例:,例:,3+5,6+8;结果:14。,a=3*5,a*4;结果:60。,x=(a=3,6*3);结果:x=18。,x=a=3,6*3;结果:18。,注意:在逗号表达式中,前后表达式使用同一个变量时,前一变量的计算结果会影响后面表达式的计算结果。而不能简单将表达式的值等于最后一个表达式的值。,高 double float long unsigned 低 int char,short,2.5.7

26、 混合表达式,由各种运算符连接常量、变量或表达式构成。,数据类型的转换规则:,由低(字节长度短)向高(字节长度长)转换。,混合运算应注意三个问题:,优先级 结合性 数据类型的转换,能被4整除而不能被100整除或能被400整除(判断闰年的条件)。,例:,隐式转换:,例:,显式转换:,(数据类型标识符)表达式;,显式转换格式:,例:,例:,例:,(int)1.5;结果:1。,(float)1;结果:1.0。,a*b/c+1.5-a;,(ch=A&ch=Z)?(ch+32):ch;,(year%4=0&year%100!=0)|(year%400=0);,例:,2/10*a*a*a,数据类型转换的两

27、种形式:,计算综合表达式时,要注意优先顺序及类型转换。已知 x=5,y=67,a=7,则下列表达式的值为:1)x+y10&!y=a%2 1运算符优先次序为(1)!(2)%(3)+(4)=,2)x+yA x+y65&1=a%2 x+y65&1=1 1&1 1,简单的输入输出函数,字符输入输出函数字符串输入输出函数格式化输入输出函数,返回,理解、使用C 库函数的几个要点:,函数的功能,函数的引用格式,函数要使用的头文件(包含文件)*.h,在使用函数前应首先了解清楚函数的功能。,调用(使用)函数的格式。函数名(实参表),4.10.1 字符输入函数getchar和字符输出函数putchar,1、字符输

28、入函数 getchar,#includemain()int c;c=getchar();,#includemain()char c;c=getchar();,例:,功能:,要求:,从键盘上读取一个(键的)字符。,程序开始要使用预编辑命令#include。,例:,函数引用格式:,getchar(),2、字符输出函数 putchar,#include“stdio.h”main()int c=97;putchar(c);,#includemain()char c;c=a;putchar(c);,例:,函数引用格式:,功能:,要求:,向显示终端输出一个字符。,程序开始使用预编辑命令#include“s

29、tdio.h”。,例:,putchar(ch);,例:用getchar、putchar函数编一个程序。要求从键盘输入一个字符,并将其显示在显示器上。,B B,运行程序,#include main()char c;c=getchar();putchar(c);,例:用putchar函数输出BOY字母。,BOY,#include“stdio.h”main()char a,b,c;a=B;b=O;c=Y;putchar(a);putchar(b);putchar(c);,运行程序,1、字符串输入函数 gets,P72页:字符串输入函数gets和字符串输出函数puts,#include main()c

30、har filename 30;gets(filename);,函数引用格式:,功能:,要求:,gets(str);,从键盘读取一串字符,用回车键结束字符串的输入,并将其赋给字符串数组str,即存入str所指向的存储区。,程序开始要使用预编辑命令#include。,例:,2、字符串输出函数 puts,#include main()char str10=“abc”;puts(str);puts(“ABC”);,函数引用格式:,功能:,要求:,将字符串常量或字符串数组str指向的字符串输出到显示器上。字符数组str指向要输出的字符串。,程序开始要使用预编辑命令#include。,puts(str)

31、;,例:,运行结果:abc ABC,例:用gets、puts函数编一个程序。要求从键盘输入 一个字符串,并将其显示在显示器上。,Test string I/OABCDEFG ABCDEFG,#include main()char str20;puts(“Test string I/O”);gets(str);puts(str);,运行程序,4.10.2 格式化输入、输出函数,scanf(“输入格式”,输入项地址表列);,scanf(“%d%f”,2、格式化输入函数,printf(“输出格式”,输出项表列);,输出格式:%d 十进制整数%x 十六进制整数%f 浮点小数%c 单一字符%s 字符串,

32、printf(“a=%d,x=%f”,a,x);,1、格式化输出函数,格式化输入输出函数可以将各种类型的数据从计算机中输出到显示器上、从键盘上将数据输入到计算机中。,引用格式:,1、格式化输出函数 printf,功能:,要求:,printf(“输出格式”,输出项表列);,按照指定的格式,将输出项表列的各项,输出到显示器上。,程序开始要使用预编辑命令#include。,常量、变量、表达式,格式符,输出格式,输出项表列,用于规定相应输出项的格式。输出格式用格式符来说明。是由一系列格式转换说明符(简称格式符)组成。用双引号括起来的字符串,包含两种信息:格式说明。用于规定相应输出项的格式,用格式符来说

33、明,如上面printf函数双引号中的%d、%f等。普通字符。即需要原样输出的字符。如上面printf函数双引号中的a=、b=、逗号。,是指定要输出的数据,可以是变量、常量或表达式。多个变量、常量或表达式时,用逗号“,”分隔。输出变量、常量或表达式的个数要与格式符个数相同、前后顺序一一对应。,printf(“a=%d,x=%f”,a,x);,格式符:%+-0 m.n l,%是格式符的开始标识记号。,数据类型说明字母 指定输出项输出数据的数据类型和格式。,%d 带符号十进制整数输出。%f 以小数形式输出,含6位小数。%e 以指数形式输出,其中尾数部分6位小数,指数3位,正负号1位,e1位。%s 以

34、字符串输出。%c 以单个字符输出。%x 以十六进制整数输出。%o 以八进制整数输出。%u 无符号十进制整数输出。%g 以%e%f 格式中输出长度较短的一种格式输出,不输出无意义的0。,例:main()float a=111111.111;float b=222222.222;printf(“%fn”,a+b);6 位小数运行结果:333333.328125 有效位7 位 无效位,数据类型说明字母,2-008,%f,以小数形式输出,含6位小数。单精度输出数据有效位7位。双精度输出数据有效位16位。,2-007,例:main()int a=123,b=12345;printf(“%d,%dn”,a

35、,b);程序结果:123,12345,%d,带符号十进制整数输出,例:main()char c=a,;int i=97;printf(“%c,%dn”,c,c);printf(“%c,%dn”,i,i);运行结果:a,97 a,97,2-011,2-010,数据类型说明字母,%s,例:main()printf(“%sn”,“Beijing”);运行结果:Beijing,%c,以单个字符输出,以字符串输出,例:main()printf(“%e”,123.456);运行结果:1.234560e+002 6 位小数 3位指数,2-009,%e,以指数形式输出,其中尾数部分6位小数,指数3位,正负号1

36、位,e1位,m表示输出项输出数据(字符)的总长度。无.n 部分,格式符:%+-0 m.n l,输出整数:,输出实数:,输出字符:,例:,例:,例:,m表示输出项输出数据(字符)的总长度。n 表示输出项输出数据的小数部分数据(字符)的长度。,m表示输出项输出数据字符的总长度。n表示输出项输出数据字符的实际个数。,m.n 指定输出数据的长度,main()int x=123;printf(“%3d”,x);123,运行结果,main()char str20=“Beijing”;printf(“%5.3s”,str);Bei,运行结果,main()float pi=3.14159;printf(“%7

37、.5f”,pi);3.1416,运行结果,%7.4表示输出的数据共占7个字符位置,其中小数占4个字符位置。,2-005,2-004,格式符:%+-0m.n l,+-指定输出项输出数据的输出位置。,0 对输出项数据空位置填数字0或空白(空格)。,例:,例:,main()int x=456;printf(“%05dn”,x);printf(“%5dn”,x);00456 456,运行结果,指定0,输出显示时填0。不指定0,输出显示时填空白(空格)。,指定“+”或缺省时,输出项输出数据(字符)的输出位置右边靠齐。指定“-”时,输出项输出数据(字符)的输出位置左边靠齐。,main()char str1

38、0=“ABCD”;printf(“%+5sn”,str);printf(“%-5sn”,“ABCD”);ABCDABCD,运行结果,2-006,格式符:%+-0m.n l,l 对输出项输出数据的数值,指定输出的精度和类型。,对整型数,对实型数,例:,如果不指定 l 输出产生错误。,d(十进制),x(十六进制),o(八进制),u(无符号十进制)。l:long 型精度。h:short 型精度。缺省时,int 型精度。,e(指数形式),f(小数形式),g。l:double 精度。缺省时,float 精度。,main()long x=12345678;printf(“%ldn”,x);12345678

39、,运行结果,引用格式:,2、格式化输入函数 scanf,功能:,要求:,scanf(“输入格式”,输入项地址表列);,从标准文件,即键盘上,按输入格式为指定的输入项变量输入数据。,程序开始要使用预编辑命令#include。,输入格式:,输入项表列:,格式符:,用于规定输入项输入数据的格式。输入格式用格式符来说明。,是由若干个变量的地址组成。一般情况下,在每个变量前加地址运算符&。有多个输入项变量地址时,从键盘上输入的各个数据之间可用空格键、回车键或TAB键作分隔符,进行分隔。,%m l,格式符,变量地址,格式符:%m l,数据类型说明字母:,l:,对整型数,对实型数,m:,d(十进制),x(十

40、六进制),o(八进制),u(无符号十进制)。指定 l,表示输入项输入数据为long 型精度。指定 h,表示输入项输入数据为short 型精度。缺省时,int型精度。,e(指数形式),f(小数形式),g。指定 l,表示输入项输入数据为double精度。缺省时,float精度。,d、o、x、c、s、e、f 含义与printf 相同。,指定输入项输入数据的精度。,指定输入项输入数据的长度。含义与 printf 中相同。,scanf函数在输入多个数据时非常容易出错。我们看一个例子:,例 用scanf函数输入多个数据。(1)10#include 20 main()30 int a,b,c;40 scan

41、f(“%d%d%d”,60 行号为40的语句要求为变量a、b、c输入数据。前面我们说了,输入多个数据时,可以用空格键、回车键或TAB键作分隔符进行分隔,故:5 6 7或者567 或者5 6 7这三种输入方法都可以,输出结果是a=5,b=6,c=7,(2)但是如果scanf的双引号里有“,”、“:”、“;”、“”(空格)、“a=”等等的普通字符,我们在输入的时候一定要原样输入,否则可能会发生严重的错误。#include main()int a,b,c;scanf(“a=%d;b=%d;c=%d”,c=7,运行程序,例题,543 543,a a,main()int a;scanf(“%d”,mai

42、n()char c;scanf(“%c”,例:,例:,运行程序,main()int a,b,c;scanf(“%d%d%d”,例:,运行程序,运行程序,567 或5 6 7567,35,45,2.5 35 45 2.500000,例:,main()int x,y;float z;scanf(“%d,%d,%f”,scanf(“x=%d,y=%d”,则输入形式为:x=10,y=29,#include main()char a,b;a=getchar();putchar(a);putchar(n);b=a+a-A;printf(a=%c b=%cn,a,b);printf(a=%d b=%dn,a

43、,b);,例:在键盘上输入一个大写字符,将它转换成小写后输出。,运行程序,A ASCII码为 65a ASCII码为 97 a-A=32 将大写转换成小写,MMa=M b=ma=77 b=109,将字母大写转换成小写加32,将字母小写转换成大写减32。,例:已知三角形的三个边长。用面积公式:,其中:s=1/2(a+b+c)。求三角形的面积。,a,b,c,#include#includemain()float a,b,c,s,area;printf(”Enter a,b,c:);scanf(%f,%f,%f,Enter a,b,c:5.0,6.0,7.0 a=5.00 b=6.00 c=7.00

44、s=9.00 area=14.6969,运行程序,例:求方程ax2+bx+c=0的实根。,#include#includemain()float a,b,c,disc,x1,x2,p,q;printf(enter a,b,c:);scanf(%f,%f,%f,main()int x=315;char ch=a,c;float f=3.5;c=x;x=f;f=c;f=x;,例:指出下列程序在执行过程中各个变量的取值。,315的二进制形式为:0000000100111011。其赋给字符变量 c 取低八位即:00111011。所以 c 的值为:59。x 的值为:3。f 的值为:59.0。f 的值为:3.0。,例:,main()char str10;scanf(“%s”,str);printf(“n%s”,str);,运行程序,How are you?How are you?,字符串数组前不要加地址符&,因为字符串数组名表示的是字符串的第一个字符的地址,地址量。,结 束,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号