實驗七——函數定義及調用總結

來源:互聯網
上載者:User

標籤:style   class   大括弧   心得   自己   math   完全   封裝   color   

一、本次課學習到的知識點:

1、函數的定義:函數是一個完成特定工作的獨立程式模組,包括函數和自訂函數兩種。

2、以計算圓柱體體積為例,通過定義體積計算功能的函數和主函數調用的例子,引出函數定義的一般形式:函數首部加函數體,且在函數結尾處通過return 語句返回結果。

函數類型    函數名(形式參數表)   /*函數首部*/

  {

          函數實現過程                    /*函數體*/

   }

return  運算式;

3、函數首部由函數類型,函數名和形式參數表組成,位於函數定義第一行。函數類型指函數結果返回的類型,一般與return語句中運算式的類型一致。形參表中給出Function Compute所要用到的相關已知條件,以類似變數定義的形式給出。形參表中各個形參之間用逗號分隔,每個形參前面的類型必須分別寫明。函數的形參的數量可以是一個,也可以是多個,或者沒有形參。

4、形參、實參及參數傳遞。形參只能用變數表示,在函數中起作用;實參可以是變數、常量或運算式,在主調函數中。實參與形參要個數一致,類型一致。參數傳遞時,實參把變數、常量的值或者運算式結果值傳遞給形參。

5、函數定義首部與聲明。二者形式相似,函式宣告的目的主要是說明函數的類型和參數的情況,以保證程式編譯時間對函數調用是否正確做出判斷,聲明位置通常在主函數前面。而函數定義首部位於函數定義的第一行,與函數體連續書寫組成函數定義。

6、函式宣告是一條c語句,而函數定義時的函數首部不是語句,後面不能跟分號。如果在調用函數前,既不定義,也不聲明,程式編譯時間會出錯。

二、實驗過程中遇到的問題及解決方案:

1、會發現程式編譯正確,結果卻不正確,卻不能發現問題在哪。

2、在練習5-1中,雖然老師講了正確做法,但我不知道自己編寫的哪裡出現了問題。

題目:使用函數求1到n之和:輸入一個正整數n,輸出1~n之和。要求定義和調用函數sum(n)求1~n之和。

#include<stdio.h>#include<math.h>int sum(int n);int main(void){   int n,sum;   printf("請輸入一個正整數n:");   scanf("%d",&n);   printf("sum=%.0f\n");   return 0;    } int sum(int n){    int i,sum;     for(i=1;i<=n;i++)        sum=sum+i;    return n;}

 

三、實驗心得體會及本章學習總結

函數是c語言程式的基本組成單元,編寫每一個程式都需要用到函數,如main()函數和priintf()、scanf()等函數。

本章介紹了函數的定義和使用,討論了變數與函數的關係。

函數首部三要素:函數類型,函數名,形式參數表。

函數的調用:任何c程式執行,首先從主函數main()開始,如果遇到某個函數調用,主函數被暫停執行,轉而執行相應的函數,該函數執行完後將返回主函數,然後再從原先暫停位置繼續執行。

形參和實參必須一一對應,實參的值依次傳給形參。

函式宣告:c語言要求函數先定義後調用。如果自訂函數被放在主調函數的後面,就需要在函數調用前,加上函數原型聲明。

四、預習

1、在例題5-5中,pyramid()函數的功能是在螢幕上輸出數字金字塔,不做任何運算,也沒有運算結果,也不需要傳回值。函數定義時,形參n決定了需要輸出的數字金字塔的層數。

2、區別:前面介紹的函數都是起計算或判斷作用,最終有一個函數結果返回。在例題5-5中,調用函數的作用就是在螢幕上輸出數字金字塔,不是為了得到某個運算結果,而是要讓它產生某些作用。

3、不返回結果的函數定義:

void 函數名(形參表)

{

   函數實現過程

}

函數類型為void,表示不返回結果,函數體中可以使用沒有運算式的return語句,也可以省略return。void類型的函數雖然不直接返回一個值,但它的作用通常以螢幕輸出等方式體現。

在不返回結果的函數定義中,void不能省略,否則,函數類型被預設定義為int。

4、例5-5定義pyramid()函數時,省略了return語句,並不意味著函數不能返回。對於void類型的函數,如果省略了return語句,當函數中所用語句都執行完後,遇到最後的大括弧即自動返回主調函數。

5、不返回結果的函數在定義、調用、參數傳遞、函式宣告上,思路完全與以前相同,只是函數類型變為void。它適用的場合主要是把一些確定的、相對獨立的程式功能封裝成函數。

實驗七——函數定義及調用總結

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.