




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、高級(jí)語(yǔ)言程序設(shè)計(jì)(一)(C Programming)北京航空航天大學(xué)計(jì)算機(jī)學(xué)院軟件所晏海華 孫自安C程序設(shè)計(jì)基礎(chǔ)2作業(yè)及參考書(shū)教師:晏海華 聯(lián)系方式:新主樓G916,Tel: 82328212, 教師:孫自安 聯(lián)系方式:新主樓G920,Tel:82316284,Email: 參考書(shū):C程序設(shè)計(jì)語(yǔ)言,B.W.Kernighan, D.M.Ritchie, 機(jī)械工業(yè)出版社,徐寶文等譯從問(wèn)題到程序程序設(shè)計(jì)與C語(yǔ)言引論,裘宗燕編著,機(jī)械工業(yè)出版社C語(yǔ)言教程,孫玉芳,孟慶昌編著課程網(wǎng)站(課程信息、作業(yè)及答疑):http: 考核方式:作業(yè)占10%,期中考試占30%,期末占60%C程序設(shè)計(jì)基礎(chǔ)3作業(yè)要求必須
2、在規(guī)定時(shí)間內(nèi)提交;一定要按照題目要求提交,比如:輸入、輸出數(shù)據(jù)格式,提交文件名稱(chēng)等等;嚴(yán)禁抄襲!C程序設(shè)計(jì)基礎(chǔ)4忠告掌握C語(yǔ)言程序設(shè)計(jì)的唯一途徑:上機(jī)實(shí)踐(編程)?。═ry!)高級(jí)語(yǔ)言程序設(shè)計(jì)(一)(C Programming)第一講:C語(yǔ)言基礎(chǔ)C程序設(shè)計(jì)基礎(chǔ)6本章目標(biāo)了解C語(yǔ)言的歷史及現(xiàn)狀;初步了解C程序的結(jié)構(gòu)知道在某個(gè)操作系統(tǒng)環(huán)境下(Windows)一個(gè)C程序的編寫(xiě)過(guò)程;掌握變量、常量、簡(jiǎn)單數(shù)據(jù)類(lèi)型、類(lèi)型轉(zhuǎn)換、表達(dá)式及部分C語(yǔ)言運(yùn)算符;知道運(yùn)算符優(yōu)先級(jí)及結(jié)合律C程序設(shè)計(jì)基礎(chǔ)7程序設(shè)計(jì)與程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)(Programming): 為計(jì)算機(jī)解決問(wèn)題所需的分析、設(shè)計(jì)、編寫(xiě)及調(diào)試程序過(guò)程。(
3、The process of planning, writing, testing, and correcting the steps required for a computer to solve a problem or perform an operation.)程序設(shè)計(jì)語(yǔ)言(Programming Language): 用來(lái)表達(dá)程序的計(jì)算機(jī)能夠執(zhí)行的人工語(yǔ)言。C程序設(shè)計(jì)基礎(chǔ)8為什么要學(xué)C程序設(shè)計(jì)C語(yǔ)言仍是目前廣泛使用的編程語(yǔ)言,主要特點(diǎn):表達(dá)能力強(qiáng),支持結(jié)構(gòu)化程序設(shè)計(jì);語(yǔ)言簡(jiǎn)潔;代碼效率高: C編寫(xiě)的程序僅比用匯編語(yǔ)言編寫(xiě)的程序相差20%;可移植性好;特別適合編寫(xiě)操作系統(tǒng)、編譯程序、
4、數(shù)據(jù)庫(kù)系統(tǒng)、嵌入式軟件及圖形/圖象處理等對(duì)性能要求高的軟件;C語(yǔ)言是目前廣泛流行的面向?qū)ο笳Z(yǔ)言C+、C#及Java的基礎(chǔ)C程序設(shè)計(jì)基礎(chǔ)9C語(yǔ)言歷史C語(yǔ)言的產(chǎn)生與UNIX操作系統(tǒng)是密不可分的:UNIX由Bell Lab的K.Thompson和D.M.Ritchie最先在1969年開(kāi)發(fā)的O.S.(它的前身是MIT和AE開(kāi)發(fā)的Multies)。1970年,V1,V2版在PDP-7機(jī)上用匯編語(yǔ)言實(shí)現(xiàn)1971年V3 PDP11/23 ; 1972年V4 PDP11/451972年,D.M.Ritchie開(kāi)發(fā)出新語(yǔ)言C。(C B BCPL CPL單數(shù)據(jù)型語(yǔ)言)1973年,Ritchie和Thompson用
5、C改寫(xiě)了UNIX核心(90%)即V5C程序設(shè)計(jì)基礎(chǔ)10C語(yǔ)言歷史(續(xù))C語(yǔ)言的發(fā)展經(jīng)歷三個(gè)階段:第一階段:78年以前,C稱(chēng)為UNIX C,即C被看成UNIX的一部分。第二階段:78年D.Ritchie的C程序設(shè)計(jì)語(yǔ)言出版到88年ANSI C(標(biāo)準(zhǔn)C)標(biāo)準(zhǔn)出現(xiàn)。此C又稱(chēng)為K&R C。第三階段:88年ANSI C標(biāo)準(zhǔn)(89年3月批準(zhǔn))。CPL1968 C.StracheyBCPL1969 M.RichardsB1970 K.ThompsonC1972 D.M.RitchieC+1988 B.StroustrupC程序設(shè)計(jì)基礎(chǔ)11一個(gè)簡(jiǎn)單的C程序:在屏幕上顯示一行正文例1-1/* file: hel
6、lo.c */ #include main( )printf(“hello, worldn”);/* */ 為注釋?zhuān)豢汕短?include為一條預(yù)處理指令,當(dāng)程序中用到輸入/輸出函數(shù)時(shí),應(yīng)在文件開(kāi)始處加上該指令。 main為一函數(shù)名。 由 括起來(lái)的部分為函數(shù)體。函數(shù)名為一標(biāo)識(shí)符。 printf為一條輸出語(yǔ)句,在C語(yǔ)言中分號(hào)(;)為語(yǔ)句的結(jié)束符。 printf為標(biāo)準(zhǔn)I/O庫(kù)中標(biāo)準(zhǔn)輸出函數(shù)。 “” 為一字符串常量。 n為C語(yǔ)言轉(zhuǎn)義字符,表示回車(chē)。C程序設(shè)計(jì)基礎(chǔ)12標(biāo)識(shí)符在C語(yǔ)言中標(biāo)識(shí)符定義為:”由字母(或_)開(kāi)頭的字母(_)數(shù)字串“。標(biāo)識(shí)符在C語(yǔ)言中可作為變量名、常量名、函數(shù)名、參數(shù)名、類(lèi)型名、
7、枚舉名和標(biāo)號(hào)等。注意: C語(yǔ)言對(duì)字母大小寫(xiě)敏感,因此,name, Name,NAME是3個(gè)不同的標(biāo)識(shí)符。C程序設(shè)計(jì)基礎(chǔ)13C程序結(jié)構(gòu)一個(gè)C程序由一系列外部說(shuō)明和函數(shù)組成;一個(gè)函數(shù)則由局部變量說(shuō)明及語(yǔ)句序列組成;一個(gè)C程序可由一個(gè)或多個(gè)函數(shù)組成,但其中必有一個(gè)(也只能有一個(gè))命名為main(主函數(shù)),其它函數(shù)可由用戶任取名字。程序運(yùn)行時(shí)必需從main開(kāi)始,但main函數(shù)在程序中的前后位置沒(méi)有關(guān)系 ;組成C程序的各個(gè)函數(shù)可在一個(gè)源文件上,也可以分放在多個(gè)文件上(函數(shù)不能跨文件),每個(gè)源文件可單獨(dú)編譯。C源文件必須以.c作后綴(.h為C程序的頭文件) ;C程序設(shè)計(jì)基礎(chǔ)14C程序的編輯、編譯和運(yùn)行C程
8、序設(shè)計(jì)基礎(chǔ)15在Windows下使用VC編寫(xiě)及運(yùn)行C程序項(xiàng)目名C程序設(shè)計(jì)基礎(chǔ)16C程序設(shè)計(jì)基礎(chǔ)17C程序設(shè)計(jì)基礎(chǔ)18給出C源文件名C程序設(shè)計(jì)基礎(chǔ)19編輯C程序C程序設(shè)計(jì)基礎(chǔ)20編譯Compile編譯及連接Build編譯及連接信息運(yùn)行ExecuteC程序設(shè)計(jì)基礎(chǔ)21運(yùn)行結(jié)果C程序設(shè)計(jì)基礎(chǔ)22在UNIX(Linux)下編寫(xiě)及運(yùn)行一個(gè)C程序*cc -o執(zhí)行文件名 c 文件名 o :指定執(zhí)行文件名,缺省為a.out c :產(chǎn)生.o文件如:s1.c, s2.c s3.c組成一個(gè)C程序, 則有:cc c s1.ccc c s2.c cc o s s1.o s2.o s3.cC程序設(shè)計(jì)基礎(chǔ)23另一個(gè)簡(jiǎn)單的C
9、程序:整數(shù)求和 int 為數(shù)據(jù)類(lèi)型說(shuō)明符,其為一個(gè) 關(guān)鍵字。 a,b,c,sum為變量,其為 標(biāo)識(shí)符。例1-2#include main( ) /* c1_2.c */int a, b, c, sum;a =1; b = 2;scanf(“%d”, &c);/*注意不能省略&*/sum = a + b + c;printf(“Sum = %dn”, sum);a = 1;為賦值語(yǔ)句,其中1為數(shù)字常量,=為賦值運(yùn)算符。 scanf為標(biāo)準(zhǔn)輸入函數(shù),在此從鍵盤(pán)上讀入一個(gè)整數(shù)存入變量c中。 在此,printf將變量sum內(nèi)容顯示到屏幕上。+為算術(shù)運(yùn)算符。 C程序設(shè)計(jì)基礎(chǔ)24關(guān)鍵字int autogot
10、oiffloatstaticreturnelsecharexternbreakwhileshortregistercontinueforlongdounsignedswitchdoublecasestructdefaultunionvoidenumtypedefsizeofconstsigneddefine, undef, include, ifdef, ifndef, endif, 及l(fā)ine,雖不是關(guān)鍵字,但是最好把它們看作關(guān)鍵字,它們主要用于C預(yù)處理程序中。C程序設(shè)計(jì)基礎(chǔ)25標(biāo)準(zhǔn)輸入及輸出函數(shù):scanf & printf在scanf和printf中,%號(hào)開(kāi)始的為格式轉(zhuǎn)換控制字符,用來(lái)控
11、制輸入/出數(shù)據(jù)的格式,常用的有:scanf printf%d %d 十進(jìn)制整數(shù)%f %f 十進(jìn)制浮點(diǎn)數(shù) %c %c 單個(gè)字符 %s %s 字符串 %o 八進(jìn)制整數(shù) %x 十六進(jìn)制整數(shù) % %本身在控制字符前還可以加數(shù)字,如:%4d :輸出最小域?qū)挒?個(gè)字符的整數(shù)。%6.2f :輸出最小域?qū)挒?個(gè)字符的浮點(diǎn)數(shù),并且小數(shù)點(diǎn)占兩位。C程序設(shè)計(jì)基礎(chǔ)26一個(gè)例子:計(jì)算圓的面積及周長(zhǎng)例1-3#include main()double radius, area, perimeter;scanf(“%f”, &radius);area = 3.14159 * radius * radius;perimeter
12、 = 2 * radius * 3.14159;printf(“Radius = %6.2f Area = %6.2f Perimeter = %6.2f”, radius,area,perimeter);浮點(diǎn)數(shù)據(jù)類(lèi)型C程序設(shè)計(jì)基礎(chǔ)27變量與變量說(shuō)明在C中,所有變量必須先說(shuō)明(定義)后使用;說(shuō)明方式: 存貯類(lèi) 類(lèi)型 變量(列)表;例:int lower, upper, step;char c, line100;extern double x;const double PI = 3.1415926;const char msg = “Warning”;C程序設(shè)計(jì)基礎(chǔ)28變量屬性double sa
13、lary = 1500.23;變量的類(lèi)型變量的名字變量的值變量的存儲(chǔ)位置地址: 0 x00222000C程序設(shè)計(jì)基礎(chǔ)29常量整型常量(十進(jìn)制、八進(jìn)制、十六進(jìn)制、long整型常量),如:1275, 0127, 0 x19a, 0 xABD, 123l, 89L浮點(diǎn)常量,如:23.15, -8E-3, -125e+4字符常量,用一對(duì)單引號(hào)括起來(lái)字符稱(chēng)為字符常量,如:A, b, ? 一個(gè)字符常量的值是該字符在機(jī)器字符集(通常是ASCII字符集,但某些IBM大型機(jī)用EBCDIC碼)中的編碼值, 它是一個(gè)整數(shù)值。如上,在ASCII字符集中A的值為65,b的值為98,?的值為63。轉(zhuǎn)義字符常量,如:0,
14、n, t, b, r, f , ,ddd(位模式,ddd為八進(jìn)制數(shù),其值為ddd)字符常量可像其它數(shù)一樣參與數(shù)值運(yùn)算,主要用于同其它字符作比較,如:if( c = A & c = Z)return ( c + a A);C程序設(shè)計(jì)基礎(chǔ)30常量(續(xù))字符串常量,用一對(duì)雙引號(hào)括起來(lái)的字符串稱(chēng)為字符串常量,如:“The C Programming Language”注意:所有字符串均以0結(jié)束(代碼值為0的字符),因此,“x”和x不同,末尾的0由編譯程序自動(dòng)添加。C程序設(shè)計(jì)基礎(chǔ)31常量定義所有常量可以用#define來(lái)定義,即可以給一個(gè)常量命名。如:#define PI 3.14156使用常量定義的好
15、處:可提高程序的可讀性程序的可移植性更好,可維護(hù)性更好#include #define PI 3.14159main()double radius, area, perimeter;scanf(“%f”, &radius);area = PI * radius * radius;perimeter = 2 * radius * PI;printf(“Radius = %6.2 Area = %6.2 Perimeter = %6.2”, radius,area,perimeter);C程序設(shè)計(jì)基礎(chǔ)32基本數(shù)據(jù)類(lèi)型注意:在C語(yǔ)言中,沒(méi)有Bool(布爾)類(lèi)型,它用非0值表示真(True),用0表示
16、假(False)。在ANSI C中,類(lèi)型修飾符:const - 其變量值在程序執(zhí)行中不可以通過(guò)賦值等方法對(duì)它進(jìn)行修改(是定義常量的另一種方法,用#define定義的常量無(wú)類(lèi)型,而用const定義的常量有類(lèi)型)。如:const float PI = 3.14159; #include const float PI = 3.14159;main()double radius, area, perimeter;scanf(“%f”, &radius);area = PI * radius * radius;perimeter = 2 * radius * PI;printf(“Radius = %6
17、.2 Area = %6.2 Perimeter = %6.2”, radius,area,perimeter);C程序設(shè)計(jì)基礎(chǔ)33類(lèi)型轉(zhuǎn)換C語(yǔ)言類(lèi)型轉(zhuǎn)換通常是自動(dòng)的- 隱式(自動(dòng))類(lèi)型轉(zhuǎn)換1)字符與整數(shù)可以用整數(shù)的地方就可以用字符。而整數(shù)轉(zhuǎn)換成字符時(shí),超出8位就將高位丟掉。2)浮點(diǎn)數(shù)與整數(shù)3)無(wú)符號(hào)整數(shù)一般整數(shù)(int)和無(wú)符號(hào)整數(shù)(unsigned)混合使用,則簡(jiǎn)單整數(shù)轉(zhuǎn)換成無(wú)符號(hào)整數(shù)。C程序設(shè)計(jì)基礎(chǔ)34類(lèi)型轉(zhuǎn)換(續(xù))4)算術(shù)轉(zhuǎn)換如果一個(gè)運(yùn)算符,有不同類(lèi)型的運(yùn)算對(duì)象,那么“較低”類(lèi)型會(huì)自動(dòng)轉(zhuǎn)換成“較高”類(lèi)型。此外,賦值號(hào)右邊表達(dá)式的類(lèi)型會(huì)自動(dòng)轉(zhuǎn)換為賦值號(hào)左邊變量類(lèi)型。如,n+1.5結(jié)果將為
18、double類(lèi)型C程序設(shè)計(jì)基礎(chǔ)35類(lèi)型轉(zhuǎn)換(續(xù))強(qiáng)制類(lèi)型轉(zhuǎn)換(cast)- 顯式類(lèi)型轉(zhuǎn)換()如:x = sqrt(double) n );C程序設(shè)計(jì)基礎(chǔ)36表達(dá)式與運(yùn)算符在C語(yǔ)言中,由運(yùn)算符(operators)及運(yùn)算對(duì)象(operands)構(gòu)成的式子稱(chēng)為表達(dá)式(expression),如:x + y *z在C語(yǔ)言中,一個(gè)表達(dá)式后跟一個(gè)分號(hào)可構(gòu)成一條語(yǔ)句:; 稱(chēng)為表達(dá)式語(yǔ)句如:x+;n = 5;a = b = c = 0;C程序設(shè)計(jì)基礎(chǔ)37算術(shù)運(yùn)算符算術(shù)運(yùn)算符: +, - , * , / , %在算術(shù)運(yùn)算時(shí),注意整除問(wèn)題,如:double f;f = 3 / 2;f = ?f 值為 1 而不是1.5, 若要f為1.5,則應(yīng)寫(xiě)為:f = (double)3 / 2;C程序設(shè)計(jì)基礎(chǔ)38賦值運(yùn)算符賦值運(yùn)算符: =, += , -=, /= , %= , *= , = , b_back += 2;編譯程序產(chǎn)生效率高(其用一個(gè)運(yùn)算符完成其它語(yǔ)言中須多個(gè)運(yùn)算符才能完成的功能。如:x += n只有一個(gè)運(yùn)算符,而x = x+n則有兩個(gè)運(yùn)算符)注意:y *= n+1; 等價(jià)于 y = y*(n+1);,而不是y = y*n+1;C程序設(shè)計(jì)基礎(chǔ)40增(減)量運(yùn)算符增(減)量運(yùn)算符:+,-依據(jù)運(yùn)算符與運(yùn)算對(duì)象間的位
溫馨提示
- 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 設(shè)備投資計(jì)劃
- 建筑規(guī)劃保安工作計(jì)劃
- 航空領(lǐng)域保安工作的創(chuàng)新計(jì)劃
- 會(huì)計(jì)信息與決策的關(guān)系探討計(jì)劃
- 2025年媒體經(jīng)營(yíng)項(xiàng)目建議書(shū)
- 2025年中國(guó)夜游經(jīng)濟(jì)行業(yè)供需態(tài)勢(shì)、競(jìng)爭(zhēng)格局及投資前景分析報(bào)告(智研咨詢)
- 2025年超硬材料項(xiàng)目合作計(jì)劃書(shū)
- 2025年特種大型鋁合金型材項(xiàng)目發(fā)展計(jì)劃
- 構(gòu)建直觀易用的用戶操作面板
- 2025年子宮收縮藥項(xiàng)目發(fā)展計(jì)劃
- 小學(xué)生急救常識(shí)(課件)主題教育班會(huì)
- Part 7 Formal and Informal Styles課件
- 信息光學(xué)試卷試題及答案
- 文化差異及跨文化交際試題集
- 油畫(huà)人體張東方姑娘的極致美
- PC-Ф800×800錘式破碎機(jī)結(jié)構(gòu)設(shè)計(jì)
- 慢病患者隨訪服務(wù)記錄表
- 雙溪課程評(píng)量表完整優(yōu)秀版
- 偽裝常識(shí)教案(共6頁(yè))
- 企業(yè)名字的81種數(shù)理含義
- 最新社工服務(wù)部組織架構(gòu)
評(píng)論
0/150
提交評(píng)論