华南俳烁实业有限公司

考試首頁 | 考試用書 | 培訓(xùn)課程 | 模擬考場 | 考試論壇  
全國  |             |          |          |          |          |         
  當(dāng)前位置:計(jì)算機(jī)等級 > 二級考試 > C語言程序設(shè)計(jì) > C語言輔導(dǎo) > 文章內(nèi)容
  

計(jì)算機(jī)二級C語言考點(diǎn)解析:條件語句

中華IT學(xué)院   【 】  [ 2017年9月5日 ]

  一個(gè)表達(dá)式的返回值都可以用來判斷真假,除非沒有任何返回值的void型和返回?zé)o法判斷真假的結(jié)構(gòu)。當(dāng)表達(dá)式的值不等于0時(shí),它就是“真”,否則就是假。一樣個(gè)表達(dá)式可以包含其他表達(dá)式和運(yùn)算符,并且基于整個(gè)表達(dá)式的運(yùn)算結(jié)果可以得到一個(gè)真/假的條件值。因此,當(dāng)一個(gè)表達(dá)式在程序中被用于檢驗(yàn)其真/假的值時(shí),就稱為一個(gè)條件。

  一、if語句

  if(表達(dá)式) 語句1;

  如果表達(dá)式的值為非0,則執(zhí)行語句1,否則跳過語句繼續(xù)執(zhí)行下面的語句。

  如果語句1有多于一條語句要執(zhí)行時(shí), 必須使用{和} 把這些語句包括在其中, 此時(shí)條件語句形式為:

  if(表達(dá)式)

  {

  語句體1;

  }

  例如:

  if(x>=0) y=x;

  if(a||b&&c)

  {

  z=a+b;

  c+=z;

  }

  二、if--else語句

  除了可以指定在條件為真時(shí)執(zhí)行某些語句外,還可以在條件為假時(shí)執(zhí)行另外一段代碼。在C語句中利用else語句來達(dá)到這個(gè)木的。

  if(表達(dá)式) 語句1;

  else 語句2;

  同樣,當(dāng)語句1或語句2是多于一個(gè)語句時(shí),需要用{}把語句括起來。

  例如:

  if(x>=0) y=x;

  else y=-x;

  三、if--else if--else結(jié)構(gòu)。

  if(表達(dá)式1)

  語句1;

  else if(表達(dá)式2)

  語句2;

  else if(表達(dá)式3)

  語句3;

  .

  .

  .

  else

  語句n;

  這種結(jié)構(gòu)是從上到下逐個(gè)對條件進(jìn)行判斷,一旦發(fā)現(xiàn)條件滿點(diǎn)足就執(zhí)行與它有關(guān)的語句, 并跳過其它剩余階梯;若沒有一個(gè)條件滿足,則執(zhí)行最后一個(gè)else 語句n。最后這個(gè)else常起著缺省條件的作用。同樣,如果每一個(gè)條件中有多于一條語句要執(zhí)行時(shí),必須使用{和}把這些語句包括在其中。

  條件語句可以嵌套,這種情況經(jīng)常碰到,但條件嵌套語句容易出錯(cuò),其原因主要是不知道哪個(gè)if對應(yīng)哪個(gè)else。

  例如:

  if(x>20||x<-10)

  if(y<=100&&y>x)

  printf(Good);

  else

  printf(Bad);

  對于上述情況, Turbo C2.0規(guī)定: else語句與最近的一個(gè)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);

  下面舉幾個(gè)例子:

  1.輸入一個(gè)數(shù),如果大于0,輸出plus;如果是負(fù)數(shù),輸出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);

  }

  先定義兩個(gè)變量,然后輸入一個(gè)數(shù),然后判斷這個(gè)數(shù)的范圍,輸出對應(yīng)的字符串。

  2.輸入一個(gè)數(shù)x,輸出y。其中y是x的絕對值。

  main()

  {

  float x,y;

  scanf(%f,&x);

  if(x>=0) y=x;

  else y=-x;

  printf(%f\n,y);

  }

  程序比較簡單,這兒就不分析了。

  其實(shí)Trubo C 2.0把一些常用的功能都寫好了,我們只需要使用就可。例如求絕對值的功能在C的庫里面就有?聪旅娴模

  #include math.h

  main()

  {

  float x,y;

  scanf(%f,&x);

  y=fabs(x); /*求x的絕對值,然后賦值給y*/

  printf(%f\n,y);

  }

  這個(gè)程序和上面的程序完成的功能是一模一樣的,都是求絕對值。可以看出,用下面這個(gè)方法比上面就要好一些。由于fabs()是一個(gè)函數(shù),系統(tǒng)自帶的,所以在使用它的時(shí)候,我們必須把它所在的庫文件math.h包含都程序中,即程序最前面一行。類似的還有求開方sqrt(),求指數(shù)冪exp()等等,這些與數(shù)學(xué)方面有關(guān)的函數(shù)都在math.h里面。具體哪些有哪些沒有,在什么庫里面,可以查看一些手冊。

  3.輸入x,輸出y,x和y滿足關(guān)系:

  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);

  }

  這里要說明兩點(diǎn):

  (1).-5<=x&&x<1不能寫成-5<=x<1;1<=x&&x<4也不能寫成1<=x<4;在C語言中,不能認(rèn)識連續(xù)不等式。

  (2).y=2*x+5不能寫成y=2x+5;y=3*x-2也不能寫成y=3x-2;這與我們平時(shí)所寫的方法不一樣。

  4.輸入三個(gè)數(shù)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);

  }

  }

  說明:這是一個(gè)典型的if語句嵌套結(jié)構(gòu),如果不使用括號,那么if和else的對應(yīng)關(guān)系就亂了。

首頁 1 2 尾頁
分享到:
本文糾錯(cuò)】【告訴好友】【打印此文】【返回頂部
將考試網(wǎng)添加到收藏夾 | 每次上網(wǎng)自動(dòng)訪問考試網(wǎng) | 復(fù)制本頁地址,傳給QQ/MSN上的好友 | 申請鏈接 | 意見留言 TOP
關(guān)于本站  網(wǎng)站聲明  廣告服務(wù)  聯(lián)系方式  站內(nèi)導(dǎo)航  考試論壇
Copyright © 2006-2017 中華考試網(wǎng)(Examw.com) All Rights Reserved  營業(yè)執(zhí)照
宿松县| 雷波县| 雅安市| 浙江省| 富裕县| 朝阳县| 德令哈市| 隆子县| 当涂县| 南召县| 赤城县| 喜德县| 阜平县| 洛宁县| 水富县| 图们市| 元谋县| 当雄县| 永善县| 顺平县| 新化县| 永德县| 贡嘎县| 武胜县| 大新县| 大港区| 抚松县| 和顺县| 遵化市| 峨眉山市| 丰顺县| 古交市| 宾阳县| 广西| 浦县| 苏尼特左旗| 桦甸市| 连平县| 云阳县| 称多县| 满洲里市|