亚洲欧洲国产欧美一区精品,激情五月亚洲色五月,最新精品国偷自产在线婷婷,欧美婷婷丁香五月天社区

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

      全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言入門(mén)教程(73)

      中華IT學(xué)院   【 】  [ 2016年2月4日 ]

      函數(shù)的值


      函數(shù)的值是指函數(shù)被調(diào)用之后, 執(zhí)行函數(shù)體中的程序段所取得的并返回給主調(diào)函數(shù)的值。如調(diào)用正弦函數(shù)取得正
      弦值,調(diào)用例 5.1的 max函數(shù)取得的最大數(shù)等。對(duì)函數(shù)的值(或稱(chēng)函數(shù)返回值)有以下一些說(shuō)明:

      1. 函數(shù)的值只能通過(guò)return語(yǔ)句返回主調(diào)函數(shù)。return 語(yǔ)句的一般形式為:
      return 表達(dá)式;
      或者為:
      return (表達(dá)式);
      該語(yǔ)句的功能是計(jì)算表達(dá)式的值,并返回給主調(diào)函數(shù)。 在函數(shù)中允許有多個(gè) return語(yǔ)句,但每次調(diào)用只能有一個(gè)
      return 語(yǔ)句被執(zhí)行, 因此只能返回一個(gè)函數(shù)值。
      2. 函數(shù)值的類(lèi)型和函數(shù)定義中函數(shù)的類(lèi)型應(yīng)保持一致。 如果兩者不一致,則以函數(shù)類(lèi)型為準(zhǔn),自動(dòng)進(jìn)行類(lèi)型轉(zhuǎn)換。
      3. 如函數(shù)值為整型,在函數(shù)定義時(shí)可以省去類(lèi)型說(shuō)明。
      4. 不返回函數(shù)值的函數(shù),可以明確定義為“空類(lèi)型”, 類(lèi)型說(shuō)明符為“void”。如例 5.3中函數(shù) s并不向主函數(shù)返
      函數(shù)值,因此可定義為:
      void s(int n)
      { ……
      }


      一旦函數(shù)被定義為空類(lèi)型后, 就不能在主調(diào)函數(shù)中使用被調(diào)函數(shù)的函數(shù)值了。例如,在定義 s為空類(lèi)型后,在主
      函數(shù)中寫(xiě)下述語(yǔ)句 sum=s(n); 就是錯(cuò)誤的。為了使程序有良好的可讀性并減少出錯(cuò), 凡不要求返回值的函數(shù)都應(yīng)定
      義為空類(lèi)型。函數(shù)說(shuō)明在主調(diào)函數(shù)中調(diào)用某函數(shù)之前應(yīng)對(duì)該被調(diào)函數(shù)進(jìn)行說(shuō)明,這與使用變量之前要先進(jìn)行變量說(shuō)明
      是一樣的。 在主調(diào)函數(shù)中對(duì)被調(diào)函數(shù)作說(shuō)明的目的是使編譯系統(tǒng)知道被調(diào)函數(shù)返回值的類(lèi)型, 以便在主調(diào)函數(shù)中按
      此種類(lèi)型對(duì)返回值作相應(yīng)的處理。 對(duì)被調(diào)函數(shù)的說(shuō)明也有兩種格式,一種為傳統(tǒng)格式,其一般格式為: 類(lèi)型說(shuō)明符 被
      調(diào)函數(shù)名();這種格式只給出函數(shù)返回值的類(lèi)型,被調(diào)函數(shù)名及一個(gè)空括號(hào)。


      這種格式由于在括號(hào)中沒(méi)有任何參數(shù)信息, 因此不便于編譯系統(tǒng)進(jìn)行錯(cuò)誤檢查,易于發(fā)生錯(cuò)誤。另一種為現(xiàn)代格
      式,其一般形式為:
      類(lèi)型說(shuō)明符 被調(diào)函數(shù)名(類(lèi)型 形參,類(lèi)型 形參…);
      或?yàn)椋?
      類(lèi)型說(shuō)明符 被調(diào)函數(shù)名(類(lèi)型,類(lèi)型…);

      現(xiàn)代格式的括號(hào)內(nèi)給出了形參的類(lèi)型和形參名, 或只給出形參類(lèi)型。這便于編譯系統(tǒng)進(jìn)行檢錯(cuò),以防止可能出現(xiàn)
      的錯(cuò)誤。例 5.1 main函數(shù)中對(duì) max函數(shù)的說(shuō)明若
      用傳統(tǒng)格式可寫(xiě)為:
      int max();
      用現(xiàn)代格式可寫(xiě)為:
      int max(int a,int b);
      或?qū)憺?
      int max(int,int);

      C語(yǔ)言中又規(guī)定在以下幾種情況時(shí)可以省去主調(diào)函數(shù)中對(duì)被調(diào)函數(shù)的函數(shù)說(shuō)明。

      1. 如果被調(diào)函數(shù)的返回值是整型或字符型時(shí), 可以不對(duì)被調(diào)函數(shù)作說(shuō)明,而直接調(diào)用。這時(shí)系統(tǒng)將自動(dòng)對(duì)被調(diào)函數(shù)
      返回值按整型處理。例 5.3的主函數(shù)中未對(duì)函數(shù) s作說(shuō)明而直接調(diào)用即屬此種情形。
      2. 當(dāng)被調(diào)函數(shù)的函數(shù)定義出現(xiàn)在主調(diào)函數(shù)之前時(shí), 在主調(diào)函數(shù)中也可以不對(duì)被調(diào)函數(shù)再作說(shuō)明而直接調(diào)用。例如例
      5.1中, 函數(shù) max的定義放在main 函數(shù)之前,因此可在main函數(shù)中省去對(duì) max函數(shù)的函數(shù)說(shuō)明 int max(int a,int
      b)。
      3. 如在所有函數(shù)定義之前, 在函數(shù)外預(yù)先說(shuō)明了各個(gè)函數(shù)的類(lèi)型,則在以后的各主調(diào)函數(shù)中,可不再對(duì)被調(diào)函數(shù)作
      說(shuō)明。例如:
      char str(int a);
      float f(float b);
      main()
      {
      ……
      }
      char str(int a)
      {
      ……
      }
      float f(float b)
      {
      ……
      }


      其中第一,二行對(duì)str函數(shù)和 f函數(shù)預(yù)先作了說(shuō)明。 因此在以后各函數(shù)中無(wú)須對(duì) str和f函數(shù)再作說(shuō)明就可直接調(diào)用。


      4. 對(duì)庫(kù)函數(shù)的調(diào)用不需要再作說(shuō)明, 但必須把該函數(shù)的頭文件用 include命令包含在源文件前部。數(shù)組作為函數(shù)參
      數(shù)數(shù)組可以作為函數(shù)的參數(shù)使用,進(jìn)行數(shù)據(jù)傳送。 數(shù)組用作函數(shù)參數(shù)有兩種形式,一種是把數(shù)組元素(下標(biāo)變量)作為
      實(shí)參使用;另一種是把數(shù)組名作為函數(shù)的形參和實(shí)參使用。一、數(shù)組元素作函數(shù)實(shí)參數(shù)組元素就是下標(biāo)變量,它與普
      通變量并無(wú)區(qū)別。 因此它作為函數(shù)實(shí)參使用與普通變量是完全相同的,在發(fā)生函數(shù)調(diào)用時(shí), 把作為實(shí)參的數(shù)組元素
      的值傳送給形參,實(shí)現(xiàn)單向的值傳送。例5.4說(shuō)明了這種情況。[例5.4]判別一個(gè)整數(shù)數(shù)組中各元素的值,若大于0 則
      輸出該值,若小于等于0則輸出 0值。編程如下:
      void nzp(int v)
      {
      if(v>0)
      printf("%d ",v);
      else
      printf("%d ",0);
      }
      main()
      {
      int a[5],i;
      printf("input 5 numbers\n");
      for(i=0;i<5;i++)



      {

      scanf("%d",&a[i]);

      nzp(a[i]);

      }

      }void nzp(int v)

      { ……

      }

      main()

      {

      int a[5],i;

      printf("input 5 numbers\n");

      for(i=0;i<5;i++)

      { scanf("%d",&a[i]);

      nzp(a[i]);

      }

      }
      本程序中首先定義一個(gè)無(wú)返回值函數(shù)nzp,并說(shuō)明其形參v 為整型變量。在函數(shù)體中根據(jù) v值輸出相應(yīng)的結(jié)果。

      在main函數(shù)中用一個(gè)for 語(yǔ)句輸入數(shù)組各元素,每輸入一個(gè)就以該元素作實(shí)參調(diào)用一次nzp函數(shù),即把a(bǔ)[i]的值傳

      送給形參v,供 nzp函數(shù)使用。

      分享到:
      本文糾錯(cuò)】【告訴好友】【打印此文】【返回頂部
      將考試網(wǎng)添加到收藏夾 | 每次上網(wǎng)自動(dòng)訪問(wèn)考試網(wǎng) | 復(fù)制本頁(yè)地址,傳給QQ/MSN上的好友 | 申請(qǐng)鏈接 | 意見(jiàn)留言 TOP
      關(guān)于本站  網(wǎng)站聲明  廣告服務(wù)  聯(lián)系方式  站內(nèi)導(dǎo)航  考試論壇
      Copyright © 2006-2017 中華考試網(wǎng)(Examw.com) All Rights Reserved  營(yíng)業(yè)執(zhí)照