第1章 C語言和計算機 1 3 C語言程式

2021-06-21 01:35:24 字數 2426 閱讀 8147

問題:

1)功能相同的程式和函式,它們的作用相同嗎?

2)怎樣使用程式?怎樣使用函式?

3)程式和函式有何相同和不同之處?

4)怎樣理解「程式是由函式組成的,但執行程式就是執行main函式的函式體」?

5)由多個函式組成的程式執行時,每個函式都會執行嗎?

簡單地說,c語言程式設計在形式上就是把與問題解決步驟相對應的c語言語句放置到乙個main函式中。c語言程式執行時,計算機只執行程式中main函式的函式體,執行完畢程式也就執行結束了。main函式是c語言程式的標誌,它可以沒有輸入和返回值,即首部可定義為void main(

)。其中void為關鍵字,表示函式沒有返回值,圓括號中沒有形參表示函式不需要輸入值。下面的程式用於求使用者輸入的兩個整數的和。

void main()

從形式上分析,定義程式就是定義main函式。在main函式中使用了輸入輸出函式命令控制計算機的輸入輸出裝置。c語言規定,函式必須先定義再使用,因此,完整的程式應該是下面的樣子。

? printf(…)

? scanf(…)

void main()

printf函式和scanf函式是庫函式,在c語言中有定義,可簡單認為它們在stdio.h檔案中定義,所以程式設計時只需找到stdio.h檔案,把檔案內容拷貝到此處就可以了。c語言中include命令能幫助程式設計師完成這些操作,故程式可寫作:

#include

void main()

include命令前面需要個#號,與庫函式有關的檔案可放置在尖括號中。#include 沒有分號,表明它不是c語言語句。它的作用是找到stdio.h檔案,用檔案的內容替換掉它本身。

程式中使用了變數a、變數b和變數c,與函式一樣,變數也必須先定義再使用。因此,完整的程式為:

#include

void main()

程式中先利用語句int a, b, c;讓計算機為變數a、b和c分配整型儲存單元,然後用自定義函式命令printf讓計算機在顯示器上程式執行視窗中顯示「請輸入兩個整數:」的提示;接著,當scanf函式執行時,計算機會暫停程式的執行,等待使用者輸入兩個整數,此時程式的執行視窗如下圖所示。

當使用者輸入兩個整數後,程式的執行視窗如下圖所示。

當使用者按下回車鍵表示輸入完成後,scanf函式會指揮計算機把使用者輸入的整數23和32分別存入變數a和變數b標識的整型儲存單元中,即在程式中變數a的值已經是23,變數b的值已經是32了。

計算機會依次執行下面的語句。c=a+b;使它求出變數a與變數b的和,並把和存入變數c中,變數c的值變成了55。printf("和為%d", c);讓計算機在顯示器上程式執行視窗中顯示「和為55」,程式的執行視窗如下圖所示。

最後,程式執行到界定main函式的函式體的花括號}處停止,程式執行完畢。

這個程式的功能是求使用者輸入的兩個整數的和。程式需要使用者輸入兩個整數,它把計算結果反饋給使用者。在1.2中定義的函式命令f的功能也是求兩個整數的和,函式需要使用者輸入兩個整數,它也把計算結果反饋給使用者。程式和函式的用法不同。程式的使用者通常為人,雙擊程式可以執行程式,程式需要輸入資料時會暫停執行等待使用者輸入,人通過鍵盤輸入資料,程式則借助scanf函式獲得使用者的輸入。程式的結果則借助printf函式以顯示在程式執行視窗中的方式反饋給使用者。函式的使用者實際上是程式設計師,函式的使用方式為函式呼叫,使用函式時需準備好函式的輸入,要把函式的輸入放置在函式名後的一對圓括號中,如f(a,b),函式執行時會把輸入自動賦值給形參;函式的輸出通常表現為乙個數,即f(a,b)最終會被乙個整數(變數a與變數b的和)代替。

下面的程式中先定義乙個求兩個整數的和的函式命令,然後利用該自定義命令求出了使用者輸入的兩個整數的和。

#include

int sum(int x, int y)

void main()

分析這個程式的執行過程。

庫函式abs的首部為int abs(int x),在math.h中定義,其功能是求整型形參x的絕對值,利用該函式求使用者輸入的整數的絕對值的程式如下。

#include

#include

void main()

在程式中#include 引入了庫函式printf和scanf,#include 引入了庫函式abs。

重點:1)程式的使用者通常為人,其需要的資料多由鍵盤輸入,其處理結果多通過顯示器反饋。普通函式本質上是c語言中的自定義命令,用於指揮計算機完成特定的工作,它的使用者實際上為程式設計師,其需要的資料在使用時直接給出,其處理結果多表現為乙個特定的數值,比如printf("%d的絕對值是%d",-3, abs(-3))的執行結果為顯示器上輸出「-3的絕對值是3」,函式呼叫abs(-3)的最終結果就是整數3。

2)程式設計本質上就是設計步驟並用相應的語句序列讓計算機完成某種功能。程式設計時善於使用庫函式不僅可以提高程式設計效率,而且可以完成一些「不可能」完成的任務。用計算機能夠直接理解執行的命令讓計算機獲得使用者的輸入並賦值給相關變數,對c語言初學者來說就是乙個不可能完成的任務,但借助庫函式scanf,程式設計師可以輕鬆地控制計算機的輸入裝置。

13 C語言總結

pragma mark 第一章 c基礎 void func1 void func1 pragma mark 第二章 分支結構 void func2 void func2 printf autumn d autumn 結果 需要注意的是,列舉變數的值是上乙個值 1 autumn 5 pragma ma...

13 C語言和設計模式(享元模式)

享元模式看上去有點玄乎,但是其實也沒有那麼複雜。我們還是用示例說話。比如說,大家在使用電腦的使用應該少不了使用word軟體。使用word呢,那就少不了設定模板。什麼模板呢,比如說標題的模板,正文的模板等等。這些模板呢,又包括很多的內容。哪些方面呢,比如說字型 標號 字距 行距 大小等等。cpp vi...

13 C語言提高(三)

1.結構體中指標變數的深拷貝和淺拷貝 疑問點記錄 char p char malloc 100 strcpy p,renzhenming 這兩行 定義了乙個字元指標p,他指向堆記憶體中一段空間,這一段空間儲存了乙個字串renzhenming,那麼既然這個指標指向了這塊記憶體,那麼我通過取指標元素符號...