第3章 最簡單的C程序設計_第1頁
第3章 最簡單的C程序設計_第2頁
第3章 最簡單的C程序設計_第3頁
第3章 最簡單的C程序設計_第4頁
第3章 最簡單的C程序設計_第5頁
已閱讀5頁,還剩48頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第第3 3章章 最簡單的最簡單的C C程序設計程序設計 3.1 C的數(shù)據(jù)類型的數(shù)據(jù)類型 3.2 常量與變量常量與變量 3.3 整型數(shù)據(jù)整型數(shù)據(jù) 3.4 浮點型數(shù)據(jù)浮點型數(shù)據(jù) 3.5 字符型數(shù)據(jù)字符型數(shù)據(jù) 3.6 各類數(shù)值型數(shù)據(jù)間的混合運算各類數(shù)值型數(shù)據(jù)間的混合運算 3.7 運算符和表達式運算符和表達式 3.8 數(shù)據(jù)輸入輸出的概念及在數(shù)據(jù)輸入輸出的概念及在C語言中的實現(xiàn)語言中的實現(xiàn) 本章要點本章要點 學習目標學習目標 u 掌握掌握C的數(shù)據(jù)類型的數(shù)據(jù)類型 u 掌握常量、變量的概念及應用和運算符的應掌握常量、變量的概念及應用和運算符的應 用用 u 掌握各種表達式的應用掌握各種表達式的應用 重點難點重

2、點難點 u 重點:重點:C的數(shù)據(jù)類型、常量、變量、算術運的數(shù)據(jù)類型、常量、變量、算術運 算與算術表達式、賦值運算符與賦值表達式。算與算術表達式、賦值運算符與賦值表達式。 u 難點:變量的含義和使用。難點:變量的含義和使用。 C語言提供了以下一些數(shù)據(jù)類型。 3.1 C的數(shù)據(jù)類型的數(shù)據(jù)類型 整型 100,125,-100,0 實型 3.14 , 0.125,-3.789 字符型 a , b, 2 字符串 ” a”, ” ab”,”1232” 3.2 常量與變量常量與變量 常量和符號常量常量和符號常量 u在程序運行過程中在程序運行過程中, ,其值不能被改變的量稱為其值不能被改變的量稱為 常量常量 u

3、常量區(qū)分為不同的類型:常量區(qū)分為不同的類型: 例例3.1 符號常量的使用符號常量的使用 #define PRICE 30 #include void main ( ) int num, total; num=10; total=num * PRICE; printf(total=%dn,total); #define #define語句定義一個符語句定義一個符 號常量號常量PRICEPRICE,其值等于,其值等于3030 。該值在程序運行過程中。該值在程序運行過程中 不能被改變。不能被改變。 符號常量通常用大寫字符號常量通常用大寫字 母表示。母表示。 編譯程序在翻譯本源程編譯程序在翻譯本源程

4、序文件時,符號常量序文件時,符號常量PRICEPRICE 用其值用其值3030替換。替換。 程序運行結果是程序運行結果是: total = 300total = 300 思考:為什么要定義符號常量?思考:為什么要定義符號常量? 變量變量 u變量代表內存中具有特定屬性的一個存儲單元,變量代表內存中具有特定屬性的一個存儲單元, 它用來存放數(shù)據(jù),這就是變量的值,在程序運它用來存放數(shù)據(jù),這就是變量的值,在程序運 行期間,這些值是可以改變的。行期間,這些值是可以改變的。 u變量名實際上是一個以一個名字對應代表一個變量名實際上是一個以一個名字對應代表一個 地址,在對程序編譯連接時由編譯系統(tǒng)給每一地址,在對

5、程序編譯連接時由編譯系統(tǒng)給每一 個變量名分配對應的內存地址。從變量中取值,個變量名分配對應的內存地址。從變量中取值, 實際上是通過變量名找到相應的內存地址,從實際上是通過變量名找到相應的內存地址,從 該存儲單元中讀取數(shù)據(jù)。該存儲單元中讀取數(shù)據(jù)。 total 80 變量名變量名(符號地址)符號地址) 變量值變量值 存儲單元存儲單元 變量名變量名(符號地址)符號地址)變量名變量名(符號地址)符號地址) 變量命名的規(guī)定:變量命名的規(guī)定:語言規(guī)定標識符只能由字母、語言規(guī)定標識符只能由字母、 數(shù)字和下劃線三種字符組成,且第一個字符必須數(shù)字和下劃線三種字符組成,且第一個字符必須 為字母或下劃線。為字母或下

6、劃線。 例:例:sum,_total, month, Student_name, lotus_1_2_,BASIC, li_ling M.D.John, ¥123, 3D64, ab 32個關鍵字:( auto break case char const continue default do double elseenum extern float for goto if int long register return short signed sizeof static struct switch typedef unsigned union void volatile while o

7、編譯系統(tǒng)將大寫字母和小寫字母認為是兩個不 同的字符。 o 建議變量名的長度最好不要超過8個字符。 o 在選擇變量名和其它標識符時,應注意做到 “見名知意”,即選有含意的英文單詞 (或 其縮寫)作標識符。 o 要求對所有用到的變量作強制定義,也就是 “先定義,后使用” 。 o 整型常量的表示方法 整型常量即整常數(shù)。在語言中,整常數(shù)可用 以下三種形式表示: (1)十進制整數(shù)。 (2)八進制整數(shù)。以0頭的數(shù)是八進制數(shù)。 (3)十六進制整數(shù)。以0 x開頭的數(shù)是16進制數(shù)。 o 整型變量 (1)整型數(shù)據(jù)在內存中的存放形式 數(shù)據(jù)在內存中是以二進制形式存放的。 如: int i; /* 定義為整型變量 */

8、 i=10; /* 給i賦以整數(shù)10 */ 3.3 整型數(shù)據(jù)整型數(shù)據(jù) 兩種表 示形式 小數(shù) 指數(shù) 0.123 3e-3 注意:字母e(或E)之前必須有數(shù)字,且e后面的指 數(shù)必須為整數(shù) 3.4 浮點型數(shù)據(jù)浮點型數(shù)據(jù) 浮點型常量的表示方法浮點型常量的表示方法 規(guī)范化的指數(shù)形式: 在字母e(或E)之前的小數(shù)部分中,小數(shù)點 左邊應有一位(且只能有一位)非零的數(shù)字. a a, ,A A, , 1 1 abcabc、“a a” 3.5 字符型數(shù)據(jù)字符型數(shù)據(jù) 字符常量字符常量 (1)(1)用單引號包含的一個字符是字符型常量用單引號包含的一個字符是字符型常量 (2)(2)只能包含一個字符只能包含一個字符 有些

9、以“”開頭的特殊字符稱為轉義字符 n 換行 t 橫向跳格 r 回車 反斜杠 ddd ddd表示1到3位八進制數(shù)字 xhh hh表示1到2位十六進制數(shù)字 o 字符變量 字符型變量用來存放字符常量,注意只能放一個 字符。 字符變量的定義形式如下:char c1,c2; 在本函數(shù)中可以用下面語句對c1,c2賦值: c1a;c2 b ; 一個字符變量在內存中占一個字節(jié)。 o 字符數(shù)據(jù)在內存中的存儲形式及其使用方法 o 將一個字符常量放到一個字符變量中,實際上 并不是把該字符本身放到內存單元中去,而是 將該字符的相應的ASCII代碼放到存儲單元中。 例3.2 向字符變量賦以整數(shù)。 #include vo

10、id main() char c1,c2; c1=97; c2=98; printf(“%c %cn”,c1,c2); printf(“%d %dn”,c1,c2); 運行結果: 97 98 o 字符串常量 n 字符串常量是一對雙撇號括起來的字符序列. n 合法的字符串常量: “How do you do.”, “CHINA”, “a” , “$123.45” n 可以輸出一個字符串,如 printf(“How do you do.”); 是字符常量,”是字符串常量,二者不同。 如:如:假設被指定為字符變量 :char c c=a; c=”a”;c”CHINA”; 結論:不能把一個字符串常量賦

11、給一個字符變量。 規(guī)定:在每一個字符串常量的結尾加一個 “字 符串結束標志”,以便系統(tǒng)據(jù)此判斷字符串是否結 束。 規(guī)定以字符作為字符串結束標志。 混合運算:整型(包括int,short,long)、浮點型 (包括float,double)可以混合運算。在進行運 算時,不同類型的數(shù)據(jù)要先轉換成同一類型,然 后進行運算. 說明: 這種類型轉換是由系 統(tǒng)自動進行的。 3.6 各類數(shù)值型數(shù)據(jù)間的混合運算各類數(shù)值型數(shù)據(jù)間的混合運算 例例3.3 有人用溫度計測量出用華氏法表有人用溫度計測量出用華氏法表 示的溫度示的溫度(如如 F,今要求把它轉換為以,今要求把它轉換為以 攝氏法表示的溫度攝氏法表示的溫度(如

12、如 C) 。 轉換公式轉換公式 )32( 9 5 fc f代表華氏溫度代表華氏溫度,c代表攝氏溫度代表攝氏溫度 #include int main ( ) float f,c; f=64.0; c=(5.0/9)*(f-32); printf(f=%fnc=%fn,f,c); return 0; 定義定義f和和c為單精度浮點型變量為單精度浮點型變量 指定指定f的值的值 計算計算c的值的值 輸出輸出f和和c的的值值 例例3.4 計算存款利息。有計算存款利息。有1000元,想元,想 存一年。有三種方法可選:存一年。有三種方法可選: (1)活期,年利率為活期,年利率為r1 (2)一年期定期,年利率為

13、一年期定期,年利率為r2 (3)存兩次半年定期,年利率為存兩次半年定期,年利率為r3 請分別計算出一年后按三種方法所得到請分別計算出一年后按三種方法所得到 的本息和。的本息和。 #include int main ( ) float p0=1000, r1=0.0036,r2=0.0225, r3=0.0198, p1, p2, p3; p1 = p0 * (1 + r1); p2 = p0 * (1 + r2); p3 = p0 * (1 + r3/2) * (1 + r3/2); printf(”%fn%fn%fn”,p1, p2, p3); return 0; 定義變量定義變量同時同時賦

14、予初值賦予初值 o 運算符簡介 的運算符有以下幾類: (1)算術運算符 (+ 、- 、* 、/ 、%) (2)關系運算符 (、?。?(3)邏輯運算符 (!、|) (4)位運算符 (、 、 |、) (5)賦值運算符 (及其擴展賦值運算符) (6)條件運算符 (?:) (7)逗號運算符 (,) (8)指針運算符 (*、) (9)求字節(jié)數(shù)運算符(sizeof) (10)強制類型轉換運算符( (類型) ) (11)分量運算符(-) (12)下標運算符() (13)其他 (如函數(shù)調用運算符() 3.7 運算符和表達式運算符和表達式 (1) 算術表達式和運算符的優(yōu)先級與結合性基本 的算術運算符: 用算術運

15、算符和括號將運算對象(也稱操作 數(shù))連接起來的、符合語法規(guī)則的式子, 稱為算術表達式。運算對象包括常量、變 量、函數(shù)等。 例如: *.5a 是一個合法的表達式 算術表達式和運算符 o 語言規(guī)定了運算符的優(yōu)先級和結合性。 在表達式求值時,先按運算符的優(yōu)先級別高低 次序執(zhí)行,例如先乘除后加減。 o 規(guī)定了各種運算符的結合方向(結合性) 算術運算符的結合方向為“自左至右”,即先 左后右 。 (2)強制類型轉換運算符 可以利用強制類型轉換運算符將一個表達式轉換成 所需類型。 一般形式:(類型名)(表達式) 例如: (double) 將轉換成double類型 (int)(x+y) 將x+y的值轉換成整型

16、 (float)(5%3) 將5%3的值轉換成float型 (3) 自增、自減運算符 作用是使變量的值增或減 如: +i,-i(在使用i之前,先使i的值加 (減)1) i+, i-(在使用i之后,使i的值加(減)1) 注意: (1)自增運算符(),自減運算符(), 只能用于變量,而不能用于常量或表達式, (2)和的結合方向是“自右至左”。 自增(減)運算符常用于循環(huán)語句中使循環(huán)變 量自動加。也用于指針變量,使指針指向 下一個地址 賦值運算符和賦值表達式賦值運算符和賦值表達式 (1)(1)賦值運算符賦值運算符 賦值符號賦值符號“”就是賦值運算符,它的作用是將一個數(shù)就是賦值運算符,它的作用是將一個

17、數(shù) 據(jù)賦給一個變量。據(jù)賦給一個變量。 如如“”的作用是執(zhí)行一次賦值操作(或稱賦值運的作用是執(zhí)行一次賦值操作(或稱賦值運 算)。把常量賦給變量。算)。把常量賦給變量。 也可以將一個表達式的值賦給一個變量也可以將一個表達式的值賦給一個變量. . (2)(2)類型轉換類型轉換 如果賦值運算符兩側的類型不一致,但都是數(shù)值型或字如果賦值運算符兩側的類型不一致,但都是數(shù)值型或字 符型時,在賦值時要進行類型轉換。符型時,在賦值時要進行類型轉換。 (3) (3) 復合的賦值運算符復合的賦值運算符 在賦值符在賦值符“”之前加上其他運算符,可以構成復合的運之前加上其他運算符,可以構成復合的運 算符。算符。 例如例

18、如: : 等價于等價于 (4) (4) 賦值表達式賦值表達式 一般形式為一般形式為: : 逗號運算符:將兩個表達式連接起來,又稱為“順序求 值運算符” 如:5, 一般形式: 表達式,表達式 求解過程: 先求解表達式,再求解表達式。整個逗號表 達式的值是表達式的值。 例:逗號表達式*5,* 逗號運算符和逗號表達式逗號運算符和逗號表達式 1.關系運算符及其優(yōu)先次序 (小于) (大于) = (大于或等于) = (等于) != (不等于) 優(yōu)先級相同(高)優(yōu)先級相同(高) 優(yōu)先級相同(低)優(yōu)先級相同(低) 說明: 關系運算符的優(yōu)先級低于算術運算符 關系運算符的優(yōu)先級高于賦值運算符 關系運算符和關系表達

19、式關系運算符和關系表達式 C C語言中沒有專用語言中沒有專用 的邏輯值,的邏輯值,1 1代表代表 真,真,0 0代表假代表假 2.2.關系表達式關系表達式 用關系運算符將兩個表達式(可以是算術表達用關系運算符將兩個表達式(可以是算術表達 式或關系表達式,邏輯表達式,賦值表達式,式或關系表達式,邏輯表達式,賦值表達式, 字符表達式)接起來的式子,稱關系表達式字符表達式)接起來的式子,稱關系表達式 例:例:ab,a+bb+c,(a=3)(b=5),ab,a+bb+c,(a=3)(b=5),a a b)(bb)(bbab”的值為的值為“真真”,表達式的值,表達式的值 為為1 1。 算術運算符 高 關

20、系運算符 賦值運算符 低 (優(yōu)先級關系) 邏輯運算符和邏輯表達式邏輯運算符和邏輯表達式 1.邏輯運算符及其優(yōu)先次序邏輯運算符及其優(yōu)先次序 ! (邏輯非邏輯非) 相當于其他語言中的相當于其他語言中的NOT a=B;b=O;c=Y; putchar(a);putchar(b);putchar(c);putchar(n); 運行結果:BOY putchar(a);putchar(n);putchar(b);putchar(n);putchar(c);putchar(n); 運行結果:B O Y (二)(二). .字符輸入函數(shù)字符輸入函數(shù) 一般形式:一般形式:getchargetchar()() 函數(shù)

21、作用:從終端輸入一個字符。函數(shù)作用:從終端輸入一個字符。 函數(shù)值:函數(shù)值: 從輸入設備得到的字符。從輸入設備得到的字符。 例3.6 輸入單個字符。 #include void main() char c; c=getchar(); putchar(c); putchar(n); 3.8-2 格式輸入與輸出格式輸入與輸出 (一)(一). .格式輸出函數(shù)格式輸出函數(shù) 函數(shù)作用:向終端(或系統(tǒng)隱含指定的輸出設備)函數(shù)作用:向終端(或系統(tǒng)隱含指定的輸出設備) 輸出若干個任意類型的數(shù)據(jù)。輸出若干個任意類型的數(shù)據(jù)。 一般格式:一般格式:printfprintf(格式控制,輸出表列)(格式控制,輸出表列)

22、%d:以帶符號的十進制形式輸出整數(shù) %o:以八進制無符號形式輸出整數(shù) %x:以十六進制無符號形式輸出整數(shù) %u:以無符號十進制形式輸出整數(shù) %c:以字符形式輸出,只輸出一個字符 %s:輸出字符串 %f:以小數(shù)形式輸出單,雙精度數(shù),隱含輸出六位小數(shù) %e:以指數(shù)形式輸出實數(shù) %g:選用%f或%e格式中輸出寬度較短的一種格式,不輸 出無意義的0 幾種常見的格式符的修飾符: l:用于長整型整數(shù),可加在格式符d,o,x,u前面 m(代表一個正整數(shù)):數(shù)據(jù)最小寬度 n(代表一個正整數(shù)):對實數(shù),表示輸出n位小數(shù); 對字符串,表示截取的字符個數(shù) :輸出的數(shù)字或字符在域內向左靠 (1)格式符。用來輸出十進制

23、整數(shù)。格式符。用來輸出十進制整數(shù)。 幾種用法:幾種用法: %d:按十進制整型數(shù)據(jù)的實際長度輸出。按十進制整型數(shù)據(jù)的實際長度輸出。 %md:為指定的輸出字段的寬度。如果數(shù)據(jù)的位數(shù)為指定的輸出字段的寬度。如果數(shù)據(jù)的位數(shù) 小于,則左端補以空格,若大于,則按實際位小于,則左端補以空格,若大于,則按實際位 數(shù)輸出。數(shù)輸出。 例例: printf(“%4d,%4d”,a,b); 若若a=123,d=12345, 則輸出結果為則輸出結果為123,12345 %ld:輸出長整型數(shù)據(jù)。輸出長整型數(shù)據(jù)。 例例: long a=13579;/* 定義定義a為長整型變量為長整型變量*/ printf(“%ld”,a)

24、; (2) 格式符。以八進制整數(shù)形式輸出。格式符。以八進制整數(shù)形式輸出。 輸出的數(shù)值不帶符號,符號位也一起作為八進制數(shù)的一輸出的數(shù)值不帶符號,符號位也一起作為八進制數(shù)的一 部分輸出。部分輸出。 例:例:int a=-1; printf(%d,%o,a,a); -1在內存單元中的存放形式(以補碼形式存放)如下:在內存單元中的存放形式(以補碼形式存放)如下: 1111111111111111 輸出為輸出為: -1,177777 不會輸出帶負號的八進制整數(shù)。對長整數(shù)(不會輸出帶負號的八進制整數(shù)。對長整數(shù)(long型)可型)可 以用以用“%lo”格式輸出。還可以指定字段寬度,格式輸出。還可以指定字段寬

25、度, 例例:printf(“%8o“,a); 輸出為輸出為: 177777。 (數(shù)字前有數(shù)字前有2個空格個空格) (3)格式符。以十六進制數(shù)形式輸出整數(shù)。格式符。以十六進制數(shù)形式輸出整數(shù)。 同樣不會出現(xiàn)負的十六進制數(shù)。同樣不會出現(xiàn)負的十六進制數(shù)。 例:例: int a-1; printf(“%x,%o,%d”,a,a,a); 輸出結果為輸出結果為: ffff,177777,-1 可以用可以用“%lx”輸出長整型數(shù),也可以指定輸輸出長整型數(shù),也可以指定輸 出字段的寬度出字段的寬度 例例: “%l2x” (4)格式符,用來輸出格式符,用來輸出unsigned型數(shù)據(jù)型數(shù)據(jù). 一個有符號整數(shù)一個有符號

26、整數(shù)(int型型)也可以用也可以用%u格式輸出;格式輸出; 一一unsigned型數(shù)據(jù)也可以用型數(shù)據(jù)也可以用%d格式輸出。格式輸出。 unsigned型數(shù)據(jù)也可用型數(shù)據(jù)也可用%o或或%x格式輸出。格式輸出。 (5)格式符,用來輸出一個字符。格式符,用來輸出一個字符。 如:如:char d; printf(,d); 輸出字符輸出字符. 一個整數(shù),只要它的值在一個整數(shù),只要它的值在-255范圍內,可以用范圍內,可以用 “%c”使之按字符形式輸出,在輸出前,系統(tǒng)會將該整使之按字符形式輸出,在輸出前,系統(tǒng)會將該整 數(shù)作為數(shù)作為ASCII碼轉換成相應的字符;一個字符數(shù)據(jù)也碼轉換成相應的字符;一個字符數(shù)據(jù)

27、也 可以用整數(shù)形式輸出。可以用整數(shù)形式輸出。 運行結果: a=-1,177777,ffff,65535 b=-2,177776,fffe,65534 c=a,97 i=a,97 例例3.7 無符號數(shù)據(jù)的輸出。無符號數(shù)據(jù)的輸出。 #include void main() unsigned int a=65535;int b=-2,i=97; char=a; printf(“a=%d,%o,%x,%un”,a,a,a,a); printf(“b=%d,%o,%x,%un”,b,b,b,b); printf(“c=%c,%dn”,c,c);c=%c,%dn”,c,c); printf(“i=%c,%

28、dn”,i,i); (6)s格式符格式符 輸出字符串輸出字符串. 。例如:。例如: printf(%s,CHINA) 輸出字符串輸出字符串“CHINA”(不包括雙引號)。(不包括雙引號)。 %ms,輸出的字符串占,輸出的字符串占m列,若串長大于列,若串長大于m,則,則 全部輸出,若串長小于全部輸出,若串長小于m,則左補空格。,則左補空格。 %-ms,若串長小于,若串長小于m,字符串向左靠,右補空,字符串向左靠,右補空 格。格。 %m. ns,輸出占輸出占m列,只取字符串中左端列,只取字符串中左端n個字符,個字符, 輸出在輸出在m列的列的 右側,左補空格。右側,左補空格。 %-m.ns,n個字符

29、輸出在個字符輸出在m列的左側,右補空格,列的左側,右補空格, 若若nm,m自動取自動取n值。值。 運行結果: CHINA, CH ,CHIN,CHI 例例3.8字符串的輸出。字符串的輸出。 #include void main() printf(“%3s,%7.2s,%.4s,%-5.3sn”, “CHINA”, “CHINA”, “CHINA”, “CHINA”); (7)格式符。用來以小數(shù)形式輸出實數(shù)(包括單格式符。用來以小數(shù)形式輸出實數(shù)(包括單 雙精度)有以下幾種用法:雙精度)有以下幾種用法: 。不指定字段寬度,由系統(tǒng)自動指定字段。不指定字段寬度,由系統(tǒng)自動指定字段 寬度,使整數(shù)部分全部輸出

溫馨提示

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

評論

0/150

提交評論