C语言 第3章 2类型、运算符与表达式ppt课件_第1页
C语言 第3章 2类型、运算符与表达式ppt课件_第2页
C语言 第3章 2类型、运算符与表达式ppt课件_第3页
C语言 第3章 2类型、运算符与表达式ppt课件_第4页
C语言 第3章 2类型、运算符与表达式ppt课件_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

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

文档简介

1、第三章第三章数据类型、运算符和表达式数据类型、运算符和表达式2主要内容主要内容 预备知识预备知识 常量和变量的概念常量和变量的概念 各种数据类型的常量及变量各种数据类型的常量及变量 变量赋初值变量赋初值 不同类型数据之间的混合运算不同类型数据之间的混合运算 常用运算符和表达式常用运算符和表达式 输入函数与输出函数输入函数与输出函数 33.4.1 3.4.1 变量和内存的概念变量和内存的概念 变量:变量:程序运行过程中其值可以改变的量。程序运行过程中其值可以改变的量。系统为程序中的每一个变量开辟存储单元。系统为程序中的每一个变量开辟存储单元。变量名:变量名:字母开头,后跟字母、数字和下划线组成。

2、字母开头,后跟字母、数字和下划线组成。C语言中的关键字不能作为变量名。语言中的关键字不能作为变量名。43.4.1 3.4.1 变量和内存的概念变量和内存的概念 #include#define PI 3.1415926 void main( ) float r, s, ar; scanf(“%f”, &r); s = 2 * PI * r; ar = PI * r * r; printf(s=%7.2f, , s ); printf( ar=%7.2f “ , ar ) ; 阐明:阐明: 变量必须先定义后使用;变量必须先定义后使用; 变量中存储的只能是一个变量中存储的只能是一个数据,往变

3、量中存放数据数据,往变量中存放数据的操作称为赋值。的操作称为赋值。 变量改变的是其值,而不变量改变的是其值,而不是变量名。是变量名。53.4.2 3.4.2 变量赋初值变量赋初值 变量定义变量定义int a , b , c ; float w ; double z; char c1 , c2; 类型标识符类型标识符 变量名变量名1=1=常量常量11,变量名变量名2=2=常量常量22, ;/ /* *指定指定a,b,ca,b,c为整型变量为整型变量* */ / /* *指定指定w w为单精度实型变量为单精度实型变量* */ / /* *指定指定z z为双精度实型变量为双精度实型变量* */ /

4、/* *指定指定c1,c2c1,c2为字符型变量为字符型变量* */ /63.4.2 3.4.2 变量定义和赋初值变量定义和赋初值 变量赋初值变量赋初值 int i = 0 ; int a = 5 , b = 5 , c = 5; float ep = 0.001; char c = a ; / /* *指定指定i i为整型变量,初值为为整型变量,初值为0 0* */ / / /* *指定指定a,b,ca,b,c的初值为的初值为5 5* */ / / /* *指定指定epep的初值为的初值为0.0010.001* */ / /* *指定指定c c的初值为的初值为aa* */ /7留意:留意:

5、变量的变量的“名和变量的名和变量的“值不同,变量的值不同,变量的“名名是该变量所代表的存储单元的标志,而变量的是该变量所代表的存储单元的标志,而变量的“值值是指存储单元中的内容。是指存储单元中的内容。如:如:int a; int a; a=5; a=5; a=10; a=10;? 51089101112主要内容主要内容 预备知识预备知识 常量和变量的概念常量和变量的概念 各种数据类型的常量及变量各种数据类型的常量及变量 变量赋初值变量赋初值 不同类型数据之间的混合运算不同类型数据之间的混合运算 常用运算符和表达式常用运算符和表达式 输入函数与输出函数输入函数与输出函数 133.6 3.6 运算

6、符和表达式运算符和表达式C运运算算符符算术运算符:算术运算符:+ - + - * * / % + - / % + -关系运算符:关系运算符: = != = !=逻辑运算符:(!逻辑运算符:(! & | & |位运算符位运算符 : | & | &赋值运算符:赋值运算符: = = 及其扩展及其扩展条件运算符:条件运算符: ? : ? :逗号运算符:逗号运算符: , ,指针运算符:指针运算符: * * & &求字节数求字节数 :sizeofsizeof强制类型转换:(类型)强制类型转换:(类型)分量运算符:分量运算符: . - . -下标运算符:下标运

7、算符: 其它其它 : ( ) - ( ) -14学习运算符应注意:学习运算符应注意:运算符功能运算符功能与运算量关系与运算量关系要求运算量个数要求运算量个数要求运算量类型要求运算量类型运算符优先级别运算符优先级别结合方向结合方向结果的类型结果的类型15运算:数学中所规定的各种基本运算,由运算符来运算:数学中所规定的各种基本运算,由运算符来实现。实现。函数:对于复杂的运算,需要编制子函数来实现。函数:对于复杂的运算,需要编制子函数来实现。标准函数标准函数( (库函数库函数) );用户自定义函数;用户自定义函数;16运算符与表达式运算符与表达式1. 1. 算术运算符和算术表达式算术运算符和算术表达

8、式2. 2. 赋值运算符和赋值表达式赋值运算符和赋值表达式171819203cba)()(csbsass21练习:练习:1.1.下列运算符的操作数不能是下列运算符的操作数不能是floatfloat型的运算符是()型的运算符是()。 A. A. * * B. % C. D. / B. % C. D. /2.2.执行以下程序段,执行以下程序段,c c的值是(的值是( )。)。 int a=1,b=2,c; int a=1,b=2,c; c=a/b; c=a/b; A. 0 B. 1/2 C. 0.5 D. 1 A. 0 B. 1/2 C. 0.5 D. 1222324252627 假设假设 k 和

9、和 j 为为 int 型变量,运算表达式型变量,运算表达式 j=3; k=+j; j+; 执行后,变量执行后,变量 k 的值为的值为_, 变量变量 j 的值为的值为_ 。2829赋值:在计算机程序中,要完成这样一种操作赋值:在计算机程序中,要完成这样一种操作将一个表达式的计算结果送到一个变量当中将一个表达式的计算结果送到一个变量当中。简单的赋值运算符:简单的赋值运算符:= =赋值表达式:变量名赋值表达式:变量名 = = 表达式表达式赋值运算符的结合性:自右向左赋值运算符的结合性:自右向左即:即:a = b = c a = b = c 相当于相当于 a = (b = c) a = (b = c)

10、30 算术运算符与算术运算符与“=”“=”结合在一起,形成复合的结合在一起,形成复合的赋值运算符。赋值运算符。例:例: i += 2 a %= 3a * = b + 5等价于等价于 i = i + 2等价于等价于 a = a % 3等价于等价于 a = a * (b + 5)31C运运算算符符算术运算符:算术运算符:+ - + - * * / % + - / % + -关系运算符:关系运算符: = != = !=逻辑运算符:(!逻辑运算符:(! & | & |位运算符位运算符 : | & | &赋值运算符:赋值运算符: = = 及其扩展及其扩展条件运算符:条件运

11、算符: ? : ? :逗号运算符:逗号运算符: , ,指针运算符:指针运算符: * * & &求字节数求字节数 :sizeofsizeof强制类型转换:(类型)强制类型转换:(类型)分量运算符:分量运算符: . - . -下标运算符:下标运算符: 其它其它 : ( ) - ( ) -32主要内容主要内容 预备知识预备知识 常量和变量的概念常量和变量的概念 各种数据类型的常量及变量各种数据类型的常量及变量 变量赋初值变量赋初值 不同类型数据之间的混合运算不同类型数据之间的混合运算 常用运算符和表达式常用运算符和表达式 输入函数与输出函数输入函数与输出函数 3334 1 1、自动转

12、换、自动转换运算转换运算转换在进行运算时,不同类型的数据要先自动转换成在进行运算时,不同类型的数据要先自动转换成同一类型,然后进行运算。转换的规则按图所示同一类型,然后进行运算。转换的规则按图所示。int charint char, short short 高高低低longlongunsignedunsigneddouble floatdouble float转换由编译系统自动完成。转换由编译系统自动完成。转换按数据长度增加的方向进行,转换按数据长度增加的方向进行,即按即按“向高看齐的原则提升向高看齐的原则提升“较低类型,以保证不降低精度。较低类型,以保证不降低精度。35(1 1实型赋予整型,

13、舍去小数部分。实型赋予整型,舍去小数部分。(2 2整型赋予实型,数值不变,但将以浮点形式存放,即增整型赋予实型,数值不变,但将以浮点形式存放,即增 加小数部分小数部分的值为加小数部分小数部分的值为0 0)。)。(3 3字符型赋予整型,由于字符型为一个字节,而整型为两字符型赋予整型,由于字符型为一个字节,而整型为两 个字节,因此将字符的个字节,因此将字符的ASCIIASCII码值放到整型变量的低八码值放到整型变量的低八 位中,高八位为位中,高八位为0 0。(4 4整型赋予字符型,只把低八位赋予字符型变量。整型赋予字符型,只把低八位赋予字符型变量。(5 5) double double型赋予型赋予

14、 float float型,丢失的部分按四舍五入向前型,丢失的部分按四舍五入向前 进位。进位。1、自动转换、自动转换赋值转换赋值转换36留意:一个留意:一个longlong型或型或doubledouble型数据给一个型数据给一个intint型或型或floatfloat型变量赋值时,可能会引起数值溢出。型变量赋值时,可能会引起数值溢出。留意:如果赋值运算符两边的数据类型不相同,系留意:如果赋值运算符两边的数据类型不相同,系统将进行类型转换,即把赋值号右边的类型换成左边统将进行类型转换,即把赋值号右边的类型换成左边的类型,如果右边表达式的数据类型长度比左边长时,的类型,如果右边表达式的数据类型长度

15、比左边长时,将丢失一部分数据,这样会降低精度。将丢失一部分数据,这样会降低精度。1、自动转换、自动转换赋值转换赋值转换37练习:练习:知:知: double a; float b; int c; char d; double a; float b; int c; char d;执行执行语句语句c=(d+b)c=(d+b)* *c-a;c-a;后,变量后,变量c c的数据类型是的数据类型是( )( )。 A. double B. float A. double B. float C. int D. char C. int D. char382 2、强制类型转换、强制类型转换强制类型转换运算符,将

16、一个类型的变量值强制强制类型转换运算符,将一个类型的变量值强制转换为另一种类型。转换为另一种类型。 一般格式为:一般格式为:( (类型标识符类型标识符) )表达式表达式 例:例: k =(int)(int)x +(float)i) k =(int)(int)x +(float)i) (float)(x = 85) (float)(x = 85) 39留意:对一个变量进行强制转换后,得到一个新的留意:对一个变量进行强制转换后,得到一个新的类型的数据,但原来变量的类型不变。类型的数据,但原来变量的类型不变。例:例:x x原为实型变量且值为原为实型变量且值为2.62.6,在执行,在执行 i = (i

17、nt)x i = (int)x 后得到一个整数后得到一个整数 2 2,并把它赋给整型变量,并把它赋给整型变量 i i,但但 x x 仍为实型,值为仍为实型,值为2.62.6。2 2、强制类型转换、强制类型转换40练习:练习:若有定义:若有定义:float a=3.9, b=6.9; int c; float a=3.9, b=6.9; int c; 执行语执行语句句c=a+(int)(a+b)%3/2; c=a+(int)(a+b)%3/2; 后,后,c c的值为(的值为( )。)。 A. 3 B. 3.9 A. 3 B. 3.9 C. 4 D. 4.4 C. 4 D. 4.441主要内容主要

18、内容 预备知识预备知识 常量和变量的概念常量和变量的概念 各种数据类型的常量及变量各种数据类型的常量及变量 变量赋初值变量赋初值 不同类型数据之间的混合运算不同类型数据之间的混合运算 常用运算符和表达式常用运算符和表达式 输入函数与输出函数输入函数与输出函数 423.7 3.7 输入函数与输出函数输入函数与输出函数 输出输出计算机向外部输出设备计算机向外部输出设备( (显示器显示器, ,打印机等打印机等) ) 输出数据输出数据输入输入从输入设备从输入设备( (键盘键盘, ,鼠标鼠标, ,扫描仪等扫描仪等) )向计算向计算机输入数据机输入数据在使用系统库函数时在使用系统库函数时, ,要用预编译命

19、令要用预编译命令“#include#include包含有关的头文件包含有关的头文件 #include / #include /* *标准输入输出库函标准输入输出库函数数* */ / #include #include“stdio.hstdio.h”/ /* *标准输入输出库函数标准输入输出库函数* */ /43 3.7.1 3.7.1 格式输出函数格式输出函数printf printf printfprintf函数一般格式:函数一般格式: printf( printf(格式控制,输出表列格式控制,输出表列) )格式控制是由双引号括起来的字符串,包含三种信息格式控制是由双引号括起来的字符串,包含

20、三种信息:1 1、格式说明:由、格式说明:由“%”“%”和格式字符组成,如和格式字符组成,如%d%d,%f%f等等。它的作用是将输出的数据按照指定的格式输出。它的作用是将输出的数据按照指定的格式输出。2 2、普通字符:需要原样输出的字符。、普通字符:需要原样输出的字符。3 3、转义字符:用于控制输出。、转义字符:用于控制输出。输出表列是一些要输出的数据。输出表列是一些要输出的数据。44 3.7.1 3.7.1 格式输出函数格式输出函数printf printf printfprintf函数一般格式:函数一般格式: printf( printf(格式控制,输出表列格式控制,输出表列) ) 普通字

21、符普通字符 输出表列输出表列 printf(“sum=%dn”, sum); printf(“sum=%dn”, sum); 格式说明格式说明 转义字符转义字符 printf(%d,%dn , a, b); printf(%d,%dn , a, b);45格式说明项:由格式说明项:由“% %”与格式字符组成,其作用是将数据转换为指与格式字符组成,其作用是将数据转换为指定的格式输出,按不同类型的数据有以下不同的格式字符:定的格式输出,按不同类型的数据有以下不同的格式字符: %d %d、%ld%ld,按整型数据的实际长度输出。,按整型数据的实际长度输出。 %md %md、%mld%mld,m m为

22、指定的输出字段的宽度,如数据的位数小于为指定的输出字段的宽度,如数据的位数小于m m,则左端补空;若数据位数大于则左端补空;若数据位数大于m m,则按实际长度输出。,则按实际长度输出。 %c %c:用于输出一个字符。:用于输出一个字符。 %f %f:用于以小数形式输出实数包括单、双精度);:用于以小数形式输出实数包括单、双精度); %m.nf %m.nf、%m.nlf%m.nlf,指定输出的数据共占,指定输出的数据共占 m m 位,其中包括位,其中包括 n n 位位小数,如数据的位数小于小数,如数据的位数小于m m,则左端补空;若数据位数大于,则左端补空;若数据位数大于m m,按实际长度输出。

23、小数位数被截断时按四舍五入输出。按实际长度输出。小数位数被截断时按四舍五入输出。 3.7.1 3.7.1 格式输出函数格式输出函数printf printf 46int a = -1 , b = 25 , c = 125 ;int a = -1 , b = 25 , c = 125 ;long x=356142; long x=356142; printf(%d,%5dn , a, b); printf(%d,%5dn , a, b); printf(%5d,%2dn , c , c);printf(%5d,%2dn , c , c);printf(%ld,%dn , x , x);print

24、f(%ld,%dn , x , x);输出结果为:输出结果为:例:例:473.7.2 3.7.2 格式输入函数格式输入函数scanf scanf scanfscanf函数一般格式:函数一般格式:scanf(scanf(格式控制,地址表列格式控制,地址表列) ) scanfscanf函数的功能是按照指定的格式输入数据,可以函数的功能是按照指定的格式输入数据,可以输入任意类型的多个数据。输入任意类型的多个数据。格式控制与格式控制与printfprintf函数含义相同,它由若干个格式函数含义相同,它由若干个格式说明构成,其作用是控制转换输入数据的类型。说明构成,其作用是控制转换输入数据的类型。地址表

25、列由若干个地址构成,它们可以是变量的地地址表列由若干个地址构成,它们可以是变量的地址,也可以是字符串的首地址。址,也可以是字符串的首地址。48如何分隔数据如何分隔数据? ?用隐含的分隔符用隐含的分隔符: :在输入数据中用空格或换行符分隔数据。在输入数据中用空格或换行符分隔数据。 scanf(%d%d%d,&a , &b , &c); scanf(%d%d%d,&a , &b , &c); 输入数据输入数据 3 4 5 3 4 5 或输入或输入 3 3 4 5 4 5 则则a=3,b=4,c=5a=3,b=4,c=5使用显示分隔符使用显示分隔符:

26、:在格式说明符中还可以有其它字符,在输入在格式说明符中还可以有其它字符,在输入字符时应输入与这些字符相同的字符。字符时应输入与这些字符相同的字符。 scanf(%d,%d,%d,&a , &b , &c); scanf(%d,%d,%d,&a , &b , &c); 输入数据输入数据 3,4,5 3,4,5 那么那么 a=3,b=4,c=5 a=3,b=4,c=5 49格式字符格式字符说明说明d, i用来输入有符号的十进制整数用来输入有符号的十进制整数 u用来输入无符号的十进制整数用来输入无符号的十进制整数 o用来输入无符号的八进制整数用来输入无

27、符号的八进制整数 x X 用来输入无符号的十六进制整数用来输入无符号的十六进制整数(大小写作用相同大小写作用相同) c用来输入单个字符用来输入单个字符 f用来输入实数,可以用小数形式或指数形式输入用来输入实数,可以用小数形式或指数形式输入 s用来输入字符串,将字符串送到一个字符数组中,用来输入字符串,将字符串送到一个字符数组中,在输入时以非空白字符开始,以第一个空白字符结在输入时以非空白字符开始,以第一个空白字符结束。字符串以串结束标志束。字符串以串结束标志作为其最后一个字符作为其最后一个字符e E g G 与作用相同,与、与作用相同,与、g可以互相替换可以互相替换(大小写作大小写作用相同用相

28、同) scanfscanf格式字符格式字符 50字符字符说明说明l l用于输入长整型数据(可用用于输入长整型数据(可用%ld%ld,%lo%lo,%lx%lx,%lu%lu)以及以及doubledouble型数据(用型数据(用%lf%lf或或%le%le) h h用于输入短整型数据(可用,用于输入短整型数据(可用,) 域宽域宽指定输入数据所占宽度(列数),域宽应为正整数指定输入数据所占宽度(列数),域宽应为正整数 表示本输入项在读入后不赋给相应的变量表示本输入项在读入后不赋给相应的变量 scanfscanf格式字符格式字符 阐明:阐明:对对unsignedunsigned型变量所需要的数据,可

29、以用型变量所需要的数据,可以用%u%u,%d%d或或%o%o,%x%x格式输入。格式输入。可以指定输入数据所占的列数,系统自动按它截取所需数据。可以指定输入数据所占的列数,系统自动按它截取所需数据。如果在如果在% %后有一个后有一个“* *”附加说明符,表示跳过它指定的列数。附加说明符,表示跳过它指定的列数。输入数据时不能规定精度。输入数据时不能规定精度。51字符数据的输入输出字符数据的输入输出 用用putchar函数输出一个字符函数输出一个字符 putcharputchar函数字符输出函数的作用是向终端输出函数字符输出函数的作用是向终端输出一个字符。一个字符。一般形式为一般形式为 putch

30、ar(c) putchar(c) 可以是字可以是字符型变量或符型变量或整型变量整型变量 52 例例1:输出单个字符。:输出单个字符。#includevoid main()char a,b,c;a=B;b=O;c=Y;putchar(a);putchar(b);putchar(c);putchar(n);53字符数据的输入输出字符数据的输入输出 用用getchar函数输入一个字符函数输入一个字符 getchargetchar函数字符输入函数的作用是从计算机终函数字符输入函数的作用是从计算机终端输入一个字符。端输入一个字符。 getchargetchar函数没有参数,一般形式为函数没有参数,一般形

31、式为 getchar getchar()()函数的值就是函数的值就是从输入设备得从输入设备得到的字符到的字符 543.7.3 3.7.3 数学函数数学函数使用数学库中的函数时,应该首先用预处理命令使用数学库中的函数时,应该首先用预处理命令 #include #include 指明要用到的数学函数的描述所在的头文件。指明要用到的数学函数的描述所在的头文件。调用数学函数时,要给出函数名,后面是一对圆调用数学函数时,要给出函数名,后面是一对圆括号,括号内是使用函数所需的参数,参数可以是括号,括号内是使用函数所需的参数,参数可以是常量、变量或表达式。常量、变量或表达式。55例:计算并打印例:计算并打印

32、2 2的的3 3次方的语句可以写成:次方的语句可以写成: printf( printf(“%7.2f%7.2f”, pow(2.0 , 3.0); , pow(2.0 , 3.0); 调用的数学函数调用的数学函数powpow需要两个参数,这两个参数都需要两个参数,这两个参数都是是doubledouble型的,返回值也是型的,返回值也是doubledouble型的。型的。 语句执行结果为:语句执行结果为: 8.00 8.00。56常用数学函数常用数学函数函函 数数 名名功功 能能举举 例例fabs(x)fabs(x)计算计算x x的绝对值的绝对值fabs(-3.5)fabs(-3.5)等于等于3

33、.53.5sqrt(x)sqrt(x)计算计算x x的非负平方根的非负平方根sqrt(16.0)sqrt(16.0)等于等于4.04.0exp(x)exp(x)计算指数函数计算指数函数e ex xexp(1.0)exp(1.0)等于等于2.718282.71828log(x)log(x)计算计算x x的自然对数的自然对数ln xln xlog(2.718282)log(2.718282)等于等于1.01.0log10(x)log10(x) 以以1010为底的对数函数为底的对数函数loglog1010 x xLog10(10.0)Log10(10.0)等于等于1.01.0powpow(x,yx,y) 计算计算x xy ypow(2.0,3.0)pow(2.0,3.0)等于等于8.08.0sin(x)sin(x)正弦函数正弦函数sin(0.0)sin(0.0)等于等于0.00.0cos(x)cos(x)余弦函数余弦函数cos(0.0)cos(0.0)等于等于1.01.057变量的定义变量的定义int a,b,cint a,b,c;指定指定a a,b b,c c为整型变量为整型变量unsigned lowerunsigned lower指定指定lowerlower为无符号整型变量为无符号整型变量float xfloat x,y y;指定指定x x,y y为实型变量为实

温馨提示

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

评论

0/150

提交评论