招生考试网
学历| 高考 美术高考 考研 自考 成考 专升本 中考 会考 外语| 四六级 职称英语 商务英语 公共英语 日语能力 翻译资格 JTEST
资格| 公务员 报关员 银行从业 司法 导游 教师资格 报关 财会| 会计证 经济师 会计职称 注册会计 税务师 资产评估 审计师
工程| 一建 二建 造价师 造价员 咨询师 监理师 安全师 医学| 卫生资格 执业医师 执业药师 执业护士 | 教案 论文 文档
IT类| 计算机等级 计算机软考 职称计算机 高校计算机 推荐-国家公务员 事业单位招聘 军校国防生 自主招生 艺术特长生 招飞
 3773考试网 - 计算机等级考试 - 考试辅导 - 计算机二级 - 正文

2014计算机二级C语言入门知识点:条件语句

来源:2exam.com 2014-6-17 16:22:03

 条件语句

  一个表达式的返回值都可以用来判断真假,除非没有任何返回值的void型和返回无法判断真假的结构。当表达式的值不等于0时,它就是“真”,否则就是假。一样个表达式可以包含其他表达式和运算符,并且基于整个表达式的运算结果可以得到一个真/假的条件值。因此,当一个表达式在程序中被用于检验其真/假的值时,就称为一个条件。
  一、if语句
  if(表达式) 语句1;
  如果表达式的值为非0,则执行语句1,否则跳过语句继续执行下面的语句。
  如果语句1有多于一条语句要执行时, 必须使用{和} 把这些语句包括在其中, 此时条件语句形式为: 
  if(表达式)
  {
  语句体1;
  }
  例如:
  if(x>=0) y=x;
  if(a||b&&c) 
  {
  z=a+b;
  c+=z;
  }
  二、if--else语句
  除了可以指定在条件为真时执行某些语句外,还可以在条件为假时执行另外一段代码。在C语句中利用else语句来达到这个木的。
  if(表达式) 语句1;
  else 语句2;
  同样,当语句1或语句2是多于一个语句时,需要用{}把语句括起来。
  例如:
  if(x>=0) y=x;
  else y=-x;
  三、if--else if--else结构。
  if(表达式1) 
  语句1; 
  else if(表达式2) 
  语句2; 
  else if(表达式3) 
  语句3; 
  . 
  . 
  . 
  else 
  语句n; 
  这种结构是从上到下逐个对条件进行判断,一旦发现条件满点足就执行与它有关的语句, 并跳过其它剩余阶梯;若没有一个条件满足,则执行最后一个else 语句n。最后这个else常起着缺省条件的作用。同样,如果每一个条件中有多于一条语句要执行时,必须使用{和}把这些语句包括在其中。
  条件语句可以嵌套,这种情况经常碰到,但条件嵌套语句容易出错,其原因主要是不知道哪个if对应哪个else。
  例如: 
  if(x>20||x<-10) 
  if(y<=100&&y>x) 
  printf(Good); 
  else 
  printf(Bad); 
  对于上述情况, Turbo C2.0规定: else语句与最近的一个if语句匹配, 上例中的else与if(y<=100&&y>x)相匹配。为了使else与if(x>20||x<-10)相匹配, 必须用花括号。如下所示: 
  if(x>20||x<-10)
  { 
  if(y<=100&&y>x) 
  printf(Good); 
  } 
  else 
  printf(Bad); 
  下面举几个例子:
  1.输入一个数,如果大于0,输出plus;如果是负数,输出negative;如果正好是0,则输出zero。
  main()
  {
  float num;
  scanf(%f,&f);
  if(num>0)
  printf(plus\n);
  else if(num<0)
  printf(negative\n);
  else
  printf(zero\n); 
  }
  先定义两个变量,然后输入一个数,然后判断这个数的范围,输出对应的字符串。
  2.输入一个数x,输出y。其中y是x的绝对值。
  main()
  {
  float x,y;
  scanf(%f,&x);
  if(x>=0) y=x;
  else y=-x;
  printf(%f\n,y);
  }
  程序比较简单,这儿就不分析了。
  其实Trubo C 2.0把一些常用的功能都写好了,我们只需要使用就可。例如求绝对值的功能在C的库里面就有。看下面的:
  #include math.h
  main()
  {
  float x,y;
  scanf(%f,&x);
  y=fabs(x); /*求x的绝对值,然后赋值给y*/
  printf(%f\n,y);
  }
  这个程序和上面的程序完成的功能是一模一样的,都是求绝对值。可以看出,用下面这个方法比上面就要好一些。由于fabs()是一个函数,系统自带的,所以在使用它的时候,我们必须把它所在的库文件math.h包含都程序中,即程序最前面一行。类似的还有求开方sqrt(),求指数幂exp()等等,这些与数学方面有关的函数都在math.h里面。具体哪些有哪些没有,在什么库里面,可以查看一些手册。
  3.输入x,输出y,x和y满足关系:
  x<-5 y=x;
  -5<=x<1 y=2*x+5;
  1<=x<4 y=x+6;
  x>=4 y=3*x-2;
  程序如下:
  main()
  {
  float x,y;
  scanf(%f,&x);
  if(x<-5)
  y=x;
  else if(-5<=x&&x<1)
  y=2*x+5;
  else if(1<=x&&x<4)
  y=x+6;
  else
  y=3*x-2;
  printf(%f\n,y);
  }
  这里要说明两点:
  (1).-5<=x&&x<1不能写成-5<=x<1;1<=x&&x<4也不能写成1<=x<4;在C语言中,不能认识连续不等式。
  (2).y=2*x+5不能写成y=2x+5;y=3*x-2也不能写成y=3x-2;这与我们平时所写的方法不一样。
  4.输入三个数x,y,z,然后按从大到小输出。
  main()
  {
  float x,y,z;
  scanf(%f%f%f,&x,&y,&z);
  if(x>=y&&x>=z)
  {
  printf(%f\t,x);
  if(y>=z) printf(%f\t%f\n,y,z);
  else printf(%f\t%f\n,z,y);
  }
  else if(y>=x&&y>=z)
  {
  printf(%f\t,y);
  if(x>=z) printf(%f\t%f\n,x,z);
  else printf(%f\t%f\n,z,x);
  }
  else
  {
  printf(%f\t,z);
  if(x>=y) printf(%f\t%f\n,x,y);
  else printf(%f\t%f\n,y,x);
  }
  }
  说明:这是一个典型的if语句嵌套结构,如果不使用括号,那么if和else的对应关系就乱了。


  • 上一个文章:
  • 网站版权与免责声明
    ①由于各方面情况的不断调整与变化,本网所提供的相关信息请以权威部门公布的正式信息为准.
    ②本网转载的文/图等稿件出于非商业性目的,如转载稿涉及版权及个人隐私等问题,请在两周内邮件fjksw@163.com联系.
    最新文章


    | 关于我们 | 联系我们 | 版权申明 | 网站导航 |
    琼ICP备12003406号