《C程式设计入门.ppt》由会员分享,可在线阅读,更多相关《C程式设计入门.ppt(29页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Chapter 2 C程式設計入門目標目標 能夠用 C 寫出簡單的程式 能夠使用簡單的輸入、輸出敘述 能夠熟悉基本資料型態 會使用算術運算子(算術運算符號)了解算術運算子之間的優先順序 能夠撰寫簡單的判斷式1Chapter 2 C程式設計入門Outline2.1Introduction to C Programming 簡介簡介2.2A Simple Program:Printing a Line of Text 簡單程式:列印一行文簡單程式:列印一行文字字2.3Another Simple Program:Adding Two Integers另一簡單程式:兩整數相加另一簡單程式:兩整數相加
2、2.4Memory Concepts 記憶體的概念記憶體的概念2.5Arithmetic 算術運算算術運算2.6Decision Making:Equality and Relational Operators 判斷的進行:等號運算子和關係運算子判斷的進行:等號運算子和關係運算子22.1 C程式設計簡介程式設計簡介C language接下來我們以結構化的程式設計方式來介紹 C 語言。下面幾節會看到幾個範例這些範例會顯示C的一些重要特性每個例子都會一個敘述一個敘述分析32.2 一個簡單的程式一個簡單的程式:印出一行文字印出一行文字1 1 /*Fig.2.1:fig02_01.c/*Fig.2.1
3、:fig02_01.c2 2 A first program in CA first program in C,可以用中文寫可以用中文寫*/*/3 3#include#include 4 4 5 5 /*function main begins program execution*/*function main begins program execution*/6 6 intint main()main()7 7 8 8 printf(printf(Welcome to C!nWelcome to C!n););9 9 10 10 returnreturn 0 0;/*indicate th
4、at program ended successfully*/*indicate that program ended successfully*/11 11 12 12 /*end function main*/*end function main*/Welcome to C!前處理器指令 preprocessor directive#字號開頭的程式是前處理器的指令,通知前處理器處理#include 告訴前處理器將 stdio.h 的內容載入,當您的程式要用到輸入或輸出時,大多需要載入。註解 Comments放在/*與 */之間或/後面改善程式的可讀性,不會引起電腦作任何動作。C 程式包含一
5、個以上的函式,其中一個必須是 main,由 main 開始執行括號指出這是一個函式int 的意思是 main 傳回一個整數值。函式本體(body)必須由左括號 開始且用右括號 結尾。return 結束函式的一個方式return 0,在這個例子,意思是這個程式正常結束42.2 一個簡單的程式一個簡單的程式:印出一行文字印出一行文字printf(Welcome to C!n);指示電腦將雙引號內的字串顯示在螢幕上。這一整行稱為一敘述式(Statement)每一個敘述式必須以分號為結尾。脫序字元 Escape character 表示後面會有一個字元與它結合成脫序串列。52.2 一個簡單的程式一個簡
6、單的程式:印出一行文字印出一行文字輸出文字的方法有很多種下面有更多的例子 6良好的程式設計習慣良好的程式設計習慣 2.1每個程式的開端,都加上一行註解,說明這個程式的目的。良好的程式設計習慣良好的程式設計習慣 2.3&2.4&2.5許多程式設計師會在函式所印出字串(n)的結尾處,加上一個字行字元。這樣就能確保函式會讓游標回到下一行的開端處。這項很自然的傳統用法加強了軟體的重複使用性,是在軟體發展環境中重要的目標。將函式整個本體內容在大括號之間縮排(indent)一層,就能夠明白的定義函式的主體內容的位罝。這樣就能讓程式中的函式架構突顯出來,共且幫助函式更容易閱讀。規定你想要的縮排量,然後就統一
7、使用這個規定。tab鍵可以用來設定縮排量,但是tab定位點在不同的編輯器可能規定不同。牛們建議使用每隔1/4英吋一個定位點或者最好是以3個空白空間作為一層縮排量。7Welcome to C!除非使用 newline n不然文字都會出現在同一行8WelcometoC!一個敘述可以輸出很多行的文字9注意如何使用 scanf 來得到使用者的輸入資料10Enter first integer45Enter second integer72Sum is 117112.3 另一個簡單的程式:兩個整數的相加另一個簡單的程式:兩個整數的相加變數 Variables 記憶體位置,是用來存程式中的某些值變數使用之
8、前一定要先宣告(包括資料型態)合法的識別字 identifier,由 letters(字母),digits(數字)與 underscores(底線)組成,而不可由數字開頭。case sensitive 大小寫不同一些普通的資料型態:int 整數char 字元double 雙精確度的浮點數Example:int myvariable;宣告 int 的變數 myvariable Example:int variable1,variable2;Declares two variables,each of type int122.3 另一個簡單的程式:兩個整數的相加另一個簡單的程式:兩個整數的相加當編
9、譯器無法辨識某一個敘述式時,就會產生語法錯誤syntax error的訊息編譯器一般都會發出錯誤訊息,幫助程式設計師找出並改正錯誤的敘述式語法錯誤就是指違反所用程式語言的規定語法錯誤又稱為編譯錯誤compile errors,編譯時期錯誤compile-time errors,或者編譯動作錯誤compilation errors,因為它們都是出現在編譯時期。132.3 另一個簡單的程式:兩個整數的相加另一個簡單的程式:兩個整數的相加scanf(%d,&integer1);當使用 scanf,程式會等待使用者輸入資料This scanf statement has two arguments%d
10、 指示資料為十進位整數(decimal integer)&integer1 變數名稱的記憶記體位址使用者輸入資料、然後按 Enter(Return)鍵來將資料送給電腦=(指定運算子 assignment operator)將某個值存在變數裡面 Assigns value to a variable二元運算子 Binary operator(有兩個運算元)Example:sum=variable1+variable2;14可攜性小技巧 2.1C 允許任何長度的識別字,但是你所使用的系統和C的實作應用程式可能會對識別字的長度加上某些限制。識別字的長度不要超過31個字元,較能確保可攜性。良好的程式設
11、計習慣 2.92.11布宣告和接下來的可執行敘述式之間加上一空白行。這樣可以讓宣告在程式中,顯得較為突出,而讓程式較清楚。在每個逗號(,)放一個空格空格,讓程式更具可讀性。在二元運算子(例如+,-,*,/,=,)的兩邊都放一空白字元,可以使程式更具可讀性。152.3 另一個簡單的程式:兩個整數的相加另一個簡單的程式:兩個整數的相加printf(Sum is%dn,sum);Similar to scanf%d:指示印出十進位整數(decimal integer)Sum:指示印出的變數名稱可以將計算放在 printf 內printf(Sum is%dn,integer1+integer2);16
12、2.4 記憶體概念記憶體概念變數名稱 Variable names對應到電腦記憶體的位置每個變數有名稱 name,型態 type,佔記憶體大小 size 與 值 value(還有位址 address,使用範圍 scope,壽命lifetime)當新的值存到變數裡,就取代原來的值,也就是說原來的值被破壞了。從變數中讀值出來後,此變數的值沒有改變視覺化表示 integer1 45 172.4 記憶體概念記憶體概念integer1 45 integer2 72 integer1 45 integer2 72 sum117 視覺化表示182.5 算術運算算術運算算術計算*表示乘法,/代表除法整數除法會
13、將餘數無條件丟掉整數除法會將餘數無條件丟掉7/4 的值為 1餘數運算子%7%4 的值為 3Operator precedence(優先順序)某些算術運算子會比其它的先作(i.e.,乘法在加法之前)有需要時可以用括號Example:要算 a,b,c,d,e 的平均時不能用:a+b+c+d+e/5 必須用:(a+b+c+d+e)/5191.22 算術運算算術運算算術運算子:優先順序的規則:20 a=2 b=3 c=7 x=5212.6 判斷的進行:等號和關係運算子判斷的進行:等號和關係運算子if 結構測試條件成立與否,成立的話就執行某些指令、不成立就跳過該指令。相等(equality)與關係運算子
14、(relational)operators比算術運算子的優先順序低0 is false,non-zero is trueKeywords(關鍵字)Special words reserved for CCannot be used as identifiers or variable names222.6 判斷的進行:等號和關係運算子判斷的進行:等號和關係運算子23常見的程式設計錯誤常見的程式設計錯誤 2.162.19如果在=,!=,=和=,=這些運算子的兩個符號顛倒,通常都會造成語法錯誤。某些狀況下=!不是語法錯誤,但是幾乎一定是邏輯錯誤等號運算子=與指含運算子=常會混淆。特別容易將=寫成=
15、,可能不會造成語法錯誤,但卻更不容易找到錯在哪裡。在 if 結構的條件式後面加一個分號,可能不會造成語法錯誤,但通常也是很難找的邏輯錯誤。2425Enter two integers,and I will tell you the relationships they satisfy:3 73 is not equal to 73 is less than 73 is less than or equal to 726Enter two integers,and I will tell you the relationships they satisfy:22 1222 is not equal to 1222 is greater than 1222 is greater than or equal to 12Enter two integers,and I will tell you the relationships they satisfy:7 77 is equal to 77 is less than or equal to 77 is greater than or equal to 7 272.6 判斷的進行:等號和關係運算子判斷的進行:等號和關係運算子282.6 判斷的進行:等號和關係運算子判斷的進行:等號和關係運算子29