C程序設(shè)計(jì)(唐浩強(qiáng))第三版課件第一章_第1頁
C程序設(shè)計(jì)(唐浩強(qiáng))第三版課件第一章_第2頁
C程序設(shè)計(jì)(唐浩強(qiáng))第三版課件第一章_第3頁
C程序設(shè)計(jì)(唐浩強(qiáng))第三版課件第一章_第4頁
C程序設(shè)計(jì)(唐浩強(qiáng))第三版課件第一章_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

THEC

PROGRAMMINGLANGUAGE粉體工程研究所馮紹航李玉祥E_mail:fengshaohang@126.com(2)課程安排及進(jìn)度學(xué)時(shí)分配:教學(xué)方法:考核方法:

上課:32學(xué)時(shí);上機(jī):16學(xué)時(shí),最后一次考試課前預(yù)習(xí)、課堂授課(理論、例題講授)、

課后復(fù)習(xí)、作業(yè)、上機(jī)實(shí)踐筆考:60%、機(jī)考:30%、平時(shí):10%(3)學(xué)習(xí)目的學(xué)習(xí)掌握C語言的語法結(jié)構(gòu)。學(xué)習(xí)結(jié)構(gòu)化程序設(shè)計(jì)的一般方法,提高分析能力和綜合能力。能夠用C語言編程解決一定的實(shí)際問題。(4)聽課要求切實(shí)掌握各章主要內(nèi)容

(預(yù)習(xí)/聽課/消化/歸納)在預(yù)習(xí)基礎(chǔ)上,聽課為主,筆記為輔課后弄懂書上程序(會分析程序,會寫程序,能夠編譯調(diào)試程序)(5)本課程是如何組織的?第一部分基礎(chǔ)第二部分簡單程序設(shè)計(jì)第三部分高級程序設(shè)計(jì)算法概念、編程原理、編程風(fēng)格、基本數(shù)據(jù)類型定義、算術(shù)運(yùn)算符及表達(dá)式順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、數(shù)組的定義及應(yīng)用、程序設(shè)計(jì)過程函數(shù)、變量的存儲類別、指針、結(jié)構(gòu)體與共用體、文件(6)學(xué)習(xí)方法語法語言基本元素、基本構(gòu)詞方法、句法、結(jié)構(gòu)等規(guī)則的集合。算法解決特定問題的一般方法。方法結(jié)構(gòu)化程序設(shè)計(jì)的思想方法。(7)什么是程序設(shè)計(jì)語言(programminglanguage)?

實(shí)際是一系列對計(jì)算機(jī)可以進(jìn)行操作的規(guī)則。按照這些規(guī)則,人們可以編寫程序與計(jì)算機(jī)進(jìn)行信息交流。因此程序設(shè)計(jì)語言實(shí)際上是人與計(jì)算機(jī)進(jìn)行信息交流的工具。面向機(jī)器的語言(低級語言)機(jī)器語言(0/1組成的機(jī)器代碼)匯編語言(匯編指令加地址)101011110011011101100110……MOVA,47ADDA,BHALT……預(yù)備知識——高級語言的概念(8)預(yù)備知識——高級語言的概念機(jī)器語言特點(diǎn):二進(jìn)制表示、面向機(jī)器、直接運(yùn)行。匯編語言特點(diǎn):符號化的機(jī)器語言、面向機(jī)器、翻譯后運(yùn)行。高級語言特點(diǎn):類自然語言、面向問題、翻譯后運(yùn)行。翻譯系統(tǒng)高級語言程序二進(jìn)制機(jī)器語言2+3010100100011ADD2,32+3編譯或解釋程序。(9)高級語言的優(yōu)點(diǎn):

1)簡潔性:高級語言的一個語句相當(dāng)于低級語言的許多語句,程序員只需花費(fèi)少量時(shí)間就可以完成許多工作。

2)移植性:高級語言與機(jī)器無關(guān),在一臺計(jì)算機(jī)上運(yùn)行的程序只需稍加修改或不修改就可以在另一臺計(jì)算機(jī)上運(yùn)行。

3)易讀性:這對于需要維護(hù)和改進(jìn)的程序而言,不管是編制者還是其他人員都十分重要。(10)第1章C語言概述本章主要介紹C語言程序的結(jié)構(gòu)和書寫規(guī)則,以及TurboCV2.0的基本操作。1.1C語言出現(xiàn)的歷史進(jìn)程1.2C語言的特點(diǎn)1.3C語言程序的結(jié)構(gòu)與書寫規(guī)則1.4TurboCV2.0的基本操作1.5程序設(shè)計(jì)的一般方法(11)什么是C語言?C語言的流行歸功于兩個主要因素:

.使用正確的C語言指令幾乎可以完成任何任務(wù)。

.是可移植的C編譯系統(tǒng)的廣泛采用。C語言于1972年提出,目前是計(jì)算機(jī)程序設(shè)計(jì)語言的主流語種之一。C語言是一種能夠讓軟件工程師與計(jì)算機(jī)進(jìn)行有效對話的介于匯編語言和高級語言之間的編程語言。1.1C語言的誕生與發(fā)展(12)

編寫應(yīng)用軟件:數(shù)據(jù)處理、科學(xué)工程數(shù)值計(jì)算等領(lǐng)域。

編寫系統(tǒng)軟件:操作系統(tǒng)、編譯系統(tǒng)、系統(tǒng)實(shí)用程序。

高校開設(shè)程序設(shè)計(jì)課程的必修首選語言。

C語言是目前是世界上最為廣泛使用的語言之一。為什么要學(xué)習(xí)C語言

1.C語言功能強(qiáng)大,表達(dá)能力強(qiáng)2.生成的目標(biāo)程序效益高,可移植性好3.既具有高級語言的優(yōu)點(diǎn),又有低級語言特色4.C語言又是面向?qū)ο蟪绦蛟O(shè)計(jì)的基礎(chǔ)5.應(yīng)用面非常廣泛

(13)1.2C語言的特點(diǎn)C語言同時(shí)具有匯編語言和高級語言的優(yōu)勢。(1)語言簡潔、緊湊,使用方便、靈活。(2)運(yùn)算符極其豐富。(3)數(shù)據(jù)結(jié)構(gòu)豐富,具有現(xiàn)代化語言的各種數(shù)據(jù)結(jié)構(gòu)。(4)具有結(jié)構(gòu)化控制語句。(5)程序設(shè)計(jì)自由度大。(6)生成的目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高。(7)可移植性好(較之匯編語言)。(8)可以直接操縱硬件。在C語言中,除實(shí)現(xiàn)順序、選擇和循環(huán)三種基本結(jié)構(gòu)等的9條控制語句外,輸入輸出操作均由標(biāo)準(zhǔn)庫函數(shù)(不是C語言的組成部分)來實(shí)現(xiàn)。所以學(xué)習(xí)C語言,不僅要學(xué)習(xí)這9條控制語句和各種運(yùn)算符,而且要學(xué)習(xí)并掌握常用標(biāo)準(zhǔn)庫函數(shù)的使用。(14)1.3C語言程序的結(jié)構(gòu)與書寫規(guī)則(簡單介紹)1.3.1C語言程序的總體結(jié)構(gòu)

C程序是由函數(shù)構(gòu)成的,一個完整的C語言程序,是由一個main()函數(shù)(又稱主函數(shù))和若干個其它函數(shù)結(jié)合而成的,或僅由一個main()函數(shù)構(gòu)成。[例1.1]僅由main()函數(shù)構(gòu)成的C語言程序。/*功能:僅由main()函數(shù)構(gòu)成的C語言程序示例*/main(){printf(“ThisisaCprogram.\n”);}CP1.1程序運(yùn)行結(jié)果:

ThisisaCprogram.(15)[例1.2]由main()函數(shù)和1個其它函數(shù)max()構(gòu)成的C語言程序。/*功能:由main()函數(shù)和1個其它函數(shù)max()構(gòu)成的C語言程序示例*/intmax(intx,inty){return(x>y?x:y);}main(){intnum1,num2;printf(“Inputthefirstintegernumber:”);scanf(“%d”,&num1);printf(“Inputthesecondintegernumber:”);scanf(“%d”,&num2);printf(“max=%d\n”,max(num1,num2));}

CP1.2程序運(yùn)行情況:Inputthefirstintegernumber:6←┘Inputthesecondintegernumber:9←┘max=9(16)[例1.3]改寫[例1.2],交換main()函數(shù)和max()函數(shù)的前后位置。源程序略。程序運(yùn)行情況:

Inputthefirstintegernumber:6←┘Inputthesecondintegernumber:9←┘max=91.函數(shù)是C語言程序的基本單位。main()函數(shù)的作用,相當(dāng)于其它高級語言中的主程序;其它函數(shù)的作用,相當(dāng)于子程序。2.C語言程序總是從main()函數(shù)開始執(zhí)行。一個C語言程序,總是從main()函數(shù)開始執(zhí)行,而不論其在程序中的位置。當(dāng)主函數(shù)執(zhí)行完畢時(shí),亦即程序執(zhí)行完畢。習(xí)慣上,將主函數(shù)main()放在最前頭。(17)

1.3.2函數(shù)的一般結(jié)構(gòu)

任何函數(shù)(包括主函數(shù)main())都是由函數(shù)說明和函數(shù)體兩部分組成。其一般結(jié)構(gòu)如下:

[函數(shù)類型]函數(shù)名(函數(shù)參數(shù)表)

函數(shù)說明部分

{說明語句部分;執(zhí)行語句部分;

}

1.使用的語法符號約定

[...]──方括號表示可選(即可以指定,也可以缺?。?/p>

……──省略號表示前面的項(xiàng)可以重復(fù)

|──多(含2)中選1

2.函數(shù)說明由函數(shù)類型(可缺?。⒑瘮?shù)名和函數(shù)參數(shù)表三部分組成,其中函數(shù)參數(shù)表的格式為:數(shù)據(jù)類型形參[,數(shù)據(jù)類型形參2……]函數(shù)體部分(18)例如,[案例1.2]中的函數(shù)max(),其函數(shù)說明各部分如圖1-1所示。

注意:在舊標(biāo)準(zhǔn)中,函數(shù)可以缺省參數(shù)表。3.函數(shù)體在函數(shù)說明部分的下面、大括號{}(必須配對使用)內(nèi)的部分。函數(shù)體一般由說明語句和可執(zhí)行語句兩部分構(gòu)成:(1)說明語句部分說明語句部分由變量定義、自定義類型定義、自定義函數(shù)說明、外部變量說明等組成。

函數(shù)類型函數(shù)名函數(shù)參數(shù)表↓↓↓

intmax(intx,inty)函數(shù)說明部分結(jié)構(gòu)圖(19)

(2)可執(zhí)行語句一般由若干條可執(zhí)行語句構(gòu)成。[例1.2]的main()函數(shù)體的示意圖。/*主函數(shù)main()*/main(){intnum1,num2;printf(“Inputthefirstintegernumber:”);scanf(“%d”,&num1);printf(“Inputthesecondintegernumber:”);scanf(“%d”,&num2);printf(“max=%d\n”,max(num1,num2));}

4.說明函數(shù)體中的變量定義語句,必須在所有可執(zhí)行語句之前。下面程序中變量定義語句“intmax;”的位置是非法的:變量定義部分可執(zhí)行語句部分函數(shù)體(20)main(){intx,y; /*變量定義語句:定義2個整型變量x、y*/x=3; /*可執(zhí)行的賦值語句:將3賦值給變量x*/y=6; /*可執(zhí)行的賦值語句:將6賦值給變量y*/intmax; /*變量定義語句:出現(xiàn)在可執(zhí)行的賦值語句“x=3;”和“y=6;”之后,非法!*/max=x>y?x:y;printf(“max=%d\n”,max);}1.3.3源程序書寫格式1.所有語句都必須以分號“;”結(jié)束,函數(shù)的最后一個語句也不例外。2.程序行的書寫格式自由,既允許1行內(nèi)寫幾條語句,也允許1條語句分寫在幾行上。(21)例如,[案例1.2]的主函數(shù)main(),也可改寫成如下所示的格式:……main(){intnum1,num2;printf(“Inputthefirstintegernumber:”);scanf(“%d”,&num1);printf(“Inputthesecondintegernumber:”);scanf(“%d”,&num2);printf(“max=%d\n”,max(num1,num2));}如果某條語句很長,一般需要將其分寫在幾行上。3.允許使用注釋。C語言的注釋格式為:/*……*/例如,在[案例1.1]和[案例1.2]中,以及本節(jié)其它部分給出的源程序中,凡是用“/*”和“*/”括起來的文字,都是注釋。(1)“/*”和“*/”必須成對使用,且“/”和“*”、以及“*”和“/”之間不能有空格,否則都出錯。(22)技巧:為避免遺漏必須配對使用的符號,例如注釋符號、函數(shù)體的起止標(biāo)識符(花括號)、圓括號等等,在輸入時(shí),可連續(xù)輸入這些起止標(biāo)識符,然后再在其中進(jìn)行插入來完成內(nèi)容的編輯。在起止標(biāo)識符嵌套時(shí),以及相距較遠(yuǎn)時(shí),這樣做更有必要。

(2)注釋的位置,可以單占1行,也可以跟在語句的后面。(3)如果1行寫不下,可另起1行繼續(xù)寫。(4)注釋中允許使用漢字。在非中文操作系統(tǒng)下,看到的是一串亂碼,但不影響程序運(yùn)行。(23)分析下面程序:#include<stdio.h>main(){inta=1,b=5,c;c=add(a,b);printf(“c=%d\n”,c);}intadd(intx,inty){return(x+y);}C程序結(jié)構(gòu)的主要特點(diǎn):

1.C程序?yàn)楹瘮?shù)模塊結(jié)構(gòu),所有的C程序都是由一個或多個函數(shù)組成的程序模塊構(gòu)成的。2.無論main()函數(shù)在整個程序的位置如何,一個C程序總是從main()函數(shù)開始執(zhí)行。3.被調(diào)用的函數(shù)可以是系統(tǒng)提供的庫函數(shù),也可以是用戶根據(jù)需要自己編制設(shè)計(jì)的函數(shù)(用戶自定義函數(shù))。4.如果調(diào)用庫函數(shù),則要用#include命令行,向系統(tǒng)提供必要的信息。Include

命令必須寫在程序的開始處。5.一個C程序可以由一個文件組成,也可以由若干個文件組成。(24)1.3.4C語言的語句

與其它高級語言一樣,C語言也是利用函數(shù)體中的可執(zhí)行語句,向計(jì)算機(jī)系統(tǒng)發(fā)出操作命令。按照語句功能或構(gòu)成的不同,可將C語言的語句分為五類。1.控制語句控制語句完成一定的控制功能。C語言只有9條控制語句,又可細(xì)分為三種:(1)選擇結(jié)構(gòu)控制語句

if()~else~,switch()~(2)循環(huán)結(jié)構(gòu)控制語句

do~while(),for()~,while()~,break,continue(25)(3)其它控制語句

goto,return2.函數(shù)調(diào)用語句函數(shù)調(diào)用語句由一次函數(shù)調(diào)用加一個分號(語句結(jié)束標(biāo)志)構(gòu)成。例如,printf("ThisisaCfunctionstatement.");3.表達(dá)式語句表達(dá)式語句由表達(dá)式后加一個分號構(gòu)成。最典型的表達(dá)式語句是,在賦值表達(dá)式后加一個分號構(gòu)成的賦值語句。例如,“num=5”是一個賦值表達(dá)式,而“num=5;”卻是一個賦值語句。4.空語句空語句僅由一個分號構(gòu)成。顯然,空語句什么操作也不執(zhí)行。

(26)例如,下面就是一個空語句:;5.復(fù)合語句復(fù)合語句是由大括號括起來的一組(也可以是1條)語句構(gòu)成。例如:

main(){……{……}/*復(fù)合語句。注意:右括號后不需要分號。*/……}復(fù)合語句的性質(zhì):(1)在語法上和單一語句相同,即單一語句可以出現(xiàn)的地方,也可以使用復(fù)合語句。(2)復(fù)合語句可以嵌套,即復(fù)合語句中也可出現(xiàn)復(fù)合語句。(27)1.3.5關(guān)鍵字

C語言的關(guān)鍵字共有32個,根據(jù)關(guān)鍵字的作用,可分其為數(shù)據(jù)類型關(guān)鍵字、控制語句關(guān)鍵字、存儲類型關(guān)鍵字和其它關(guān)鍵字四類。

(1)數(shù)據(jù)類型關(guān)鍵字(12個):char,double,enum,float,int,long,short,signed,struct,union,unsigned,void

(2)控制語句關(guān)鍵字(12個):break,case,continue,default,do,else,for,goto,if,return,switch,while

(3)存儲類型關(guān)鍵字(4個):auto,extern,register,static

(4)其它關(guān)鍵字(4個):const,sizeof,typedef,volatile(28)?問題1:對C語言描述正確的是:

A.C語言源程序中可以有重名的函數(shù)

B.C語言源程序中要求每行只能書寫一條語句

C.注釋可以出現(xiàn)在C語言源程序中的任意位置

D.最小的C源程序中沒有任何內(nèi)容?問題2:

以下說法是正確的:

A.在C語言中,要調(diào)用的函數(shù)必須在main()函數(shù)中定義

B.C語言程序總是從第一個定義的函數(shù)開始執(zhí)行

C.C語言程序中,main()函數(shù)必須放在程序的開始部分

D.C語言程序總是從main()開始執(zhí)行

(29)?問題3:

根據(jù)c語言標(biāo)識符的命名規(guī)則,以下全部合法的標(biāo)識符是:A)2xy,x+y,10xy,xy2B)main(),printf,int,floatC)int,char,printf,scanfD)add,x10,_count,x_y

(30)1.4TurboCV2.0的基本操作1.運(yùn)行一個C語言程序的一般過程2.TC的啟動、退出與命令菜單3.編輯并保存一個C語言源程序4.編譯、連接──單個源程序文件5.運(yùn)行與查看結(jié)果6.編輯下一個新的源程序(31)1.運(yùn)行一個C語言程序的一般過程

TurboC是一個集源程序編輯、編譯、連接、運(yùn)行與調(diào)試于一體、用菜單驅(qū)動的集成軟件環(huán)境。運(yùn)行一個C語言程序的一般過程:(1)啟動TC,進(jìn)入TC集成環(huán)境。(2)編輯(或修改)源程序。(3)編譯。如果編譯成功,則可進(jìn)行下一步操作;否則,返回(2)修改源程序,再重新編譯,直至編譯成功。(4)連接。如果連接成功,則可進(jìn)行下一步操作;否則,根據(jù)系統(tǒng)的錯誤提示,進(jìn)行相應(yīng)修改,再重新連接,直至連接成功。(5)運(yùn)行。通過觀察程序運(yùn)行結(jié)果,驗(yàn)證程序的正確性。如果出現(xiàn)邏輯錯誤,則必須返回(2)修改源程序,再重新編譯、連接和運(yùn)行,直至程序正確。(6)退出TC集成環(huán)境,結(jié)束本次程序運(yùn)行。(32)C語言上機(jī)過程編譯compile生成目標(biāo)文件filename.obj連接庫文件filename.c編輯源文件filename.exe生成執(zhí)行文件link(33)開始編輯編譯語法錯?yesno連接、運(yùn)行邏輯錯?yesno完成(34)2.TC的啟動、退出與命令菜單

(1)啟動TurboC:tc←┘啟動TurboC后,其主菜單條橫向排列在屏幕頂端,并被激活,其中File主項(xiàng)成為當(dāng)前項(xiàng)。主菜單的下面,是Edit(編輯)窗口和Message(消息)窗口。兩個窗口中,頂端橫線為雙線顯示的,表示該窗口是活動窗口。編輯窗口的頂端為狀態(tài)行,其中:.Line1Col1:顯示光標(biāo)所在的行號和列號,即光標(biāo)位置。.Insert:表示編輯狀態(tài)處于“插入”。當(dāng)處于“改寫”狀態(tài)時(shí),此處為空白。.d:NONAME.C:顯示當(dāng)前正在編輯的文件名。顯示為“NONAME.C”時(shí),表示用戶尚未給文件命名。屏幕底端是7個功能鍵的說明,以及NumLock鍵的狀態(tài)(顯示“NUM”時(shí),表示處于“數(shù)字鍵”狀態(tài);空白,表示“控制鍵”狀態(tài))。(35)

(2)命令菜單的使用

1)按下功能鍵F10,激活主菜單。如果主菜單已經(jīng)被激活,則直接轉(zhuǎn)下一步。

2)用左、右方向鍵移動光帶,定位于需要的主項(xiàng)上,然后再按回車鍵,打開其子菜單(縱向排列)。

3)用上、下方向鍵移動光帶,定位于需要的子項(xiàng)上,回車即可。執(zhí)行完選定的功能后,系統(tǒng)自動關(guān)閉菜單。注意:菜單激活后,又不使用,可再按F10/Esc鍵關(guān)閉,返回原來狀態(tài)。

(3)退出TurboC

退出TC有兩種方法:

1)菜單法:File|Quit(先選擇File主項(xiàng),再選擇并執(zhí)行Quit子項(xiàng))

2)快捷鍵法:Alt+“X”(先按下Alt鍵并保持,再按字母鍵X,然后同時(shí)放開)(36)3.編輯并保存一個C語言源程序

(1)激活主菜單,選擇并執(zhí)行File|Load項(xiàng)(快捷鍵鍵:F3)。(2)在“LoadFileName”窗口,輸入源程序文件名。文件名的輸入有兩種方法:直接輸入和選擇輸入。1)直接輸入按照文件名的組成字符串,逐個字符輸入即可。如果是已經(jīng)存在的文件,系統(tǒng)就在編輯窗口顯示該文件的內(nèi)容,可供編輯、修改。如果是新文件,則給出一個空白編輯窗口,可供輸入新的源程序。如果該文件不在當(dāng)前目錄下,則需要冠以路徑名和(或)盤符。2)選擇文件(僅適用于已經(jīng)存在的源程序文件)①空回車,打開當(dāng)前目錄下、后綴為.C的所有文件的文件名窗口。②用上、下、左、右方向鍵,將光帶定位于所需的文件名上。③按回車鍵。(37)

(3)常用編輯操作在編輯源程序過程中,隨時(shí)都可以按F2鍵(或File|Save),將當(dāng)前編輯的文件存盤,然后繼續(xù)編輯。這是一個良好的習(xí)慣!關(guān)于在線幫助:在任何窗口(或狀態(tài))下,按F1鍵激活活動窗口(或狀態(tài))的在線幫助:.下一頁──PageDown,返回上一頁──PageUp.關(guān)閉在線幫助、返回原窗口(或狀態(tài))──Esc.返回前一個在線幫助屏──Alt+F1(無論在線幫助是否被激活).返回在線幫助索引──F1:激活在線幫助后,再按F1,則返回在線幫助索引,以便查詢其它類別在線幫助信息。.查詢庫函數(shù)的在

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論