




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
項目1
與C語言相識項目1與C相識.pptx項目2學(xué)轉(zhuǎn)數(shù)據(jù).pptx項目3順序結(jié)構(gòu)程序設(shè)計.pptx項目4選擇結(jié)構(gòu)程序設(shè)計.pptx項目5循環(huán)結(jié)構(gòu)程序設(shè)計.pptx項目6數(shù)組.pptx項目7甘做老2的函數(shù).pptx項目8指針.pptx項目9結(jié)構(gòu)體與共用體.pptx項目10文件.pptx項目11班級財務(wù)管理系統(tǒng)的開發(fā).pptx全套PPT課件項目引入美國哈佛大學(xué)的網(wǎng)絡(luò)社會研究中心和瑞士圣加侖大學(xué)的信息法研究中心正在從另一個角度協(xié)作研究網(wǎng)絡(luò)化生存的問題,他們提出了一個新的概念—DigitalNatives(數(shù)字原住民),意為現(xiàn)代社會人們出生在一個網(wǎng)絡(luò)世界,對于他們而言,網(wǎng)絡(luò)就是他們的生活,數(shù)字化生存是他們從小就開始的生存方式。在網(wǎng)絡(luò)世界生活和工作需要用計算機進行交流,因此就要使用計算機語言。計算機語言在誕生的短短幾十年里,經(jīng)歷了一個從低級到高級的演變過程。具體地說,它經(jīng)歷了機器語言、匯編語言、高級語言3個階段。機器語言和匯編語言煩瑣費時,通用性較差。高級語言是目前應(yīng)用最廣泛的計算機語言。在當(dāng)前常用的計算機語言中,C語言是使用時間較長的一種語言,也是使用較為廣泛的一種通用語言,在軟件開發(fā)行業(yè)中具有強大的生命力。今天我們將開啟與C語言的華麗相識。項目知識要點知識能力目標(biāo)學(xué)時任務(wù)1走進C語言的世界
1走進C語言的世界2為什么選擇C語言3如何學(xué)好C語言任務(wù)2制作個人微型簡歷1C語言程序及結(jié)構(gòu)2編譯和運行C語言程序【知識目標(biāo)】(1)了解計算機語言的相關(guān)知識。(2)了解學(xué)習(xí)C語言的原因。(3)掌握C語言的基本框架。(4)掌握Dev-C++環(huán)境的使用方法?!灸芰δ繕?biāo)】(1)能夠理解C語言的特點及基本框架。(2)能夠使用Dev-C++環(huán)境調(diào)試程序。(3)能夠處理Dev-C++的常見錯誤【素質(zhì)目標(biāo)】(1)培養(yǎng)學(xué)生提出問題、分析問題和解決問題的能力。(2)培養(yǎng)學(xué)生獲取新知識、新技能、新方法的能力。(3)培養(yǎng)學(xué)生獨立思考的能力。(4)培養(yǎng)學(xué)生團體合作的能力和集體主義精神。2項目實訓(xùn)安裝Dev-C++軟件并進行簡單程序的調(diào)試2項目知識要點與目標(biāo)1.1走進C語言的世界
任務(wù)導(dǎo)入1772?年,瑞士數(shù)學(xué)大師歐拉在雙目失明的情況下,花了兩天的時間,靠心算證明了?231?1(2147483647)是第八個梅森素數(shù)。但如果通過計算機編程,可能用不了幾秒就能算出來,可見學(xué)習(xí)計算機編程語言是非常必要的。本任務(wù)要求通過查閱書籍資料、網(wǎng)絡(luò)資源等方式了解C語言。
任務(wù)分析
計算機編程語言既然是語言,那么它是什么時候誕生的?到現(xiàn)在又經(jīng)歷了哪些階段?計算機編程語言有多少種?為什么我們要先學(xué)習(xí)C語言?它有哪些魅力?這都是我們應(yīng)該了解并掌握的,下面我們就開啟這個美麗的邂逅吧!1.1走進C語言的世界1.1.1計算機語言
計算機語言(ComputerLanguage)是指用于人與計算機之間通信的語言,是人與計算機之間傳遞信息的媒介。
計算機語言根據(jù)功能和實現(xiàn)方法的不同大致可以分為?3?類,即機器語言、匯編語言和高級語言。1.機器語言機器語言是第一代計算機語言,是一臺計算機全部指令的集合。計算機的指令是由“0”和“1”組成的一串二進制數(shù),用機器語言編寫的程序就是一個個的二進制文件。2.匯編語言針對機器語言的不足,人們對其進行了改進,即用一些簡潔的英文字母、符號串來替代一個特定的指令,如用“ADD”代表加法、用“MOV”代表數(shù)據(jù)傳遞等,這樣一來,人們很容易讀懂并理解程序,糾錯及維護都變得方便了,這種程序設(shè)計語言稱為匯編語言,即第二代計算機語言。3.高級語言
機器語言和匯編語言雖然難記難寫,但它們的運行效率高,占用內(nèi)存小,這符合當(dāng)時計算機存儲器昂貴、處理器功能有限等硬件特性。1.1走進C語言的世界1.1.2為什么選擇C語言(1)C?語言是全世界用得最多的計算機程序語言。TIOBE
排行榜(世界編程語言排行榜)可以反映編程語言的受歡迎程度,近
20
年來
C
語言在大部分情況下排名第一,如圖?1-1?所示。
(2)C?語言對現(xiàn)代編程語言有巨大的影響。
毫不夸張地說,C
語言是現(xiàn)代編程語言的開山鼻祖,它改變了編程世界,許多現(xiàn)代編程語言都大量借鑒了?C?語言的特性。
(3)C語言適用領(lǐng)域廣泛。C
語言既有高級語言的優(yōu)點,又在很多方面保留了低級語言運行速度快、可直接映射硬件結(jié)構(gòu)的優(yōu)點。故操作系統(tǒng)、大型網(wǎng)絡(luò)游戲、單片機等都可以用?C?語言來開發(fā)。
(4)C語言簡潔、緊湊、使用靈活、功能強大、代碼執(zhí)行效率高。1.1走進C語言的世界1.1.3如何學(xué)好C語言1.要從計算機的角度來學(xué)習(xí)
在人和計算機的交流過程中,人是強勢的一方,計算機是弱勢的一方。人首先要掌握?C?語言的運算和語法規(guī)則,這個規(guī)則就是計算機能懂的語言。2.多動手、多思考,找到成就感
從看懂別人的程序到模仿、摸索、思考、實踐、編寫自己的第一個程序,這是一個漸進的過程。3.在獨立思考與求助之間找到平衡點
首先應(yīng)該嘗試獨自分析、獨立解決,因為這樣可以鍛煉我們自主解決問題的能力。但是個人的能力畢竟是有限的,當(dāng)我們無法自己解決時,就應(yīng)該嘗試調(diào)動一切可以調(diào)動的力量1.1走進C語言的世界
任務(wù)實施1.任務(wù)描述(1)實訓(xùn)任務(wù):借助網(wǎng)絡(luò)資源了解C語言的相關(guān)知識。(2)實訓(xùn)目的:了解C語言與其他計算機語言的不同點;學(xué)習(xí)C語言的使用方法;了解學(xué)習(xí)C語言過程中應(yīng)該注意的問題。2.任務(wù)實施(1)分組教學(xué),4~6?人一組,并選出組長。(2)請將查閱的相關(guān)內(nèi)容簡要總結(jié)。1.2制作個人微型簡歷任務(wù)導(dǎo)入前面簡單了解了C語言的概況,下面就可以開始學(xué)習(xí)具體的內(nèi)容了。那么究竟一個C語言程序是什么樣子?作為剛剛步入大學(xué)校門的計算機專業(yè)的學(xué)生,我們就首先使用C語言為自己制作微型簡歷,讓教師和同學(xué)們記住你的名字吧。任務(wù)分析要用C語言編寫程序在屏幕上輸出個人微型簡歷,就要了解C語言程序的結(jié)構(gòu)特點、編寫規(guī)則,學(xué)會使用C語言的編譯運行環(huán)境。本任務(wù)通過教師的演示和引導(dǎo),要求學(xué)生熟悉編寫C語言程序的環(huán)境和執(zhí)行C語言程序的過程,并掌握C語言程序的框架結(jié)構(gòu)特點及應(yīng)該注意的問題。1.2制作個人微型簡歷1.2.1C語言程序及結(jié)構(gòu)【例1.1】用C語言編程,在屏幕上顯示“你好,C語言!”。程序代碼如下:#include<stdio.h> //預(yù)處理命令intmain() //主函數(shù){printf("你好,C語言!\n"); //輸出函數(shù)return0; //返回值}例1.1程序的運行結(jié)果如圖1-2所示。1.2制作個人微型簡歷程序說明
(1)程序的第一行#include<stdio.h>是文件包含命令行,即以“#”開始的命令行。其意義是把“<
>”內(nèi)指定的文件引入本程序,使其成為本程序的一部分,被引入的文件通常由系統(tǒng)提供,其擴展名為.h,因此也稱頭文件或首部文件。C?語言的頭文件包括了各個標(biāo)準(zhǔn)庫函數(shù)的函數(shù)原型,因此,在程序中調(diào)用庫函數(shù)時,必須包含該函數(shù)原型的頭文件。在本例中,因為使用了?printf()函數(shù),所以需要引入文件?stdio.h。
(2)程序第二行的?main()為主函數(shù)。其中?main?是函數(shù)名,函數(shù)名后面的一對圓括號用來寫函數(shù)的參數(shù),當(dāng)沒有參數(shù)的時候是不可以省略的。在?C99?標(biāo)準(zhǔn)中?main()?函數(shù)的返回值類型必須是?int,這樣返回值才能傳遞給程序的激活者(如操作系統(tǒng))。特別注意的是在?C?語言程序中,每個?C?語言程序有且僅有一個主函數(shù)?main()。
(3)“{}”內(nèi)的程序稱為函數(shù)體,函數(shù)體通常由一系列語句組成,每個語句必須用分號結(jié)束。
(4)“//”后面的文字稱為注釋。注釋對編譯和運行不起作用,所以,注釋可以用漢字或英文字符表示,可以出現(xiàn)在一行的最右側(cè),也可以單獨成為一行,“//”后面的注釋稱為行注釋。C?語言還支持另一種注釋形式,即使用“/*”和“*/”括起來的一行或多行內(nèi)容,稱為塊注釋。
(5)return0?表示?main()?函數(shù)的返回值是?0,說明程序正常退出。若沒有此語句,則說明程序異常退出1.2制作個人微型簡歷2.C語言程序的構(gòu)成通過上面對程序的說明,現(xiàn)總結(jié)?C?語言程序的構(gòu)成。(1)一個源程序有且只有一個?main()?函數(shù),即主函數(shù)。main()?函數(shù)下面用“{}”括起來的部分是一個程序模塊。C?語言的程序總是從主函數(shù)開始執(zhí)行,并且到主函數(shù)結(jié)束。(2)以“#”開始的語句屬于預(yù)處理語句。源程序中可以有預(yù)處理語句,預(yù)處理語句通常加在源程序的最前面。(3)每個語句都必須以分號結(jié)束,但預(yù)處理語句、函數(shù)頭和“{}”后不加分號。(4)標(biāo)識符和關(guān)鍵字之間至少有一個空格。(5)源程序中需要解釋和說明的部分,可以通過添加注釋來增強程序的可讀性。編譯時,系統(tǒng)會跳過注釋行。1.2制作個人微型簡歷3.C語言程序的書寫規(guī)范無論使用哪種計算機語言,在編寫程序時,都需要養(yǎng)成良好的書寫規(guī)范。C?語言程序的書寫規(guī)范有以下幾點。(1)在C語言中,雖然一行可以有多個語句,一個語句也可以占多行,但建議一行只寫一個語句。(2)一般采用縮進格式來提高程序的可讀性和清晰度。(3)由于?C?語言起源于美國,因此單詞、標(biāo)點、特殊符號都需要在英文半角輸入法下輸入,否則無法識別,并且要注意區(qū)分中英文標(biāo)點。
(4)在程序中應(yīng)該加上必要的注釋。1.2制作個人微型簡歷1.2.2編譯和運行C語言程序1.C?語言程序的開發(fā)步驟一般要經(jīng)過編輯、編譯、連接和運行才能得到程序結(jié)果,如圖?1-3?所示為?C?語言程序的處理流程。(1)編輯??梢杂萌魏我环N編輯軟件將編寫好的C語言源程序輸入計算機,以純文本文件形式保存在計算機的磁盤上(不能設(shè)置字體、字號等)。(2)編譯。編譯過程使用C語言編譯程序?qū)⒕庉嫼玫脑闯绦蛭募?c”翻譯成目標(biāo)程序文件“.obj”。編譯程序?qū)υ闯绦蛑鹁錂z查語法錯誤,發(fā)現(xiàn)錯誤后不僅會顯示錯誤的位置(行號),還會告知錯誤類型。(3)連接。程序編譯后產(chǎn)生的可執(zhí)行目標(biāo)程序文件是可重定位的程序模塊,不能直接運行。生成可執(zhí)行目標(biāo)程序文件“.exe”。(4)運行。如果運行可執(zhí)行目標(biāo)程序文件達到了預(yù)期設(shè)計目的,那么這個C語言程序的開發(fā)過程便完成了。如果運行出錯,就需要再次回到編輯環(huán)境針對程序出現(xiàn)的錯誤進行修改,并重復(fù)“編輯→編譯→連接→運行”的過程,直到達到預(yù)期設(shè)計目的。圖?1-3C?語言程序的處理流程1.2制作個人微型簡歷2.C語言的運行環(huán)境
運行環(huán)境一般包括代碼編輯器、編譯器、調(diào)試器和圖形用戶界面工具,其集成了代碼的編寫功能、分析功能、編譯功能、調(diào)試功能。一般將這種集成了分析、編譯、調(diào)試等功能的軟件套組稱作集成開發(fā)環(huán)境(IntegratedDevelopmentEnvironment,IDE)。C
語言的集成開發(fā)環(huán)境有很多,包括?TurboC、VC++6.0、Dev-C++等。VC++6.0?是C++程序默認的編譯器,因為?C++是在?C?語言基礎(chǔ)上產(chǎn)生的,所以也兼容?C?語言的編譯和運行。VC++6.0?具有方便、直觀、快捷的編輯器及豐富的庫函數(shù),能夠把程序的編輯、編譯、連接和運行等操作全部集中在一個軟件中進行,十分方便。
本教材采用?Dev-C++編譯運行程序。Dev-C++是一個?Windows?環(huán)境下的?C/C++集成開發(fā)環(huán)境,是一款自由軟件,遵守?GPL(通用公共許可證)協(xié)議開發(fā)源代碼,使用MinGW32/GCC?編譯器,執(zhí)行?C/C++標(biāo)準(zhǔn)。其開發(fā)環(huán)境包括多頁面窗口、工程編輯器及調(diào)試器等,在工程編輯器中集合了編輯器、編譯器、連接程序和執(zhí)行程序,提供高亮度語法顯示和各種括號自動配對輸入,還有完善的調(diào)試功能,能夠滿足不同程度學(xué)生的需求,是學(xué)習(xí)?C/C++首選的開發(fā)工具。目前最高版本為?5.11,僅占用?48MB?的內(nèi)存空間。1.2制作個人微型簡歷(1)Dev-C++的安裝。從官網(wǎng)下載Dev-C++5.11(中文版)的安裝包,雙擊安裝包即可開始安裝,安裝語言選擇默認的“English”,如圖1-4所示,安裝內(nèi)容都選擇默認選項,然后選擇安裝路徑,即可完成安裝。
圖1-4Dev-C++5.11(中文版)安裝語言選擇對話框
安裝完成后,運行Dev-C++,此時出現(xiàn)如圖1-5所示的語言選項對話框,此時選擇“簡體中文/Chinese”,再單擊“Next”按鈕,在如圖1-6所示的對話框中設(shè)置字體、顏色和圖標(biāo),再單擊“Next”按鈕,完成設(shè)置后彈出如圖1-7所示的主程序窗口。1.2制作個人微型簡歷圖
1-5Dev-C++5.11(中文版)安裝后首次運行語言選項設(shè)置對話框圖
1-6Dev-C++5.11(中文版)安裝后首次運行主題設(shè)置對話框1.2制作個人微型簡歷(2)編輯器的設(shè)置。Dev-C++5.11(中文版)編輯器的許多菜單和命令與?Windows?操作系統(tǒng)中程序窗口的操作相似,此處不再贅述,下面主要介紹幾個常用的功能。為了方便編輯,首先對編輯器的參數(shù)進行修改:選擇“工具”→“編輯器屬性”選項,然后進行如下操作?!裨凇盎尽边x項卡下,勾選“自動縮進”“使用?Tab?字符”“增強?Home?鍵功能”復(fù)選框,同時取消勾選“智能Tab”復(fù)選框,如圖?1-8(a)所示?!裨凇帮@示”選項卡下,勾選“行號”復(fù)選框,如圖?1-8(b)所示?!裨凇罢Z法”選項卡下,選擇“預(yù)設(shè)”下拉列表中的“VisualStudio”,如圖?1-8(c)所示。●在“自動保存”選項卡下,勾選“啟用編輯器自動保存”復(fù)選框,如圖?1-8(d)所示,最后單擊“確定”按鈕。Dev-C++包含代碼格式化工具“AStyle”。首次使用時,單擊菜單“AStyle”中的“格式化選項”命令,打開如圖?1-9?所示的“格式化選項”對話框,建議括號風(fēng)格選用K&R,縮進風(fēng)格選用Tabs。設(shè)置完畢后,單擊菜單“AStyle”中的“格式化當(dāng)前文件”命令(快捷鍵“Ctrl+Shift+A”),就可以按照選定的格式對當(dāng)前文件進行格式化,從而實現(xiàn)自動整理括號和縮進。1.2制作個人微型簡歷1.2制作個人微型簡歷1.2制作個人微型簡歷(3)使用?Dev-C++調(diào)試運行例?1.1,用?C?語言編程,在屏幕上顯示“你好,C?語言!”。第一步,新建程序。在?Dev-C++主窗口中,單擊“文件”→“新建”→“源代碼”命令,這時在右邊的代碼編輯區(qū)中就可以輸入程序了,如圖?1-10?所示。第二步,輸入程序源碼。此時可以發(fā)現(xiàn)?C?語言的包含命令#include?會變成藍色,注釋會變成紅色,這有助于我們檢查和修改程序。另外,括號只需輸入左括號,右括號會自動出現(xiàn),引號也是如此。程序輸入后的窗口如圖?1-11?所示,編輯區(qū)左邊的裝訂線處會顯示行數(shù)。圖?1-10Dev-C++5.11(中文版)新建源代碼主窗口圖
1-11Dev-C++5.11(中文版)程序輸入后的窗口1.2制作個人微型簡歷第三步,保存程序。程序輸入完成后,必須先保存。單擊工具欄上的“保存”按鈕,或者使用快捷鍵“Ctrl+S”,打開“保存為”對話框,選擇保存文件的路徑并輸入文件名,保存類型為Csourcefiles(*.c),單擊“保存”按鈕完成操作,如圖1-12所示。第四步,編譯程序。程序編寫完成后,從主菜單單擊“運行”→“編譯”命令或按快捷鍵“Ctrl+F9”一次性完成程序的預(yù)處理、編譯和連接。再從主菜單單擊“編譯”→“運行”命令或按快捷鍵“Ctrl+F10”輸出運行結(jié)果。當(dāng)然,也可以使用工具欄上的編譯運行按鈕“”來實現(xiàn)。
當(dāng)單擊“編譯”→“運行”命令或使用工具欄上的編譯運行按鈕時,會一次性完成編譯、運行操作。在編譯過程中,若有錯誤,則會給出提示信息,此時要根據(jù)出錯信息的提示進行修改,再次編譯成功后,才能運行程序。圖1-12Dev-C++5.11(中文版)“保存為”對話框1.2制作個人微型簡歷例如,在程序中,我們將
printf
語句后面的分號去掉,再編譯程序,主窗口下方的調(diào)試信息窗口就會出現(xiàn)提示,指出錯誤的位置和性質(zhì),并統(tǒng)計錯誤和警告的個數(shù),如圖?1-13?所示。語法錯誤分為?error?和?warning?兩類。當(dāng)為?error?時,無法生成目標(biāo)程序文件,更不能執(zhí)行。而?warning?雖然不會影響目標(biāo)程序文件及可執(zhí)行目標(biāo)程序文件的生成,但有可能會影響程序的運行結(jié)果。因此,建議最好把所有的錯誤都一一改正。若編譯成功,沒有錯誤,則會彈出運行結(jié)果窗口。窗口中以虛線為界,上面是程序運行的結(jié)果,下面是固定的內(nèi)容,顯示程序運行的時間,提示按任意鍵繼續(xù),如圖?1-14?所示。圖?1-14Dev-C++5.11(中文版)運行結(jié)果窗口
圖?1-13Dev-C++5.11(中文版)編譯信息提示窗口1.2制作個人微型簡歷任務(wù)實施1.任務(wù)描述(1)實訓(xùn)任務(wù):利用C語言來為自己制作微型簡歷。(2)實訓(xùn)目的:練習(xí)使用Dev-C++集成開發(fā)環(huán)境,掌握C語言程序編譯、調(diào)試和運行的過程。(3)實訓(xùn)內(nèi)容:請參考圖1-15編寫程序,也可以自己實現(xiàn)個性化設(shè)置。2.任務(wù)實施(1)建議分組教學(xué),4~6人為一組,并選出組長。(2)寫出實施代碼。3.任務(wù)成果(1)請給出個人運行效果圖。(2)請總結(jié)任務(wù)實施過程中的重點、難點問題,以及收獲。圖
1-15實訓(xùn)圖示1.2制作個人微型簡歷考核評價1.主要評價標(biāo)準(zhǔn)每次任務(wù)評價分數(shù)的總分為?10?分。(1)任務(wù)完成及時。(2)代碼書寫規(guī)范,程序運行效果正常。(3)實施報告內(nèi)容真實可靠,條理清晰,書寫認真。(4)沒完成任務(wù),根據(jù)完成度進行扣分,故意抄襲實施報告扣?5?分。2.跟蹤練習(xí)編寫程序,按格式輸出下面的圖形。1.2制作個人微型簡歷項目小結(jié)
本項目介紹了C語言的發(fā)展和特點,以及學(xué)習(xí)C語言的方法,重點介紹了C語言程序的結(jié)構(gòu)特性、開發(fā)過程及集成開發(fā)環(huán)境Dev-C++的使用。
學(xué)生可以從簡單的小程序入手,通過上機練習(xí),熟悉集成開發(fā)環(huán)境Dev-C++的使用,同時理解和掌握C語言程序的書寫規(guī)范。練習(xí)過程中一定要戒驕戒躁,切忌浮躁、半途而廢。THANKS謝謝項目2學(xué)轉(zhuǎn)數(shù)據(jù)項目引入
上一個項目我們制作了微型簡歷,學(xué)習(xí)了C語言程序的基本結(jié)構(gòu)及簡單的輸出。在實際使用C語言編程時,需要處理各種各樣的數(shù)據(jù)。例如,如何使用程序語言描述一個人的年齡、性別、身高、體重等信息?再如,設(shè)計一個超市信息管理系統(tǒng),需要記錄商品的貨號、名稱、價格、數(shù)量、供應(yīng)商等數(shù)據(jù),這些數(shù)據(jù)又該如何描述?在C語言中,這些數(shù)據(jù)都屬于不同的類型,請帶著這些問題,繼續(xù)本項目的學(xué)習(xí)。開始之前,請思考并回答以下兩個問題。問題1:現(xiàn)實中有哪些類型的數(shù)據(jù)?問題2:不同類型的數(shù)據(jù)可以進行哪些運算?項目知識要點知識能力目標(biāo)學(xué)時任務(wù)2.1計算球的體積—基本數(shù)據(jù)類型、常量與變量1C語言的字符集、C語言的詞匯 2數(shù)據(jù)的變與不變—常量和變量3C語言中的數(shù)據(jù)類型任務(wù)2.2解密小密報—報文的加密與解密1字符型常量與
字符型變量任務(wù)2.3分離不同位的數(shù)字—運算符與表達式1C語言中的運算符2算術(shù)運算符和算術(shù)表達式3賦值運算符和賦值表達式4逗號運算符和逗號表達式5運算符的優(yōu)先級6強制類型轉(zhuǎn)換運算符【知識目標(biāo)】(1)掌握常量和變量的概念及作用。(2)掌握C語言中的基本數(shù)據(jù)類型。(3)掌握各種數(shù)學(xué)運算符的使用方法。(4)掌握把數(shù)學(xué)表達式轉(zhuǎn)換為C語言表達式的方法?!灸芰δ繕?biāo)】(1)能夠定義和使用變量。(2)能夠通過賦值語句為變量賦值并輸出變量的值。(3)能夠根據(jù)運算符的優(yōu)先級和結(jié)合性計算表達式的值。(4)能夠應(yīng)用Dev-C++進行C語言程序的編輯、編譯和執(zhí)行?!舅刭|(zhì)目標(biāo)】(1)培養(yǎng)學(xué)生提出問題、分析問題和解決問題的能力。(2)培養(yǎng)學(xué)生獲取新知識、新技能、新方法的能力。(3)培養(yǎng)學(xué)生獨立思考的能力。(4)培養(yǎng)學(xué)生團體合作的能力和集體主義精神。6項目知識要點與目標(biāo)2.1計算球的體積—基本數(shù)據(jù)類型、常量與變量
任務(wù)導(dǎo)入在
C?語言中,整型數(shù)據(jù)、實型數(shù)據(jù)該如何描述?什么是常量,什么又是變量?這些都是學(xué)習(xí)計算機語言需要掌握的基礎(chǔ)知識。下面通過求球的體積這個任務(wù)來進行學(xué)習(xí)。
任務(wù)分析已知:球的半徑為?r,整型;球的體積公式為,π?的值取?3.14,實型,并且在運算中保持不變。輸出:球的體積,實型數(shù)據(jù)。處理:利用公式,求球的體積。要想實現(xiàn)本任務(wù),首先應(yīng)明確程序中需要使用哪些類型的數(shù)據(jù),哪些是變量,哪些是常量,其與在數(shù)學(xué)中使用有哪些不同?這些都是本任務(wù)的學(xué)習(xí)要點。2.1計算球的體積—基本數(shù)據(jù)類型、常量與變量2.1.1C語言的字符集字符是組成語言最基本的元素。在C語言中,字符集由字母、數(shù)字、空白符、下畫線、標(biāo)點和特殊字符組成。在字符常量、字符串常量和注釋中還可以使用漢字或其他圖形符號。(1)字母:小寫字母a~z共26個,大寫字母A~Z共26個。(2)數(shù)字:0~9共10個。(3)空白符:空格符、制表符、換行符等統(tǒng)稱為空白符??瞻追辉谧址A亢妥址A恐衅鹱饔?。在其他地方出現(xiàn)時,只起間隔作用,對程序的編譯不產(chǎn)生影響,但在程序中適當(dāng)?shù)牡胤绞褂每瞻追梢栽鰪姵绦虻那逦群涂勺x性。(4)下畫線、標(biāo)點和特殊字符:C語言中的標(biāo)點和運算符如表2-1所示。2.1計算球的體積—基本數(shù)據(jù)類型、常量與變量表
2-1C語言中的標(biāo)點和運算符字符名稱字符名稱字符名稱字符名稱,逗號()圓括號\反斜杠/除號.圓點[]方括號~波浪號+加號;分號{}花括號#井號?減號?問號<>尖括號%百分號=等號‘單引號>
大于號&與|豎線“雙引號<
小于號^異或_下畫線:冒號!感嘆號*乘號
2.1計算球的體積—基本數(shù)據(jù)類型、常量與變量2.1.2C語言的詞匯1.標(biāo)識符
在程序中使用的變量名、函數(shù)名、數(shù)組名、標(biāo)點符號等統(tǒng)稱為標(biāo)識符。除庫函數(shù)中的函數(shù)名由系統(tǒng)定義外,其余都由用戶自定義。C?語言規(guī)定,標(biāo)識符只能是由字母(A~Z,a~z)、數(shù)字(0~9)、下畫線(_)組成的字符串,并且第一個字符必須是字母或下畫線。例如,a、x、x3、BOOK_1、sum5是合法的。
【思考】以下標(biāo)識符合法嗎?5a、f?a、-5x。
在使用標(biāo)識符時還必須注意以下幾點。
(1)標(biāo)識符的長度受各種版本?C?語言編譯系統(tǒng)的限制,同時也受機器型號的限制。如?C99?標(biāo)準(zhǔn)規(guī)定,編譯器至少應(yīng)該能夠處理?63?個字符(包括?63)以內(nèi)的內(nèi)部標(biāo)識符;編譯器至少應(yīng)該能夠處理?31?個字符(包括?31)以內(nèi)的外部標(biāo)識符。
(2)標(biāo)識符區(qū)分大小寫。如?BOOK?和?book?是兩個不同的標(biāo)識符。
(3)標(biāo)識符雖然可由用戶自定義,但標(biāo)識符是用于標(biāo)識某個量的符號。因此,命名應(yīng)賦予其相應(yīng)的意義,以便閱讀理解,做到顧名思義。2.1計算球的體積—基本數(shù)據(jù)類型、常量與變量
2.關(guān)鍵字
關(guān)鍵字也稱系統(tǒng)標(biāo)識符,是由?C?語言規(guī)定的具有特定意義的字符串,通常也稱保留字。用戶自定義的標(biāo)識符不應(yīng)與關(guān)鍵字相同。C?語言中的關(guān)鍵字分為以下幾類。
(1)類型說明符:用于定義、說明變量、函數(shù)或其他數(shù)據(jù)結(jié)構(gòu)的類型。如前面例題中用到的?int、double?等。
(2)語句定義符:用于表示一個語句的功能。
(3)預(yù)處理命令字:用于表示一個預(yù)處理命令。如前例中用到的?include。
3.運算符C
語言中含有相當(dāng)豐富的運算符。運算符與變量、函數(shù)一起組成表達式,表示各種運算功能。運算符由一個或多個字符組成。后面專門進行介紹。
4.分隔符C
語言中采用的分隔符有逗號和空格兩種。逗號主要用在類型說明和函數(shù)參數(shù)表中,用來分隔各個變量??崭穸嘤糜诟髡Z句的單詞之間,做間隔符。在關(guān)鍵字、標(biāo)識符之間必須有一個以上的空格符,否則會出現(xiàn)語法錯誤,如把?inta?寫成?inta?時,編譯器會把?inta?當(dāng)成一個標(biāo)識符處理,其結(jié)果必然出錯。2.1計算球的體積—基本數(shù)據(jù)類型、常量與變量
5.常量C
語言中使用的常量可分為數(shù)字常量、字符常量、字符串常量、符號常量、轉(zhuǎn)義字符常量等。后面專門進行介紹。
6.注釋符C
語言中的注釋符有兩種。
第一種是以“/*”開頭并以“*/”結(jié)尾的字符串。在“/*”和“*/”之間的即為注釋。同一注釋內(nèi)容出現(xiàn)在多行上時,使用這種注釋方法。
第二種是以“//”開頭的字符串,在“//”后面的即為注釋。注釋的內(nèi)容很短,只出現(xiàn)在一行上時,一般使用這種注釋方法,當(dāng)然也可以使用第一種注釋方法。
程序編譯時,不對注釋做任何處理。注釋可以出現(xiàn)在程序中的任何位置。注釋用來向用戶提示或解釋程序的意義。在調(diào)試程序時,對于暫不使用的語句也可以用注釋符,使編譯跳過不做處理,待調(diào)試結(jié)束后再去掉注釋符。2.1計算球的體積—基本數(shù)據(jù)類型、常量與變量2.1.3數(shù)據(jù)的變與不變—常量和變量
在?C?語言中,把計算過程中不變的量叫作常量,變化的量叫作變量。它們可與數(shù)據(jù)類型結(jié)合起來分類。如可分為整型常量、整型變量、浮點型常量、浮點型變量、字符型常量、字符型變量、枚舉常量、枚舉變量。
在程序中,常量可以不做說明直接引用,變量必須先定義后使用。
1.常量
在程序的運行過程中,值不能被改變的量就是常量。在?C?語言中,常量也有不同的表現(xiàn)形式。
1)直接常量
直接常量就是通常說的常數(shù),即從表面形式就可以判斷它屬于哪種數(shù)據(jù)類型。
例如:12?是整型,5.89?是實型,'7'是字符型。
2)符號常量
符號常量是指用編譯預(yù)處理語句#define?規(guī)定的一個標(biāo)識符代表的一個常量。一般在程序之前定義符號常量,并且通常用大寫字母標(biāo)識常量。一般形式:#define標(biāo)識符常量
例如:求球的體積,可以定義PI為常量,值為?3.14,聲明方式如下。#definePI3.142.1計算球的體積—基本數(shù)據(jù)類型、常量與變量【例?2.1】以下程序段是符號常量的應(yīng)用。#definePRICE30intmain(){intnum,total;num=10;total=num*PRICE;printf("total=%d",total);return0;}例?2.1?程序的運行結(jié)果如圖?2-1?所示。圖?2-1例?2.1?程序的運行結(jié)果●符號常量與變量不同,它的值在其作用域內(nèi)不能被改變,也不能再被賦值?!袷褂梅柍A康暮锰幨呛x清楚,并且能做到“一改全改”。2.1計算球的體積—基本數(shù)據(jù)類型、常量與變量
2.變量變量是指在程序執(zhí)行過程中值可以改變的量,變量具有3要素:變量類型、變量名和變量的值。認識變量應(yīng)從這3個要素入手。每個變量都有一個名稱,稱為變量名。變量在計算機內(nèi)存中占據(jù)一定的內(nèi)存單元,內(nèi)存單元中存放著變量的值。事實上,對變量名的使用就是對其值的使用,并且無須知道它存儲在哪個內(nèi)存單元。整型變量a的示意圖如圖2-2所示。
圖2-2整型變量a的示意圖在C語言中,變量必須遵循“先定義,再賦值,后使用”的原則。
1)定義變量在C語言中,使用變量前必須先定義。定義變量的形式如下:類型說明符變量名1,變量名2,變量名3,…;說明:變量的類型說明符會在后面的數(shù)據(jù)類型中詳細講解。定義變量的時候可以一次定義多個相同類型的變量,用逗號隔開。例如:inta,b,c;2.1計算球的體積—基本數(shù)據(jù)類型、常量與變量2)初始化變量初始化變量是指在定義變量的同時就給它賦一個初值。初始化變量的格式如下:類型說明符變量名1=初值1,變量名2=初值2,…;例如:inta=5;floatb=2.3,c=7.8;
3)給變量賦值定義變量時,系統(tǒng)會自動根據(jù)變量類型為其分配內(nèi)存空間。但是如果此變量在定義時沒有被初始化,那么它的值就是一個無法預(yù)料的、沒有意義的值,所以通常要給變量賦予一個有意義的值。變量定義完成以后,再給變量一個確定的值,可以采用數(shù)據(jù)輸入的方法,如通過調(diào)用函數(shù)scanf()給變量輸入數(shù)據(jù),也可以采用如下的賦值方法。變量名=表達式;例如:x=4;y=a+b;說明:在給變量賦值的語句中,“=”是賦值符號,不是等號。在C語言中,判斷兩個變量的數(shù)值是否相等用比較運算符“==”。賦值語句是把“=”右邊表達式的值賦給“=”左邊的變量。因此,像i=i+1這樣的在數(shù)學(xué)中被認為是不成立的表達式,在C語言中是成立的。它表示將i的值加上1后賦給i。2.1計算球的體積—基本數(shù)據(jù)類型、常量與變量2.1.4C語言中的數(shù)據(jù)類型1.基本類型—整型數(shù)據(jù)整型數(shù)據(jù)包括整型常量、整型變量。1)整型常量整型常量就是整常數(shù)。在?C?語言中,整常數(shù)有十進制、八進制和十六進制?3?種。在程序中是根據(jù)前綴來區(qū)分各種進制數(shù)的,因此在書寫整常數(shù)時不要把前綴弄錯。圖?2-3C語言中的數(shù)據(jù)類型
2.1計算球的體積—基本數(shù)據(jù)類型、常量與變量(1)十進制整常數(shù)。十進制整常數(shù)沒有前綴。數(shù)碼取值為0~9。以下各數(shù)是合法的十進制整常數(shù):237、?568、65535、1627。以下各數(shù)不是合法的十進制整常數(shù):023(不能有0)、23D(含有非十進制數(shù)碼)。(2)八進制整常數(shù)。八進制整常數(shù)必須以數(shù)字0開頭,即以0作為八進制整常數(shù)的前綴。數(shù)碼取值為0~7。八進制整常數(shù)通常是無符號數(shù)。以下各數(shù)是合法的八進制整常數(shù):015(十進制為13)、0101(十進制為65)、0177777(十進制為65535)。以下各數(shù)不是合法的八進制整常數(shù):256(無前綴0)、03A2(包含非八進制數(shù)碼)、?0127(包含負號)。(3)十六進制整常數(shù)。十六進制整常數(shù)的前綴為0X或0x。數(shù)碼取值為0~9,A~F或a~f。以下各數(shù)是合法的十六進制整常數(shù):0X2A(十進制為42)、0XA0(十進制為160)、0XFFFF(十進制為65535)。以下各數(shù)不是合法的十六進制整常數(shù):5A(無前綴0X)、0X3H(含有非十六進制數(shù)碼)。2.1計算球的體積—基本數(shù)據(jù)類型、常量與變量說明:●整常數(shù)的后綴是“L”或“l(fā)”。在不同字長的機器上,基本整常數(shù)的長度是不同的,如16位機器的基本整常數(shù)的長度是2字節(jié),32位機器的基本整常數(shù)的長度是4字節(jié)。也就是說整常數(shù)是有范圍的,通常通過在基本整常數(shù)的后面加后綴來表示長整常數(shù)。例如:十進制長整常數(shù):158L(十進制為158)、358000L(十進制為358000);八進制長整常數(shù):012L(十進制為10)、077L(十進制為63)、0200000L(十進制為65536);十六進制長整常數(shù):0X15L(十進制為21)、0X10000L(十進制為65536)。●整常數(shù)的無符號數(shù)的后綴為“U”或“u”。例如:358u、0x38Au、235Lu均為無符號數(shù)?!袂熬Y、后綴可同時使用以表示各種類型的數(shù)。例如:0XA5Lu表示十六進制無符號長整常數(shù)A5,其十進制為165?!纠?.2】以下選項中是合法整常數(shù)的是_________。A.10110BB.0386C.0XffaD.x2a2此題主要考查整常數(shù)的表示方法,答案為C。2.1計算球的體積—基本數(shù)據(jù)類型、常量與變量【例?2.3】以下程序運行后的輸出結(jié)果是_______。intmain(){inta,b,c;a=25;b=025;c=0x25;printf("%d%d%d\n",a,b,c);return0;}此題主要考查整常數(shù)的表示方法及八進制和十六進制與十進制之間的轉(zhuǎn)化,例?2.3程序的運行結(jié)果如圖?2-4?所示。圖?2-4例?2.3程序的運行結(jié)果2.1計算球的體積—基本數(shù)據(jù)類型、常量與變量2)整型變量用來存放整型數(shù)據(jù)的變量就是整型變量。整型變量是常用的變量類型。(1)整型變量的分類。在?C?語言中,有多種整型數(shù)據(jù)類型,如基本整型、長整型、短整型、無符號整型等,以適應(yīng)不同應(yīng)用的需求。各種整型數(shù)據(jù)的區(qū)別在于:采用不同位數(shù)的二進制編碼表示,占用不同的內(nèi)存空間,表示不同的數(shù)值范圍。目前計算機通常是?32?位的系統(tǒng),各種整型數(shù)據(jù)的類型名、類型說明符、取值范圍及占據(jù)的字節(jié)數(shù)如表?2-2?所示。類型名類型說明符取值范圍占據(jù)的字節(jié)數(shù)短整型short[int]?215~(215?1),即?32768~327672無符號短整型unsignedshort[int]0~(216?1),即?0~655352基本整型int?231~(231?1),即?2147483648~21474836474無符號整型unsignedint0~(232?1),即?0~42949672954長整型longint?231~(231?1),即?2147483648~21474836474無符號長整型unsignedlong0~(232?1),即?0~42949672954表
2-2整型數(shù)據(jù)類型(適用?32?位機)2.1計算球的體積—基本數(shù)據(jù)類型、常量與變量在數(shù)學(xué)中只有整數(shù)一個類型,那為什么?C?語言中有這么多數(shù)據(jù)類型呢?根據(jù)計算機原理可知,計算機的程序都是在內(nèi)存中運行的,而內(nèi)存空間相對比較寶貴,劃分數(shù)據(jù)類型就是為了節(jié)約計算機內(nèi)存。因為有的整數(shù)不可能太大,如人的年齡,有的不可能為負,如單位的員工人數(shù),所以可以根據(jù)實際數(shù)據(jù)的大小和性質(zhì)選擇不同的類型。(2)整型變量的定義及初始化。聲明整型變量的常用例子如下:inta,b,c;longx,y;unsignedp,q;intd=10;2.1計算球的體積—基本數(shù)據(jù)類型、常量與變量2.基本類型—實型數(shù)據(jù)實型數(shù)據(jù)又稱實數(shù)或浮點數(shù),是指帶有小數(shù)部分的非整數(shù)數(shù)值。1)實型常量在?C?語言中,實數(shù)只用十進制數(shù)表示,常量有兩種表現(xiàn)形式。(1)小數(shù)形式:由數(shù)字?0~9?和小數(shù)點組成,小數(shù)點不能省略。例如:0.0、25.1、.125、22.、?45.32?等均為合法的實型常量。(2)指數(shù)形式:由十進制數(shù)、階碼標(biāo)志(“e”或“E”)和階碼(必須是整數(shù))組成。其一般形式為:aEna?為十進制數(shù),n?為十進制整數(shù),aEn的值為?a*10n。例如:以下是合法的實數(shù):2.1E5(等于?2.1*105)、3.7E?2(等于?3.7*10?2)、0.5E7(等于?0.5*107)、?2.8E?2(等于?2.8*10?2)。以下不是合法的實數(shù):345(無小數(shù)點)、E7(階碼標(biāo)志E之前無數(shù)字)、?5(無階碼標(biāo)志)、53.?E3(負號位置不對)、2.7E(無階碼)?!咎崾尽啃?shù)形式直觀易讀,指數(shù)形式適合表示絕對值較大或較小的數(shù)值。2.1計算球的體積—基本數(shù)據(jù)類型、常量與變量類型名類型說明符占用的字節(jié)數(shù)有效數(shù)字數(shù)值范圍單精度實型float46~7雙精度實型double815~162)實型變量(1)實型數(shù)據(jù)在內(nèi)存中的存放形式。實型數(shù)據(jù)在內(nèi)存中都是以浮點形式存放的。而且無論數(shù)值大小,一個實型數(shù)據(jù)都被分為小數(shù)和指數(shù)兩部分,也就是說實型數(shù)據(jù)按指數(shù)形式存儲。如實數(shù)?3.14159?在內(nèi)存中的存放形式如下。
符號
小數(shù)部分指數(shù)●小數(shù)部分占的位數(shù)越多,表示有效數(shù)字越多,精度越高。●指數(shù)部分占的位數(shù)越多,表示的數(shù)值范圍越大。(2)實型變量的分類。實型變量的類型主要有兩種:單精度實型(float?型)、雙精度實型(double?型)。各種實型變量類型的類型名、類型說明符等信息如表?2-3?所示。表?2-3實型變量的類型+.31415912.1計算球的體積—基本數(shù)據(jù)類型、常量與變量(3)實型變量的定義及初始化。實型變量的定義和初始化的格式和書寫規(guī)則與整型變量類似。例如:floatx,y; //x,y?為單精度實型量doublea=3.5,b,c; //a,b,c?為雙精度實型量(4)實型變量的舍入誤差。由于實型變量是由有限個內(nèi)存單元組成的,因此能提供的有效數(shù)字總是有限的,如例2.4?!纠?2.4】以下程序段考查的是實型變量的舍入誤差。注意:1.0/3*3?的結(jié)果并不等于?1。運行結(jié)果如圖?2-5?所示。intmain(){floata;doubleb;a=33333.33333;b=33333.33333333333333;printf("%f\n%f\n",a,b);return0;
}圖2-5例2.4程序的運行結(jié)果從例2.4中可以看出,a是單精度浮點型,有效位數(shù)為7位。由于整數(shù)已占5位,因此只有小數(shù)點后的兩位數(shù)字是有效數(shù)字。b是雙精度型,有效位數(shù)為16位,所以小數(shù)位中有6位是準(zhǔn)備位。通過此例題可以看出,根據(jù)實際情況,將float類型改為double類型可以避免因運算超出存儲范圍而產(chǎn)生的溢出問題,從而消除誤差?;绢愋椭凶畛S玫念愋瓦€有字符型,我們將在任務(wù)2.2中進行介紹。2.1計算球的體積—基本數(shù)據(jù)類型、常量與變量
任務(wù)實施1.任務(wù)描述(1)實訓(xùn)任務(wù):求任意半徑球的體積。(2)實訓(xùn)目的:練習(xí)Dev-C++集成開發(fā)環(huán)境的使用;掌握C語言中基本的字符集、標(biāo)識符的規(guī)則;掌握常量與變量的區(qū)別;掌握C語言中基本數(shù)據(jù)類型的使用方法。(3)實訓(xùn)內(nèi)容:通過隨機錄入球的半徑,求球的體積。2.任務(wù)實施(1)建議分組教學(xué),4~6人為一組,并選出組長。(2)寫出實施代碼。3.任務(wù)成果(1)請給出運行結(jié)果圖。(2)請總結(jié)任務(wù)實施過程中的重點、難點問題,以及收獲。2.1計算球的體積—基本數(shù)據(jù)類型、常量與變量
考核評價1.主要評價標(biāo)準(zhǔn)每次任務(wù)評價分數(shù)的總分為10分。(1)任務(wù)完成及時。(2)代碼書寫規(guī)范,程序運行效果正常。(3)實施報告內(nèi)容真實可靠,條理清晰,書寫認真。(4)沒完成任務(wù),根據(jù)完成度進行扣分,故意抄襲實施報告扣5分。2.跟蹤練習(xí)已知一個圓的半徑為2.5cm,求圓的周長和面積,并寫出程序代碼。任務(wù)2.2解密小密報—報文的加密與解密
任務(wù)導(dǎo)入上個任務(wù)學(xué)習(xí)了C語言中整型和實型兩種基本類型,下面學(xué)習(xí)基本類型中的字符型。王明在學(xué)習(xí)了字符型數(shù)據(jù)后,決定編制一個密碼器,實現(xiàn)給好友李曉發(fā)送加密電報。報文由小寫字母?a~n、空格及標(biāo)點符號組成,在發(fā)報時希望每輸入一個字母,輸出與其相鄰的下一個字母。例如,輸入是“l(fā)ove”,輸出應(yīng)得到“mpwf
”。
任務(wù)分析分析以上任務(wù),在實現(xiàn)時應(yīng)做到。輸入:將輸入的小寫字母、空格和標(biāo)點符號存儲到變量?word?中。處理:對輸入的數(shù)據(jù)進行判斷,看是否在?a~z?的范圍內(nèi),如果在就進行加密處理,輸出加?1?后的字符型數(shù)據(jù),最后把加密后的數(shù)據(jù)存儲到輸出變量中。輸出:加密后的字母存儲到變量?password?中,最后輸出?password?中的數(shù)據(jù)。任務(wù)2.2解密小密報—報文的加密與解密2.2.1字符型常量1.字符常量在C語言中,字符常量有兩種類型。(1)普通字符:用單引號引起來的單個字符。例如:'%''2''a''A'。說明:'a'和'A'是不同的兩個字符常量。單引號中的空格符也是一個字符常量。字符常量在內(nèi)存中占一字節(jié),內(nèi)存中存放的是字符的?ASCII?碼的值。如'a'的值是?97,'A'的值是?65,'2'的值是?50。(2)轉(zhuǎn)義字符。ASCII?碼表中的?128?個字符,除可以直接從鍵盤上輸入的字符(如英文字母、數(shù)字、標(biāo)點符號等)外,還有一些字符是無法用鍵盤直接輸入的,例如,“回車”需要采用一種新的定義方式—轉(zhuǎn)義字符。轉(zhuǎn)義字符是一種特殊的字符常量。轉(zhuǎn)義字符以反斜線“\”開頭,后跟一個或幾個字符。轉(zhuǎn)義字符具有特定的含義,不同于字符原有的意義,故稱“轉(zhuǎn)義”字符。轉(zhuǎn)義字符主要用來表示那些用一般字符不便于表示的控制代碼。如表?2-4?所示為常用的轉(zhuǎn)義字符及其含義。任務(wù)2.2解密小密報—報文的加密與解密轉(zhuǎn)義字符轉(zhuǎn)義字符的含義ASCII碼(十進制)\n回車換行10\t橫向跳到下一制表位置9\b退格8\r回車13\f走紙換頁12\\反斜線符“\”92\'單引號符39\''雙引號符34\ddd1~3?位八進制數(shù)所代表的字符
\xhh1~2?位十六進制數(shù)所代表的字符
表
2-4常用的轉(zhuǎn)義字符及其含義
廣義地講,C?語言字符集中的任何一個字符均可用轉(zhuǎn)義字符來表示。表中的“\ddd”和“\xhh”正是為此而提出的,其中的“ddd”和“hh”分別為八進制和十六進制的?ASCII?碼。如“\101”表示字母A,“\102”表示字母B,“\134”表示反斜線,“\x0a”表示換行等。任務(wù)2.2解密小密報—報文的加密與解密【例?2.5】以下程序段使用的是轉(zhuǎn)義字符。intmain(){printf("凵凵?ab?凵凵?c\tde\rf\n");printf("hijk\tL\bM\n");return0;}此題主要考查轉(zhuǎn)義字符的使用,運行結(jié)果為(凵代表空格):f?凵?ab?凵凵?c?凵?dehijk?凵凵凵凵M2.字符串常量字符串常量是用雙引號引起來的0個、一個或多個字符序列。例如:"beijing""ILOVEYOU"等都是合法的字符串常量。字符串常量在存儲時,依次存放的是字符串中的每個字符和字符串結(jié)束標(biāo)志“\0”,所以字符串在內(nèi)存中所占的字節(jié)數(shù)為字符串的字符數(shù)+1,如"beijing"在內(nèi)存中占7+1字節(jié)。書寫字符串時不必加“\0”,系統(tǒng)存儲時會自動添加。3.字符常量與字符串常量的區(qū)別字符常量和字符串常量是不同的量。它們之間主要有以下區(qū)別。(1)字符常量由單引號引起來,字符串常量由雙引號引起來。(2)字符常量只能是單個字符,字符串常量則可以含?0?個、一個或多個字符。(3)字符常量可以賦給一個字符變量,但字符串常量不可以。在C語言中沒有相應(yīng)的字符串變量,可以使用字符數(shù)組來存放字符串常量。(4)字符常量占一字節(jié)的內(nèi)存空間,字符串常量在內(nèi)存中所占的字節(jié)數(shù)為字符個數(shù)+1,最后增加字符串結(jié)束標(biāo)志“\0”(ASCII碼為?0)。例如,字符串常量"Cprogram"在內(nèi)存中的存儲情況為:此外,字符常量'a'和字符串常量"a"雖然都只有一個字符,但其占用內(nèi)存的情況是不同的。'a'在內(nèi)存中占一字節(jié),表示為:"a"在內(nèi)存中占兩字節(jié),表示為:任務(wù)2.2解密小密報—報文的加密與解密C
program\0aa\0任務(wù)2.2解密小密報—報文的加密與解密2.2.2字符型變量字符型變量用來存儲字符常量,即單個字符,在內(nèi)存中占用一字節(jié)。字符型變量的類型說明符是?char,定義的格式和書寫規(guī)則與整型變量相同。例如:chara,b;注意:(1)在C?語言中,沒有字符串變量,不能將一個字符串常量賦給一個字符型變量,要想存放字符串,必須使用數(shù)組。(2)字符型變量存儲的是該字符二進制形式的ASCII碼,因此字符型數(shù)據(jù)和整型數(shù)據(jù)之間可以進行運算。字符型數(shù)據(jù)輸出時既可以是字符形式,也可以是整數(shù)形式?!纠?2.6】輸出字符型變量的程序如下,運行結(jié)果如圖2-6所示。#include<stdio.h>intmain(){
charc1,c2;c1='a';c2=97;printf("%c,%c\n",c1,c2);printf("%d,%d\n",c1,c2);return0;
}圖2-6例2.6程序的運行結(jié)果任務(wù)2.2解密小密報—報文的加密與解密
任務(wù)實施1.任務(wù)描述(1)實訓(xùn)任務(wù):報文的加密與解密。(2)實訓(xùn)目的:練習(xí)Dev-C++集成開發(fā)環(huán)境的使用;掌握C語言基本字符型常量與字符串的區(qū)別及使用方法;掌握C語言字符型變量的使用方法。(3)實訓(xùn)內(nèi)容:編制一個密碼器,實現(xiàn)給好友李曉發(fā)送加密電報,報文由小寫字母a~n組成,要求在發(fā)報文時每輸入一個字母,輸出與其相鄰的下一個字母。如原文是“l(fā)ove”,輸出得到“mpwf”。2.任務(wù)實施(1)建議分組教學(xué),4~6人為一組,并選出組長。(2)請給出實施代碼。3.任務(wù)成果(1)給出個人運行效果。(2)請總結(jié)任務(wù)實施過程中的重點、難點問題,以及收獲。任務(wù)2.2解密小密報—報文的加密與解密
考核評價1.主要評價標(biāo)準(zhǔn)每次任務(wù)評價分數(shù)的總分為10分。(1)任務(wù)完成及時。(2)代碼書寫規(guī)范,程序運行效果正常。(3)實施報告內(nèi)容真實可靠,條理清晰,書寫認真。(4)沒完成任務(wù)時,根據(jù)完成情況扣分,故意抄襲實施報告扣5分。2.跟蹤練習(xí)將China譯成Glmre,并寫出程序代碼。任務(wù)2.3分離不同位的數(shù)字—運算符與表達式
任務(wù)導(dǎo)入前面兩個任務(wù)學(xué)習(xí)了C語言中的3種基本數(shù)據(jù)類型,下面將結(jié)合實際任務(wù)對數(shù)據(jù)進行運算。對于數(shù)學(xué)中的各種運算在C語言程序中如何實現(xiàn),下面結(jié)合“分離不同位的數(shù)字”的任務(wù)對相關(guān)知識進行講解。請編寫程序?qū)崿F(xiàn),從鍵盤輸入一個3位的十進制整數(shù),對各個位的數(shù)字進行分離和輸出。例如,輸入396,輸出的個位數(shù)是6,十位數(shù)是9,百位數(shù)是3。
任務(wù)分析輸入:一個3位的十進制整數(shù)。處理:分別找出百位數(shù)、十位數(shù)和個位數(shù)。輸出:百位數(shù)、十位數(shù)和個位數(shù)。任務(wù)2.3分離不同位的數(shù)字—運算符與表達式2.3.1C語言中的運算符C語言中包含大量的運算符和表達式,這在高級語言中是少見的。正是有了這些豐富的運算符和表達式才使得C語言的功能十分完善,這也是C語言的主要特點之一。C語言中的運算符不僅有不同的優(yōu)先級,還有不同的結(jié)合性,結(jié)合性增加了C語言運算的復(fù)雜性。在表達式中,要通過運算符的優(yōu)先級和結(jié)合性兩個方面確定是自左向右進行運算還是自右向左進行運算。在C語言中,運算符可以分為以下幾類:算術(shù)運算符、關(guān)系運算符、邏輯運算符、賦值運算符、條件運算符、逗號運算符、指針運算符、求字節(jié)數(shù)運算符和特殊運算符。關(guān)系運算符、邏輯運算符和條件運算符多在選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)中用于條件的判斷,這部分內(nèi)容將在項目4進行講解,指針運算符將在項目9進行講解。任務(wù)2.3分離不同位的數(shù)字—運算符與表達式2.3.2算術(shù)運算符和算術(shù)表達式運算符號運算符說明示例結(jié)合性說明+正號+a自右向左一元運算符-減號-a自右向左一元運算符+加法a+b自左向右二元運算符-減法a-b自左向右二元運算符*乘法a*b自左向右二元運算符/除法a/b自左向右二元運算符%求余或求模a%b自左向右二元運算符1.算術(shù)運算符C語言中常用的算術(shù)運算符如表?2-5?所示。注意問題:(1)除法運算符(/):當(dāng)參與運算的量均為整型時,其結(jié)果也應(yīng)為整型,小數(shù)部分應(yīng)舍去;當(dāng)參與運算的量中有一個量是實型時,其結(jié)果應(yīng)為雙精度實型。(2)求余運算符(%):要求參與運算的量均為整型,結(jié)果等于兩個量相除的余數(shù)。表?2-5C語言中常用的算術(shù)運算符任務(wù)2.3分離不同位的數(shù)字—運算符與表達式【例?2.7】以下程序段是除和求余運算符的運用。#include<stdio.h>intmain(){printf("%d,%d\n",20/7,-20/7);printf("%f,%f\n",20.0/7,-20.0/7);printf("%d\n",100%3);return0;}運行結(jié)果如圖2-7所示。圖2-7例2.7程序的運行結(jié)果任務(wù)2.3分離不同位的數(shù)字—運算符與表達式2.算術(shù)表達式表達式是由常量、變量、函數(shù)和運算符組合起來的式子。單個的常量、變量、函數(shù)可以看作表達式的特例。用算術(shù)運算符和括號將運算對象(也稱操作數(shù))連接起來的、符合C語言語法規(guī)則的式子稱為算術(shù)表達式,以下是算術(shù)表達式的例子。a+b(a*2)/c(x+r)*8?(a+b)/7++isin(x)+sin(y)本任務(wù)要求獲得一個3位十進制整數(shù)的個位、十位和百位,可以借助除法運算和取余運算求解。例如:375的個位數(shù)可以通過375%10得到;十位數(shù)可以通過375/10%10得到;百位數(shù)可以通過375/100取整得到。任務(wù)2.3分離不同位的數(shù)字—運算符與表達式2.3.3賦值運算符和賦值表達式1.賦值運算符和賦值表達式賦值運算符(=)的作用是將一個數(shù)值賦給一個變量。賦值運算符的優(yōu)先級比算術(shù)運算符、關(guān)系運算符和邏輯運算符低。由“=”連接的式子稱為賦值表達式。賦值表達式的一般形式為:變量=表達式;例如:x=a+b;w=sin(a)+sin(b);y=i+++??j;賦值表達式的功能是先計算表達式的值,再賦給左邊的變量,具有右結(jié)合性。因此a=b=c=5可理解為a=(b=(c=5))。在其他高級語言中,賦值構(gòu)成了一個語句,稱為賦值語句。而在C語言中,把“=”定義為運算符,由其組成賦值表達式。如x=(a=5)+(b=8)是合法的,它的意義是把5賦給a,8賦給b,再把a和b相加的結(jié)果賦給x,故x的值應(yīng)為13。按照C語言的規(guī)定,任何表達式在末尾加上分號就構(gòu)成語句,凡是表達式可以出現(xiàn)的地方均可以出現(xiàn)賦值表達式。如x=8和a=b=c=5;都是賦值語句。任務(wù)2.3分離不同位的數(shù)字—運算符與表達式2.賦值運算引起的類型轉(zhuǎn)換當(dāng)賦值運算符兩邊的數(shù)據(jù)類型不相同時系統(tǒng)會自動進行數(shù)據(jù)類型的轉(zhuǎn)換,即把賦值運算符右邊的類型轉(zhuǎn)換為賦值運算符左邊的類型。具體規(guī)定如下。(1)將實型數(shù)據(jù)賦給整型變量時,舍去小數(shù)部分。(2)將整型數(shù)據(jù)賦給實型變量時,數(shù)值不變,但以浮點數(shù)的形式存放,即增加小數(shù)部分(小數(shù)部分的值為?0)。(3)將字符型數(shù)據(jù)賦給整型變量時,由于字符型數(shù)據(jù)在內(nèi)存中占一字節(jié),而整型變量在內(nèi)存中占?4?字節(jié),因此將字符型數(shù)據(jù)的前八位放到整型變量的低八位中。反過來將整型數(shù)據(jù)賦給字符型變量時,只將整型數(shù)據(jù)的低八位賦給字符型變量?!纠?2.8】以下程序段是由賦值運算引起的數(shù)據(jù)類型的轉(zhuǎn)換。#include<stdio.h>intmain(){inta,b=322,c;floatx,y=8.88;charc1='k',c2;a=y;x=b;c=c1;c2=b;printf("%d\t%f\t%d\t%c\t",a,x,a,c2);}圖2-8例2.8程序的運行結(jié)果任務(wù)2.3分離不同位的數(shù)字—運算符與表達式3.復(fù)合賦值運算符在賦值運算符“=”之前加上其他的雙目運算符可以構(gòu)成復(fù)合賦值運算符,如+=、-=、*=、/=、%=、<<=、>>=、&=、^=、|=。復(fù)合賦值運算符十分有利于編譯處理,可以提高編譯效率并產(chǎn)生質(zhì)量較高的目標(biāo)代碼。復(fù)合賦值表達式的一般形式為:變量復(fù)合賦值運算符表達式;例如:a+=5;//等價于a=a+5x*=y+7;//等價于x=x*(y+7)r%=p;//等價于r=r%p【例2.9】以下程序段執(zhí)行的是復(fù)合賦值運算,運行結(jié)果如圖2-9所示。#include<stdio.h>intmain(){inta;charc=10;floatf=100.0;doublex;a=f/=c*=(x=6.5);printf("%d
%d
%f
%f\n",a,c,f,x);return0;}圖2-9例2.9程序的運行結(jié)果任務(wù)2.3分離不同位的數(shù)字—運算符與表達式4.自增、自減運算符復(fù)合賦值運算有兩種特殊情形a+=1和a?=1,在C語言中,通常把它們縮寫成++a和??a,這里的運算符++和??,稱為自增運算符和自減運算符。自增運算符和自減運算符有兩種形式,一種是前綴形式,即把運算符放在變量的前面;另一種是后綴形式,即把運算符放在變量的后面。前綴形式:++變量、??變量。后綴形式:變量++、變量??。前綴形式++i或??i的運算規(guī)則是:把i+1或i?1的值賦給變量i,而表達式(++i或??i)取變量i被賦值后的值,即++i與i=i+1等價,??i與i=i?1等價。后綴形式i++或i??的運算規(guī)則是:把i+1或i?1的值賦給變量i,而表達式(i++或i??)取變量i被賦值前的值。i++和i??在理解和使用上容易出錯。特別是當(dāng)它們出現(xiàn)在較復(fù)雜的表達式或語句中時,容易引起意想不到的錯誤,不建議頻繁使用。使用時可以借助小括號來標(biāo)識表達式的組成結(jié)構(gòu)。任務(wù)2.3分離不同位的數(shù)字—運算符與表達式【例?2.10】以下程序段執(zhí)行的是自增自減運算,運行結(jié)果如圖2-10所示。#include<stdio.h>intmain(){inti=8;printf("%d\n",++i); //i?的初值為?8,i?加?1?后的輸出為?9printf("%d\n",--i); //i?先減?1?后再輸出,i?為?8printf("%d\n",i++); //先輸出表達式的值?8,然后?i?執(zhí)行+1?操作,i?變?yōu)?9printf("%d\n",i--); //先輸出表達式的值?9,然后?i?執(zhí)行-1?操作,i?變?yōu)?8printf("%d\n",-i++); //先輸出表達式的值-8,然后?i?執(zhí)行+1?操作,i?變?yōu)?9printf("%d\n",-i--); //先輸出表達式的值-9,然后?i?執(zhí)行-1?操作,i?變?yōu)?8return0;}圖2-10例2.10程序的運行結(jié)果任務(wù)2.3分離不同位的數(shù)字—運算符與表達式2.3.4逗號運算符和逗號表達式在?C?語言中,逗號也是一種運算符,稱為逗號運算符。其功能是把兩個表達式連接起來組成一個表達式,稱為逗號表達式。其一般形式為:表達式?1,表達式?2;逗號表達式的計算過程是分別求兩個表達式的值,并以表達式?2?的值作為整個逗號表達式的值。【例?2.11】已知?x?和?y?都是?int?型變量,x=100,y=200,那么?printf("%d",(x,y))的輸出結(jié)果是______。A.200B.100C.100200D.輸出格式符不夠,輸出不確定的值本例中,y?等于整個逗號表達式(x,y)的值,也就是?200,因此輸出為?200。【例?2.12】以下程序的輸出結(jié)果是______。intmain(
){inta=666,b=888;printf("%d\n",a,b);return0;}A.錯誤信息B.666C.888D.666,888注意此題和例?2.11?不同,答案為B。任務(wù)2.3分離不同位的數(shù)字—運算符與表達式2.3.5運算符的優(yōu)先級在C語言中,運算符的優(yōu)先級分為15級。1級最高,15級最低。在表達式中,優(yōu)先級較高的運算符先于優(yōu)先級較低的運算符進行運算。當(dāng)一個運算量兩側(cè)的運算符的優(yōu)先級相同時,按運算符的結(jié)合性所規(guī)定的結(jié)合方向進行運算。在C語言中,各運算符的結(jié)合性分為兩種,即左結(jié)合性和右結(jié)合性。如算術(shù)運算符的結(jié)合性是自左至右,即先左后右。例如,表達式x?y+z,其運算順序為y先與“?”結(jié)合,執(zhí)行x?y運算,再執(zhí)行+z的運算。而自右至左的結(jié)合方向稱為右結(jié)合性。最典型的右結(jié)合性運算符是賦值運算符。例如,x=y=z,由于“=”的右結(jié)合性,因此應(yīng)先執(zhí)行y=z再執(zhí)行x=(y=z)。2.3.6強制類型轉(zhuǎn)換運算符在C語言中,可以把一種類型的數(shù)據(jù)通過強制類型轉(zhuǎn)換運算符轉(zhuǎn)換為另一種類型的數(shù)據(jù)。其
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度高端別墅室內(nèi)裝飾設(shè)計與施工合同
- 體育產(chǎn)業(yè)智慧場館建設(shè)與賽事運營支持方案
- 《國際政治格局演變歷程:高中政治教學(xué)教案》
- 乘用車行業(yè)智能化生產(chǎn)與銷售方案
- 經(jīng)典科學(xué)故事讀后感
- 車輛銷售服務(wù)合同附加條款
- 防盜門銷售合同協(xié)議書
- 服裝公司服裝買賣協(xié)議
- 健康產(chǎn)業(yè)產(chǎn)品推廣與營銷策略
- 裝修增項補充合同協(xié)議
- 2025年湖南省高職單招《職業(yè)技能測試》核心考點試題庫500題(重點)
- 2025年無錫科技職業(yè)學(xué)院高職單招高職單招英語2016-2024歷年頻考點試題含答案解析
- 《復(fù)式條形統(tǒng)計圖》(說課稿)-2023-2024學(xué)年四年級下冊數(shù)學(xué)人教版
- 微量注射泵培訓(xùn)
- 2025年紹興市上虞大眾勞動事務(wù)代理(所)有限公司招聘筆試參考題庫附帶答案詳解
- 酒店會議接待服務(wù)方案
- 2025年人教版新教材英語小學(xué)三年級下冊教學(xué)計劃(含進度表)
- 2025年山東商務(wù)職業(yè)學(xué)院高職單招高職單招英語2016-2024年參考題庫含答案解析
- 人工智能在企業(yè)人力資源招聘中的運用研究
- 2023年2024年演出經(jīng)紀(jì)人之演出經(jīng)紀(jì)實務(wù)考試題庫附答案(達標(biāo)題)
- DG-T 076-2024 采茶機標(biāo)準(zhǔn)規(guī)范
評論
0/150
提交評論