- C語言程序設計同步訓練與上機指導(第三版)
- 時景榮 李立春
- 3011字
- 2020-06-18 18:07:27
第一部分 C語言程序設計同步訓練
第1章 程序設計概述
1.1 要點難點闡述
1.程序設計的過程
(1)任務分析
任務分析即弄清楚任務中數據與數據之間的邏輯關系、具體的操作要求(如需要輸入哪些數據,要對數據進行哪些處理,要求輸出哪些數據等),也就是弄清楚要計算機“做什么”。
(2)算法設計
算法設計是設計解決問題的方法和步驟,對問題處理過程進行細化,即明確要計算機“怎么做”。
(3)程序編制
首先編碼,即選擇一種程序設計語言,根據算法寫出源程序;然后編輯,即將編寫好的源程序通過編輯器輸入到計算機內,并以純文本文件的形式保存。
(4)調試運行
計算機不能直接執行源程序,需通過編譯和連接生成計算機能夠執行的可執行文件。調試運行過程如下:
①編譯:將源程序翻譯成目標程序,翻譯時編譯器對源程序進行語法檢查,給出編譯信息。若有語法錯誤,通過編輯器修改,再編譯直到編譯成功,生成目標程序。
②連接:將目標程序和程序中所需的目標程序模塊(如調用的標準函數、執行的輸入/輸出模塊等)連接后生成可執行文件。
③運行并分析結果:如需輸入數據,應設計能涵蓋各種情況的測試數據,然后運行程序,檢查結果是否符合問題要求,是否正確。即使程序能正常運行并得到了運行結果,也有可能存在邏輯錯誤,而計算機是無法檢查出這些錯誤的。若存在邏輯錯誤,如果是算法有錯,則應先修改算法,再修改程序;如果算法正確而程序寫得不對,則直接修改程序。
(5)編寫程序文檔
程序文檔就是程序的使用說明書和技術說明書,它記錄了程序設計的全過程。程序文檔對于開發、維護時間較長的軟件來說至關重要,尤其是對軟件進行二次開發時更離不開程序文檔。
2.數據結構與算法
(1)數據結構
數據結構包括三個方面的內容:
①數據的邏輯結構:描述數據與數據之間的邏輯關系。
②數據的存儲結構:描述數據和數據之間的關系在計算機中存儲的方式。
③數據的運算集合:對數據進行的所有操作(如輸入、查找、更新、排序、輸出等)。
確定了數據的邏輯結構,就明確了數據運算的集合。確定了如何存儲數據,就可以設計算法了。
(2)算法
算法是為解決一個問題而采取的方法和步驟。算法定義了一個操作序列,描述怎樣從給定的數據經過有限步驟的處理后產生所求的輸出結果。算法一般包括3個部分:
①初始化(包括輸入原始數據和為數據處理所做的準備)。
②數據處理(實現具體的功能)。
③輸出處理結果。
描述算法有多種方法,常用的有流程圖和N-S圖。
3.結構化程序設計方法
結構化程序設計也稱面向過程的程序設計,如C語言就是結構化的程序設計語言。
結構化程序設計方法的基本思想是把一個復雜的問題分解成若干個功能獨立的模塊,分而治之。具體地說就是:
①在軟件設計和實現的過程中,采用自頂向下、逐步細化的模塊化設計原則。
②在代碼編寫時,每一個模塊內可以采用3種基本結構。
上述3種基本結構即順序結構、選擇結構和循環結構。
①順序結構:按順序依次執行。
②選擇結構(又稱分支結構):根據條件判斷,選擇某分支執行。
③循環結構:只要循環條件成立,就重復執行一組語句(這組語句通常稱為循環體)。循環結構分為兩種類型。
·當型循環(先判斷):當循環條件為真時重復執行循環體,為假時循環結束。
·直到型循環(后判斷):重復執行循環體,直到循環條件為假時,循環結束。
4.C語言概述
(1)C語言程序的結構
①C語言程序是由函數組成的,函數是C語言程序的基本單位。C語言中有3種函數:main()函數、系統提供的庫函數、用戶自定義的函數。
②一個函數由兩部分組成:
·函數首部:包括函數類型、函數名、函數形式參數及類型說明等。
·函數體:即函數首部下面最外層大括號內的部分。函數體又可以分為聲明部分和執行部分。
③一個C語言的源程序有且只有一個main()函數,有若干個(包括零個)其他函數。
④main()函數的位置沒有限制,可以位于程序的任何地方,但是C程序總是從main()函數開始執行,并且結束于main()函數。
⑤C語言程序書寫格式自由。一行可以寫多個語句,一個語句也可以寫在多行上。用分號“;”標識語句結束。
⑥C語言源程序中可以在任何可以插入空格的地方插入注釋,格式為:
/*注釋內容*/
注釋內容可以是中文或英文,也可以是任何可顯示的符號。
⑦C語言中沒有輸入和輸出語句。C語言程序中的輸入和輸出操作是通過調用庫函數scanf()、printf()和其他輸入/輸出函數來完成的。
(2)C語言的標識符
標識符是一個作為名字的字符序列,用來標識變量名、類型名、數組名、函數名和文件名等。C語言的標識符可分為用戶標識符、保留字和預定義標識符3類。
①用戶標識符:就是程序設計者根據編程需要自己定義的名字,用來作為變量名、符號常量名、數組名、函數名、類型名和文件名等。
標識符命名規則:可以是單個字母;也可以由字母、數字和下畫線組成,但必須以字母或下畫線開頭。
注意:在C語言中,大小寫字母是不同的字符。例如,SUM、Sum、sum是3個不同的標識符。
②保留字(又稱關鍵字):C語言專門用來描述類型和語句的標識符,共有32個。
注意:在C語言中,每個保留字都用小寫英文字母表示,在C語言中各自代表固定的含義,不允許作為用戶標識符使用。
③預定義標識符:除了上述保留字外,還有一類具有特殊意義的標識符,它們被用作編譯預處理命令或庫函數的名字,如define、include、scanf、printf等。這類標識符稱為預定義標識符。最好不要用它們作為用戶標識符。
1.2 例題分析
【例1.1】 下列選項中不是結構化程序基本結構的是。
A.順序結構 B.跳轉分支結構 C.選擇結構 D.循環結構
解題知識點:結構化程序設計方法。
解:答案為B。本題的解題要點是:結構化程序設計方法中的三種基本結構。
【例1.2】 下面每組3個標識符,可以用做C語言用戶標識符的一組是。
A.void word FOR B.a1_b1_123IF
C.Case -abc xyz D.case5Liti2ab
解題知識點:C語言的標識符。
解:答案為B。本題的解題要點是:C語言的標識符命名規則,即可以是單個字母,也可以由字母、數字和下畫線組成,但必須是以字母或下畫線開頭,用戶標識符不能是C語言的關鍵字。選項A中void是C語言的關鍵字不可以,選項C中第二個有減號不可以,選項D中第三個以數字開頭不可以。
【例1.3】 下列選項中,不是C語言提供的合法關鍵字的是。
A.switch B.default C.Case D.if
解題知識點:C語言的關鍵字。
解:答案為C。本題的解題要點是:C語言的關鍵字都用小寫英文字母表示。
1.3 同步練習
一、選擇題
1.編輯程序就是_____。
A.調試程序 B.建立并修改源程序文件
C.將源程序變成目標程序 D.命令計算機執行程序
2.C語言程序的基本單位是_____。
A.函數 B.語句 C.字符 D.程序行
3.在一個源程序中,main()函數的位置_____。
A.必須在最前面 B.可以在程序的任何位置
C.必須在最后面 D.必須在系統提供的庫函數調用之后
4.系統默認的C語言源程序的擴展名是_____。
A..exe B..c C..obj D..doc
5.C語言用標志語句結束_____。
A.逗號 B.分號 C.句號 D.冒號
6.下面可以用作C語言用戶標識符的一組標識符是_____。
A.void word FOR B.a1_b1_123 IF
C.Case-abc xyz D.case5 liti2ab
7.下面的標識符中,不合法的用戶標識符為_____。
A.Pad B._intC. C.AR D.a#b
8.下面的標識符中,合法的用戶標識符為_____。
A.day1 B.long C.3AB D.a+b
二、填空題
1.軟件包括程序和_____。
2.程序的錯誤一般分為兩種:(1)和(2),前者編譯器可以發現,后者編譯器無法發現。
3.C語言程序是由函數構成的,其中_____main()函數。
4.C語言程序的執行總是由_____函數開始,并且在_____函數中結束。
5.C語言程序的注釋可以出現在程序中_____。
6.計算機不能直接執行C語言的源程序,必須經過(1)和(2),形成可執行文件。
1.4 參考答案
一、選擇題
1.B 2.A 3.B 4.B 5.B 6.B 7.D 8.A
二、填空題
1.程序文檔 2.(1)語法錯誤 (2)邏輯錯誤 3.有且只有一個
4.main(),main() 5.任何空格可以出現的位置 6.(1)編譯 (2)連接
- Learning C# by Developing Games with Unity 2020
- Windows系統管理與服務配置
- 編程卓越之道(卷3):軟件工程化
- Python Network Programming Cookbook(Second Edition)
- Reactive Programming With Java 9
- HTML5從入門到精通(第4版)
- Visual Basic程序設計上機實驗教程
- 詳解MATLAB圖形繪制技術
- C陷阱與缺陷
- JQuery風暴:完美用戶體驗
- 超好玩的Scratch 3.5少兒編程
- 面向對象程序設計及C++(第3版)
- 深入理解Kafka:核心設計與實踐原理
- ASP.NET Core and Angular 2
- Android應用開發攻略