c语言第二章表达式和简单程序设计

上传人:hs****ma 文档编号:568459960 上传时间:2024-07-24 格式:PPT 页数:64 大小:865.01KB
返回 下载 相关 举报
c语言第二章表达式和简单程序设计_第1页
第1页 / 共64页
c语言第二章表达式和简单程序设计_第2页
第2页 / 共64页
c语言第二章表达式和简单程序设计_第3页
第3页 / 共64页
c语言第二章表达式和简单程序设计_第4页
第4页 / 共64页
c语言第二章表达式和简单程序设计_第5页
第5页 / 共64页
点击查看更多>>
资源描述

《c语言第二章表达式和简单程序设计》由会员分享,可在线阅读,更多相关《c语言第二章表达式和简单程序设计(64页珍藏版)》请在金锄头文库上搜索。

1、 C C语言编程语言编程 授课教师:王占骜授课教师:王占骜 第第2 2章章表达式和简单程序设计 2.1 2.1 表达式表达式1.操作符(操作符(Operators) 由基本字符集中的一个或由基本字符集中的一个或几个字符组成几个字符组成 的,用来表示一种具体操作的符号。的,用来表示一种具体操作的符号。 如如: + - % + &2.操作数(操作数(Operands ) 执行某种操作的对象。执行某种操作的对象。 如:如:x5 3表达式(表达式(Expressions)由一个或多个操作组成的有实际意由一个或多个操作组成的有实际意义的式子。义的式子。 如:如:s=3.1415926*r*r可以把表达式

2、分为可以把表达式分为7种不同的类型。种不同的类型。 4.优先级(优先级(Precedence)优先级用来确定不同操作运算的顺优先级用来确定不同操作运算的顺序,按照优先级别由高到低的次序序,按照优先级别由高到低的次序执行,例如先乘除后加减。执行,例如先乘除后加减。 5.结合性(结合性(Associativity)各种运算符的结合方向叫做结合性,各种运算符的结合方向叫做结合性,结合性用来决定多个相同优先级的结合性用来决定多个相同优先级的操作处理的方向。操作处理的方向。左结合左结合:自左至右,先左后右自左至右,先左后右 右结合右结合:自右至左,先右后左自右至左,先右后左 先考虑优先级,再考虑结合性。

3、先考虑优先级,再考虑结合性。 2.1.1 2.1.1 初级表达式初级表达式初级表达式是只含一个操作数不含初级表达式是只含一个操作数不含运算符的表达式。运算符的表达式。C语言中初级表语言中初级表达式可以是标识符、常量或括号表达式可以是标识符、常量或括号表达式。达式。 2.1.2 2.1.2 二元表达式二元表达式格式为操作数运算符操作数的格式为操作数运算符操作数的表达式。表达式。 二元运算符二元运算符描述描述运算符运算符优先先级结合性合性格式格式乘乘*13左左结合合7 * 2除除/x / 2取余取余%5 % 2加加+12左结合左结合x + y 减减-a - 1 说明:说明:(1)两个整数相除两个整

4、数相除(相乘相乘)结果为整结果为整数,小数部分忽略;如果有一个数,小数部分忽略;如果有一个数为小数,则结果为小数。数为小数,则结果为小数。 如:如:5/2 结果为结果为 2 5./2 结果为结果为 2.5 5/2.0 结果为结果为 2.5 说明:说明:(2)取余取余运算要求运算要求%两侧只能是整数两侧只能是整数,结果为两个数相除得的余数。结果为两个数相除得的余数。 如:如:5%3 结果为结果为 2 7%3 结果为结果为 1 5.0%3 ERROR 说明:说明:(3)%运算往往用来构建条件或运算往往用来构建条件或周期性事物处理。周期性事物处理。 如如: int x; x%2=0 用来判断奇偶用来

5、判断奇偶 说明:说明:(4)/和和%运算结合可以分离整数运算结合可以分离整数如如:int x=1234,b1,b2,b3,b4; b1=x%10; b2=x/10%10; b3=x/100%10; b4=x/1000; 2.1.3 2.1.3 赋值表达式赋值表达式把等号右边的操作数的制存储到等把等号右边的操作数的制存储到等号左边的变量中。号左边的变量中。 分分类运算符运算符优先先权结合性合性examples 简单赋值=2右右结合合 x=2 复合复合赋值*= /= %=+= -= x*=2 x/= 2 x%=2 x+=y x-=y (1)一般格式一般格式如如: int x, y=10; x+=y

6、+10; 赋值符号赋值符号“”就是赋值运算符,就是赋值运算符,它的作用是将一个数据赋给一个它的作用是将一个数据赋给一个变量,表达式的值是等号右边式变量,表达式的值是等号右边式子的值。子的值。 (2)复合赋值复合赋值复合赋值表达式复合赋值表达式 等价的简单表达式等价的简单表达式 x*=y x=x*y x/=y x=x/y x%=y x=x%y x+=y x=x+y x-=y x=x-y (3)左边一定是变量左边一定是变量如如: x+1=7; ERROR(4)赋值运算均为右结合赋值运算均为右结合如如: int x=10,y=20,z=30; x+=y+=z*z; 等价为:等价为: x=( x+ (

7、 y = y + (z*z) ) ) 例:若变量已正确定义并赋值,以下合法的例:若变量已正确定义并赋值,以下合法的C C语言赋值语言赋值语句是(语句是( )。)。 2007.92007.9A. x=y=5;B. x=n%2.5;C. x+n=I;D. x=5=4+1;答案:答案:A 2.1.4 2.1.4 后缀表达式后缀表达式一个操作数后面跟一个运算符组成一个操作数后面跟一个运算符组成的表达式。的表达式。 1.函数调用(函数调用(Function Call)函数名是操作数,函数名后面的括号函数名是操作数,函数名后面的括号是运算符。是运算符。如如: printf( ); 2. 后置自增后置自增/

8、自减自减只能用于单个变量。只能用于单个变量。 i; (True) (i5);); (False) 作用为作用为使变量的值增加或减使变量的值增加或减1。 如:如:a+ a- 表达式的值为变量原来的值表达式的值为变量原来的值 如如: int x,a=1; x=a+; 等价于:等价于:x=1,a=a+1; 2.1.5 2.1.5 一元表达式一元表达式由一个运算符跟一个操作数组成。由一个运算符跟一个操作数组成。 只能用于单个变量。只能用于单个变量。 使变量的值增加或减使变量的值增加或减1。 如:如: + a - -a1前置自增前置自增/自减自减 表达式的值为变量的新值表达式的值为变量的新值 如如: i

9、nt x,a=1; x=+a; 等价于:等价于:a=a+1,x=2; 2sizeof运算符运算符用来测定对象占用内存的字节数。用来测定对象占用内存的字节数。 格式格式:sizeof(对象)(对象) 或或 sizeof 对象对象对象可以是类型标识符,也可以是表对象可以是类型标识符,也可以是表达式。达式。如:如:sizeof(int) sizeof 1.5 3一元取正一元取正/取负取负取正、负运算,可以简单的认为取正、负运算,可以简单的认为是数学中的正负号,但实际在是数学中的正负号,但实际在C语语言中是运算符。言中是运算符。如:如:a - a 例:设有定义:例:设有定义:int k=0;以下选项的

10、四个表达式中与以下选项的四个表达式中与其他三个表达式的值不同的是(其他三个表达式的值不同的是( )。)。 2007.42007.4A. k+;B. k+=1;C. +k;D. k+1;答案:答案:D 例:数字例:数字0的的ASCII值为值为48,若有以下程序,若有以下程序 main()() char a=1, b=2; printf( %c, ,b+); printf( %dn ,b-a); 程序运行后的输出结果是(程序运行后的输出结果是( )。)。 2005.4A. 3,2 B. 50,2 C. 2,2 D. 2,50答案:答案:C 例:有以下程序例:有以下程序 main()() int m

11、=12,n=34; printf( %d%d ,m+,+n); printf( %d%dn ,n+,+m); 程序运行后的输出结果是(程序运行后的输出结果是( )。)。 2005.4A. 12353514 B. 12353513 C. 12343514 D. 12343513答案:答案:A 2.1.6 2.1.6 逗号表达式逗号表达式由逗号连接表达式而构成的式子。由逗号连接表达式而构成的式子。格式:格式:表达式表达式1,表达式,表达式2,表达式,表达式n如:如:x=5,y=x+5,z=-y,x+6 运算规则:运算规则:从左至右依次运算各表达式,整从左至右依次运算各表达式,整个逗号表达式的值为最

12、右边的表个逗号表达式的值为最右边的表达式的值达式的值 。如:如:x5,x10,x*10+3则逗号表达式的值为则逗号表达式的值为53。 说明说明常用于给多个变量同时赋值。常用于给多个变量同时赋值。 如:如:int x,y,z; x=1,y=2,z=3;优先级为优先级为1。 如:如:int x,y,z; z=(x=1,y=x*10,x+=y+15); 例:有以下程序例:有以下程序 main()() char a1=M, a2=m; printf( %cn ,(a1,a2); 以下叙述中正确的是(以下叙述中正确的是( )。)。 2005.4A. 程序输出大写字母程序输出大写字母MB. 程序输出小写字

13、母程序输出小写字母mC. 格式说明符不足,编译出错格式说明符不足,编译出错D. 程序运行时产生错误信息程序运行时产生错误信息答案:答案:B 例:执行以下程序后的输出结果是例:执行以下程序后的输出结果是_ 。 2007.4 #include main()() int a=10; a=(3*5, a+4); printf( a=%dn ,a); 答案:答案:a=14 例:以下叙述中错误的是(例:以下叙述中错误的是( )。)。 2006.42006.4A. C程序中的程序中的#include和和#define行均不行均不是是C语句语句B. 除逗号运算符外,赋值运算符的优先除逗号运算符外,赋值运算符的

14、优先级最低级最低C. C程序中,程序中,j+;是赋值语句;是赋值语句D. C程序中,程序中,+、-、*、/、%号是算术运号是算术运算符,可用于整型和实型数的运算。算符,可用于整型和实型数的运算。答案:答案:D 2.2 2.2 副作用(副作用(Side effectSide effect)由于表达式运算而引起变量发生变由于表达式运算而引起变量发生变化的一种情况。化的一种情况。如:如:x10*(y=8);结果是:结果是:x=80y=8 2.3 2.3 表达式求值表达式求值(1)用变量的值替换表达式中的)用变量的值替换表达式中的变量,得到新表达式。变量,得到新表达式。(2)按优先级顺序计算各表达式)

15、按优先级顺序计算各表达式并用求得的值替换原来的部分。并用求得的值替换原来的部分。(3)重复步骤()重复步骤(2),直到得到一),直到得到一个单独的值。个单独的值。2.3.1 无副作用表达式求值无副作用表达式求值 2.3.2 有副作用表达式求值有副作用表达式求值 2.4 2.4 混合类型表达式混合类型表达式不同类型数据联合而成的式子。不同类型数据联合而成的式子。整型、单精度型、双精度型数据和整型、单精度型、双精度型数据和字符型可以混合运算。字符型可以混合运算。如:如:10+A+1.58765.1234*b不同类型数据计算时,应当首先将不同类型数据计算时,应当首先将其转换成相同数据类型。其转换成相

16、同数据类型。 2.隐式类型转换(隐式类型转换(Implicit Type Conversion) 系统自动按规则由低向高层转换。系统自动按规则由低向高层转换。如如:int i; float f; 10ai*f 赋值表达式中,如果赋值号左右两端的类型赋值表达式中,如果赋值号左右两端的类型不同,将右边的值转换为左边的类型,结果不同,将右边的值转换为左边的类型,结果为赋值号左边的类型。为赋值号左边的类型。 2.4.2 .强制类型转换(强制类型转换(Explicit Type Conversion)使用强制类型转换符进行转换。使用强制类型转换符进行转换。格式:格式:(数据类型标识符)表达式(数据类型标

17、识符)表达式优先级为优先级为14。 如如:(:(float)x; (int)()(xy);); (float)()(53););应用应用: (int)5.553; C(float)5/9(F32);); 如:如:main()() float x; int i; x=3.6; i=(int)x; printf(“x=%f,i=%d”,x,i);运行结果:运行结果: x=3.600000,i=3在强制类型转换时,得到一个所需要的中间变量,在强制类型转换时,得到一个所需要的中间变量,原来的变量的类型未发生改变。原来的变量的类型未发生改变。 例:表达式例:表达式3.6-5/2+1.2+5%2的值的值是

18、(是( )。)。 2006.42006.4A. 4.3B. 4.8C. 3.3D. 3.8答案:答案:D 例:以下程序运行后的输出结果是例:以下程序运行后的输出结果是_ 。 2007.9 #include main()() char c; int n=100; float f=10; double x; x=f*=n/=(c=50); printf(%d %fn ,n,x); 答案:答案:2 20.000000 2.5 2.5 语句语句 2.5 2.5 语句语句 2.6 2.6 标准库函数(标准库函数(Standard Library FunctionsStandard Library Fun

19、ctions) 开发商编写的函数。开发商编写的函数。函数原型包含在不同的头文件中。函数原型包含在不同的头文件中。 1数学函数(数学函数(Mathematical Functions) 大多数包含在头文件大多数包含在头文件math.h中。中。(1)求绝对值函数)求绝对值函数 abs /labs/fabs 三个函数对应类型不同三个函数对应类型不同 abs(int) abs(3) labs(long) fabs(double) fabs(-3.4) (2)ceil/floor函数函数函数原型函数原型: double ceil/floor(double number);作作 用用: ceil返回不小于

20、返回不小于number的最小整数的最小整数, 结果为结果为double型。型。 如如: ceil(-1.9)-1.0 ceil(1.9)2.0 floor返回不大于返回不大于number的最大整数的最大整数, 结果为结果为 double型。型。 如如: floor(-1.9)-2.0 floor(1.9)1.0 (3)求幂求幂pow函数函数函数原型函数原型: double pow(double x, double y);作作 用用: 返回返回x的的y次幂次幂 如如: pow(3.0,4.0)81.000000 (4)求平方根求平方根sqrt函数函数函数原型函数原型: double sqrt(d

21、ouble x);作作 用用: 返回非负数的平方根。返回非负数的平方根。 如如: sqrt(2)1.414000 2通用库函数通用库函数(General Library Functions)头文件为头文件为stdlib.h(1)种子随机函数种子随机函数srand函数函数函数原型函数原型: void srand(unsigned int seed);作作 用用: 返回返回0-seed之间的随机数之间的随机数 (1)种子随机函数种子随机函数srand函数函数常常使用系统时间作为参数来产生首个常常使用系统时间作为参数来产生首个种子数,此时需包含头文件种子数,此时需包含头文件time.h例:例:sra

22、nd (time(NULL)也可以用常量也可以用常量例:例:srand (997) (2)rand函数函数函数原型函数原型: int rand(void);作作 用用: 返回返回0-32767之间的随机整数之间的随机整数产生不同的随机数只需使用一次产生不同的随机数只需使用一次srand函数。函数。若不调用若不调用srand函数,函数,rand函数的种子函数的种子初始值为初始值为1,每次产生的随机数序列将,每次产生的随机数序列将是不变的。是不变的。 (3)生成指定范围的随机数(生成指定范围的随机数(min-max)方法方法: rand( )%(max+1)-min)+minmin和和max为指定范围的最小值和最大值。为指定范围的最小值和最大值。如如:产生产生20-30之间的任意随机数之间的任意随机数 rand( )%(30+1)-20)+20 rand( )%11+20 例:产生例:产生20-30之间的任意随机数之间的任意随机数#include #include #include main( ) srand(time(NULL) );printf(“%d”,rand( )%11+20); The End

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号