第1章程序設計和C語言(78)_第1頁
第1章程序設計和C語言(78)_第2頁
第1章程序設計和C語言(78)_第3頁
第1章程序設計和C語言(78)_第4頁
第1章程序設計和C語言(78)_第5頁
已閱讀5頁,還剩62頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、 結構化程序設計(結構化程序設計(C語言)語言)主講:主講:于波哈爾濱理工大學 軟件學院Email: hrbust_Office: 軟件學院樓3122課程簡介課程簡介 學分:學分:3.5學分 上課時間:上課時間:5-15周 周二 第三大節 507 5-19周 周五 第四大節 507 課時:課時:56學時=20學時理論+28學時(翻轉+案例) 成績評定成績評定 總成績總成績 = 平時成績(50%) + 期末成績(50%) 平時成績平時成績 = 自主學習自主學習 + 課堂測驗及作業(期中) + 上課出勤 + 上機實驗 期末成績期末成績 = 上機考試 + 項目實踐建議職業職業工程技術人員:工程技術人

2、員:具有軟件開發、維護技術。 產品銷售人員:產品銷售人員:具有軟件基礎知識、營銷知識以及較強的溝通能力。 IT企業經營與管理人員:企業經營與管理人員:既懂技術又懂企業經營管理,同時具有開拓精神的復合型人才。教師與研究人員:教師與研究人員:具有扎實的理論基礎,較強的實踐能力和創新精神。 (研究生研究生)1. 明確學習目的,搞好職業生涯規劃。明確學習目的,搞好職業生涯規劃。建議程序員程序員高級軟件高級軟件工程師工程師項目經理項目經理高級架構師高級架構師職職業業遷遷徙徙具有計算機的相關知識和具有計算機的相關知識和較強的編程能力。較強的編程能力。具有較強的軟件設計和實施能具有較強的軟件設計和實施能力和

3、較寬的知識面力和較寬的知識面既懂技術又懂管理的復合型既懂技術又懂管理的復合型人才。人才。具具有較強的系統分析與設計、有較強的系統分析與設計、深厚的理論和豐富的領域知識深厚的理論和豐富的領域知識建議1. 明確學習目的,搞好職業生涯規劃。明確學習目的,搞好職業生涯規劃。*個人簡歷個人簡歷基本信息基本信息 *科技競賽獲獎或認證(軟件開發能力)科技競賽獲獎或認證(軟件開發能力) 1.*2.*。參加軟件項目(軟件項目經驗)參加軟件項目(軟件項目經驗)1.*2.*。實例實例建議2. 為實現職業理想,打好專業基礎。為實現職業理想,打好專業基礎。7相關網站相關網站 中國大學中國大學MOOC: http:/ww

4、/ (作在線測驗,取得成績作在線測驗,取得成績) 在線練習評判系統在線練習評判系統(OJ):http:/(用學號或姓名注冊用學號或姓名注冊) 計蒜課:計蒜課:http:/ 百度傳課:百度傳課:http:/ 騰訊課堂:騰訊課堂:http:/ 網易云課堂:網易云課堂:http:/ fenby:http:/ 實驗樓:實驗樓:https:/ 極客學院:極客學院:http:/ 慕課網:慕課網:http:/ 新思維:新思維:http:/ C Programming Absolute Beginners Guide . Greg Perry and Dean Miller B

5、eginning C (FIFTH EDITION). Ivor Horton The C Programming Language (2nd Edition). Brian W. Kernighan, Dennis M. Ritchie C Programming: A Modern Approach. K. N. King Practical C Programming . Steve Oualline Expert C Programming Deep C Secrets . Peter van der Linden C語言經典編程語言經典編程282例例. 明日科技明日科技1.1 什么是

6、計算機程序什么是計算機程序1.2 什么是計算機語言什么是計算機語言1.3 C語言的發展及其特點語言的發展及其特點1.4 最簡單的最簡單的C語言程序語言程序1.5 運行運行C程序的步驟與方法程序的步驟與方法1.6 程序設計的任務程序設計的任務1.1 什么是計算機程序什么是計算機程序程序程序:一組計算機能識別和執行的:一組計算機能識別和執行的指令指令只要讓計算機執行這個程序,計算機就只要讓計算機執行這個程序,計算機就會會自動地自動地、有條不紊地有條不紊地進行工作進行工作計算機的一切操作都是由計算機的一切操作都是由程序程序控制的,控制的,離開程序,計算機將一事無成離開程序,計算機將一事無成1.2 什

7、么是計算機語言什么是計算機語言計算機語言計算機語言:人和計算機交流信息的、:人和計算機交流信息的、計算機和人都能識別的語言計算機和人都能識別的語言1.2 什么是計算機語言什么是計算機語言計算機語言發展階段:計算機語言發展階段:u機器語言機器語言(由(由0和和1組成的指令)組成的指令)u符號語言符號語言(用英文字母和數字表示指令)(用英文字母和數字表示指令)u高級語言高級語言(接近于人的自然語言和數學語言)(接近于人的自然語言和數學語言)l面向面向過程過程的語言的語言 (非結構化的語言、結構化語言)(非結構化的語言、結構化語言)l面向面向對象對象的語言的語言低級語言低級語言1.3 C語言的發展及

8、其特點語言的發展及其特點C語言是國際上廣泛流行的計算機高級語言。語言是國際上廣泛流行的計算機高級語言。1.3 C語言的發展及其特點語言的發展及其特點C語言的發展:語言的發展:BCPL語言語言B語言語言C語言語言精練、接近硬件,但精練、接近硬件,但過于簡單過于簡單, 無數據類型無數據類型具有多種數據類型具有多種數據類型1983年圖靈獎年圖靈獎1.3 C語言的發展及其特點語言的發展及其特點 1972年年 誕生誕生,為實現UNIX操作系; 1983年年 ANSI制定了第一個C語言標準草案(83 ANSI C); 1989年年,ANSI公布了一個完整的C語言標準C89; 1990年年,ISO(Inte

9、rnational Standard Organization) 接受C89作為國際標準ISO/IEC 9899:1990; 2001、2004年年,先后進行了兩次技術修正(TC1和TC2)。ISO/IEC 9899:1999(及其技術修正)被稱為 C99。1.3 C語言的發展及其特點語言的發展及其特點C語言是一種用途廣泛、功能強大、使語言是一種用途廣泛、功能強大、使用靈活的過程性用靈活的過程性(procedural)編程語編程語言,既可用于編寫應用軟件,又能用于言,既可用于編寫應用軟件,又能用于編寫系統軟件。因此編寫系統軟件。因此C語言問世以后得語言問世以后得到迅速推廣。到迅速推廣。1.3

10、C語言的發展及其特點語言的發展及其特點C語言主要特點:語言主要特點:u語言簡潔、緊湊,使用方便、靈活。語言簡潔、緊湊,使用方便、靈活。l只有只有37個關鍵字、個關鍵字、9種控制語句種控制語句l程序書寫形式自由,源程序短程序書寫形式自由,源程序短1.3 C語言的發展及其特點語言的發展及其特點C語言主要特點:語言主要特點:u運算符豐富。運算符豐富。l有有34種運算符種運算符l把括號、賦值、強制類型轉換等都作為把括號、賦值、強制類型轉換等都作為運算符處理運算符處理l表達式類型多樣化表達式類型多樣化1.3 C語言的發展及其特點語言的發展及其特點C語言主要特點:語言主要特點:u數據類型豐富。數據類型豐富

11、。l包括包括:整型、浮點型、字符型、數組類型、整型、浮點型、字符型、數組類型、指針類型、結構體類型、共用體類型指針類型、結構體類型、共用體類型lC99又擴充了復數浮點類型、超長整型又擴充了復數浮點類型、超長整型(long long)、布爾類型、布爾類型(bool)l指針類型數據,能用來實現各種復雜的數據指針類型數據,能用來實現各種復雜的數據結構結構(如鏈表、樹、棧等如鏈表、樹、棧等)的運算。的運算。1.3 C語言的發展及其特點語言的發展及其特點C語言主要特點:語言主要特點:u具有結構化的控制語句具有結構化的控制語句l如如ifelse語句、語句、while語句、語句、dowhile語句、語句、s

12、witch語句、語句、for語句語句l用函數作為程序的模塊單位,便于實現用函數作為程序的模塊單位,便于實現程序的模塊化程序的模塊化lC語言是完全模塊化和結構化的語言語言是完全模塊化和結構化的語言1.3 C語言的發展及其特點語言的發展及其特點C語言主要特點:語言主要特點:u語法限制不太嚴格,程序設計自由度大。語法限制不太嚴格,程序設計自由度大。l對數組下標越界不做檢查對數組下標越界不做檢查l對變量的類型使用比較靈活,例如,整對變量的類型使用比較靈活,例如,整型量與字符型數據可以通用型量與字符型數據可以通用lC語言允許程序編寫者有較大的自由度,語言允許程序編寫者有較大的自由度,因此放寬了語法檢查因

13、此放寬了語法檢查1.3 C語言的發展及其特點語言的發展及其特點C語言主要特點:語言主要特點:u允許直接訪問物理地址,能進行位操作,允許直接訪問物理地址,能進行位操作,可以直接對硬件進行操作可以直接對硬件進行操作lC語言具有高級語言的功能和低級語言語言具有高級語言的功能和低級語言的許多功能,可用來編寫系統軟件的許多功能,可用來編寫系統軟件l這種雙重性,使它既是成功的系統描述這種雙重性,使它既是成功的系統描述語言,又是通用的程序設計語言語言,又是通用的程序設計語言1.3 C語言的發展及其特點語言的發展及其特點C語言主要特點:語言主要特點:u用用C語言編寫的程序可移植性好。語言編寫的程序可移植性好。

14、lC的編譯系統簡潔,很容易移植到新系統的編譯系統簡潔,很容易移植到新系統l在新系統上運行時,可直接編譯在新系統上運行時,可直接編譯“標準鏈接標準鏈接庫庫”中的大部分功能,不需要修改源代碼中的大部分功能,不需要修改源代碼l幾乎所有計算機系統都可以使用幾乎所有計算機系統都可以使用C語言語言1.3 C語言的發展及其特點語言的發展及其特點C語言主要特點:語言主要特點:u生成目標代碼質量高,程序執行效率高。生成目標代碼質量高,程序執行效率高。 1.4最簡單的最簡單的C語言程序語言程序1.4.1 最簡單的最簡單的C語言程序舉例語言程序舉例1.4.2 C語言程序的結構語言程序的結構1.4.1 最簡單的最簡單

15、的C語言程序舉例語言程序舉例例例1.1 要求在屏幕上輸出以下一行信息。要求在屏幕上輸出以下一行信息。 This is a C program.解題思路:解題思路: 在主函數中用在主函數中用printf函數原樣輸出以函數原樣輸出以上文字。上文字。1.4.1 最簡單的最簡單的C語言程序舉例語言程序舉例#include int main( ) printf (”This is a C program.n”); return 0; 函數的名字,表示函數的名字,表示主函數主函數C程序必須有一個程序必須有一個 main 函數函數1.4.1 最簡單的最簡單的C語言程序舉例語言程序舉例#include int

16、 main( ) printf (”This is a C program.n”); return 0; 主函數主函數類型類型1.4.1 最簡單的最簡單的C語言程序舉例語言程序舉例#include int main( ) printf (”This is a C program.n”); return 0; 函數體函數體1.4.1 最簡單的最簡單的C語言程序舉例語言程序舉例#include int main( ) printf (”This is a C program.n”); return 0; 輸出函數輸出函數輸出語句輸出語句1.4.1 最簡單的最簡單的C語言程序舉例語言程序舉例#inc

17、lude int main( ) printf (”This is a C program.n”); return 0; 輸出語句輸出語句1.4.1 最簡單的最簡單的C語言程序舉例語言程序舉例#include int main( ) printf (”This is a C program.n”); return 0; 換行符換行符1.4.1 最簡單的最簡單的C語言程序舉例語言程序舉例#include int main( ) printf (”This is a C program.n”); return 0; 當當main函數執行結束前函數執行結束前將整數將整數0作為函數值作為函數值1.4.

18、1 最簡單的最簡單的C語言程序舉例語言程序舉例#include int main( ) printf (”This is a C program.n”); return 0; 表示語句結束表示語句結束用到函數庫中的輸入輸出函數時用到函數庫中的輸入輸出函數時1.4.1 最簡單的最簡單的C語言程序舉例語言程序舉例C語言允許用兩種注釋方式:語言允許用兩種注釋方式:/:單行注釋:單行注釋u可單獨占一行可單獨占一行u可出現在一行中其他內容的右側可出現在一行中其他內容的右側/*/:塊式注釋:塊式注釋u可包含多行可包含多行例例1.2 求兩個整數之和。求兩個整數之和。解題思路:解題思路:u 設置設置3個變量個

19、變量u a和和b用來存放兩個整數用來存放兩個整數u sum用來存放和數用來存放和數u 用賦值運算符用賦值運算符“=”把結果傳送給把結果傳送給sum#include int main( ) int a,b,sum; a = 123; b = 456; sum = a + b; printf(”sum is %dn”,sum); return 0; 定義整型變量定義整型變量a,b,sum對變量對變量a,b賦值賦值將將a與與b的和賦給的和賦給sum#include int main( ) int a,b,sum; a = 123; b = 456; sum = a + b; printf(”sum

20、is %dn”,sum); return 0; 用用sum的值替代的值替代希望輸出的字符希望輸出的字符例例1.3求兩個整數中的較大者。求兩個整數中的較大者。解題思路:解題思路:u 用一個函數實現求兩個整數中的較大者用一個函數實現求兩個整數中的較大者u 在主函數中調用此函數并輸出結果在主函數中調用此函數并輸出結果#include int main( ) int max(int x,int y); int a,b,c; scanf(”%d,%d”,&a,&b); c = max(a,b); printf(max=%dn,c); return 0;int max(int x,int

21、y) int z; if (x y) z = x; else z = y; return(z);主函數主函數max函數函數#include int main( ) int max(int x,int y); int a,b,c; scanf(”%d,%d”,&a,&b); c = max(a,b); printf(max=%dn,c); return 0;int max(int x,int y) int z; if (x y) z = x; else z = y; return(z);將將x和和y中較大者中較大者值返回給主函數值返回給主函數#include int main(

22、) int max(int x,int y); int a,b,c; scanf(”%d,%d”,&a,&b); c = max(a,b); printf(max=%dn,c); return 0;int max(int x,int y) int z; if (x y) z = x; else z = y; return(z);#include int main( ) int max(int x,int y); int a,b,c; scanf(”%d,%d”,&a,&b); c = max(a,b); printf(max=%dn,c); return 0;i

23、nt max(int x,int y) int z; if (x y) z = x; else z = y; return(z);因因max函數的定義在函數的定義在main函數之后,需聲明函數之后,需聲明#include int main( ) int max(int x,int y); int a,b,c; scanf(”%d,%d”,&a,&b); c = max(a,b); printf(max=%dn,c); return 0;int max(int x,int y) int z; if (x y) z = x; else z = y; return(z);輸入函數輸入

24、函數#include int main( ) int max(int x,int y); int a,b,c; scanf(”%d,%d”,&a,&b); c = max(a,b); printf(max=%dn,c); return 0;int max(int x,int y) int z; if (x y) z = x; else z = y; return(z);輸入語句輸入語句#include int main( ) int max(int x,int y); int a,b,c; scanf(”%d,%d”,&a,&b); c = max(a,b);

25、printf(max=%dn,c); return 0;int max(int x,int y) int z; if (x y) z = x; else z = y; return(z);輸入的數據輸入的數據放到放到a,b中中輸入格式輸入格式a的地址的地址#include int main( ) int max(int x,int y); int a,b,c; scanf(”%d,%d”,&a,&b); c = max(a,b); printf(max=%dn,c); return 0;int max(int x,int y) int z; if (x y) z = x; el

26、se z = y; return(z);調用調用max函數函數#include int main( ) int max(int x,int y); int a,b,c; scanf(”%d,%d”,&a,&b); c = max(a,b); printf(max=%dn,c); return 0;int max(int x,int y) int z; if (x y) z = x; else z = y; return(z);8588#include int main( ) int max(int x,int y); int a,b,c; scanf(”%d,%d”,&

27、a,&b); c = max(a,b); printf(max=%dn,c); return 0;int max(int x,int y) int z; if (x y) z = x; else z = y; return(z);8588#include int main( ) int max(int x,int y); int a,b,c; scanf(”%d,%d”,&a,&b); c = max(a,b); printf(max=%dn,c); return 0;int max(int x,int y) int z; if (x y) z = x; else z

28、= y; return(z);實際參數實際參數形式參數形式參數1.4.2 C語言程序的結構語言程序的結構C語言程序的結構特點:語言程序的結構特點:1.一個程序由一個或多個源程序文件組成一個程序由一個或多個源程序文件組成u小程序往往只包括一個源程序文件小程序往往只包括一個源程序文件u例例1.1,例,例1.2只有一個函數只有一個函數u例例1.3有兩個函數有兩個函數只包括一個源程序文件只包括一個源程序文件1.4.2 C語言程序的結構語言程序的結構C語言程序的結構特點:語言程序的結構特點:一個源程序文件中可以包括三個部分:一個源程序文件中可以包括三個部分:u預處理指令預處理指令u全局聲明全局聲明u函數

29、定義函數定義#include 等等在函數之外進行的數據聲明在函數之外進行的數據聲明每個函數用來實現一定的功能每個函數用來實現一定的功能1.4.2 C語言程序的結構語言程序的結構C語言程序的結構特點:語言程序的結構特點:2.函數是函數是C程序的主要組成部分程序的主要組成部分u一個一個C程序是由一個或多個函數組成的程序是由一個或多個函數組成的u必須包含一個必須包含一個main函數(只能有一個)函數(只能有一個)u每個函數都用來實現一個或幾個特定功能每個函數都用來實現一個或幾個特定功能u被調用的函數可以是庫函數,也可以是自被調用的函數可以是庫函數,也可以是自己編制設計的函數己編制設計的函數1.4.2

30、 C語言程序的結構語言程序的結構C語言程序的結構特點:語言程序的結構特點:3.一個函數包括兩個部分:一個函數包括兩個部分:u函數首部函數首部int max ( int x, int y )函數的第函數的第1行行函數類型函數類型函數名函數名參數類型參數類型參數名參數名1.4.2 C語言程序的結構語言程序的結構C語言程序的結構特點:語言程序的結構特點:3.一個函數包括兩個部分:一個函數包括兩個部分:u函數首部函數首部int max ( int x, int y )若函數無參,在括弧中寫若函數無參,在括弧中寫void或空括弧或空括弧int main( void) 或或 int main()1.4.2

31、 C語言程序的結構語言程序的結構C語言程序的結構特點:語言程序的結構特點:3.一個函數包括兩個部分:一個函數包括兩個部分:u函數體函數體l聲明部分聲明部分定義在本函數中所用到的變量定義在本函數中所用到的變量對本函數所調用函數進行聲明對本函數所調用函數進行聲明l執行部分:由若干個語句組成,指定在執行部分:由若干個語句組成,指定在函數中所進行的操作函數中所進行的操作可以沒有聲明部分可以沒有聲明部分1.4.2 C語言程序的結構語言程序的結構C語言程序的結構特點:語言程序的結構特點:3.一個函數包括兩個部分:一個函數包括兩個部分:u函數體函數體void dump ( ) 可以是空函數可以是空函數1.4

32、.2 C語言程序的結構語言程序的結構C語言程序的結構特點:語言程序的結構特點:4. 程序總是從程序總是從main函數開始執行函數開始執行5. C程序對計算機的操作由程序對計算機的操作由C語句完成語句完成uC程序書寫格式是比較自由的程序書寫格式是比較自由的l一行內可以寫幾個語句一行內可以寫幾個語句l一個語句可以分寫在多行上一個語句可以分寫在多行上u為清晰起見,習慣上每行只寫一個語句為清晰起見,習慣上每行只寫一個語句1.4.2 C語言程序的結構語言程序的結構C語言程序的結構特點:語言程序的結構特點:4. 程序總是從程序總是從main函數開始執行函數開始執行5. C程序對計算機的操作由程序對計算機的操作由C語句完成語句完成6. 數據聲明和語句最后必須有分號數據聲明和語句最后必須有分號7. C語言本身不提供

溫馨提示

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

評論

0/150

提交評論