高級語言編程基礎(chǔ)_第1頁
高級語言編程基礎(chǔ)_第2頁
高級語言編程基礎(chǔ)_第3頁
高級語言編程基礎(chǔ)_第4頁
高級語言編程基礎(chǔ)_第5頁
已閱讀5頁,還剩54頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

課程內(nèi)容第1章計(jì)算機(jī)系統(tǒng)初步知識第2章計(jì)算機(jī)軟件

第3章C編程基礎(chǔ)

第4章C結(jié)構(gòu)第5章C數(shù)組第6章C函數(shù)1回顧

準(zhǔn)備好紙和筆,紙的左上角寫上姓名、學(xué)號、班級2回顧

1、計(jì)算機(jī)由哪幾部分組成,怎樣聯(lián)系起來的?2、什么是按位存儲,按字節(jié)尋址?3、什么是程序,什么是計(jì)算機(jī)程序,什么是計(jì)算機(jī)程序設(shè)計(jì)?4、什么是語言,構(gòu)成語言的三要素是?什么是計(jì)算機(jī)程序設(shè)計(jì)語言?5、什么是機(jī)器語言,什么是指令,指令的一般格式,指令的執(zhí)行過程?6、什么是源程序,實(shí)現(xiàn)源程序變成機(jī)器語言(指令)的程序稱為什么,需要哪些過程?3馮·諾依曼型計(jì)算機(jī)存儲器輸出輸入運(yùn)算器控制器數(shù)據(jù)信號控制信號地址信號

回顧4主存結(jié)構(gòu):按位存儲,按字節(jié)尋址

回顧5回顧2.指令的執(zhí)行過程6回顧1.編寫源程序:編輯源程序代碼2.執(zhí)行編譯:產(chǎn)生與源程序等價的目標(biāo)程序3.連接:連接所需庫函數(shù)和其它目標(biāo)程序4.調(diào)試程序:對產(chǎn)生的錯誤進(jìn)行修改,重新編譯5.執(zhí)行程序:生成最終正確的可運(yùn)行的.exe程序。7教學(xué)內(nèi)容

第3章C編程基礎(chǔ)3.1C介紹3.2C程序基本構(gòu)成3.3C語法8教學(xué)目標(biāo)

了解計(jì)算機(jī)語言的發(fā)展、C語言的特點(diǎn);掌握C語言程序的基本構(gòu)成:頭文件、main()函數(shù)、輸入語句、輸出語句、注釋等;掌握C語言程序的基本語法:熟悉C語言的數(shù)據(jù)類型;算術(shù)、賦值運(yùn)算符,能夠根據(jù)要求構(gòu)造相應(yīng)的表達(dá)式;能夠區(qū)分常量與變量的不同,掌握基本數(shù)據(jù)類型的常量與變量的定義、使用;9教學(xué)重點(diǎn)

C語言程序的基本構(gòu)成C語言程序的基本語法10(1)C語言的發(fā)展C語言是國際上廣泛流行的計(jì)算機(jī)高級語言。C語言的發(fā)展:BCPL語言B語言C語言精練、接近硬件,但過于簡單,無數(shù)據(jù)類型具有多種數(shù)據(jù)類型最初的C語言只是為描述和實(shí)現(xiàn)UNIX操作系統(tǒng)提供一種工作語言而設(shè)計(jì)的。3.1C語言的發(fā)展及其特點(diǎn)111983年,美國國家標(biāo)準(zhǔn)協(xié)會(ANSI)制定了第一個C語言標(biāo)準(zhǔn)草案(’83ANSIC);1989年,ANSI公布了一個完整的C語言標(biāo)準(zhǔn)—ANSIX3.159-1989(常稱ANSIC,或C89);1990年,國際標(biāo)準(zhǔn)化組織ISO接受C89作為國際標(biāo)準(zhǔn)ISO/IEC9899:1990,它和ANSI的C89基本上是相同的;121995年,ISO對C90作了一些修訂;1999年,ISO又對C語言標(biāo)準(zhǔn)進(jìn)行修訂,在基本保留原來的C語言特征的基礎(chǔ)上,增加了一些功能,命名為ISO/IEC9899:1999;2001、2004年先后進(jìn)行了兩次技術(shù)修正(TC1和TC2)。ISO/IEC9899:1999(及其技術(shù)修正)被稱為C99。C99是C89(及1995基準(zhǔn)增補(bǔ)1)的擴(kuò)充。目前最新的版本是ISO/IEC9899:2011,一般稱為C11不同軟件公司提供的各C語言編譯系統(tǒng)多數(shù)并未完全實(shí)現(xiàn)C11建議的功能。13

C語言是一種用途廣泛、功能強(qiáng)大、使用靈活的過程性(procedural)編程語言,既可用于編寫應(yīng)用軟件,又能用于編寫系統(tǒng)軟件。因此C語言問世以后得到迅速推廣。14(2)C語言的主要特點(diǎn)語言簡潔、緊湊,使用方便、靈活:只有37個關(guān)鍵字、9種控制語句程序書寫形式自由,源程序短運(yùn)算符豐富:有34種運(yùn)算符把括號、賦值、強(qiáng)制類型轉(zhuǎn)換等都作為運(yùn)算符處理表達(dá)式類型多樣化15(2)C語言的主要特點(diǎn)(續(xù))數(shù)據(jù)類型豐富:包括:整型、浮點(diǎn)型、字符型、數(shù)組類型、指針類型、結(jié)構(gòu)體類型、共用體類型C99又?jǐn)U充了復(fù)數(shù)浮點(diǎn)類型、超長整型(longlong)、布爾類型(bool)指針類型數(shù)據(jù),能用來實(shí)現(xiàn)各種復(fù)雜的數(shù)據(jù)結(jié)構(gòu)(如鏈表、樹、棧等)的運(yùn)算。16具有結(jié)構(gòu)化的控制語句:如if…else語句、while語句、do…while語句、switch語句、for語句用函數(shù)作為程序的模塊單位,便于實(shí)現(xiàn)程序的模塊化C語言是完全模塊化和結(jié)構(gòu)化的語言17允許直接訪問物理地址,能進(jìn)行位操作,可以直接對硬件進(jìn)行操作:C語言具有高級語言的功能和低級語言的許多功能,可用來編寫系統(tǒng)軟件這種雙重性,使它既是成功的系統(tǒng)描述語言,又是通用的程序設(shè)計(jì)語言18(2)C語言的主要特點(diǎn)(續(xù))用C語言編寫的程序可移植性好:C的編譯系統(tǒng)簡潔,很容易移植到新系統(tǒng)在新系統(tǒng)上運(yùn)行時,可直接編譯“標(biāo)準(zhǔn)鏈接庫”中的大部分功能,不需要修改源代碼幾乎所有計(jì)算機(jī)系統(tǒng)都可以使用C語言。生成目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高。19例1要求在屏幕上輸出以下一行信息。

ThisisaCprogram.程序代碼:/*Myfirstprogramm.*/#include<stdio.h>intmain(){printf("ThisisaCprogram.\n");return0;}(1)簡單C語言程序舉例3.2C程序基本構(gòu)成20解釋程序代碼:#include<stdio.h>intmain(){

printf("ThisisaCprogram.\n");return0;}主函數(shù)類型函數(shù)體函數(shù)的名字,表示主函數(shù)C程序必須有一個main函數(shù)輸出函數(shù)輸出語句換行符當(dāng)main函數(shù)執(zhí)行結(jié)束前將整數(shù)0作為函數(shù)值表示語句結(jié)束用到函數(shù)庫中的輸入輸出函數(shù)時21注釋。不是程序代碼,它只是方便程序員閱讀代碼,編譯器編譯時會把它忽略。也就是注釋是不會被編譯的。程序可以沒有注釋,但為了方便以后閱讀代碼,都會在程序關(guān)鍵處加上注釋。C語言允許用兩種注釋方式://:單行注釋可單獨(dú)占一行;也可出現(xiàn)在一行中其他內(nèi)容的右側(cè)/*……*/:塊式注釋:可包含一行或多行(2)C語言程序的構(gòu)成22預(yù)處理指令#include<stdio.h>#include稱為預(yù)處理,編譯器編譯之前要做的,因此稱為預(yù)處理<stdio.h>稱為頭文件,因?yàn)樗ǔ7旁诔绦虻拈_頭。作用:包含了編譯器理解printf函數(shù)所需要的信息。還包含其他C標(biāo)準(zhǔn)庫函數(shù)。標(biāo)準(zhǔn)庫:定義編寫C常需要的常量、符號和函數(shù)。例如計(jì)算機(jī)的輸入輸出。標(biāo)準(zhǔn)庫在頭文件中指定,頭文件的擴(kuò)展名總是.h,要使用某些函數(shù),只要用預(yù)處理命令包含其對應(yīng)的頭文件即可。有時候?yàn)榱朔奖銓懗绦?,也可以定義自己的頭文件。(2)C語言程序的構(gòu)成233.main()函數(shù)一個C程序中有且只能有一個main()函數(shù)。程序總是從main()函數(shù)開始執(zhí)行4.關(guān)鍵字(如int)

表示具有特殊意義的字。(2)C語言程序的構(gòu)成24函數(shù)體(2)C語言程序的構(gòu)成256.輸出信息printf("ThisisaCprogram.\n");printf是標(biāo)準(zhǔn)庫中的輸出函數(shù)??刂品〒Q行符)\n換行符(轉(zhuǎn)義字符的一種)輸出光標(biāo)會移動到下一行8.語句結(jié)束符;每個語句以分號結(jié)束;必不可少。(2)C語言程序的構(gòu)成26程序總是從main函數(shù)開始執(zhí)行C程序書寫格式是比較自由的一行內(nèi)可以寫幾個語句一個語句可以分寫在多行上為清晰起見,習(xí)慣上每行只寫一個語句語句最后必須有分號C語言本身不提供輸入輸出語句程序應(yīng)當(dāng)包含注釋,增加可讀性(3)幾點(diǎn)說明27如何編寫程序???如何用C編寫2+3=5?如何用C編寫2.2+3.3=5.5?如何用C輸出a,b,c等英文字母?283.3C程序基本語法數(shù)據(jù)類型常量和變量運(yùn)算符和表達(dá)式29 在現(xiàn)實(shí)生活中,我們會接觸到許多數(shù)據(jù) 從上我們可以得到數(shù)據(jù):年齡33歲,身高2.26m,體重141.0kg,…它們具有不同的性質(zhì):字符串有標(biāo)識作用,數(shù)值型可計(jì)算,還有精度差異。編寫程序時,需區(qū)別對待。1.數(shù)據(jù)類型30數(shù)據(jù)存儲在內(nèi)存中,不同數(shù)據(jù)所占用存儲空間的多少、數(shù)值范圍不同;所謂類型,就是對數(shù)據(jù)分配存儲單元的安排,包括存儲單元的長度(占多少字節(jié))以及數(shù)據(jù)的存儲形式不同的類型分配不同的長度和存儲形式數(shù)據(jù)在計(jì)算機(jī)中的存儲是以字節(jié)為單位計(jì)算的,一個字節(jié)是8位。例如:整數(shù)10的用2字節(jié)表示的示圖:31同一數(shù)據(jù)類型在不同計(jì)算機(jī)中占用的空間可能不同,如:int型,在16位計(jì)算機(jī)中占2字節(jié),在32位計(jì)算機(jī)中占4字節(jié);數(shù)據(jù)占用內(nèi)存字節(jié)的多少決定了其能表達(dá)數(shù)據(jù)的范圍;計(jì)算機(jī)內(nèi)存中的同一數(shù)據(jù)當(dāng)做不同類型來解釋時,所得結(jié)果是不同的;32單精度型(float)雙精度型(double)數(shù)據(jù)類型基本類型整型浮點(diǎn)型構(gòu)造類型指針類型(*)數(shù)組類型([])結(jié)構(gòu)體類型(struct)共用體類型(union)函數(shù)類型空類型(void)枚舉類型(enum)整型(int)短整型(shortint)長整型(longint)字符型(char)33數(shù)據(jù)類型情況重點(diǎn)掌握類型關(guān)鍵字、所占字節(jié)數(shù)、表示的數(shù)值范圍。下表是DevC++的基本數(shù)據(jù)類型:34(2)字符型數(shù)據(jù)(由一個字符組成,占一個字節(jié))字符(128個):大多數(shù)系統(tǒng)采用ASCII字符集;單引號表示字母:A~Z,a~z數(shù)字:0~9專門符號:29個:!”#&‘()*等空格符:空格、水平制表符、換行等不能顯示的字符:空(null)字符(以‘\0’表示)、警告(以‘\a’表示)、退格(以‘\b’表示)、回車(以‘\r’表示)等35

(3)浮點(diǎn)型數(shù)據(jù)浮點(diǎn)型數(shù)據(jù)是用來表示具有小數(shù)點(diǎn)的實(shí)數(shù)在C語言中,實(shí)數(shù)是以指數(shù)形式存放在內(nèi)存存儲單位中的小數(shù)部分指數(shù)數(shù)符以圓周率PI的近似值3.14159為例,可寫成:3.14159x100、0.314159x101、0.0314159x102、31.4159x10-1等形式。由于小數(shù)點(diǎn)位置可以浮動,故稱為浮點(diǎn)數(shù)。規(guī)格化指數(shù)形式:小數(shù)點(diǎn)前數(shù)字為0、小數(shù)點(diǎn)的第1位數(shù)字非0 對于一個實(shí)數(shù)來說,其規(guī)格化指數(shù)形式只有一種,例如: 0.314159x101符合要求,0.0314159x102、31.4159x10-1等則不符合要求指數(shù)表示了數(shù)據(jù)的大小,尾數(shù)表示了數(shù)據(jù)的精度。通常用e或E后面帶整數(shù)表示10的多少次方。36 在C語言中,有許多符號需要命名,如:變量名、函數(shù)名、數(shù)組名等,這些符號稱為標(biāo)識符。標(biāo)識符的命名規(guī)則:由字母、數(shù)字、下劃線組成,并且第一個字符必須為字母或下劃線。合法標(biāo)識符:area、PI、a_array、price等非法標(biāo)識符:456p、cade-y、x.y、a&b等(1)標(biāo)識符不同的C語言編譯系統(tǒng)所規(guī)定的標(biāo)識符長度可能不同?2.常量和變量37標(biāo)識符有三類:關(guān)鍵字:C語言預(yù)先規(guī)定的一批有固定含義的標(biāo)識符,不能另作他用autodouble

intstructcase else long switchbreakenum register typedefcharextern returnunionconstfloat shortunsignedcontinuefor signedvoid

defaultgoto sizeofvolatiledoif staticwhile

include等38預(yù)定義標(biāo)識符:C語言預(yù)先定義并有特定含義的標(biāo)識符,如:庫函數(shù)名(printf)、預(yù)處理命令(define)。不建議另作他用用戶標(biāo)識符:用戶定義的標(biāo)識符,如:變量名、函數(shù)名、數(shù)組名等,最好“見名知意”39概念:在程序運(yùn)行過程中,其值不能被改變的量 包括:整型常量、實(shí)型常量、字符常量和字符串常量等(2)常量1)整型常量:十進(jìn)制整數(shù):由正號(+)或負(fù)號(-)開始的、接著為首位非0的若干個十進(jìn)制數(shù)字所組成。如38,-25,+120,74286等402)字符常量:普通的字符常量:用一對單引號括起來的一個字符,形式為:‘單字符’,如:’a’,’%’,’A’等,區(qū)分大小寫 注意:’ab’是錯誤的,為什么?41轉(zhuǎn)義字符:格式:\特定字符性質(zhì):改變原先字符的含義,實(shí)現(xiàn)特定功能 例如:\n(換行功能)42常用的轉(zhuǎn)義字符:轉(zhuǎn)義字符含義ASCII碼值(十進(jìn)制)\a響鈴(bell)7\b退格(backspace)8\n換行(newline)10\r回車(carriagereturn)13\t水平制表(horizontaltab)9\v垂直制表(verticaltab)11\\反斜杠92\’單引號39\”雙引號34\0空格符(null)0\ddd任意字符3位八進(jìn)制數(shù)\xhh任意字符2位十六進(jìn)制數(shù)433)字符串常量:格式:“…”,即:用一對雙引號括起來的字符序列(字符個數(shù)可以0、1或多個,也可以是轉(zhuǎn)義字符),起標(biāo)識、提示作用。字符串以雙引號為定界符,雙引號不作為字符串的一部分。如:“Hello”,“GoodMorning!”,“廣州大學(xué)”…長度:字符串的字符數(shù)。如:“Hello”的長度為5.存儲:在內(nèi)存中占一串連續(xù)的存儲單元,系統(tǒng)自動在字符串的末尾加以字符串結(jié)束標(biāo)志,即轉(zhuǎn)義字符‘\0’。 占6個存儲單元44特別注意:“字符串”與“字符型數(shù)據(jù)”是兩個完全不同的概念。問題:分辨哪些是字符常量?哪些是字符串?

“sise”、”?”、””、‘!’、‘\x20’、“”454)怎樣確定常量的類型?字符常量:由單撇號(‘’)括起來的單個字符或轉(zhuǎn)義字符字符串常量:由雙撇號(“”)括起來的單個字符或轉(zhuǎn)義字符整型常量:不帶小數(shù)點(diǎn)的數(shù)值,系統(tǒng)根據(jù)數(shù)值的大小確定int型還是long型等浮點(diǎn)型常量:凡以小數(shù)形式或指數(shù)形式出現(xiàn)的實(shí)數(shù)46概念:變量是計(jì)算機(jī)一塊特定的內(nèi)存,由一個或多個字節(jié)組成;用變量名去提取或存儲變量值。變量名表示該內(nèi)存地址;變量的值可以改變。(3)變量注:變量名是標(biāo)識符,命名要“見名知意”在程序中,實(shí)際上是通過變量名找到相應(yīng)的內(nèi)存地址,從該存儲單元中讀取數(shù)據(jù)inta=3;47變量定義(聲明):數(shù)據(jù)類型變量名1[,變量名2,…]; 實(shí)質(zhì):在編譯時為其分配相應(yīng)的存儲單元 例如:inta,b,c;floatr;doubleroot1,root2;C語言規(guī)定,變量要“先定義,后使用”,編譯時系統(tǒng)進(jìn)行檢查。例如,如果在定義時為intnum;而在執(zhí)行語句中錯寫成nmu,編譯時就會輸出“變量nmu未經(jīng)聲明”的信息變量定義后,如果未賦值,則其值是不確定的。應(yīng)避免這種情況的出現(xiàn)48變量初始化:數(shù)據(jù)類型變量名1=初值[,變量名2=初值,…];

功能:將變量定義、賦值“合二為一”49運(yùn)算符(操作符):是對數(shù)據(jù)進(jìn)行運(yùn)算的符號操作數(shù)(運(yùn)算對象):參與運(yùn)算的數(shù)據(jù)表達(dá)式:由操作數(shù)和操作符連接而成的有效的式子。例如:2+3(1)一些概念3.運(yùn)算符和表達(dá)式50運(yùn)算符(5個):+,-,*:含義與數(shù)學(xué)上相同;(注:兩個數(shù)相乘時,*不能省略)/: 對于整型數(shù)則為除法取整操作,例如,5/2得到結(jié)果2; 如果除數(shù)或被除數(shù)中有一個為負(fù)值,舍入方向不固定。例如,-5/2,有的系統(tǒng)中得到的結(jié)果為-2,在有的系統(tǒng)中則得到結(jié)果為-3。 對于浮點(diǎn)數(shù)則為通常意義的除法,例如,5.0/2.0得到結(jié)果為2.5 由此可見,/操作符可以對不同的數(shù)據(jù)類型進(jìn)行不同的操作。(2)算術(shù)運(yùn)算符與表達(dá)式51運(yùn)算符(5個

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論