函数表达式常量变量函数.ppt

上传人:s****8 文档编号:67352326 上传时间:2022-12-24 格式:PPT 页数:26 大小:203KB
返回 下载 相关 举报
函数表达式常量变量函数.ppt_第1页
第1页 / 共26页
函数表达式常量变量函数.ppt_第2页
第2页 / 共26页
点击查看更多>>
资源描述

《函数表达式常量变量函数.ppt》由会员分享,可在线阅读,更多相关《函数表达式常量变量函数.ppt(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、常量 变量 运算符 函 数 表 达 式 常 量 变 量 函 数 运算符 及表 达 式 3.1 3.1 C C的数据类型的数据类型短短整型整型(short)整型整型(int)长整型长整型(long)整型整型实型实型数值类型数值类型字符类型字符类型(char)枚举类型枚举类型(enum)数组类型数组类型结构体类型结构体类型(struct)共用体类型共用体类型(union)文件类型文件类型(FILE)基本基本类型类型 数据数据 类型类型单精度型单精度型(float)双精度型双精度型(double)第二章 数据类型、运算符与表达式构造构造类型类型指针类型指针类型空类型空类型常量 变量 运算符 函 数

2、表 达 式 常 量 变 量 函 数 运算符 及表 达 式 一一 常量常量1.常量程序运行过程中其值不变的量程序运行过程中其值不变的量2.类型 (1)整型常量整型常量:允许用允许用 10进制进制,8进制进制(数前加数数前加数0),16进制(数前加数字进制(数前加数字0和和X)例例1 main()int a,b,c;a=10;b=010;c=0 x10;printf(“%d,%d,%d n”,a,b,c);3.2 常量与变量运行结果:运行结果:10,8,16常量 变量 运算符 函 数 表 达 式 常 量 变 量 函 数 运算符 及表 达 式 (2)实型常量实型常量:日常记数法:如:1999.35,

3、-2001.98 错误如:e2.5 .e8 e8 e 科学记数法:如:1.99935e3允许用运行结果运行结果:1999.35,1.99935e3例例 2 main()float f;f=1999.35;printf(“%f,%e n”,f,f);常量 变量 运算符 函 数 表 达 式 常 量 变 量 函 数 运算符 及表 达 式 (3)字字符符常常量量用单引号括起来的一个字符或转义字符.例:A,o,1,#,a 等 n 换行 t 横向跳格(即跳到下一个输出区)v 竖向跳格 b 退格 r 回车 f 走纸换页 反斜杠 输出单引号 ooo 1-3位八八进制所代表的字符 xhh 1-2位十六十六进制所

4、代表的字符 转义字符 含义常量 变量 运算符 函 数 表 达 式 常 量 变 量 函 数 运算符 及表 达 式 (4)字符串常量字符串常量-用双引号括起来的一串字符序列.例:“CHINA”,“BBI”,“I am a teacher.”等而“A”与 A 在C语言中是不同的,前者是字符串常量,后者是字符常量在内存中在内存中:A “A”01000001例:例:main()printf(“%c,%c,%c,%cn”,A,101,0101,0 x41);01000001 0是字符串结束标是字符串结束标记记,输入时输入时,系统系统自动加上自动加上,输出输出时不输出时不输出运行结果运行结果:A,A,A,A

5、常量 变量 运算符 函 数 表 达 式 常 量 变 量 函 数 运算符 及表 达 式 (5)符号常量符号常量#define PI 3.1415928 /*PI是符号常量是符号常量,一般一般 用大写用大写,在该作用域内不可赋其他值在该作用域内不可赋其他值 */main()float r,s;scanf(“%f”,&r);s=2*PI*r;printf(“s=%f n”,s);好处好处:若程序里多处出现,该值发 变化,仅在 define中作一次修改常量 变量 运算符 函 数 表 达 式 常 量 变 量 函 数 运算符 及表 达 式 二二 变量变量1.变量变量-程序执行过程中其值可以发生变化的量程序

6、执行过程中其值可以发生变化的量2.起名规则起名规则:在C中变量名,函数名,文件名,数组名,等均称标识符标识符(identifier).可由字母,数字和下划线组成,且第第一个必为字母或下划线一个必为字母或下划线(系统常用),前8或31个有效(视不同版本而定)注意注意:大小写字母有区别大小写字母有区别;如:a1与A1为不同的变量名 不可用关键字不可用关键字;如:int,for,if 等 不可出现空格不可出现空格;如:stu 1,a 1等 见名识意见名识意;如:sum,sort 等3.类型及定义类型及定义在C中用变量前一定先定义用变量前一定先定义,编译系统对不同类型变量分配不同数量的内存单元,存放其

7、值;系统对不同类型变量进行不同操作.常量 变量 运算符 函 数 表 达 式 常 量 变 量 函 数 运算符 及表 达 式 变量类型变量类型 定义定义 字节数字节数 范围范围整型整型 int a,b;2 -32768-32767短整型短整型 short x,y;2 -32768-32767无符号整型无符号整型 unsigned int a;2 0-65535无符号短整型无符号短整型 unsigned short b;2 0-65535长整型长整型 long l;4 -2147483648-2147483647无符号长整型无符号长整型 unsigned long d;4 0-4294967295单

8、精度实型单精度实型 float f;4 3.4e-38 3.4e38(7位)双精度实型双精度实型 double d;8 1.7e-308 1.7e308(15位)长双精度实型长双精度实型 long double ld;10 3.4e-49323.4e4932(19位)字符型字符型 char c1,c2;1 0-255带符号字符型带符号字符型 signed char c3;1 -128-127常量 变量 运算符 函 数 表 达 式 常 量 变 量 函 数 运算符 及表 达 式 三三 运算符及其表达式运算符及其表达式1.算术运算符及其表达式算术运算符及其表达式(1)算术运算符:+,-,*,/,%两

9、个操作数均为整型,其结果为整型 有一个操作数为实型,其结果为双精度实型%(求余):两个操作数必为整型,其结果为余数main()int a,b;float c;scanf(“%d,%d,%f”,&a,&b,&c);printf(“a+b=%d n”,a+b);printf(“a-b=%d n”,a-b);printf(“a/c=%f n”,a/c);printf(“a%c=%d n”,a%(int)c);/*输出“%”号,则 在其前加“%”号 */:常量 变量 运算符 函 数 表 达 式 常 量 变 量 函 数 运算符 及表 达 式 (2)算术表达式算术表达式-用算术运算符将可操作对象连接起用算

10、术运算符将可操作对象连接起来算式来算式.例:a,100,a+100,a+3/2.0.均是算术表达式.优先级优先级 3+2*5 先“*”后“+”其结果为:13;先“+”后“*”其结果为:25;同一算式得出两个结果,这就要规定优先级,C中规定算术运算符 优先级 :()-改变优先级 如:(3+2)*5,其结果为:25 ()可嵌套,不可用和 结合性结合性同一级别有结合性 */%+-左右 左右常量 变量 运算符 函 数 表 达 式 常 量 变 量 函 数 运算符 及表 达 式 c/b/a (c/b)/a -1 d/b%a (d/b)%a 0-a*d (-a)*d 38 a%-b*c (a%(-b)*c

11、14 a/c+-20/-a (a/c)+(-20)/(-a)10-d%c-b/a*5+5 (-d)%c)-(b/a)*5)+5 157-a%(3+b)7-(a%(3+b)出错出错(分母为分母为0)算术表达式算术表达式 等价表达式等价表达式 表达式的值表达式的值已知:a,b,c,d 均是整型变量,其值是:a=2,b=-3,c=7,d=-19;试分别写出下列各表达式的值.常量 变量 运算符 函 数 表 达 式 常 量 变 量 函 数 运算符 及表 达 式 (3)不同类型数据混合运算不同类型数据混合运算:C允许混合运算,系统自动按以下规律转换(即字节数少的转换成字节数多的)double float

12、long unsigned int char,short必必转转常量 变量 运算符 函 数 表 达 式 常 量 变 量 函 数 运算符 及表 达 式 例例:main()int a=1;char c1=A;float f=100;double d=200.0;long l=40000;printf(“%f”,a+c1+f+d);/*a,c1,f 均转成均转成 double 后再相加后再相加*/printf(“%ld”,a+l);/*a 转成转成 long 后与后与 l 相加相加 */printf(“%f”,a+c1);/*c1 转成转成 int 后与后与 a 相加相加 */printf(“%f”

13、,c1+d);/*c1转成转成 double 后后与与 d 相加相加 */常量 变量 运算符 函 数 表 达 式 常 量 变 量 函 数 运算符 及表 达 式 运行结果运行结果:A,B,C B,C,D 65,66,67/*字符型与整型字符型与整型可以作算术运算可以作算术运算*/main()char c1,c2,c3;c1=A;c2=B;c3=C;printf(“%c,%c,%cn”,c1,c2,c3);printf(“%c,%c,%cn”,c1+1,c2+1,c3+1);printf(“%d,%d,%dn”,c1,c2,c3);常量 变量 运算符 函 数 表 达 式 常 量 变 量 函 数 运

14、算符 及表 达 式 main()int a1,a2,a3;a1=97;a2=98;a3=99;printf(“%c,%c,%cn”,a1,a2,a3);printf(“%c,%c,%cn”,a1+1,a2+1,a3+1);运行结果运行结果:a,b,c b,c,d/*a1,a2,a3 分别为分别为a,b,c 的的ASCII 码码*/*整型值可按整型值可按c格格式式输出一个字符输出一个字符 */常量 变量 运算符 函 数 表 达 式 常 量 变 量 函 数 运算符 及表 达 式 a=100 x+=2(与x=x+2等价)+ii+i-,-i运算符运算符 表达式表达式 功能功能 举例举例当前变量的值与表

15、达式值 进行操作后结果赋给变量 当前变量的值先增(或减)1后赋给变量,变量先参加操作,后再做增(减)1的修改 =计算表达式的值计算表达式的值,将值赋将值赋 给变量给变量,+=,-=,*=/=,%=等等 +-+(自加、自减自加、自减 +运算符运算符)-注注:指在指在C中可出现的任何一种表达式中可出现的任何一种表达式 :只可是只可是 int,char,long,指针型指针型;不可是不可是float,double型型;自增自减仅可增自增自减仅可增.减减12.赋值赋值,复合赋值复合赋值,自增自增,自减运算符及其表达式自减运算符及其表达式:自增自减优先级为2,赋值和复合赋值优先级为14,其结合性均是从右

16、到左其结合性均是从右到左常量 变量 运算符 函 数 表 达 式 常 量 变 量 函 数 运算符 及表 达 式 例例 i=3;j=5;a=(+i)*j;a=(i+)*j;i=i+1=4 a=4*5=20 a=3*5=15 i=i+1=4 注意注意:自加自加,自减的运算量只能是整型变量自减的运算量只能是整型变量,不能是不能是常量或表达式常量或表达式 如如 8+(x*y)+是是 错误的。错误的。例例 k=3;j=-+k;j=-k+;j=-(+k);k=4 j=-4 j=-(k+);j=-3 k=4表达式使用的说明表达式使用的说明:1.表达式的求值顺序在不同的编译系统中可能表达式的求值顺序在不同的编译

17、系统中可能2.不同不同例例:i=3;i=3;y=(i+)+(i+)y=(i+)+(i+)y=6 i=5 y=3+3;i+;i+;y=6 i=5 y=3+3;i+;i+;y=7 i=5 y=3+4;i+;y=7 i=5 y=3+4;i+;常量 变量 运算符 函 数 表 达 式 常 量 变 量 函 数 运算符 及表 达 式 2.2.容易造成误解的写法容易造成误解的写法 例例1:i=3;j=1;x=i+j;x=i+(+j);x=5 i=3 j=2 x=i+(+j);x=5 i=3 j=2 x=(i+)+j;x=4 i=4 j=1 x=(i+)+j;x=4 i=4 j=1 因为因为C C编译系统在处理

18、时尽可能多的从左至右将若编译系统在处理时尽可能多的从左至右将若干个字符组成一个运算符干个字符组成一个运算符,所以第所以第种理解是对的种理解是对的例例2:i=3;j=1;x=i-+j;等价于等价于 x=i-(+j);x=1 i=3 j=2x=i-(+j);x=1 i=3 j=2例例3:i=3;printf(“%d,%d”,i,i+);可能输出可能输出:3,3:3,3 4,3 4,3因为在我们使用的因为在我们使用的bc31bc31系统中系统中对函数参数的求值顺对函数参数的求值顺序是从右至左序是从右至左,所以所以printfprintf函数中先求第函数中先求第2 2个表达式个表达式i+i+的值的值,

19、再求第再求第1 1个表达式的值个表达式的值,最后的输出结果是最后的输出结果是:4,34,3常量 变量 运算符 函 数 表 达 式 常 量 变 量 函 数 运算符 及表 达 式 int i float 舍去小数部分,如表达式值:10.53,则 i 的 double 值:10 float f 补足到有效位数7位,如表达式值:10,则 f 的值:10.00000 double d 补足到有效位数15位,如表达式值:10,则 d 的值:10.0000000000000 int i char 将表达式值的高 8 位全补 0 后赋给 i,signed char 若表达式值的最高位为 0,则高8位全补 0;

20、否则全补 1 后赋给 i 若表达式值是正数,高 16 位全补0;否 long l 则全补 1 后赋给 l int i long int 截取表达式值的低 16 位后赋给 i long int l unsigned int 将表达式值的高 16 位全补0后赋给 l unsigned int i signed int 将表达式值直接赋给 i变量类型变量类型 表达式值类型表达式值类型 说明说明当表达式值的类型与变量类型不同时当表达式值的类型与变量类型不同时,系统将按以下规律处理系统将按以下规律处理:int int 常量 变量 运算符 函 数 表 达 式 常 量 变 量 函 数 运算符 及表 达 式

21、main()int a,b,c,d,e;a=b=c=d=30;e=32;printf(“a+3=%dn”,a+=3););printf(“b-3=%dn”,b-=3););printf(“c*3=%dn”,c*=3);printf(“d/3=%dn”,d/=3);printf(“e%3=%dn”,e%=3);printf(“%d,%d,%d,%d,%dn”,a,b,c,d,e);main()int x=2;x+=x-=x*x;/*结合性是自右至左结合性是自右至左*/printf(“x=%dn”,x);运行结果运行结果:x=-4运行结果:a+3=33 b-3=27 c*3=90 d/3=10 e

22、%3=2常量 变量 运算符 函 数 表 达 式 常 量 变 量 函 数 运算符 及表 达 式 main()int x=100;printf(“%d,%d,%d,%d n”,x+,x,-x,x);printf(“%d n”,x);运行结果运行结果:99,99,99,100 100main()int a,b,c;a=b=c=0;a=+b+c;a=b+c+;a=+b+c+;a=b-+-c;printf(“%d,%d,%dn”,a,b,c);/*b,c 均先增均先增1,后相加后相加 a=2 b=1 c=1*/*b,c 先相加,后均增先相加,后均增 1 a=2 b=2 c=2*/*b先增先增1和和 c

23、相加相加,后后 c再增再增1 a=5 b=3 c=3*/*c 先减先减1和和 b 相加相加,后后 b减减1 a=5 b=2 c=2*/运行结果运行结果:5,2,2常量 变量 运算符 函 数 表 达 式 常 量 变 量 函 数 运算符 及表 达 式 3.逗号运算符及其表达式逗号运算符及其表达式 逗号运算符逗号运算符:,其优先级最低其优先级最低,结合性是自结合性是自左至右左至右 逗号表达式格式逗号表达式格式:,计算逗号表达式值是按自左至右的顺序,先 计算的值,再计算的 值,.而逗号表达式值是最后一个 的值.常量 变量 运算符 函 数 表 达 式 常 量 变 量 函 数 运算符 及表 达 式 mai

24、n()int a,b,c;a=1,b=2,c=3;printf(“%d,%d,%dn”,a,b,c);printf(“%d,%d,%dn”,(a,b,c),b,c);a=(c=0,c+5);b=(c=3,c+8);printf(“%d,%d,%dn”,a,b,c);/*该处该处 a,b,c不是逗号表达式不是逗号表达式,是是 printf 函数的参数函数的参数 */*(a,b,c)是逗号表达式是逗号表达式 */运行结果运行结果:1,2,3 3,2,3 5,11,3 常量 变量 运算符 函 数 表 达 式 常 量 变 量 函 数 运算符 及表 达 式 main()int a,b,c,d;a=(c=

25、100,d=200,c+d);b=(c=d=0,c+50);printf(“%d,%d,%d,%dn”,a,b,c,d);运行结果运行结果:300,50,0,0常量 变量 运算符 函 数 表 达 式 常 量 变 量 函 数 运算符 及表 达 式 注意注意:逗号运算符的优先级最低逗号运算符的优先级最低x=(a=3,6*3);与与 x=a=3,6*3;的不同的不同 a=3 6*3 得得 18 逗号表达式的值为逗号表达式的值为18 x=18 a=3 x=3 6*3 得得 18 逗号表达式的值为逗号表达式的值为18 但但 x 的值为的值为 3常量 变量 运算符 函 数 表 达 式 常 量 变 量 函 数 运算符 及表 达 式 课后作业:课后作业:习题习题3.3、3.6、3.8、3.9、3.10、3.12

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

当前位置:首页 > 生活休闲 > 生活常识

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁