- C語言程序設計習題與實驗指導
- 孟東霞主編
- 1464字
- 2025-04-02 16:22:09
1.2 典型例題分析
1.2.1 例題解析
【例1.1】組成C程序的基本單位是( )。
A. 表達式與語句
B. 若干文件
C. 函數
D. main函數
解:C語言是結構化程序設計語言。C程序由一個或多個文件組成,而一個文件可由一個或多個函數組成。函數是組成C程序的基本單位,函數由語句構成,C程序的執行總是從main函數開始。答案為C。
【例1.2】C程序中能直接讓機器執行的文件是( )。
A. 編輯后的.c源文件
B. 通過編譯的.obj文件
C. 通過連接的.exe文件
D. 正在編輯的源文件存盤為.exe的文件
解:C語言源程序擴展名為.c或.cpp,為文本文件,機器不能直接執行。源程序經過編譯后生成.obj的二進制文件,再由連接程序把.obj文件與C語言提供的各種庫函數連接起來生成一個.exe文件,它是可執行文件,機器可以直接執行。可執行文件是通過編譯和連接生成的,并非是通過改變擴展名而得到的。答案為C。
【例1.3】下面每組3個標識符,可以用作C語言用戶標識符的一組是( )。
A. void word FOR
B. al_b1_1231F
C. Case ?abc xyz
D. case5 Liti 2ab
解:此題測試C語言的標識符規則。C語言的標識符命名規則:可以是單個字母,也可以由字母、數字和下畫線組成,但必須是以字母或下畫線開頭,用戶標識符不能是C語言的關鍵字。選項A中void是C語言的關鍵字不可用,選項C中第二個選項有減號不可用,選項D中第三個選項以數字開頭不可用。答案為B。
【例1.4】下列選項中,不是C語言提供的合法關鍵字的是( )。
A. switch
B. default
C. Case
D. if
解:此題測試C語言的關鍵字。C語言的關鍵字都用小寫英文字母表示。答案為C。
【例1.5】在下面程序中,出現錯誤的個數是( )。
main { int a;b; a=10; b= a+50; print("%d, %d\n", A , B);
A. 2
C. 4
B. 3
D. 5
解:程序中存在5個錯誤:①主函數名后面的括號沒寫;②聲明語句int a;b;中的兩個變量之間應該用逗號隔開;③輸出函數print書寫錯誤,應該改為printf;④輸出變量的值時,把變量a和b寫成了大寫字母A和B,C語言是區分字母大小寫的;⑤函數體沒有右花括號,使函數不完整。答案為D。
1.2.2 常見錯誤
一般情況下,一個程序很少能夠一次性地運行通過。作為一名程序設計初學者,你會發現錯誤總是常常出現,你需要認識到:改正錯誤的過程即是進行調試的過程。
當編譯系統檢測到一個錯誤時,就會顯示一條出錯信息,用來表示程序有錯以及可能的錯誤原因。對于初學者,這些出錯信息有時很難被理解甚至使人誤解。但隨著實踐經驗的積累,大家將慢慢地成為查錯并糾正錯誤的高手。
下面介紹常見的3種類型的錯誤:語法錯誤、運行錯誤和邏輯錯誤。
1. 語法錯誤
語法錯誤是指在編寫程序時,使用了違反C語言語法規則的內容,編譯系統在編譯源程序時,會發現這種類型的錯誤。若程序源代碼含有語法錯誤,就不能被正確地編譯生成可執行文件,程序也就不能運行。常見的錯誤包括:沒有定義變量就直接使用變量,語句后面缺少“;”等。
需要注意的是,在程序編譯時,程序中的一處錯誤可能會導致多條錯誤信息出現。建議的糾錯過程是首先集中修改聲明語句中的錯誤,然后在修改其他錯誤之前,重新編譯程序。在程序編譯過程中,常常會出現這樣的情況:一旦聲明語句修改正確了,其他很多錯誤信息也就會隨之消失。
2. 運行錯誤
運行錯誤是指在程序運行期間發生了超出程序允許程度的故障,使程序無法正常運行。例如當程序執行非法操作“3/0”時,就會發生這種類型的錯誤。出現這類錯誤時,計算機將會停止程序的運行,并顯示診斷信息,標明錯誤所在的行。
3. 邏輯錯誤
邏輯錯誤通常表現為程序可正常運行,但運行結果是錯誤的。一般是當程序的算法出現錯誤時會產生邏輯錯誤。此類錯誤通常不會發生運行阻礙,也不會顯示出錯信息,因此很難檢測。只有通過對程序的全面調試,將程序輸入與計算結果進行比較,才有可能找到邏輯錯誤。
- SOA實踐
- 造個小程序:與微信一起干件正經事兒
- Python面向對象編程:構建游戲和GUI
- Mastering Linux Network Administration
- 微信小程序入門指南
- Getting Started with Greenplum for Big Data Analytics
- Mastering Python Design Patterns
- Nagios Core Administration Cookbook(Second Edition)
- Clojure Web Development Essentials
- 從“1”開始3D編程
- C++17 By Example
- ASP.NET Core and Angular 2
- Java編程動手學
- Instant OpenCV for iOS
- 片上系統設計思想與源代碼分析