版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、高等教育出版社張磊n1.1 程序設(shè)計(jì)的基本概念程序設(shè)計(jì)的基本概念n1.2 C語(yǔ)言概述語(yǔ)言概述n1.3 使用使用VC+6.0實(shí)現(xiàn)實(shí)現(xiàn)C語(yǔ)言程序語(yǔ)言程序計(jì)算機(jī)能夠理解和識(shí)別的一種語(yǔ)言體系,它按照特定的規(guī)則計(jì)算機(jī)能夠理解和識(shí)別的一種語(yǔ)言體系,它按照特定的規(guī)則組織計(jì)算機(jī)指令,使計(jì)算機(jī)能夠自動(dòng)進(jìn)行各種操作處理。組織計(jì)算機(jī)指令,使計(jì)算機(jī)能夠自動(dòng)進(jìn)行各種操作處理。機(jī)器語(yǔ)言、匯編語(yǔ)言、高級(jí)語(yǔ)言。機(jī)器語(yǔ)言、匯編語(yǔ)言、高級(jí)語(yǔ)言。C C語(yǔ)言屬于高級(jí)語(yǔ)言。語(yǔ)言屬于高級(jí)語(yǔ)言。按照計(jì)算機(jī)語(yǔ)言規(guī)則組織起來(lái)的一組命令。按照計(jì)算機(jī)語(yǔ)言規(guī)則組織起來(lái)的一組命令。 n工作方法工作方法u首先編譯進(jìn)行首先編譯進(jìn)行語(yǔ)法分析語(yǔ)法分析,也就是
2、要把那,也就是要把那些字符串分離出來(lái)。些字符串分離出來(lái)。 u然后進(jìn)行然后進(jìn)行語(yǔ)義分析語(yǔ)義分析,就是把各個(gè)由,就是把各個(gè)由語(yǔ)法語(yǔ)法分析分析分析出的語(yǔ)法單元的意義搞清楚。分析出的語(yǔ)法單元的意義搞清楚。 u最后生成的是目標(biāo)文件,也稱為最后生成的是目標(biāo)文件,也稱為obj文文件。件。 u再經(jīng)過(guò)再經(jīng)過(guò)鏈接器鏈接器的鏈接就可以生成最后的的鏈接就可以生成最后的可執(zhí)行代碼可執(zhí)行代碼了。了。 n鏈接器(鏈接器(Linker)是一個(gè)程序,將一個(gè)或多個(gè))是一個(gè)程序,將一個(gè)或多個(gè)由由編譯器編譯器生成的目標(biāo)文件外加庫(kù)鏈接為一個(gè)生成的目標(biāo)文件外加庫(kù)鏈接為一個(gè)可可執(zhí)行文件執(zhí)行文件。n目標(biāo)文件是包括目標(biāo)文件是包括機(jī)器碼機(jī)器碼和
3、鏈接器可用信息的和鏈接器可用信息的程程序模塊序模塊。n鏈接器的工作就是解析未定義的符號(hào)引用,將鏈接器的工作就是解析未定義的符號(hào)引用,將目標(biāo)文件中的占位符替換為符號(hào)的地址。目標(biāo)文件中的占位符替換為符號(hào)的地址。n鏈接器還要完成程序中各目標(biāo)文件的鏈接器還要完成程序中各目標(biāo)文件的地址空間地址空間的組織,這可能涉及的組織,這可能涉及重定位重定位工作。工作。 /* program e1-0.c */#includevoid main()int i=1,s=0;while(i=100)s=s+i; i=i+1; printf(sum=%dn,s); /* 循環(huán)控制循環(huán)控制 */* 數(shù)據(jù)累加數(shù)據(jù)累加 */*
4、生成下一個(gè)要累加的數(shù)生成下一個(gè)要累加的數(shù) */* 輸出結(jié)果輸出結(jié)果 */n算法特性算法特性 有窮性:有窮性:經(jīng)過(guò)有限步驟解決問題。經(jīng)過(guò)有限步驟解決問題。 確定性:確定性:每個(gè)步驟所規(guī)定的操作必須是確定的。每個(gè)步驟所規(guī)定的操作必須是確定的。 有效性:有效性:每一個(gè)步驟必須能夠有效地執(zhí)行每一個(gè)步驟必須能夠有效地執(zhí)行 。 輸入和輸出特性。輸入和輸出特性。有零個(gè)或多個(gè)輸入,有一個(gè)或多個(gè)輸出。有零個(gè)或多個(gè)輸入,有一個(gè)或多個(gè)輸出。 算法求解問題的方法,是在有限步驟內(nèi)求解某一問題所使用的一組定義算法求解問題的方法,是在有限步驟內(nèi)求解某一問題所使用的一組定義明確的規(guī)則,是計(jì)算機(jī)處理問題所需要的具體步驟。明確的
5、規(guī)則,是計(jì)算機(jī)處理問題所需要的具體步驟。 算法的最終實(shí)現(xiàn)是計(jì)算機(jī)程序。算法的最終實(shí)現(xiàn)是計(jì)算機(jī)程序。n 還應(yīng)注意還應(yīng)注意算法的多樣性:一算法的多樣性:一個(gè)具體問題可以有不同的解決方法,因此可以設(shè)計(jì)解決問題個(gè)具體問題可以有不同的解決方法,因此可以設(shè)計(jì)解決問題的不同算法。的不同算法。 算法的通用性算法的通用性:一個(gè)算法應(yīng)是適用于某類問題,而不只是適用于某一個(gè)問題。一個(gè)算法應(yīng)是適用于某類問題,而不只是適用于某一個(gè)問題。 u步驟步驟 i=1,s=0;u步驟步驟 若i100 則執(zhí)行步驟;否則,轉(zhuǎn)步驟;u步驟步驟 s+i;u步驟步驟 i+1,轉(zhuǎn)步驟;u步驟步驟 顯示s的值,結(jié)束。 n“計(jì)算計(jì)算1100自然數(shù)
6、和自然數(shù)和”的算法的算法 步驟步驟 i=1,s=0;步驟步驟 若若i100 則執(zhí)則執(zhí)行步驟;否則,轉(zhuǎn)行步驟;否則,轉(zhuǎn)步驟;步驟;步驟步驟 s+i;步驟步驟 i+1,轉(zhuǎn)步驟,轉(zhuǎn)步驟; 步驟步驟 顯示顯示s的值的值,結(jié)束。,結(jié)束。n1.2.1 C語(yǔ)言的產(chǎn)生和發(fā)展n1.2.2 C語(yǔ)言程序的基本結(jié)構(gòu)n1.2.3 C語(yǔ)言的基本語(yǔ)句n1.2.4 標(biāo)識(shí)符與保留字nC 語(yǔ)言是語(yǔ)言是1972年由美國(guó)的年由美國(guó)的Dennis Ritchie設(shè)計(jì)設(shè)計(jì)發(fā)明的,發(fā)明的,1983年,美國(guó)國(guó)家標(biāo)準(zhǔn)化協(xié)會(huì)(年,美國(guó)國(guó)家標(biāo)準(zhǔn)化協(xié)會(huì)(ANSI)根據(jù)根據(jù)C語(yǔ)言問世以來(lái)各種版本對(duì)語(yǔ)言問世以來(lái)各種版本對(duì) C的發(fā)展和擴(kuò)充,的發(fā)展和擴(kuò)充,
7、制定了制定了C的標(biāo)準(zhǔn),稱為的標(biāo)準(zhǔn),稱為 ANSI C。1987年年ANSI又又公布了新的標(biāo)準(zhǔn)公布了新的標(biāo)準(zhǔn)87 ANSI C。目前流行的。目前流行的C編編譯系統(tǒng)都是以它為基礎(chǔ)的。譯系統(tǒng)都是以它為基礎(chǔ)的。n在在C的基礎(chǔ)上,的基礎(chǔ)上,1983年又由貝爾實(shí)驗(yàn)室的年又由貝爾實(shí)驗(yàn)室的Bjarne Strou-strup推出了推出了C+。 C+進(jìn)一步擴(kuò)充和完進(jìn)一步擴(kuò)充和完善了語(yǔ)言,成為一種面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言。善了語(yǔ)言,成為一種面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言。n例例1-1 1-1 一個(gè)加法程序一個(gè)加法程序。/* program e1-1.c */#includevoid main() int a,b,c; a=
8、8; b=2000; c=a+b; printf(%dn,c);n 概念概念程序行程序行、主函數(shù)主函數(shù)、數(shù)據(jù)類型數(shù)據(jù)類型、變量變量、賦值賦值、表達(dá)式表達(dá)式、系統(tǒng)函系統(tǒng)函數(shù)數(shù)、輸出輸出、輸出格式輸出格式、函數(shù)體函數(shù)體、注釋注釋。1 1簡(jiǎn)單簡(jiǎn)單C C語(yǔ)言程序及相關(guān)概念語(yǔ)言程序及相關(guān)概念例例1-2 1-2 一個(gè)改進(jìn)的加法程序。一個(gè)改進(jìn)的加法程序。/ /* * program e1-2.c program e1-2.c * */ /#include#includevoid main()void main() int a,b,c;int a,b,c;printf(Input a,b:);printf(I
9、nput a,b:);scanf(%d,%d,&a,&b);scanf(%d,%d,&a,&b);c=a+b;c=a+b;printf(a+b=%dn,c);printf(a+b=%dn,c); 程序的算法程序的算法: 從鍵盤輸入兩個(gè)整數(shù),并且從鍵盤輸入兩個(gè)整數(shù),并且在需要輸入數(shù)據(jù)時(shí)首先給出一個(gè)在需要輸入數(shù)據(jù)時(shí)首先給出一個(gè)提示信息;提示信息; 進(jìn)行加法運(yùn)算;進(jìn)行加法運(yùn)算; 輸出清楚明了的運(yùn)算結(jié)果。輸出清楚明了的運(yùn)算結(jié)果。例例1-3 最簡(jiǎn)單最簡(jiǎn)單C程序程序/* program e1-3.c */#includevoid main()printf(Hello!n);
10、n程序結(jié)構(gòu)程序結(jié)構(gòu)#include#includevoid main()void main() 函數(shù)體函數(shù)體 n每個(gè)程序都由函數(shù)構(gòu)成,由于函數(shù)的函數(shù)體內(nèi)容不同,每個(gè)程序都由函數(shù)構(gòu)成,由于函數(shù)的函數(shù)體內(nèi)容不同,程序也就各自具有了不同的功能。程序也就各自具有了不同的功能。n基本特點(diǎn)基本特點(diǎn)uC語(yǔ)言程序由函數(shù)構(gòu)成,每個(gè)程序可以語(yǔ)言程序由函數(shù)構(gòu)成,每個(gè)程序可以有多個(gè)函數(shù)。(模塊化)有多個(gè)函數(shù)。(模塊化)u一個(gè)源程序不論有多少個(gè)函數(shù)組成,有一個(gè)源程序不論有多少個(gè)函數(shù)組成,有且只有一個(gè)且只有一個(gè)main()函數(shù),位置任意。函數(shù),位置任意。u一個(gè)源程序不論有多少個(gè)函數(shù)組成,總一個(gè)源程序不論有多少個(gè)函數(shù)組成,
11、總是從是從main()函數(shù)開始執(zhí)行。函數(shù)開始執(zhí)行。n程序風(fēng)格程序風(fēng)格u如果一行能容納一條語(yǔ)句,則該語(yǔ)句獨(dú)如果一行能容納一條語(yǔ)句,則該語(yǔ)句獨(dú)占一行占一行u擴(kuò)起來(lái)的部分,通常表示程序的某擴(kuò)起來(lái)的部分,通常表示程序的某一層次結(jié)構(gòu)一層次結(jié)構(gòu)u低層次要比高層次語(yǔ)句縮進(jìn)低層次要比高層次語(yǔ)句縮進(jìn)u合理使用注釋合理使用注釋n按照功能劃分按照功能劃分3類類n數(shù)據(jù)定義語(yǔ)句數(shù)據(jù)定義語(yǔ)句n流程控制語(yǔ)句流程控制語(yǔ)句n數(shù)據(jù)處理語(yǔ)句數(shù)據(jù)處理語(yǔ)句對(duì)程序中使用的變量名稱、數(shù)據(jù)類型等進(jìn)行說(shuō)明。例如,對(duì)程序中使用的變量名稱、數(shù)據(jù)類型等進(jìn)行說(shuō)明。例如,程序程序e1-1.c的的“int a,b,c;”語(yǔ)句。語(yǔ)句。對(duì)程序中的數(shù)據(jù)進(jìn)行運(yùn)算
12、、輸入、輸出等。例如,程序?qū)Τ绦蛑械臄?shù)據(jù)進(jìn)行運(yùn)算、輸入、輸出等。例如,程序e1-1.c的的“b=2000;”、“c=a+b;”“printf(%dn,c);” 等等語(yǔ)句。語(yǔ)句。對(duì)程序的執(zhí)行流程進(jìn)行控制,分為分支控制和循環(huán)控制兩對(duì)程序的執(zhí)行流程進(jìn)行控制,分為分支控制和循環(huán)控制兩類。例如,程序類。例如,程序e1-0.c中的中的while語(yǔ)句。語(yǔ)句。1. 標(biāo)識(shí)符標(biāo)識(shí)符在程序中使用的變量名、函數(shù)名等統(tǒng)稱。除庫(kù)函數(shù)的函數(shù)在程序中使用的變量名、函數(shù)名等統(tǒng)稱。除庫(kù)函數(shù)的函數(shù)名由系統(tǒng)定義外,其余都由用戶自定義。名由系統(tǒng)定義外,其余都由用戶自定義。n標(biāo)識(shí)符構(gòu)成標(biāo)識(shí)符構(gòu)成任何一個(gè)標(biāo)識(shí)符只能是由字母(任何一個(gè)標(biāo)識(shí)符
13、只能是由字母(AZ,az)、數(shù)字)、數(shù)字(09)和下劃線)和下劃線“_”構(gòu)成的字符串,其他符號(hào)不能出現(xiàn)構(gòu)成的字符串,其他符號(hào)不能出現(xiàn)在標(biāo)識(shí)符中,并且標(biāo)識(shí)符的第一個(gè)字符必須是字母或下劃在標(biāo)識(shí)符中,并且標(biāo)識(shí)符的第一個(gè)字符必須是字母或下劃線。線。n合法標(biāo)識(shí)符合法標(biāo)識(shí)符a BOOK1 max _add num_1n非法標(biāo)識(shí)符非法標(biāo)識(shí)符3sum 不允許以數(shù)字開頭不允許以數(shù)字開頭ab#cd 使用了非法字符使用了非法字符“#”book-1 出現(xiàn)非法字符出現(xiàn)非法字符“-”(減號(hào))(減號(hào))2保留字保留字保留字(也稱關(guān)鍵字)是由語(yǔ)言規(guī)定的用于定保留字(也稱關(guān)鍵字)是由語(yǔ)言規(guī)定的用于定義變量類型、命令字等具有特定意
14、義的標(biāo)識(shí)符。義變量類型、命令字等具有特定意義的標(biāo)識(shí)符。例如例如: int 專門用于定義數(shù)據(jù)類型專門用于定義數(shù)據(jù)類型 while 是循環(huán)控制命令。是循環(huán)控制命令。 C語(yǔ)言的保留字都具有一定的使用規(guī)則,必須語(yǔ)言的保留字都具有一定的使用規(guī)則,必須按相應(yīng)的規(guī)則使用保留字。按相應(yīng)的規(guī)則使用保留字。 程序中定義的標(biāo)識(shí)符不能與系統(tǒng)的保留字同名。程序中定義的標(biāo)識(shí)符不能與系統(tǒng)的保留字同名。n1.3.1 使用使用VC+ 6.0實(shí)現(xiàn)實(shí)現(xiàn)C程序的基本步驟程序的基本步驟n1.3.2 程序設(shè)計(jì)示例程序設(shè)計(jì)示例n使用使用VC+ 6.0實(shí)現(xiàn)實(shí)現(xiàn)C程序的基本步驟程序的基本步驟有有4 4個(gè)個(gè):n1 1建立源程序文件建立源程序文件
15、n3 3構(gòu)建可執(zhí)行文件構(gòu)建可執(zhí)行文件n2 2編譯源程序編譯源程序n4 4運(yùn)行可執(zhí)行文件運(yùn)行可執(zhí)行文件啟動(dòng)啟動(dòng)VC+ 6.0系統(tǒng)系統(tǒng)使用使用“File”“New”命令,打開命令,打開VC+ 6.0的程序編輯窗口的程序編輯窗口錄入編輯源程序,保存文件錄入編輯源程序,保存文件程序通過(guò)編譯之后,使用程序通過(guò)編譯之后,使用“Build”“Build”命令將編譯階段生成的目標(biāo)文命令將編譯階段生成的目標(biāo)文件和系統(tǒng)的庫(kù)函數(shù)文件等連接起來(lái),生成擴(kuò)展名是件和系統(tǒng)的庫(kù)函數(shù)文件等連接起來(lái),生成擴(kuò)展名是“.exe”的可執(zhí)行文件。的可執(zhí)行文件。使用使用“Build”“!Execute”命令運(yùn)行程序,獲得執(zhí)行結(jié)果。命令運(yùn)行
16、程序,獲得執(zhí)行結(jié)果。 設(shè)矩形的邊長(zhǎng)為設(shè)矩形的邊長(zhǎng)為a和和b、矩形面積為、矩形面積為s,則,則s=ab。 通過(guò)鍵盤輸入等方式為矩形邊長(zhǎng)通過(guò)鍵盤輸入等方式為矩形邊長(zhǎng)a、b提供數(shù)據(jù)。提供數(shù)據(jù)。 程序執(zhí)行后要輸出計(jì)算結(jié)果。程序執(zhí)行后要輸出計(jì)算結(jié)果。 輸入輸入a、b的值。的值。 計(jì)算計(jì)算ab,并存儲(chǔ)到,并存儲(chǔ)到s中。中。 輸出輸出s。 假設(shè)該矩形都是整型數(shù)據(jù),因此,要使用假設(shè)該矩形都是整型數(shù)據(jù),因此,要使用int對(duì)對(duì)a、b、s進(jìn)行說(shuō)明。進(jìn)行說(shuō)明。 使用使用scanf()函數(shù)輸入數(shù)據(jù)函數(shù)輸入數(shù)據(jù)a、b。 使用使用“s=a*b”計(jì)算矩形面積,并存儲(chǔ)到計(jì)算矩形面積,并存儲(chǔ)到s中。中。 使用使用printf()
17、函數(shù)輸出計(jì)算結(jié)果函數(shù)輸出計(jì)算結(jié)果s。 把上面的一些具體語(yǔ)句放在把上面的一些具體語(yǔ)句放在main()函數(shù)中。函數(shù)中。 假設(shè)該矩形都是整型數(shù)據(jù),因此,假設(shè)該矩形都是整型數(shù)據(jù),因此,要使用要使用int對(duì)對(duì)a、b、s進(jìn)行說(shuō)明。進(jìn)行說(shuō)明。 使用使用scanf()函數(shù)輸入數(shù)據(jù)函數(shù)輸入數(shù)據(jù)a、b。 使用使用“s=a*b”計(jì)算矩形面積,并計(jì)算矩形面積,并存儲(chǔ)到存儲(chǔ)到s中。中。 使用使用printf()函數(shù)輸出計(jì)算結(jié)果函數(shù)輸出計(jì)算結(jié)果s。 把上面的一些具體語(yǔ)句放在把上面的一些具體語(yǔ)句放在main()函數(shù)中。函數(shù)中。/* program area.c */#includevoid main() 。 啟動(dòng)啟動(dòng)VC+
18、 6.0,使,使用用“File”“New”命令,命令,打開打開 “new”窗口,選用窗口,選用“Files”選項(xiàng)卡,在主窗選項(xiàng)卡,在主窗口中選擇口中選擇“C+ Source File”項(xiàng),在項(xiàng),在“File”對(duì)話對(duì)話框中輸入文件名,在框中輸入文件名,在“Location”對(duì)話框中指對(duì)話框中指定文件的存儲(chǔ)位置。定文件的存儲(chǔ)位置。 單擊單擊“OK”按鈕,按鈕,打開程序編輯窗口錄入打開程序編輯窗口錄入編輯源程序,并及時(shí)存編輯源程序,并及時(shí)存盤。盤。程序編輯完成后,使程序編輯完成后,使用用“Build”“Compile ”命令編譯命令編譯 執(zhí)行“Build”“Compile”命令后的提示信息編譯結(jié)果顯示在編譯報(bào)告窗口 。 4 4標(biāo)識(shí)符和保留字標(biāo)識(shí)符和保留字 標(biāo)識(shí)符是由字母、數(shù)字標(biāo)識(shí)符是由字母、數(shù)字(0 09 9)和下劃線)和下劃線
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 精準(zhǔn)識(shí)別課件教學(xué)課件
- 智慧養(yǎng)老中心解決方案
- 頸椎病解刨結(jié)構(gòu)
- 2024年超高速加工中心投資項(xiàng)目資金申請(qǐng)報(bào)告書
- 車場(chǎng)停電應(yīng)急預(yù)案
- 第六章 機(jī)械能守恒定律-功能關(guān)系與能量守恒 2025年高考物理基礎(chǔ)專項(xiàng)復(fù)習(xí)
- 2-1-4 微專題1-碳酸鈉與碳酸氫鈉的相關(guān)計(jì)算 高一上學(xué)期化學(xué)人教版(2019)必修第一冊(cè)
- 骨水泥在糖尿病足的應(yīng)用
- 醫(yī)療器械合作協(xié)議書范本
- 社交網(wǎng)絡(luò)鉤機(jī)租賃合同
- 2023年05月重慶市渝北區(qū)洛磧鎮(zhèn)上半年公開招錄8名村專職干部筆試歷年高頻考點(diǎn)試題含答案詳解
- 區(qū)塊鏈技術(shù)與應(yīng)用學(xué)習(xí)通課后章節(jié)答案期末考試題庫(kù)2023年
- 2022年銅仁市國(guó)企招聘考試真題及答案
- 手術(shù)室??谱o(hù)士培訓(xùn)計(jì)劃范文(2篇)
- 中藥材中藥飲片采購(gòu)管理制度201556
- 我國(guó)行政環(huán)境及其對(duì)行政管理的影響-畢業(yè)論文
- 大學(xué)生心理健康教育(高職)PPT全套完整教學(xué)課件
- (通橋【2018】8370)《鐵路橋梁快速更換型伸縮縫安裝圖》
- 中華民族精神2023章節(jié)測(cè)試答案-中華民族精神超星爾雅答案
- 2023屆高三化學(xué)二輪復(fù)習(xí) 基于思維模型建構(gòu)的信息型無(wú)機(jī)制備實(shí)驗(yàn)難點(diǎn)突破 利用信息“防”得其所發(fā)言 課件
- 《壽光縣志》山東省壽光縣地方史志編
評(píng)論
0/150
提交評(píng)論