预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共34页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

会计学5.1关系表达式5.2逻辑表达式:按照运算符的优先顺序可以得出: a>b&&c>d等价于 (a>b)&&(c>d) !b==c||d<a等价于 ((!b)==c)||(d<a) a+b>c&&x+y<b等价于 ((a+b)>c)&&((x+y)<b)例:设x=0,y=2,a=8,k=-1,q=1,z=1,则 1、x+y>3&&a==8 →2>3&&1→0&&1→0 2、x+y&&’a’ →2&&97→1 3、x+(y=3)==k*z||!a →0+3==-1||!a→0||0→0 4、(x!=7)||’a’ →0!=7||97→1||97→1 5、!(x+y>3&&a==8) →!(2>3&&1)→!(0&&1)→!0→1 6、!(k*q)→!(-1)→0 7、!!!x→!!(1)→!(0)→1 5.3逻辑表达式的跳跃 1、执行inta,b,c; a=b=c=0; ++a||++b&&++c; 后a、b、c值分别为1、0、0 2、执行inta=5,b=6,x=1,y=2; (a=x>y)&&(b=x>y); 后a、b值分别为0、6 例1:5.4选择结构(if语句)例4:从键盘输入一个字符,判断它是否小写字母。若是,将其转换成大写字母,否则不进行转换,作后输出该字母。 #include<stdio.h> main() { charc,a; c=getchar(); if(c<=‘a’||c>=‘z’) a=c;/*判断非小写字母情况*/ if(c<=‘z’&&c>=‘a’) a=c-32;*判断是否是小写字母情况*/ printf("%c\n",a); }4、在使用if语句中应注意以下问题: 1)在三种形式的if语句中,在if之后均为表达式。该表达式通常是逻辑表达式或关系表达式,但也可以是其它表达式,如赋值表达式等,甚至也可以是一个变量。 例如:if(a=5)语句; if(b)语句; 都是允许的。只要表达式的值为非0,即为“真”。 如在:if(a=5)…; 中表达式的值永远为非0,所以其后的语句总是要执行的,当然这种情况在程序中不一定会出现,但在语法上是合法的。 2)在if语句中,条件判断表达式必须用括号括起来,在语句之后必须加分号。 3)在if语句的三种形式中,所有的语句应为单个语句,如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用{}括起来组成一个复合语句。但要注意的是在}之后不能再加分号。 例如: if(a>b) {a++;b++;} else {a=0;b=10;} 5.4.2条件运算符和条件表达式使用条件表达式时,还应注意以下几点: 1)条件运算符的运算优先级低于关系运算符和 算术运算符,但高于赋值符。 因此:max=(a>b)?a:b 可以去掉括号而写为max=a>b?a:b 2)条件运算符?和:是一对运算符,不能分开 单独使用。 3)条件运算符的结合方向是自右至左。 例如:a>b?a:c>d?c:d 应理解为a>b?a:(c>d?c:d) 这也就是条件表达式嵌套的情形,即其中的表达式3又是一个条件表达式。例6:计算例8:P1055.5计算方法二:方法三:若上面分段函数改为 则程序改为 voidmain() {floatx,y; scanf(”%f”,&x); if(x<=-2||x>20) printf(”输入的数据是错误的”); elseif(-2<x&&x<1)y=x; elseif(1<=x&&x<10)y=2*x-1; elsey=3*x-11; printf(”y=%f\n”,y); } 程序应改为 voidmain() {floatx,y; scanf(”%f”,&x); if(x<=-2||x>20) printf(”输入的数据是错误的”); else if(-2<x&&x<1) {y=x;printf(”y=%f\n”,y);} else if(1<=x&&x<10) {y=2*x-1;printf(”y=%f\n”,y);} else{y=3*x-11;printf(”y=%f\n”,y);}}