第4章 第1课

本课主题: 关系表达式、逻辑表达式

教学目的: 掌握关系表达式、逻辑表达式的使用

教学重点: 关系运算符、逻辑运算符及其优先关系

教学难点: 关系表达式、逻辑表达式在程序中的运用

授课内容:

一、关系运算符与关系表达式

(1) C语言中的关系运算符:

大于    >
大于等于  >=
小于    <
小于等于  <=
等于    ==
不等于   !=

(2) 关系运算符的优先级:

1) >、>=、<、<=优先级相等,==、!=优先级相等,前者高于后者。
2) 关系运算符的优先级低于算术运算符。
3) 关系运算符的优先级高于赋值运算符。

(3) 关系表达式:

  用关系运算符连接若干个算术表达式,叫关系表达式;算术表达式也是关系表达式。

(4) 关系表达式的值:

  每个关系表达式有一个值,这个值可以是“真”或“假”,C语言中用“0”表示“假”,用非零表示“真”,(非零是许多数,当机器自动产生这个数时,他会产生 1)。
例:1<5 的值为真;5<1 的值为假;a=1, b=5 时 a==b 的值为假。

二、逻辑运算符与逻辑表达式

(1) 逻辑运算符

  AND 逻辑乘  &&
  OR 逻辑加  ||
  NOT 逻辑非  !

(2) 逻辑运算符优先级

1) ! 高于 && 高于 ||
2) &&,|| 低于关系运算符,!高于算术运算符。

(3) 逻辑表达式

  用逻辑运算符连接起来的关系表达式叫逻辑表达式,单独一个关系表达式也是逻辑表达式.

提问:a<b<c 与 a<b && b<c 有何区别?

三、if 语句

(1) if 语句的原型

if (表达式)
  一个语句;
else
  一个语句;

  如果表达式的值为真,执行 if 后面的语句;如果表达式的值为假,执行情况 else 后面的语句。 一个语句指必须有一个语句,而且只能有一个语句。

(2) 简化的 if 语句

if (表达式)
  一个语句;

没有 else 部分.

(3) 复合的 if 语句

  如果在一个语句处,要写多个语句,就要加上{}。

if (表达式)
  {
  语句;...
  语句;
}
else
{
  语句;...
  语句;
}

(4) 嵌套的 if 语句

就是 if 语句套 if 语句

if (表达式)
  if (表达式)
    语句
else
  语句

  因为 if 可以简化,所有在嵌套时有时会出现歧义,例如上例中,else 是与第一个 if 配对,还是与第二个 if 配对?这种时候,系统就武断地认为 else 与最近的一个 if 相对应。

例:ax2+bx+c=0 求根 (a!=0)  

main()
{
float a,b,c;
float x1,x2,s;
  printf("Please Input a,b,c:\n");
  scanf("%f,%f,%f",&a,&b,&c);
  s = b*b-4*a*c;
  if (s<0)
      printf("No Real Root");
  else if (s==0)
  {
      x1 = -b/(2*a);
      printf("x1=x2=%f",x1);
  }
  else
  {
      x1 = (-b+sqrt(s))/(2*a);
      x2 = (-b-sqrt(s))/(2*a);
      printf("x1=%f,x2=%f",x1,x2);
  }
}

四、switch 语句的一般格式

switch 语句也叫多分支语句。

switch (表达式)
{
  case 常量表达式1:
    语句11; ... 语句1n;
  case 常量表达式2:
    语句21; ... 语句2n;
  ...
  case 常量表达式3:
    语句31; ... 语句3n;
  default:
    语句k1; ... 语句kn;
}

  当表达式的值等于“常量表达式1”时,执行语句11; ... 语句1n;21; ... 语句2n;31; ... 语句3n;语句k1; ... 语句kn;当表达式的值等于“常量表达式2”时,执行语句21; ... 语句2n;31; ... 语句3n;语句k1; ... 语句kn;当表达式的值等于“常量表达式3”时,执行语句31; ... 语句3n;语句k1; ... 语句kn;当表达式的值等于default,执行语句k1; ... 语句kn;

为了执行完语句11; ... 语句1n;不再向下执行,要在语句1n后加break;

switch (表达式)
{
  case 常量表达式1:
    语句11; ... 语句1n;break;
  case 常量表达式2:
    语句21; ... 语句2n;break;
  ...
  case 常量表达式3:
    语句31; ... 语句3n;break;
  default:
    语句k1; ... 语句kn;
}

五、示例:

六、练习:

  根据一个人的出生年份,输出他的属相。

标签: C程序设计, C语言, 表达式

评论已关闭