北航語言命題人課件c_第1頁
北航語言命題人課件c_第2頁
北航語言命題人課件c_第3頁
北航語言命題人課件c_第4頁
北航語言命題人課件c_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、高級語言程序設計(一)(C Programming)北京航空航天大學計算機學院軟件所晏海華 孫自安C程序設計基礎2作業(yè)及參考書教師:晏海華 聯(lián)系方式:新主樓G916,Tel: 82328212, 教師:孫自安 聯(lián)系方式:新主樓G920,Tel:82316284,Email: 參考書:C程序設計語言,B.W.Kernighan, D.M.Ritchie, 機械工業(yè)出版社,徐寶文等譯從問題到程序程序設計與C語言引論,裘宗燕編著,機械工業(yè)出版社C語言教程,孫玉芳,孟慶昌編著課程網站(課程信息、作業(yè)及答疑):http: 考核方式:作業(yè)占10%,期中考試占30%,期末占60%C程序設計基礎3作業(yè)要求必須

2、在規(guī)定時間內提交;一定要按照題目要求提交,比如:輸入、輸出數(shù)據(jù)格式,提交文件名稱等等;嚴禁抄襲!C程序設計基礎4忠告掌握C語言程序設計的唯一途徑:上機實踐(編程)!(Try!)高級語言程序設計(一)(C Programming)第一講:C語言基礎C程序設計基礎6本章目標了解C語言的歷史及現(xiàn)狀;初步了解C程序的結構知道在某個操作系統(tǒng)環(huán)境下(Windows)一個C程序的編寫過程;掌握變量、常量、簡單數(shù)據(jù)類型、類型轉換、表達式及部分C語言運算符;知道運算符優(yōu)先級及結合律C程序設計基礎7程序設計與程序設計語言程序設計(Programming): 為計算機解決問題所需的分析、設計、編寫及調試程序過程。(

3、The process of planning, writing, testing, and correcting the steps required for a computer to solve a problem or perform an operation.)程序設計語言(Programming Language): 用來表達程序的計算機能夠執(zhí)行的人工語言。C程序設計基礎8為什么要學C程序設計C語言仍是目前廣泛使用的編程語言,主要特點:表達能力強,支持結構化程序設計;語言簡潔;代碼效率高: C編寫的程序僅比用匯編語言編寫的程序相差20%;可移植性好;特別適合編寫操作系統(tǒng)、編譯程序、

4、數(shù)據(jù)庫系統(tǒng)、嵌入式軟件及圖形/圖象處理等對性能要求高的軟件;C語言是目前廣泛流行的面向對象語言C+、C#及Java的基礎C程序設計基礎9C語言歷史C語言的產生與UNIX操作系統(tǒng)是密不可分的:UNIX由Bell Lab的K.Thompson和D.M.Ritchie最先在1969年開發(fā)的O.S.(它的前身是MIT和AE開發(fā)的Multies)。1970年,V1,V2版在PDP-7機上用匯編語言實現(xiàn)1971年V3 PDP11/23 ; 1972年V4 PDP11/451972年,D.M.Ritchie開發(fā)出新語言C。(C B BCPL CPL單數(shù)據(jù)型語言)1973年,Ritchie和Thompson用

5、C改寫了UNIX核心(90%)即V5C程序設計基礎10C語言歷史(續(xù))C語言的發(fā)展經歷三個階段:第一階段:78年以前,C稱為UNIX C,即C被看成UNIX的一部分。第二階段:78年D.Ritchie的C程序設計語言出版到88年ANSI C(標準C)標準出現(xiàn)。此C又稱為K&R C。第三階段:88年ANSI C標準(89年3月批準)。CPL1968 C.StracheyBCPL1969 M.RichardsB1970 K.ThompsonC1972 D.M.RitchieC+1988 B.StroustrupC程序設計基礎11一個簡單的C程序:在屏幕上顯示一行正文例1-1/* file: hel

6、lo.c */ #include main( )printf(“hello, worldn”);/* */ 為注釋,不可嵌套#include為一條預處理指令,當程序中用到輸入/輸出函數(shù)時,應在文件開始處加上該指令。 main為一函數(shù)名。 由 括起來的部分為函數(shù)體。函數(shù)名為一標識符。 printf為一條輸出語句,在C語言中分號(;)為語句的結束符。 printf為標準I/O庫中標準輸出函數(shù)。 “” 為一字符串常量。 n為C語言轉義字符,表示回車。C程序設計基礎12標識符在C語言中標識符定義為:”由字母(或_)開頭的字母(_)數(shù)字串“。標識符在C語言中可作為變量名、常量名、函數(shù)名、參數(shù)名、類型名、

7、枚舉名和標號等。注意: C語言對字母大小寫敏感,因此,name, Name,NAME是3個不同的標識符。C程序設計基礎13C程序結構一個C程序由一系列外部說明和函數(shù)組成;一個函數(shù)則由局部變量說明及語句序列組成;一個C程序可由一個或多個函數(shù)組成,但其中必有一個(也只能有一個)命名為main(主函數(shù)),其它函數(shù)可由用戶任取名字。程序運行時必需從main開始,但main函數(shù)在程序中的前后位置沒有關系 ;組成C程序的各個函數(shù)可在一個源文件上,也可以分放在多個文件上(函數(shù)不能跨文件),每個源文件可單獨編譯。C源文件必須以.c作后綴(.h為C程序的頭文件) ;C程序設計基礎14C程序的編輯、編譯和運行C程

8、序設計基礎15在Windows下使用VC編寫及運行C程序項目名C程序設計基礎16C程序設計基礎17C程序設計基礎18給出C源文件名C程序設計基礎19編輯C程序C程序設計基礎20編譯Compile編譯及連接Build編譯及連接信息運行ExecuteC程序設計基礎21運行結果C程序設計基礎22在UNIX(Linux)下編寫及運行一個C程序*cc -o執(zhí)行文件名 c 文件名 o :指定執(zhí)行文件名,缺省為a.out c :產生.o文件如:s1.c, s2.c s3.c組成一個C程序, 則有:cc c s1.ccc c s2.c cc o s s1.o s2.o s3.cC程序設計基礎23另一個簡單的C

9、程序:整數(shù)求和 int 為數(shù)據(jù)類型說明符,其為一個 關鍵字。 a,b,c,sum為變量,其為 標識符。例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;為賦值語句,其中1為數(shù)字常量,=為賦值運算符。 scanf為標準輸入函數(shù),在此從鍵盤上讀入一個整數(shù)存入變量c中。 在此,printf將變量sum內容顯示到屏幕上。+為算術運算符。 C程序設計基礎24關鍵字int autogot

10、oiffloatstaticreturnelsecharexternbreakwhileshortregistercontinueforlongdounsignedswitchdoublecasestructdefaultunionvoidenumtypedefsizeofconstsigneddefine, undef, include, ifdef, ifndef, endif, 及l(fā)ine,雖不是關鍵字,但是最好把它們看作關鍵字,它們主要用于C預處理程序中。C程序設計基礎25標準輸入及輸出函數(shù):scanf & printf在scanf和printf中,%號開始的為格式轉換控制字符,用來控

11、制輸入/出數(shù)據(jù)的格式,常用的有:scanf printf%d %d 十進制整數(shù)%f %f 十進制浮點數(shù) %c %c 單個字符 %s %s 字符串 %o 八進制整數(shù) %x 十六進制整數(shù) % %本身在控制字符前還可以加數(shù)字,如:%4d :輸出最小域寬為4個字符的整數(shù)。%6.2f :輸出最小域寬為6個字符的浮點數(shù),并且小數(shù)點占兩位。C程序設計基礎26一個例子:計算圓的面積及周長例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);浮點數(shù)據(jù)類型C程序設計基礎27變量與變量說明在C中,所有變量必須先說明(定義)后使用;說明方式: 存貯類 類型 變量(列)表;例:int lower, upper, step;char c, line100;extern double x;const double PI = 3.1415926;const char msg = “Warning”;C程序設計基礎28變量屬性double sa

13、lary = 1500.23;變量的類型變量的名字變量的值變量的存儲位置地址: 0 x00222000C程序設計基礎29常量整型常量(十進制、八進制、十六進制、long整型常量),如:1275, 0127, 0 x19a, 0 xABD, 123l, 89L浮點常量,如:23.15, -8E-3, -125e+4字符常量,用一對單引號括起來字符稱為字符常量,如:A, b, ? 一個字符常量的值是該字符在機器字符集(通常是ASCII字符集,但某些IBM大型機用EBCDIC碼)中的編碼值, 它是一個整數(shù)值。如上,在ASCII字符集中A的值為65,b的值為98,?的值為63。轉義字符常量,如:0,

14、n, t, b, r, f , ,ddd(位模式,ddd為八進制數(shù),其值為ddd)字符常量可像其它數(shù)一樣參與數(shù)值運算,主要用于同其它字符作比較,如:if( c = A & c = Z)return ( c + a A);C程序設計基礎30常量(續(xù))字符串常量,用一對雙引號括起來的字符串稱為字符串常量,如:“The C Programming Language”注意:所有字符串均以0結束(代碼值為0的字符),因此,“x”和x不同,末尾的0由編譯程序自動添加。C程序設計基礎31常量定義所有常量可以用#define來定義,即可以給一個常量命名。如:#define PI 3.14156使用常量定義的好

15、處:可提高程序的可讀性程序的可移植性更好,可維護性更好#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程序設計基礎32基本數(shù)據(jù)類型注意:在C語言中,沒有Bool(布爾)類型,它用非0值表示真(True),用0表示

16、假(False)。在ANSI C中,類型修飾符:const - 其變量值在程序執(zhí)行中不可以通過賦值等方法對它進行修改(是定義常量的另一種方法,用#define定義的常量無類型,而用const定義的常量有類型)。如: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程序設計基礎33類型轉換C語言類型轉換通常是自動的- 隱式(自動)類型轉換1)字符與整數(shù)可以用整數(shù)的地方就可以用字符。而整數(shù)轉換成字符時,超出8位就將高位丟掉。2)浮點數(shù)與整數(shù)3)無符號整數(shù)一般整數(shù)(int)和無符號整數(shù)(unsigned)混合使用,則簡單整數(shù)轉換成無符號整數(shù)。C程序設計基礎34類型轉換(續(xù))4)算術轉換如果一個運算符,有不同類型的運算對象,那么“較低”類型會自動轉換成“較高”類型。此外,賦值號右邊表達式的類型會自動轉換為賦值號左邊變量類型。如,n+1.5結果將為

18、double類型C程序設計基礎35類型轉換(續(xù))強制類型轉換(cast)- 顯式類型轉換()如:x = sqrt(double) n );C程序設計基礎36表達式與運算符在C語言中,由運算符(operators)及運算對象(operands)構成的式子稱為表達式(expression),如:x + y *z在C語言中,一個表達式后跟一個分號可構成一條語句:; 稱為表達式語句如:x+;n = 5;a = b = c = 0;C程序設計基礎37算術運算符算術運算符: +, - , * , / , %在算術運算時,注意整除問題,如:double f;f = 3 / 2;f = ?f 值為 1 而不是1.5, 若要f為1.5,則應寫為:f = (double)3 / 2;C程序設計基礎38賦值運算符賦值運算符: =, += , -=, /= , %= , *= , = , b_back += 2;編譯程序產生效率高(其用一個運算符完成其它語言中須多個運算符才能完成的功能。如:x += n只有一個運算符,而x = x+n則有兩個運算符)注意:y *= n+1; 等價于 y = y*(n+1);,而不是y = y*n+1;C程序設計基礎40增(減)量運算符增(減)量運算符:+,-依據(jù)運算符與運算對象間的位

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論