c语言程序然设计课件3
内容提要 表达式体现对数据的处理,由运算符和运算对象组成 掌握每种运算符的以下知识: 对运算对象的要求 运算符的结合性 运算符的优先级 运算结果的特性 有多种运算符的复杂表达式的计算顺序及计算结果 数据类型的自动转换规则及强制转换的方法 表达式的组成 表达式实现对数据的处理,每个表达式都有唯一的值 表达式由运算对象和运算符组成 运算对象的种类:常量、变量、有返回值的函数调用、其它表达式 例:2 a rand() (2+a)*rand( ) 运算符:共34种,分为15个不同的优先级 左值与右值 每个表达式都有唯一确定的值,表达式不是左值就是右值 右值:只能出现在赋值号(=)右边的表达式 左值:不是右值的表达式就是左值 左值与右值的关系:右值只能出现在赋值号的右边;而左值既可以出现在赋值号的左边,又可以出现在赋值号的右边。左值可以取地址,右值不可以取地址. 例: 2 a rand() (2+a)*rand( ) a=b 算术运算符 算术运算符主要完成数值计算问题,具体如下表所列 算术运算符 程序3.1 赋值表达式及算术运算符示例 #include #include //包含随机函数rand的声明 int main( ) { int a=5,b=6,c=7; printf(“%d\n”,rand()); //显示随机数 print("%d\n",a*(b+c)/2-2); //显示算术表达式的值 printf("%d\n",a=b); //显示赋值表达式即a的值 b=rand()%10; //混合表达式赋0至9之间的1个随机数 printf(“%d\n”,c=a=b); //显示赋值表达式的值即c的值 return 0; } 关系运算符 关系运算符主要完成表达式间的比较,比较的结果非真即假,C语言中无逻辑类型,故用1表示真,0表示假 任何类型的值,只要不等于0,在需要作出真假判断的场合就代表逻辑真。 关系运算符 程序3.2 关系运算示例 #include #include //包含随机函数rand的声明 int main( ) { int a=rand()%10; //产生3个0~9的随机数 int b=rand()%10; int c=rand()%10,d; printf(“a=%d,b=%d,c=%d\n”,a,b,c); //输出 printf("%d\n",c=(a+b)); return 0; } 逻辑运算符 逻辑运算符主要完成更复杂的条件判断 逻辑表达式的最终结果只有两个:1表示真,0表示假。 任何类型的值,只要不等于0,在需要作出真假判断的场合就代表逻辑真,0代表逻辑假 逻辑运算符 逻辑与、逻辑或运算符具有短路功能——当第一运算对象的结果就是表达式结果时,第二运算对象不作计算 逻辑运算符的真值表及短路说明如下表所示: 逻辑运算符 逻辑运算符 程序3.3 逻辑运算示例 #include #include //包含随机函数rand的声明 int main( ) { int a=1+rand()%50, b=1+rand()%50; int x=rand()/a, y=rand()/b; printf("%d,%d,%d\n",a,b,a