版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、C C語言程序設(shè)計案語言程序設(shè)計案例教程例教程% 第6章 數(shù)組 第7章 函數(shù) 第8章 結(jié)構(gòu)體、共用體和枚舉類型 第9章 指針 第10章 文件目錄頁目錄頁 Contents page 第1章 初識C語言 第2章 數(shù)據(jù)類型、運算符與表達(dá)式 第3章 順序結(jié)構(gòu)程序設(shè)計 第4章 選擇結(jié)構(gòu) 第5章 循環(huán)結(jié)構(gòu)學(xué)習(xí)目標(biāo)學(xué)習(xí)目標(biāo)案例目標(biāo)u 了解本課程的知識目標(biāo)和能力目標(biāo)u 了解應(yīng)用程序的開發(fā)環(huán)境和開發(fā)過程學(xué)習(xí)目標(biāo)學(xué)習(xí)目標(biāo)學(xué)習(xí)目標(biāo)u了解C語言產(chǎn)生、發(fā)展和特點u了解程序設(shè)計的基本概念u掌握C程序的基本結(jié)構(gòu)和程序的上機步驟u初步掌握Visual C+ 6.0開發(fā)環(huán)境開篇例程:學(xué)生成績管理系統(tǒng)圖圖1-1是一個簡單的學(xué)生
2、成績管理系統(tǒng)運行界面,是本教材的一個是一個簡單的學(xué)生成績管理系統(tǒng)運行界面,是本教材的一個綜合案例作品,具有數(shù)據(jù)記錄的編輯、查找、統(tǒng)計和瀏覽等處理功能。綜合案例作品,具有數(shù)據(jù)記錄的編輯、查找、統(tǒng)計和瀏覽等處理功能。提供數(shù)字按鍵菜單操作方式。提供數(shù)字按鍵菜單操作方式。圖圖1-1 圖書借閱管理系統(tǒng)圖書借閱管理系統(tǒng)開篇例程:學(xué)生成績管理系統(tǒng)1客戶需求描述客戶需求描述通過對市場的調(diào)查得知,一款合格的學(xué)生管理系統(tǒng)必須具備一下通過對市場的調(diào)查得知,一款合格的學(xué)生管理系統(tǒng)必須具備一下特點:特點:(1) 能夠?qū)W(xué)生成績進(jìn)行集中管理。能夠?qū)W(xué)生成績進(jìn)行集中管理。(2)能夠)能夠大大提高用戶的工作效率。大大提高用戶
3、的工作效率。(3)能夠)能夠?qū)W(xué)生成績實現(xiàn)增、刪、改。對學(xué)生成績實現(xiàn)增、刪、改。(4)能夠)能夠按成績信息進(jìn)行排序。按成績信息進(jìn)行排序。一個學(xué)生成績管理系統(tǒng)最重要的功能包括:學(xué)生成績的添加、刪一個學(xué)生成績管理系統(tǒng)最重要的功能包括:學(xué)生成績的添加、刪除、查詢、修改、插入及排序,其中學(xué)生成績信息的查詢、刪除、修除、查詢、修改、插入及排序,其中學(xué)生成績信息的查詢、刪除、修改、插入等都要依據(jù)輸入的學(xué)號來實現(xiàn)。改、插入等都要依據(jù)輸入的學(xué)號來實現(xiàn)。開篇例程:學(xué)生成績管理系統(tǒng)2系統(tǒng)結(jié)構(gòu)設(shè)計系統(tǒng)結(jié)構(gòu)設(shè)計根據(jù)上面的需求分析,得出該學(xué)生管理系統(tǒng)要實現(xiàn)的功能,有以根據(jù)上面的需求分析,得出該學(xué)生管理系統(tǒng)要實現(xiàn)的功能,
4、有以下幾方面:下幾方面:(1)錄入)錄入學(xué)生成績信息。學(xué)生成績信息。(2)實現(xiàn))實現(xiàn)刪除功能,即輸入學(xué)號,刪除相應(yīng)的記錄。刪除功能,即輸入學(xué)號,刪除相應(yīng)的記錄。(3) 實現(xiàn)查找功能,即輸入學(xué)號,查詢該學(xué)生的相應(yīng)信息。實現(xiàn)查找功能,即輸入學(xué)號,查詢該學(xué)生的相應(yīng)信息。(4)實現(xiàn))實現(xiàn)修改功能,即輸入學(xué)號,修改相應(yīng)的記錄信息。修改功能,即輸入學(xué)號,修改相應(yīng)的記錄信息。(5)指定)指定位置插入學(xué)生成績信息,即將新的記錄插入到指定位置。位置插入學(xué)生成績信息,即將新的記錄插入到指定位置。(6)實現(xiàn))實現(xiàn)學(xué)生信息的排名,即按照選定的關(guān)鍵字段進(jìn)行排序。學(xué)生信息的排名,即按照選定的關(guān)鍵字段進(jìn)行排序。(7)數(shù)據(jù))
5、數(shù)據(jù)統(tǒng)計,按用戶指的條件進(jìn)行統(tǒng)計。統(tǒng)計,按用戶指的條件進(jìn)行統(tǒng)計。開篇例程:學(xué)生成績管理系統(tǒng)該學(xué)生管理系統(tǒng)的結(jié)構(gòu)圖如圖該學(xué)生管理系統(tǒng)的結(jié)構(gòu)圖如圖1-2所示。所示。圖圖1-1 圖書借閱管理系統(tǒng)圖書借閱管理系統(tǒng)開篇例程:學(xué)生成績管理系統(tǒng)【實施方案實施方案】作者致力于且堅信一個目標(biāo):期待您學(xué)完本教材全部內(nèi)容后,就作者致力于且堅信一個目標(biāo):期待您學(xué)完本教材全部內(nèi)容后,就掌握了程序設(shè)計的基本技能,具備開發(fā)這類較簡單的系統(tǒng)應(yīng)用軟件能掌握了程序設(shè)計的基本技能,具備開發(fā)這類較簡單的系統(tǒng)應(yīng)用軟件能力。力。為此,本教材就以此為任務(wù)驅(qū)動,伴隨系統(tǒng)的設(shè)計、開發(fā)、優(yōu)化為此,本教材就以此為任務(wù)驅(qū)動,伴隨系統(tǒng)的設(shè)計、開發(fā)、優(yōu)
6、化到最后完善,學(xué)習(xí)到最后完善,學(xué)習(xí)C語言程序設(shè)計方法。方案設(shè)計如下:語言程序設(shè)計方法。方案設(shè)計如下:(1) 前前6章,各章設(shè)計獨立的案例,旨在學(xué)習(xí)、掌握章,各章設(shè)計獨立的案例,旨在學(xué)習(xí)、掌握C程序設(shè)計語程序設(shè)計語法規(guī)則。法規(guī)則。(2) 第第7章,按照模塊化程序設(shè)計方法,完成系統(tǒng)結(jié)構(gòu)和人機交互章,按照模塊化程序設(shè)計方法,完成系統(tǒng)結(jié)構(gòu)和人機交互界面的設(shè)計。界面的設(shè)計。(3) 第第8章,進(jìn)行數(shù)據(jù)結(jié)構(gòu)設(shè)計及主要功能函數(shù)的實現(xiàn);從而學(xué)習(xí)章,進(jìn)行數(shù)據(jù)結(jié)構(gòu)設(shè)計及主要功能函數(shù)的實現(xiàn);從而學(xué)習(xí)結(jié)構(gòu)體相關(guān)內(nèi)容。結(jié)構(gòu)體相關(guān)內(nèi)容。(4) 第第9章,利用指針優(yōu)化各功能模塊章,利用指針優(yōu)化各功能模塊(5) 第第10章,作
7、為收官篇,利用文件完善系統(tǒng)的數(shù)據(jù)存取。章,作為收官篇,利用文件完善系統(tǒng)的數(shù)據(jù)存取。值得注意的是:不必過多考慮所開發(fā)的系統(tǒng)之實用性,我們的目值得注意的是:不必過多考慮所開發(fā)的系統(tǒng)之實用性,我們的目標(biāo)是:用項目驅(qū)動方法,學(xué)習(xí)標(biāo)是:用項目驅(qū)動方法,學(xué)習(xí)C語言程序設(shè)計,用情景來實現(xiàn)知識構(gòu)語言程序設(shè)計,用情景來實現(xiàn)知識構(gòu)建。建。開篇例程:學(xué)生成績管理系統(tǒng)【知識準(zhǔn)備知識準(zhǔn)備】要要完成學(xué)生成績管理系統(tǒng)開發(fā),必須學(xué)完本教材全部內(nèi)容,熟悉完成學(xué)生成績管理系統(tǒng)開發(fā),必須學(xué)完本教材全部內(nèi)容,熟悉C語言的語法規(guī)則,掌握語言的語法規(guī)則,掌握C程序設(shè)計的基本技能和結(jié)構(gòu)化程序設(shè)計方法。程序設(shè)計的基本技能和結(jié)構(gòu)化程序設(shè)計方法
8、。1.1 C語言概述語言概述1.1.1 C1.1.1 C語言的產(chǎn)生和發(fā)展語言的產(chǎn)生和發(fā)展C語言是美國語言是美國BELL實驗的實驗的Dennis Ritchie在在B語言的基礎(chǔ)上開發(fā)出語言的基礎(chǔ)上開發(fā)出來的,來的,1972年在一臺年在一臺DEC PDP-11計算機上實現(xiàn)了最初的計算機上實現(xiàn)了最初的C語言。當(dāng)時語言。當(dāng)時設(shè)計設(shè)計C語言是為了編寫語言是為了編寫UNIX操作系統(tǒng),操作系統(tǒng),UNIX操作系統(tǒng)操作系統(tǒng)90%的代碼是由的代碼是由C語言編寫,語言編寫,10%的代碼由匯編語言編寫。隨著的代碼由匯編語言編寫。隨著UNIX操作系統(tǒng)的廣泛操作系統(tǒng)的廣泛使用,使用,C語言被人們認(rèn)識和接受。語言被人們認(rèn)識
9、和接受。C語言在各種計算機上快速推廣導(dǎo)致出現(xiàn)了許多語言在各種計算機上快速推廣導(dǎo)致出現(xiàn)了許多C語言版本。這些語言版本。這些版本雖然類似,但通常不兼容。顯然,人們需要一個與開發(fā)平臺和機器版本雖然類似,但通常不兼容。顯然,人們需要一個與開發(fā)平臺和機器無關(guān)的標(biāo)準(zhǔn)的無關(guān)的標(biāo)準(zhǔn)的C語言版本。語言版本。1.1 C語言概述語言概述1.1.2 C1.1.2 C語言語言的特點的特點1.1.高效性高效性2.2.靈活性靈活性3.3.功能功能豐富豐富4.4.表達(dá)力表達(dá)力強強5.5.移植移植性好性好1.2 C語言程序語言程序1.2.1 1.2.1 簡單簡單的的C C程序程序【例例1.1】 在計算機屏幕上輸出一行文本信息在
10、計算機屏幕上輸出一行文本信息“Good Morning!”。#include /*編譯預(yù)處理命令編譯預(yù)處理命令*/main() /*從主函數(shù)從主函數(shù)main()開始執(zhí)行開始執(zhí)行*/ printf(Good Morning!); /*輸出輸出Good Morning!*/ /*主函數(shù)主函數(shù)main()結(jié)束結(jié)束*/運行結(jié)果如下:運行結(jié)果如下: Good Morning!1.2 C語言程序語言程序1.2.2 C1.2.2 C程序的結(jié)構(gòu)程序的結(jié)構(gòu)1程序程序所謂所謂“程序程序”,就是做某一件事情的步驟?,F(xiàn)實生活中,我們每個,就是做某一件事情的步驟?,F(xiàn)實生活中,我們每個人都在無意識的情況下編寫著不同的人都
11、在無意識的情況下編寫著不同的“程序程序”。計算機計算機的的“程序程序”是人們編寫的計算機代碼的指令集合。計算機本是人們編寫的計算機代碼的指令集合。計算機本身不會做任何操作,它所有的操作,都是按照人們設(shè)計的計算機身不會做任何操作,它所有的操作,都是按照人們設(shè)計的計算機“程序程序”語句的執(zhí)行順序來完成的。不同的計算機語言有不同的語法規(guī)則和語法語句的執(zhí)行順序來完成的。不同的計算機語言有不同的語法規(guī)則和語法結(jié)構(gòu)。下面,我們講述一下結(jié)構(gòu)。下面,我們講述一下C語言的程序結(jié)構(gòu)。語言的程序結(jié)構(gòu)。2. C程序的結(jié)構(gòu)程序的結(jié)構(gòu)一般來說,一個一般來說,一個C程序的基本結(jié)構(gòu)包含了聲明、主函數(shù)和函數(shù)定義程序的基本結(jié)構(gòu)包
12、含了聲明、主函數(shù)和函數(shù)定義三大部分。三大部分。1.3 C程序的開發(fā)程序的開發(fā)1.3.1 1.3.1 C C程序的程序的開發(fā)過程開發(fā)過程圖圖1-3 C程序編輯、編譯、連接和執(zhí)行程序編輯、編譯、連接和執(zhí)行1.3 C程序的開發(fā)程序的開發(fā)1.3.2 1.3.2 Visual C+ Visual C+ 6.0 6.0開發(fā)開發(fā)環(huán)境環(huán)境1. 啟動啟動Visual C+ 6.0圖圖1-4 Visual C+ 6.0界面界面1.3 C程序的開發(fā)程序的開發(fā)1.3.2 1.3.2 Visual C+ Visual C+ 6.0 6.0開發(fā)開發(fā)環(huán)境環(huán)境2. 創(chuàng)建工程創(chuàng)建工程圖圖1-5 “新建新建”對話框中的對話框中的
13、“工程工程”選項卡選項卡1.3 C程序的開發(fā)程序的開發(fā)1.3.2 1.3.2 Visual C+ Visual C+ 6.0 6.0開發(fā)開發(fā)環(huán)境環(huán)境2. 創(chuàng)建工程創(chuàng)建工程圖圖1-6 “Win32 Console Application-步驟步驟1共共1步步”對話框?qū)υ捒?.3 C程序的開發(fā)程序的開發(fā)1.3.2 1.3.2 Visual C+ Visual C+ 6.0 6.0開發(fā)開發(fā)環(huán)境環(huán)境3. 創(chuàng)建、編輯源程序文件創(chuàng)建、編輯源程序文件圖圖1-7 “新建新建”對話框中的對話框中的“文件文件”選項卡選項卡1.3 C程序的開發(fā)程序的開發(fā)1.3.2 1.3.2 Visual C+ Visual C+
14、 6.0 6.0開發(fā)開發(fā)環(huán)境環(huán)境3. 創(chuàng)建、編輯源程序文件創(chuàng)建、編輯源程序文件圖圖1-8 Visual C+ 6.0窗口窗口1.3 C程序的開發(fā)程序的開發(fā)1.3.2 1.3.2 Visual C+ Visual C+ 6.0 6.0開發(fā)開發(fā)環(huán)境環(huán)境4. 編譯、連接編譯、連接圖圖1-9 編譯、連接的輸出窗口編譯、連接的輸出窗口1.3 C程序的開發(fā)程序的開發(fā)1.3.2 1.3.2 Visual C+ Visual C+ 6.0 6.0開發(fā)開發(fā)環(huán)境環(huán)境5運行程序運行程序圖圖1-10 運行程序的輸出窗口運行程序的輸出窗口1.3 C程序的開發(fā)程序的開發(fā)1.3.3 1.3.3 工程工程設(shè)置設(shè)置圖圖1-11
15、 程序設(shè)置程序設(shè)置1.3 C程序的開發(fā)程序的開發(fā)1.3.3 1.3.3 工程工程設(shè)置設(shè)置圖圖1-12 組建時排除文件的組建時排除文件的“工程設(shè)置工程設(shè)置”1.4 程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)1.4.1 1.4.1 基本概念基本概念1. 1. 程序與算法程序與算法人們做任何事情都有一定的方法和程序。如開會的議程、老師上課人們做任何事情都有一定的方法和程序。如開會的議程、老師上課的教案、春節(jié)聯(lián)歡晚會節(jié)目單等都是程序。的教案、春節(jié)聯(lián)歡晚會節(jié)目單等都是程序。“程序程序”逐漸被專業(yè)化,它逐漸被專業(yè)化,它通常特指:為讓計算機完成特定任務(wù)(如解決某一算題或控制某一過程)通常特指:為讓計算機完成特定任務(wù)(如解決某
16、一算題或控制某一過程)而設(shè)計的指令序列。而設(shè)計的指令序列。從程序設(shè)計的角度來看,每個問題都涉及兩個方面的內(nèi)容:數(shù)據(jù)和從程序設(shè)計的角度來看,每個問題都涉及兩個方面的內(nèi)容:數(shù)據(jù)和操作操作。換言之,一個程序應(yīng)包括以下兩方面的內(nèi)容:換言之,一個程序應(yīng)包括以下兩方面的內(nèi)容:(1) (1) 對數(shù)據(jù)的描述,即數(shù)據(jù)結(jié)構(gòu)(對數(shù)據(jù)的描述,即數(shù)據(jù)結(jié)構(gòu)(data structuredata structure)。在程序中要)。在程序中要指定數(shù)據(jù)的類型和數(shù)據(jù)的組織形式。指定數(shù)據(jù)的類型和數(shù)據(jù)的組織形式。(2) (2) 對數(shù)據(jù)處理的描述,即算法(對數(shù)據(jù)處理的描述,即算法(algorithmalgorithm)。算法是為解決
17、一)。算法是為解決一個問題而采取的方法和步驟個問題而采取的方法和步驟。1.4 程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)1.4.1 1.4.1 基本概念基本概念2 2數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)計算機處理的對象是數(shù)據(jù),數(shù)據(jù)是描述客觀事物的數(shù)、字符以及計計算機處理的對象是數(shù)據(jù),數(shù)據(jù)是描述客觀事物的數(shù)、字符以及計算機能夠接受和處理的信息符號的總稱。數(shù)據(jù)結(jié)構(gòu)是指數(shù)據(jù)的類型和數(shù)算機能夠接受和處理的信息符號的總稱。數(shù)據(jù)結(jié)構(gòu)是指數(shù)據(jù)的類型和數(shù)據(jù)的組織形式。數(shù)據(jù)類型體現(xiàn)的數(shù)據(jù)的取值范圍和合法的運算,數(shù)據(jù)的據(jù)的組織形式。數(shù)據(jù)類型體現(xiàn)的數(shù)據(jù)的取值范圍和合法的運算,數(shù)據(jù)的組織形式體現(xiàn)了相關(guān)數(shù)據(jù)之間的關(guān)系。組織形式體現(xiàn)了相關(guān)數(shù)據(jù)之間的關(guān)系。數(shù)據(jù)
18、結(jié)構(gòu)與算法有著密切的關(guān)系,只有明確了問題的算法,才能更數(shù)據(jù)結(jié)構(gòu)與算法有著密切的關(guān)系,只有明確了問題的算法,才能更好地構(gòu)造數(shù)據(jù)結(jié)構(gòu);但選擇好的算法,常常依賴于好的數(shù)據(jù)結(jié)構(gòu)。事實好地構(gòu)造數(shù)據(jù)結(jié)構(gòu);但選擇好的算法,常常依賴于好的數(shù)據(jù)結(jié)構(gòu)。事實上,程序就是在數(shù)據(jù)的某些特定的表示方式和結(jié)構(gòu)的基礎(chǔ)上對抽象算法上,程序就是在數(shù)據(jù)的某些特定的表示方式和結(jié)構(gòu)的基礎(chǔ)上對抽象算法的具體描述。因此,編寫一個程序的關(guān)鍵就是合理地組織數(shù)據(jù)和設(shè)計好的具體描述。因此,編寫一個程序的關(guān)鍵就是合理地組織數(shù)據(jù)和設(shè)計好的算法。的算法。1.4 程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)1.4.2 1.4.2 算法的算法的特性特性(1 1)有窮性)有窮性
19、(2 2)確定性)確定性3.3.功能功能豐富豐富4.4.表達(dá)力表達(dá)力強強5.5.移植移植性好性好1.4 程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)1.4.3 1.4.3 算法的描述算法的描述算法的表示方法很多,常見的有自然語言、傳統(tǒng)流程圖、算法的表示方法很多,常見的有自然語言、傳統(tǒng)流程圖、N-SN-S圖、圖、偽代碼、偽代碼、PADPAD圖等。圖等。1 1用自然語言描述用自然語言描述自然語言就是人們?nèi)粘J褂玫恼Z言,可以是中文、英文等。用自然自然語言就是人們?nèi)粘J褂玫恼Z言,可以是中文、英文等。用自然語言表示的算法通俗易懂,但一般篇幅較冗長,表達(dá)上往往不易準(zhǔn)確,語言表示的算法通俗易懂,但一般篇幅較冗長,表達(dá)上往往不易
20、準(zhǔn)確,容易引起理解上的容易引起理解上的“歧義性歧義性”。所以,除了很簡單的問題外,一般不使。所以,除了很簡單的問題外,一般不使用這種描述。用這種描述。1.4 程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)1.4.3 1.4.3 算法的描述算法的描述2 2用流程圖用流程圖描述描述1.4 程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)1.4.3 1.4.3 算法的描述算法的描述4 4用偽代碼描述用偽代碼描述偽代碼是一種介于自然語言和計算機語言之間的文字和符號,用來偽代碼是一種介于自然語言和計算機語言之間的文字和符號,用來描述算法。偽代碼的表現(xiàn)形式比較自由靈活,沒有嚴(yán)謹(jǐn)?shù)恼Z法格式。描述算法。偽代碼的表現(xiàn)形式比較自由靈活,沒有嚴(yán)謹(jǐn)?shù)恼Z法格式。5
21、 5用計算機語言描述用計算機語言描述我們的任務(wù)是用計算機解題,也就是用計算機實現(xiàn)算法。計算機是我們的任務(wù)是用計算機解題,也就是用計算機實現(xiàn)算法。計算機是無法識別流程圖和偽代碼的。只有用計算機語言編寫的程序,經(jīng)編譯成無法識別流程圖和偽代碼的。只有用計算機語言編寫的程序,經(jīng)編譯成目標(biāo)程序后,才能被計算機執(zhí)行。因此,用任何方法描述的算法,還得目標(biāo)程序后,才能被計算機執(zhí)行。因此,用任何方法描述的算法,還得要將它轉(zhuǎn)化成計算機語言程序。要將它轉(zhuǎn)化成計算機語言程序。1.4 程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)1.4.4 1.4.4 程序設(shè)計方法程序設(shè)計方法1. 1. 程序設(shè)計的一般步驟程序設(shè)計的一般步驟程序設(shè)計一般步驟
22、如下:程序設(shè)計一般步驟如下:(1) (1) 分析問題,確定解題方案分析問題,確定解題方案( (2) 2) 確定算法確定算法( (3) 3) 編寫程序編寫程序( (4) 4) 調(diào)試運行程序調(diào)試運行程序( (5) 5) 建立文檔資料建立文檔資料1.4 程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)1.4.4 1.4.4 程序設(shè)計方法程序設(shè)計方法2. 2. 結(jié)構(gòu)化程序設(shè)計方法結(jié)構(gòu)化程序設(shè)計方法所謂結(jié)構(gòu)化的程序設(shè)計方法就是所謂結(jié)構(gòu)化的程序設(shè)計方法就是“按照一組能夠提高程序的易讀性按照一組能夠提高程序的易讀性和易維護(hù)性的規(guī)則進(jìn)行程序設(shè)計的方法和易維護(hù)性的規(guī)則進(jìn)行程序設(shè)計的方法”。其要點如下:。其要點如下:(1) (1) 程序
23、的質(zhì)量標(biāo)準(zhǔn)是程序的質(zhì)量標(biāo)準(zhǔn)是“清晰第一,效率第二清晰第一,效率第二”。(2) (2) 程序的設(shè)計采用程序的設(shè)計采用“自頂向下,逐步求精,模塊化設(shè)計,結(jié)構(gòu)化自頂向下,逐步求精,模塊化設(shè)計,結(jié)構(gòu)化編程編程”的方法。的方法。(3) (3) 程序的結(jié)構(gòu)僅由順序、分支、循環(huán)三種基本結(jié)構(gòu)的組合、嵌套程序的結(jié)構(gòu)僅由順序、分支、循環(huán)三種基本結(jié)構(gòu)的組合、嵌套而成,且滿足:而成,且滿足:( (4) 4) 程序的書寫必須按一定的規(guī)范和格式進(jìn)行程序的書寫必須按一定的規(guī)范和格式進(jìn)行。( (5) 5) 程序的設(shè)計風(fēng)格要以好的可讀性為標(biāo)準(zhǔn),以使用程序的用戶為程序的設(shè)計風(fēng)格要以好的可讀性為標(biāo)準(zhǔn),以使用程序的用戶為核心,外觀美
24、觀、結(jié)構(gòu)流暢、語句簡潔。核心,外觀美觀、結(jié)構(gòu)流暢、語句簡潔。1.5 情景應(yīng)用情景應(yīng)用訓(xùn)練項目訓(xùn)練項目1.5.1 1.5.1 項目項目1 1:VC+ 6.0VC+ 6.0開發(fā)工具的使用開發(fā)工具的使用 【訓(xùn)練目的訓(xùn)練目的】1 1熟悉熟悉Visual C+ 6.0Visual C+ 6.0環(huán)境。環(huán)境。2 2掌握創(chuàng)建工程、添加掌握創(chuàng)建工程、添加C C源程序的方法。源程序的方法。3 3熟悉熟悉C C程序編輯、編譯、連接和運行的過程。程序編輯、編譯、連接和運行的過程。4 4通過運行簡單的通過運行簡單的C C程序,初步了解程序,初步了解C C源程序的結(jié)構(gòu)。源程序的結(jié)構(gòu)。1.5 情景應(yīng)用情景應(yīng)用訓(xùn)練項目訓(xùn)練項
25、目1.5.1 1.5.1 項目項目1 1:VC+ 6.0VC+ 6.0開發(fā)工具的使用開發(fā)工具的使用 【操作步驟操作步驟】1 1啟動啟動Visual C+ 6.0, Visual C+ 6.0, 并創(chuàng)建工程并創(chuàng)建工程test.test.2 2. . 在在testtest工程中添加一個工程中添加一個temp1.ctemp1.c文件文件, ,并保存在并保存在D:MYCD:MYC路徑下。路徑下。3 3在在temp1.ctemp1.c程序中,編輯如下程序:程序中,編輯如下程序:#include #include main() main() intint a,b,ca,b,c; ; a a = 29; =
26、 29; b b = 30; = 30; c = a - b; c = a - b; printfprintf(%d(%dn,cn,c);); 4 4編譯、連接并運行,觀察運行結(jié)果。編譯、連接并運行,觀察運行結(jié)果。1.5 情景應(yīng)用情景應(yīng)用訓(xùn)練項目訓(xùn)練項目1.5.2 1.5.2 項目項目2: 2: 多程序文件的工程設(shè)置多程序文件的工程設(shè)置 【訓(xùn)練目的訓(xùn)練目的】1 1熟悉工程的打開和關(guān)閉。熟悉工程的打開和關(guān)閉。2 2熟悉工程設(shè)置方法。熟悉工程設(shè)置方法。【操作步驟操作步驟】1 1啟動啟動Visual C+ 6.0,Visual C+ 6.0,打開項目打開項目1 1中創(chuàng)建的工程中創(chuàng)建的工程testte
27、st。2 2在在testtest工程中,再創(chuàng)建添加一個工程中,再創(chuàng)建添加一個temp2.ctemp2.c文件。文件。3 3在在temp2.ctemp2.c文件中,模仿例文件中,模仿例1.11.1程序,編寫輸出程序,編寫輸出“Good Night!”Good Night!”的程序代碼。的程序代碼。4 4進(jìn)行工程設(shè)置,分別對本工程中的每個進(jìn)行工程設(shè)置,分別對本工程中的每個C C程序進(jìn)行編譯、連接和程序進(jìn)行編譯、連接和運行。運行。學(xué)習(xí)目標(biāo)學(xué)習(xí)目標(biāo)案例目標(biāo)u 理解和掌握C語言的基本數(shù)據(jù)類型u 掌握變量三個要素:名稱、類型和值學(xué)習(xí)目標(biāo)學(xué)習(xí)目標(biāo)學(xué)習(xí)目標(biāo)u掌握C語言的基本字符、標(biāo)識符和關(guān)鍵字u了解C語言的編
28、程規(guī)范u理解和掌握數(shù)據(jù)類型、常量與變量u理解和掌握運算符與表達(dá)式案例2 飲料交換問題【問題描述問題描述】小小明、景天和婷婷三人常在一起玩游戲。有一天,小明帶來一杯明、景天和婷婷三人常在一起玩游戲。有一天,小明帶來一杯雪碧,而婷婷帶來一杯可樂。景天看了看他兩的飲料,突然問道:你雪碧,而婷婷帶來一杯可樂。景天看了看他兩的飲料,突然問道:你兩把飲料對換,但各自的杯不變,該怎么辦?兩把飲料對換,但各自的杯不變,該怎么辦?聰明聰明的小明想了想,便立即給出了答案的小明想了想,便立即給出了答案:準(zhǔn)備準(zhǔn)備同樣大小的第三個杯子,把雪碧倒入第三個杯子,可樂倒入同樣大小的第三個杯子,把雪碧倒入第三個杯子,可樂倒入盛
29、雪碧的杯子,然后將第三個杯子中的雪碧倒入盛可樂的杯子。盛雪碧的杯子,然后將第三個杯子中的雪碧倒入盛可樂的杯子。請你編程,用請你編程,用C語言來描述小明對語言來描述小明對“兩杯飲料交換問題兩杯飲料交換問題”的求解。的求解。案例2 飲料交換問題【問題分析問題分析】小小明和婷婷兩人交換飲料,可用兩變量值交換的數(shù)學(xué)模型描述:明和婷婷兩人交換飲料,可用兩變量值交換的數(shù)學(xué)模型描述:定義變量定義變量a,b表示兩個杯子,杯中的飲料就是變量中存儲的數(shù)值。表示兩個杯子,杯中的飲料就是變量中存儲的數(shù)值。不失一般性,不同的容器用不同的變量表示,容器中的不同物資不失一般性,不同的容器用不同的變量表示,容器中的不同物資代
30、表不同數(shù)據(jù)。這涉及到代表不同數(shù)據(jù)。這涉及到C語言數(shù)據(jù)類型、變量的定義和引用。語言數(shù)據(jù)類型、變量的定義和引用。案例2 飲料交換問題【算法設(shè)計算法設(shè)計】把小明和婷婷的杯子分別有把小明和婷婷的杯子分別有a和和b表示,雪碧和可樂定義為變量表示,雪碧和可樂定義為變量a和和b中存儲的數(shù)值。借助于一個空杯子,用變量中存儲的數(shù)值。借助于一個空杯子,用變量c表示,兩杯飲料的交表示,兩杯飲料的交換算法如下:換算法如下:(1) 將將a杯中的雪碧倒入杯中的雪碧倒入c杯子中;杯子中;(2) 將將b杯中的可樂倒入杯中的可樂倒入a杯子中;杯子中;(3) 將將c杯中的雪碧倒入杯中的雪碧倒入b杯子中杯子中;案例2 飲料交換問題
31、參考參考代碼如下:代碼如下:#include void main()int a,b,c;a = 1; /*小明杯中注入可樂小明杯中注入可樂*/b = 2; /*婷婷杯中注入雪碧婷婷杯中注入雪碧*/c = a; /*將小明杯中的可樂注入空杯中將小明杯中的可樂注入空杯中*/a = b; /*將婷婷杯中的雪碧注入小明杯中將婷婷杯中的雪碧注入小明杯中*/b = c; /*將將C杯中的可樂注入小明杯中杯中的可樂注入小明杯中*/printf(a=%d,b=%dn,a,b);案例2 飲料交換問題【知識準(zhǔn)備知識準(zhǔn)備】數(shù)據(jù),是數(shù)據(jù),是C程序的處理對象。數(shù)據(jù)在處理時需要先存入計算機的程序的處理對象。數(shù)據(jù)在處理時需
32、要先存入計算機的內(nèi)存中,不同類型的數(shù)據(jù)在內(nèi)存中的存放形式是不同的。兩杯飲料交內(nèi)存中,不同類型的數(shù)據(jù)在內(nèi)存中的存放形式是不同的。兩杯飲料交換問題,數(shù)值化后,將涉及到換問題,數(shù)值化后,將涉及到C語言數(shù)據(jù)類型、變量定義等相關(guān)知識。語言數(shù)據(jù)類型、變量定義等相關(guān)知識。要完成上面的任務(wù),必須要能理解要完成上面的任務(wù),必須要能理解C語言的標(biāo)識符、關(guān)鍵字、變語言的標(biāo)識符、關(guān)鍵字、變量、數(shù)據(jù)類型、運算符和表達(dá)式等知識點。量、數(shù)據(jù)類型、運算符和表達(dá)式等知識點。2.1 字符集、標(biāo)識符和關(guān)鍵字2.1.1 2.1.1 字符集字符集字符集是構(gòu)成字符集是構(gòu)成C語言的基本元素。用語言的基本元素。用C語言編寫程序時,所寫的語語
33、言編寫程序時,所寫的語句是由字符集中的字符構(gòu)成。句是由字符集中的字符構(gòu)成。C語言的字符集由下列字符構(gòu)成:語言的字符集由下列字符構(gòu)成:(1) 數(shù)字字符:數(shù)字字符:09;(2) 大小寫英文字母:大小寫英文字母:az,AZ;(3) 特殊字符:特殊字符: ! # % & * _(下劃線下劃線) - + = / | . , : ; ? “ ( ) (4) 空白字符:空格符、換行符、制表符等空白字符:空格符、換行符、制表符等??瞻鬃址诔绦蛑衅鸱指羝渌煞值淖饔茫诔绦蛑锌瞻鬃址瞻鬃址诔绦蛑衅鸱指羝渌煞值淖饔?,在程序中空白字符通常不會影響程序的意義。寫程序時,通常利用空白字符的這種性質(zhì),常不會影響
34、程序的意義。寫程序時,通常利用空白字符的這種性質(zhì),把程序內(nèi)容排列成適當(dāng)?shù)母袷?,以增強程序的可讀性。把程序內(nèi)容排列成適當(dāng)?shù)母袷?,以增強程序的可讀性。2.1 字符集、標(biāo)識符和關(guān)鍵字2.1.2 2.1.2 關(guān)鍵字(保留字)關(guān)鍵字(保留字)在在C語言中,有語言中,有32個關(guān)鍵字,如表個關(guān)鍵字,如表2-1所示。他們是由系統(tǒng)預(yù)先定所示。他們是由系統(tǒng)預(yù)先定義的專用詞,它們有特別的含義。如義的專用詞,它們有特別的含義。如int用來定義整數(shù)類型。在今后的用來定義整數(shù)類型。在今后的學(xué)習(xí)中將會逐步接觸到這些關(guān)鍵字的具體使用方法。學(xué)習(xí)中將會逐步接觸到這些關(guān)鍵字的具體使用方法。表表2-1 C2-1 C語言關(guān)鍵字語言關(guān)鍵
35、字2.1 字符集、標(biāo)識符和關(guān)鍵字2.1.3 2.1.3 標(biāo)識符標(biāo)識符在編程過程中,用來標(biāo)識變量名、符號常量、數(shù)組名、函數(shù)名、在編程過程中,用來標(biāo)識變量名、符號常量、數(shù)組名、函數(shù)名、文件名等的有效字符序列稱為文件名等的有效字符序列稱為“標(biāo)識符標(biāo)識符”(identifier)。通俗地講,)。通俗地講,標(biāo)識符就是名字。標(biāo)識符就是名字。C語言對標(biāo)識符有如下規(guī)定:語言對標(biāo)識符有如下規(guī)定:(1) 標(biāo)識符只能由字母(標(biāo)識符只能由字母(az,AZ)、數(shù)字()、數(shù)字(09)和下劃線)和下劃線三種字符組成,且第一個字符必須為字母或下劃線。三種字符組成,且第一個字符必須為字母或下劃線。(2) 不能使用不能使用C語言
36、的關(guān)鍵字(或稱保留字)作為標(biāo)識符。語言的關(guān)鍵字(或稱保留字)作為標(biāo)識符。2.1 字符集、標(biāo)識符和關(guān)鍵字2.1.4 C2.1.4 C語言的編程語言的編程規(guī)范規(guī)范1. 匈牙利命名法匈牙利命名法在標(biāo)識符的命名法中最常見的就是匈牙利命名法,即標(biāo)識符的名在標(biāo)識符的命名法中最常見的就是匈牙利命名法,即標(biāo)識符的名字由兩部分組成,前面一部分即前綴表示類型,后面一部分用于表示字由兩部分組成,前面一部分即前綴表示類型,后面一部分用于表示意義,采用首字母大寫的英文單詞或縮寫。比如一個存儲和數(shù)的變量,意義,采用首字母大寫的英文單詞或縮寫。比如一個存儲和數(shù)的變量,可以取名為可以取名為iSum,其只,其只i表示該變量是整
37、數(shù),表示該變量是整數(shù),Sum表示該變量是用來計表示該變量是用來計算和數(shù)的。算和數(shù)的。表表2-2 2-2 變量命名規(guī)則約定變量命名規(guī)則約定2.1 字符集、標(biāo)識符和關(guān)鍵字2.1.4 C2.1.4 C語言的編程語言的編程規(guī)范規(guī)范2. 注釋的合理使用注釋的合理使用C語言的注釋是以語言的注釋是以“/*”開始,以開始,以“*/”結(jié)束。在這之間的所有內(nèi)容結(jié)束。在這之間的所有內(nèi)容編譯程序認(rèn)為是注釋信息,編譯時跳過它們。編譯程序認(rèn)為是注釋信息,編譯時跳過它們。注釋通常用于以下幾種情況:版本版權(quán)聲明、函數(shù)接口說明和重注釋通常用于以下幾種情況:版本版權(quán)聲明、函數(shù)接口說明和重要代碼行或者段落說明。要代碼行或者段落說明
38、。注釋是提高可讀性的重要手段,用于幫助別人理解代碼,在使用注釋是提高可讀性的重要手段,用于幫助別人理解代碼,在使用時可遵循以下原則:時可遵循以下原則:(1) 注釋是對代碼的解釋,并不是文檔。注釋不可喧賓奪主,注釋注釋是對代碼的解釋,并不是文檔。注釋不可喧賓奪主,注釋花樣也要少?;右惨?。(2) 如果代碼本身就很清楚,就沒必要加注釋。如果代碼本身就很清楚,就沒必要加注釋。(3) 注釋應(yīng)當(dāng)準(zhǔn)確、易懂,防止出現(xiàn)二義性。注釋應(yīng)當(dāng)準(zhǔn)確、易懂,防止出現(xiàn)二義性。(4) 注釋的位置要與描述的代碼相鄰,可放在代碼上面或者右側(cè),注釋的位置要與描述的代碼相鄰,可放在代碼上面或者右側(cè),不要放在代碼的下面。不要放在代
39、碼的下面。2.1 字符集、標(biāo)識符和關(guān)鍵字2.1.4 C2.1.4 C語言的編程語言的編程規(guī)范規(guī)范3. 程序中的程序中的“ ”要對齊要對齊(1)程序程序的分界符的分界符“”和和“”應(yīng)占據(jù)一行并且位于同一列,同時與應(yīng)占據(jù)一行并且位于同一列,同時與引用它們的語句左對齊引用它們的語句左對齊。(2)“”之內(nèi)的代碼塊在之內(nèi)的代碼塊在“”右側(cè)空右側(cè)空4個格處左對齊個格處左對齊。(3) 如果出現(xiàn)嵌套如果出現(xiàn)嵌套“”的情況,則使用縮進(jìn)對齊的形式的情況,則使用縮進(jìn)對齊的形式。2.1 字符集、標(biāo)識符和關(guān)鍵字2.1.4 C2.1.4 C語言的編程語言的編程規(guī)范規(guī)范4. 合理使用空格使代碼更規(guī)范合理使用空格使代碼更規(guī)范
40、(1) 關(guān)鍵字之后要留一個空格。象關(guān)鍵字之后要留一個空格。象const、case等關(guān)鍵字之后要保留等關(guān)鍵字之后要保留一個空格,否則編譯器無法辯析它是關(guān)鍵字。對一個空格,否則編譯器無法辯析它是關(guān)鍵字。對if、for、while等關(guān)鍵等關(guān)鍵字之后應(yīng)該留一個空格,然后再跟小括號字之后應(yīng)該留一個空格,然后再跟小括號“(”,以突出顯示關(guān)鍵字。,以突出顯示關(guān)鍵字。(2) 在函數(shù)名之后不要留空格,要緊跟在函數(shù)名之后不要留空格,要緊跟“(”,以顯示與關(guān)鍵字的,以顯示與關(guān)鍵字的區(qū)別。區(qū)別。(3) “(”后向緊跟,后向緊跟,“)”、“,”、“;”前向緊跟,緊跟處前向緊跟,緊跟處不留空格。不留空格。(4) “,”之
41、后要留空格,如果之后要留空格,如果“;”不是一行的結(jié)束,則最后要不是一行的結(jié)束,則最后要留空格留空格。2.1 字符集、標(biāo)識符和關(guān)鍵字2.1.4 C2.1.4 C語言的編程語言的編程規(guī)范規(guī)范4. 合理使用空格使代碼更規(guī)范合理使用空格使代碼更規(guī)范(5) 賦值運算符、關(guān)系運算符、算術(shù)運算符、邏輯運算符、位運算賦值運算符、關(guān)系運算符、算術(shù)運算符、邏輯運算符、位運算符,如符,如“=”、“+=”、“=”、“=”、“+”、“-”、“*”、“/”、“%”、“&”、“|”、“”等操作符,同樣前后不加空格等操作符,同樣前后不加空格。5換行使代碼更清晰換行使代碼更清晰代碼行最大長度應(yīng)該控制在代碼行最大長度應(yīng)該控制在
42、70-80個字符。長的表達(dá)式要在低優(yōu)先個字符。長的表達(dá)式要在低優(yōu)先級操作符處折分成新行,操作符放在新行的前面,用于突出顯示操作級操作符處折分成新行,操作符放在新行的前面,用于突出顯示操作符。折分出來的新行要適當(dāng)縮進(jìn),使代碼版式整齊,可讀性強符。折分出來的新行要適當(dāng)縮進(jìn),使代碼版式整齊,可讀性強。2.2 C語言的數(shù)據(jù)類型2.2.1 C2.2.1 C語言的數(shù)據(jù)類型語言的數(shù)據(jù)類型分類分類2.2 C語言的數(shù)據(jù)類型2.2.2 2.2.2 整型整型數(shù)據(jù)數(shù)據(jù)1整型的類別整型的類別在在C語言中,整型數(shù)據(jù)分為基本整型、短整型、長整型語言中,整型數(shù)據(jù)分為基本整型、短整型、長整型3大類。其大類。其中每一類又分為無符
43、號和有符號中每一類又分為無符號和有符號2種情況,如表種情況,如表2-3所示。所示。表表2-3 整型分類表整型分類表2.2 C語言的數(shù)據(jù)類型2.2.2 2.2.2 整型整型數(shù)據(jù)數(shù)據(jù)2 整型數(shù)據(jù)在內(nèi)存中的的存儲形式整型數(shù)據(jù)在內(nèi)存中的的存儲形式整型數(shù)據(jù)是以二進(jìn)制數(shù)補碼的形式存儲的。對有符號數(shù)據(jù),則存整型數(shù)據(jù)是以二進(jìn)制數(shù)補碼的形式存儲的。對有符號數(shù)據(jù),則存儲單元的最高位為符號位,儲單元的最高位為符號位,1表示負(fù)數(shù),表示負(fù)數(shù),0 表示正數(shù)。對無符號數(shù)據(jù),表示正數(shù)。對無符號數(shù)據(jù),則沒有符號位,所有的存儲單元均為數(shù)據(jù)位。以短整型數(shù)據(jù)在內(nèi)存中則沒有符號位,所有的存儲單元均為數(shù)據(jù)位。以短整型數(shù)據(jù)在內(nèi)存中占占2個
44、字節(jié)(個字節(jié)(16位)為例,來說明有符號數(shù)據(jù)和無符號數(shù)據(jù)在內(nèi)存中位)為例,來說明有符號數(shù)據(jù)和無符號數(shù)據(jù)在內(nèi)存中占用存儲單元的區(qū)別,如占用存儲單元的區(qū)別,如圖所圖所示。示。2.2 C語言的數(shù)據(jù)類型2.2.2 2.2.2 整型整型數(shù)據(jù)數(shù)據(jù)3求補碼的方法求補碼的方法在計算機中,整數(shù)有原碼、反碼和補碼在計算機中,整數(shù)有原碼、反碼和補碼3種表示方法。種表示方法。(1) 一個正數(shù)的反碼和補碼與原碼相同一個正數(shù)的反碼和補碼與原碼相同 (2) 負(fù)數(shù)的原碼就是把符號位數(shù)值化負(fù)數(shù)的原碼就是把符號位數(shù)值化 (3) 負(fù)數(shù)的反碼,其原碼的符號位不變,其它位按位取反負(fù)數(shù)的反碼,其原碼的符號位不變,其它位按位取反 (4)
45、負(fù)數(shù)的補碼是反碼末位(最右端位)加負(fù)數(shù)的補碼是反碼末位(最右端位)加1。2.2 C語言的數(shù)據(jù)類型2.2.3 2.2.3 實型數(shù)據(jù)實型數(shù)據(jù)1 1實型數(shù)據(jù)的類別實型數(shù)據(jù)的類別實型也稱之為浮點型。在實型也稱之為浮點型。在C C語言中,實型數(shù)據(jù)分為單精度語言中,實型數(shù)據(jù)分為單精度(floatfloat)、雙精度()、雙精度(doubledouble)和長雙精度()和長雙精度(long doublelong double)三種。實)三種。實型數(shù)均為有符號數(shù)據(jù),沒有無符號實型數(shù),如表型數(shù)均為有符號數(shù)據(jù),沒有無符號實型數(shù),如表2-42-4所示。所示。表表2-4 實型數(shù)據(jù)的分類實型數(shù)據(jù)的分類2.2 C語言的數(shù)
46、據(jù)類型2.2.3 2.2.3 實型數(shù)據(jù)實型數(shù)據(jù)2. 2. 實型數(shù)據(jù)的存儲形式實型數(shù)據(jù)的存儲形式實型數(shù)據(jù)在內(nèi)存中是以指數(shù)形式存放的。系統(tǒng)把一個實型數(shù)據(jù)分實型數(shù)據(jù)在內(nèi)存中是以指數(shù)形式存放的。系統(tǒng)把一個實型數(shù)據(jù)分成小數(shù)部分和指數(shù)部分,分別存放。其中,指數(shù)部分采用規(guī)范化的指成小數(shù)部分和指數(shù)部分,分別存放。其中,指數(shù)部分采用規(guī)范化的指數(shù)形式。一個實型數(shù)據(jù)數(shù)形式。一個實型數(shù)據(jù)3.14159=+0.314159X1013.14159=+0.314159X101在內(nèi)存中的存放形式在內(nèi)存中的存放形式如圖如圖2-52-5所示。所示。圖圖2-5 實型數(shù)據(jù)的存儲形式實型數(shù)據(jù)的存儲形式2.2 C語言的數(shù)據(jù)類型2.2.4
47、 2.2.4 字符型數(shù)據(jù)字符型數(shù)據(jù)字符型字符型數(shù)據(jù)分字符型和無符號字符型數(shù)據(jù)分字符型和無符號字符型2 2種,如表種,如表2-52-5所示。所示。圖圖2-5 實型數(shù)據(jù)的存儲形式實型數(shù)據(jù)的存儲形式2.3 常量與變量2.3.1 2.3.1 常常 量量常量可分為不同類型,常用的有:整型常量、實型常量、字符常常量可分為不同類型,常用的有:整型常量、實型常量、字符常量、字符串常量和符號常量。量、字符串常量和符號常量。1. 1. 整型常量整型常量整型常量由一個或多個數(shù)字組成,可以有正、負(fù)號,但不能有小整型常量由一個或多個數(shù)字組成,可以有正、負(fù)號,但不能有小數(shù)點。整型常量有三種表示方法:數(shù)點。整型常量有三種表
48、示方法:(1)(1)十進(jìn)制十進(jìn)制常量沒有前綴,所含數(shù)字常量沒有前綴,所含數(shù)字0 09 9。(2)(2)八進(jìn)制八進(jìn)制常量有前綴常量有前綴0 0(零),所含數(shù)字(零),所含數(shù)字0 07 7。(3(3) )十六進(jìn)制十六進(jìn)制常量有前綴常量有前綴0 x0 x或或0X0X,所含數(shù)字,所含數(shù)字0 09 9、A AF F或或a af f。2.3 常量與變量2.3.1 2.3.1 常常 量量2. 2. 實型常量實型常量實型常量,就是我們通常所說的實數(shù),又稱浮點數(shù),它們在計算實型常量,就是我們通常所說的實數(shù),又稱浮點數(shù),它們在計算機中是近似表示的。機中是近似表示的。C C語言中的實數(shù)只有十進(jìn)制表示,有以下兩種書語
49、言中的實數(shù)只有十進(jìn)制表示,有以下兩種書寫形式:寫形式:(1) (1) 十進(jìn)制形式十進(jìn)制形式由正負(fù)號、整數(shù)部分、小數(shù)點和小數(shù)部分組成。例如:由正負(fù)號、整數(shù)部分、小數(shù)點和小數(shù)部分組成。例如:123.9123.9、- -20.23420.234、0.12340.1234、0.00.0等都是正確的書寫形式。等都是正確的書寫形式。(2) (2) 指數(shù)形式指數(shù)形式也稱科學(xué)表示形式,由正負(fù)號、整數(shù)部分、小數(shù)點、小數(shù)部分和也稱科學(xué)表示形式,由正負(fù)號、整數(shù)部分、小數(shù)點、小數(shù)部分和字母字母E E或或e e后面帶正負(fù)號的整數(shù)組成。后面帶正負(fù)號的整數(shù)組成。2.3 常量與變量2.3.1 2.3.1 常常 量量3. 3.
50、 字符常量字符常量字符型常量是用一對單引號(即撇號)括起來的單個字符,在內(nèi)字符型常量是用一對單引號(即撇號)括起來的單個字符,在內(nèi)存中占一個字節(jié)存中占一個字節(jié)。例如例如: :aa ,bb,11,$,AA、# /# /正確的正確的字符常量字符常量 ABAB、ABAB、a /a /錯誤的字符常量錯誤的字符常量 一個字符常量的值是該字符對應(yīng)的一個字符常量的值是該字符對應(yīng)的ASCIIASCII碼值(參見附錄碼值(參見附錄A A)。)。例如,字符常量例如,字符常量a a z z 對應(yīng)的對應(yīng)的ASCIIASCII編碼值是編碼值是9797123123;字;字符常量符常量009 9 對應(yīng)的對應(yīng)的ASCIIAS
51、CII編碼值是編碼值是48485757。顯然。顯然00與數(shù)字與數(shù)字0 0是不是不同的。同的。 C C語言中還允許一種特殊形式的字符常量,即以反斜線語言中還允許一種特殊形式的字符常量,即以反斜線“”開開頭的字符序列,稱為頭的字符序列,稱為轉(zhuǎn)義字符轉(zhuǎn)義字符。例如,例如,printfprintf() () 函數(shù)中的函數(shù)中的 n n ,代表換行,而不是字符,代表換行,而不是字符n n 。2.3 常量與變量2.3.1 2.3.1 常常 量量4. 4. 字符串常量字符串常量字符串常量是用雙引號括起來的字符序列。比如:字符串常量是用雙引號括起來的字符序列。比如:CHINA, , CHINA, , teach
52、er and student , 12345.456 , ateacher and student , 12345.456 , a等都是字符串常量。等都是字符串常量。字符串常量一般用一個字符數(shù)組(參見第字符串常量一般用一個字符數(shù)組(參見第6 6章)來存儲,每個字符占一章)來存儲,每個字符占一個字節(jié),存放其對應(yīng)的個字節(jié),存放其對應(yīng)的ASCIIASCII碼。字符串常量在內(nèi)存中存儲時,系統(tǒng)自動加碼。字符串常量在內(nèi)存中存儲時,系統(tǒng)自動加上串尾標(biāo)志上串尾標(biāo)志0 0 。每個字符串常量在內(nèi)存中占用的存儲單元數(shù)目應(yīng)為該字符串長度(字每個字符串常量在內(nèi)存中占用的存儲單元數(shù)目應(yīng)為該字符串長度(字符個數(shù))加符個數(shù))
53、加1 1。2.3 常量與變量2.3.1 2.3.1 常常 量量5 5符號常量符號常量用用一個特定的符號來代替一個常量或一個較為復(fù)雜的字符串,這個符一個特定的符號來代替一個常量或一個較為復(fù)雜的字符串,這個符號稱為符號常量。它通常由預(yù)處理命令號稱為符號常量。它通常由預(yù)處理命令#define#define來定義。符號常量一般用大來定義。符號常量一般用大寫字母表示,以便與其他標(biāo)識符區(qū)別。寫字母表示,以便與其他標(biāo)識符區(qū)別。符號符號常量的一般定義形式:常量的一般定義形式:# #define define 符號常量標(biāo)識符符號常量標(biāo)識符 常量值(或常量值(或 字符串字符串 )2.3 常量與變量2.3.2 2.
54、3.2 變變 量量變量是指在程序運行過程中,其值可以改變的量。使用變量前必須先變量是指在程序運行過程中,其值可以改變的量。使用變量前必須先定義(聲明),變量是用來保存常量的。變量有三個要素:名稱、類型和定義(聲明),變量是用來保存常量的。變量有三個要素:名稱、類型和值。值。1 1 變量的名字變量的名字變量名字是一個標(biāo)識符,所以要符合標(biāo)識符的命名規(guī)則。變量名字是一個標(biāo)識符,所以要符合標(biāo)識符的命名規(guī)則。例如:例如:a, _a, _abcabc,AREAAREA,x1x1,x2 /x2 /合法的變量名合法的變量名4ac4ac,#g#g,a+1a+1,fn!afn!a,a$ /a$ /不合法的變量名不
55、合法的變量名2.3 常量與變量2.3.2 2.3.2 變變 量量2 2變量的定義變量的定義變量在使用之前必須先定義,要聲明自己的數(shù)據(jù)類型、存儲類型。變量在使用之前必須先定義,要聲明自己的數(shù)據(jù)類型、存儲類型。變量定義的一般格式為:變量定義的一般格式為:數(shù)據(jù)類型數(shù)據(jù)類型 變量名變量名1,1,變量名變量名2,2,,變量,變量n n;例如:例如:intint iSumiSum, , i L e n g t hi L e n g t h, x , y ; , x , y ; / / /定 義了定 義了 4 4個整型變量個整型變量iSum,iLength,x,yiSum,iLength,x,ychar c
56、har chch; ; /定義了一個字符型變量定義了一個字符型變量chchfloat float fSumfSum, , fWidthfWidth; ; /定義了定義了2 2實型(單精度)變量實型(單精度)變量fSumfSum, , fWidthfWidthdouble double u,vu,v; ; /定義了定義了2 2實型(雙精度)變實型(雙精度)變量量u,vu,v2.3 常量與變量2.3.2 2.3.2 變變 量量3 3變量的初始化變量的初始化C C語言允許在定義變量的同時使變量初始化。如:語言允許在定義變量的同時使變量初始化。如:intint a = 2; a = 2; /定義定義a
57、 a為整型變量,初值為為整型變量,初值為2 2char b = A; char b = A; /定義定義b b為字符型變量,初值為字符型變量,初值為為AAfloat x = 2.1234F; float x = 2.1234F; /定義定義x x為實型變量,初值為為實型變量,初值為2.1234F2.1234F也可對被定義的變量的部分變量進(jìn)行初始化。如也可對被定義的變量的部分變量進(jìn)行初始化。如intint u,vu,v = 10,w; = 10,w; /定義定義u,v,wu,v,w為整型變量,為整型變量,v v的初值為的初值為10102.4 運算符與表達(dá)式2.4.1 2.4.1 C C語言運算符
58、語言運算符常用的常用的C C語言的運算符有以下幾類:語言的運算符有以下幾類:(1) (1) 算術(shù)運算符:算術(shù)運算符: * * (2) (2) 關(guān)系運算符:關(guān)系運算符: = = = != = = = !=(3) (3) 邏輯運算符:邏輯運算符: ! & |& |(4) (4) 強制類型轉(zhuǎn)換運算符:()強制類型轉(zhuǎn)換運算符:()(5) (5) 自增、自減運算符:自增、自減運算符: (6) (6) 賦值運算符:賦值運算符: = =(7) (7) 條件運算符:條件運算符: ? :(8) (8) 逗號運算符:逗號運算符: ,2.4 運算符與表達(dá)式2.4.1 2.4.1 C C語言運算符語言運算符常用的常用
59、的C C語言的運算符有以下幾類:語言的運算符有以下幾類:( (9) 9) 指針運算符:指針運算符: * * & &(10) (10) 求字節(jié)數(shù)運算符:求字節(jié)數(shù)運算符:sizeofsizeof(11) (11) 位運算符:位運算符: | & | &(12) (12) 分量運算符:分量運算符: (13) (13) 下標(biāo)運算符:下標(biāo)運算符: 2.4 運算符與表達(dá)式2.4.2 2.4.2 算術(shù)運算符和算術(shù)表達(dá)式算術(shù)運算符和算術(shù)表達(dá)式C C語言的算術(shù)運算符包括基本算術(shù)運算符、強制類型轉(zhuǎn)換運算符和自增、語言的算術(shù)運算符包括基本算術(shù)運算符、強制類型轉(zhuǎn)換運算符和自增、自減運算符。自減運算符。1. 1. 基本算
60、術(shù)運算符基本算術(shù)運算符 C C語言提供如下幾種基本算術(shù)運算符。語言提供如下幾種基本算術(shù)運算符。 + + :加法運算符。如:加法運算符。如2+3,a+b2+3,a+b。 - - :減法運算符。如:減法運算符。如2-3,a-b2-3,a-b。 * * :乘法運算符。如:乘法運算符。如2 2* *3,a3,a* *b b。 / / :除法運算符。如:除法運算符。如2/3,a/b2/3,a/b。 % % :取余運算符。如:取余運算符。如10%2,a%b10%2,a%b。其中,加、減、乘、除運算符,與數(shù)學(xué)中的運算相同。其中,加、減、乘、除運算符,與數(shù)學(xué)中的運算相同。2.4 運算符與表達(dá)式2.4.2 2.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年學(xué)車合同模板:駕校與學(xué)員共同遵守
- 交通運輸?shù)V山采礦施工合同
- 光伏發(fā)電項目合同執(zhí)行監(jiān)督機制
- 2024年使用權(quán)互換協(xié)議:公寓轉(zhuǎn)讓合同
- 2024年工字鋼及鋼管租賃合同
- 2024年住宅抵押借款合同模板
- 2024年城市更新項目房產(chǎn)合作合同
- 2024年工程分包合同樣本
- 綠色建筑設(shè)計與施工合同
- 粘合劑購銷合同
- 市場監(jiān)管 食品安全 宣傳方案
- 財務(wù)管理的數(shù)字化轉(zhuǎn)型
- 當(dāng)前臺海局勢分析課件
- 戰(zhàn)爭中的經(jīng)濟(jì)學(xué)家
- 供水公司招聘抄表員試題
- 成長賽道-模板參考
- 浙江省9+1高中聯(lián)盟2022-2023學(xué)年高二上學(xué)期期中考試地理試題(解析版)
- 新生兒家庭參與式護(hù)理課件
- 酒店裝修施工組織設(shè)計方案
- 大數(shù)據(jù)對智能能源的應(yīng)用
- 血液透析預(yù)防體外循環(huán)凝血的策略護(hù)理課件
評論
0/150
提交評論