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

下载本文档

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

文档简介

1、第三章数据类型、运算符和表达式2主要内容预备知识常量和变量的概念各种数据类型的常量及变量变量赋初值不同类型数据之间的混合运算常用运算符和表达式输入函数与输出函数 33.4.1 变量和内存的概念 变量:程序运行过程中其值可以改变的量。系统为程序中的每一个变量开辟存储单元。变量名:字母开头,后跟字母、数字和下划线组成。C语言中的关键字不能作为变量名。43.4.1 变量和内存的概念 #include#define PI 3.1415926 void main( ) float r, s, ar; scanf(“%f”, &r); s = 2 * PI * r; ar = PI * r * r; pr

2、intf(s=%7.2f, , s ); printf( ar=%7.2f “ , ar ) ;说明:变量必须先定义后使用; 变量中存储的只能是一个数据,往变量中存放数据的操作称为赋值。变量改变的是其值,而不是变量名。53.4.2 变量赋初值 变量定义int a , b , c ; float w ; double z; char c1 , c2; 类型标识符 变量名1=常量1,变量名2=常量2, ;/*指定a,b,c为整型变量*/*指定w为单精度实型变量*/*指定z为双精度实型变量*/*指定c1,c2为字符型变量*/63.4.2 变量定义和赋初值 变量赋初值int i = 0 ; int a

3、 = 5 , b = 5 , c = 5; float ep = 0.001; char c = a ; /*指定i为整型变量,初值为0*/ /*指定a,b,c的初值为5*/ /*指定ep的初值为0.001*/*指定c的初值为a*/7注意: 变量的“名”和变量的“值”不同,变量的“名”是该变量所代表的存储单元的标志,而变量的“值”是指存储单元中的内容。如:int a; a=5; a=10;? 51089101112主要内容预备知识常量和变量的概念各种数据类型的常量及变量变量赋初值不同类型数据之间的混合运算常用运算符和表达式输入函数与输出函数 133.6 运算符和表达式C运算符算术运算符:+ -

4、 * / % + -关系运算符: = !=逻辑运算符:(! & |位运算符 : | &赋值运算符: = 及其扩展条件运算符: ? :逗号运算符: ,指针运算符: * &求字节数 :sizeof强制类型转换:(类型)分量运算符: . -下标运算符: 其它 : ( ) -14学习运算符应注意:运算符功能与运算量关系要求运算量个数要求运算量类型运算符优先级别结合方向结果的类型15计算机实现操作有两种方式:运算:数学中所规定的各种基本运算,由运算符来实现。函数:对于复杂的运算,需要编制子函数来实现。标准函数(库函数);用户自定义函数;16运算符与表达式1. 算术运算符和算术表达式2. 赋值运算符和赋值

5、表达式17+ -*% 加法运算或正号运算符减法运算或负号运算符乘法运算符除法运算符求余运算符,或称模运算符完成现实世界的算术运算( + 、)算术运算符18关于求余运算:求余运算A % B表示:求A 除以 B 的余数求余运算要求%两侧都是整型数据。对于除法,如果参加运算的两个数中有一个数为实数,则结果是实数 (实数除法)例: 8%5 的运算结果:3 8/5 的运算结果:15.6/2 :2.800000 8.43/5:1.68600019算术表达式:算术表达式:用算术运算符和括号将运算对象连接起来的式子称为算术表达式。运算符有优先级和结合性:计算表达式的值时,按照优先级的高低依次计算;如果运算符优

6、先级相同,则按规定的结合方向进行。算术运算符的结合性从左到右20(1)求三个数的算术平均值代数表达式:ave=算术表达式:ave=(a + b + c)/3(2)根据三角形三边计算三角形面积代数表达式:算术表达式:sqrt(s*(s-a)*(s-b)*(s-c)(3)根据半径计算圆的周长代数表达式: s=2r算术表达式:s=2*3.14159*r算术表达式21练习:1.下列运算符的操作数不能是float型的运算符是()。 A. * B. % C. D. /2.执行以下程序段,c的值是( )。 int a=1,b=2,c; c=a/b; A. 0 B. 1/2 C. 0.5 D. 1答案: B答

7、案: A22算术运算符的优先级+ 、-(加减运算符)最低!*、 /、 % 第二级! - (负号运算符) 无括号时我最高!(、)(括号) 最优先!23自增( + )和自减运算( - - ) + 运算符的作用:是使变量的值增 1。 - 运算符的作用:是使变量的值减1。原始值原始值+ 1 +变量变量原始值原始值- 1 -变量变量24自增( + )和自减运算( - )自增和自减运算只能应用于整型变量和指针型变量。+ 和 - 可以写在变量的左侧或右侧;而且其意义不同。“ + 变量名”和“ - 变量名”: 先做运算,后取值“变量名 + ”和“变量名 - ”: 先取值,后做运算25自增( + )和自减运算(

8、 - - )举例N = I + 变量N010变量I变量N?变量IN = + I变量N010变量I变量N?变量I1110111126练习 : 已知 i = 7j = i + ; j = ? i = ? j = + i; j = ? i = ? 788827 若 k 和 j 为 int 型变量,运算表达式 j=3; k=+j; j+; 执行后,变量 k 的值为_, 变量 j 的值为_ 。 4 5练习28关于自增和自减运算符的说明: 自增和自减运算符的运算对象不能是常量或表达式,只能是单个变量。自增和自减运算符的结合方向是“自右向左”。例: - i + 等价于 - (i + ); * i + 等价于

9、 *(i + );292、赋值运算符和赋值表达式赋值:在计算机程序中,要完成这样一种操作将一个表达式的计算结果送到一个变量当中。简单的赋值运算符:=赋值表达式:变量名 = 表达式赋值运算符的结合性:自右向左即:a = b = c 相当于 a = (b = c)30 算术运算符与“=”结合在一起,形成复合的赋值运算符。复合的赋值运算符例: i += 2 a %= 3a * = b + 5等价于 i = i + 2等价于 a = a % 3等价于 a = a * (b + 5)31C运算符算术运算符:+ - * / % + -关系运算符: = !=逻辑运算符:(! & |位运算符 : | &赋值运

10、算符: = 及其扩展条件运算符: ? :逗号运算符: ,指针运算符: * &求字节数 :sizeof强制类型转换:(类型)分量运算符: . -下标运算符: 其它 : ( ) -32主要内容预备知识常量和变量的概念各种数据类型的常量及变量变量赋初值不同类型数据之间的混合运算常用运算符和表达式输入函数与输出函数 333.5 数据的混合运算1、自动转换运算转换赋值转换2、强制类型转换34 1、自动转换运算转换在进行运算时,不同类型的数据要先自动转换成同一类型,然后进行运算。转换的规则按图所示。int char, short 高低longunsigneddouble float转换由编译系统自动完成。

11、转换按数据长度增加的方向进行,即按“向高看齐”的原则提升“较低”类型,以保证不降低精度。35(1)实型赋予整型,舍去小数部分。(2)整型赋予实型,数值不变,但将以浮点形式存放,即增 加小数部分(小数部分的值为0)。(3)字符型赋予整型,由于字符型为一个字节,而整型为两 个字节,因此将字符的ASCII码值放到整型变量的低八 位中,高八位为0。(4)整型赋予字符型,只把低八位赋予字符型变量。(5) double型赋予 float型,丢失的部分按四舍五入向前 进位。1、自动转换赋值转换36注意:一个long型或double型数据给一个int型或float型变量赋值时,可能会引起数值溢出。注意:如果赋

12、值运算符两边的数据类型不相同,系统将进行类型转换,即把赋值号右边的类型换成左边的类型,如果右边表达式的数据类型长度比左边长时,将丢失一部分数据,这样会降低精度。1、自动转换赋值转换37练习:已知: double a; float b; int c; char d;执行语句c=(d+b)*c-a;后,变量c的数据类型是( )。 A. double B. float C. int D. char正确答案: C382、强制类型转换强制类型转换运算符,将一个类型的变量值强制转换为另一种类型。 一般格式为:(类型标识符)表达式 例: k =(int)(int)x +(float)i) (float)(x

13、 = 85) 39注意:对一个变量进行强制转换后,得到一个新的类型的数据,但原来变量的类型不变。例:x原为实型变量且值为2.6,在执行 i = (int)x 后得到一个整数 2,并把它赋给整型变量 i,但 x 仍为实型,值为2.6。2、强制类型转换40练习:若有定义:float a=3.9, b=6.9; int c; 执行语句c=a+(int)(a+b)%3/2; 后,c的值为( )。 A. 3 B. 3.9 C. 4 D. 4.4正确答案: A41主要内容预备知识常量和变量的概念各种数据类型的常量及变量变量赋初值不同类型数据之间的混合运算常用运算符和表达式输入函数与输出函数 423.7 输

14、入函数与输出函数 输出计算机向外部输出设备(显示器,打印机等) 输出数据输入从输入设备(键盘,鼠标,扫描仪等)向计算机输入数据在使用系统库函数时,要用预编译命令“#include”包含有关的头文件 #include /*标准输入输出库函数*/ #include“stdio.h”/*标准输入输出库函数*/43 3.7.1 格式输出函数printf printf函数一般格式: printf(格式控制,输出表列)格式控制是由双引号括起来的字符串,包含三种信息:1、格式说明:由“%”和格式字符组成,如%d,%f等。它的作用是将输出的数据按照指定的格式输出。2、普通字符:需要原样输出的字符。3、转义字符

15、:用于控制输出。输出表列是一些要输出的数据。44 3.7.1 格式输出函数printf printf函数一般格式: printf(格式控制,输出表列) 普通字符 输出表列 printf(“sum=%dn”, sum); 格式说明 转义字符 printf(%d,%dn , a, b);45格式说明项:由“%”与格式字符组成,其作用是将数据转换为指定的格式输出,按不同类型的数据有以下不同的格式字符: %d、%ld,按整型数据的实际长度输出。 %md、%mld,m为指定的输出字段的宽度,如数据的位数小于m,则左端补空;若数据位数大于m,则按实际长度输出。 %c:用于输出一个字符。 %f:用于以小数形

16、式输出实数(包括单、双精度); %m.nf、%m.nlf,指定输出的数据共占 m 位,其中包括 n 位小数,如数据的位数小于m,则左端补空;若数据位数大于m,按实际长度输出。小数位数被截断时按四舍五入输出。 3.7.1 格式输出函数printf 46int a = -1 , b = 25 , c = 125 ;long x=356142; printf(%d,%5dn , a, b); printf(%5d,%2dn , c , c);printf(%ld,%dn , x , x);输出结果为:例:473.7.2 格式输入函数scanf scanf函数一般格式:scanf(格式控制,地址表列)

17、 scanf函数的功能是按照指定的格式输入数据,可以输入任意类型的多个数据。格式控制与printf函数含义相同,它由若干个格式说明构成,其作用是控制转换输入数据的类型。地址表列由若干个地址构成,它们可以是变量的地址,也可以是字符串的首地址。48如何分隔数据?用隐含的分隔符:在输入数据中用空格或换行符分隔数据。 scanf(%d%d%d,&a , &b , &c); 输入数据 3 4 5 或输入 3 4 5 则a=3,b=4,c=5使用显示分隔符:在格式说明符中还可以有其它字符,在输入字符时应输入与这些字符相同的字符。 scanf(%d,%d,%d,&a , &b , &c); 输入数据 3,4

18、,5 则 a=3,b=4,c=5 49格式字符说明d, i用来输入有符号的十进制整数 u用来输入无符号的十进制整数 o用来输入无符号的八进制整数 x X 用来输入无符号的十六进制整数(大小写作用相同) c用来输入单个字符 f用来输入实数,可以用小数形式或指数形式输入 s用来输入字符串,将字符串送到一个字符数组中,在输入时以非空白字符开始,以第一个空白字符结束。字符串以串结束标志作为其最后一个字符e E g G 与作用相同,与、g可以互相替换(大小写作用相同) scanf格式字符 50字符说明l用于输入长整型数据(可用%ld,%lo,%lx,%lu)以及double型数据(用%lf或%le) h

19、用于输入短整型数据(可用,) 域宽指定输入数据所占宽度(列数),域宽应为正整数 表示本输入项在读入后不赋给相应的变量 scanf格式字符 说明:对unsigned型变量所需要的数据,可以用%u,%d或%o,%x格式输入。可以指定输入数据所占的列数,系统自动按它截取所需数据。如果在%后有一个“*”附加说明符,表示跳过它指定的列数。输入数据时不能规定精度。51字符数据的输入输出 用putchar函数输出一个字符 putchar函数(字符输出函数)的作用是向终端输出一个字符。一般形式为 putchar(c) 可以是字符型变量或整型变量 52 例1:输出单个字符。#includevoid main()

20、char a,b,c;a=B;b=O;c=Y;putchar(a);putchar(b);putchar(c);putchar(n);53字符数据的输入输出 用getchar函数输入一个字符 getchar函数(字符输入函数)的作用是从计算机终端输入一个字符。 getchar函数没有参数,一般形式为 getchar()函数的值就是从输入设备得到的字符 543.7.3 数学函数使用数学库中的函数时,应该首先用预处理命令 #include 指明要用到的数学函数的描述所在的头文件。调用数学函数时,要给出函数名,后面是一对圆括号,括号内是使用函数所需的参数,参数可以是常量、变量或表达式。55例:计算并

21、打印2的3次方的语句可以写成: printf(“%7.2f”, pow(2.0 , 3.0); 调用的数学函数pow需要两个参数,这两个参数都是double型的,返回值也是double型的。 语句执行结果为: 8.00。56常用数学函数函 数 名功 能举 例fabs(x)计算x的绝对值fabs(-3.5)等于3.5sqrt(x)计算x的非负平方根sqrt(16.0)等于4.0exp(x)计算指数函数exexp(1.0)等于2.71828log(x)计算x的自然对数ln xlog(2.718282)等于1.0log10(x)以10为底的对数函数log10 xLog10(10.0)等于1.0pow

22、(x,y)计算xypow(2.0,3.0)等于8.0sin(x)正弦函数sin(0.0)等于0.0cos(x)余弦函数cos(0.0)等于1.057变量的定义int a,b,c;指定a,b,c为整型变量unsigned lower指定lower为无符号整型变量float x,y;指定x,y为实型变量double z;指定z为双精度实型变量char c1,c2;指定c1,c2为字符型变量 课堂练习581. 定义一个无符号长整变量 L1;unsigned short S1unsigned long L1定义一个无符号短整变量 S1;定义一个浮点类型变量 F1;定义一个双精度变量 D1;float

23、F1double D1按要求写语句:59转义字符程序测试#include void main( ) printf( this is one program in c n);printf(nthis is one program in c); printf(athis is one program in c n); printf(this is one program in c n);printf(bbthis is one program in c n); printf(this is one program in c );printf(rsecond program n);printf(this is one program in c );printf(tsecond program n);printf(this is one program in c

温馨提示

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

评论

0/150

提交评论