[工作范文]C語言編程入門-第2章課件(PPT 43頁)_第1頁
[工作范文]C語言編程入門-第2章課件(PPT 43頁)_第2頁
[工作范文]C語言編程入門-第2章課件(PPT 43頁)_第3頁
[工作范文]C語言編程入門-第2章課件(PPT 43頁)_第4頁
[工作范文]C語言編程入門-第2章課件(PPT 43頁)_第5頁
已閱讀5頁,還剩38頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、第二章 基本數(shù)據(jù)類型及其運算學(xué)習(xí)目標(biāo)了解數(shù)據(jù)類型的一般概念,熟悉 C 語言中的基本數(shù)據(jù)類型熟悉 C 語言中常量與變量的概念,掌握定義常量與變量的方法掌握 C 語言中的基本運算掌握基本的輸入輸出函數(shù)的用法了解 C 語言操作符的優(yōu)先級與結(jié)合性第1頁,共43頁。2.1 C 語言的數(shù)據(jù)類型數(shù)據(jù)類型的一般概念C 語言數(shù)據(jù)類型關(guān)系圖常 量整型常量實型常量字符型常量與反斜杠字符常量字符串常量符號常量第2頁,共43頁。數(shù)據(jù)類型的一般概念確定了以值為元素的數(shù)據(jù)集值的可能范圍,即定義域確定了操作(運算)集不同數(shù)據(jù)類型具有不同的操作集,不同數(shù)據(jù)類型的數(shù)據(jù)之間也可以進(jìn)行混合運算規(guī)定了值的存儲格式不同類型數(shù)據(jù)在計算機(jī)中

2、存儲格式不同,相同類型數(shù)據(jù)在不同計算機(jī)與編譯器下的存儲格式也可能不同數(shù)據(jù)處理的基本對象常量與變量,均屬于某種數(shù)據(jù)類型第3頁,共43頁。C 語言數(shù)據(jù)類型關(guān)系圖第4頁,共43頁。整型常量十進(jìn)制表示以數(shù)字19開頭的09序列,如9、876、55十六進(jìn)制表示以“0 x”或“0X”開頭的09、A/aF/f序列,如0 x55、0 x1F、0 x2a0 x5516 = 8510八進(jìn)制表示以0開頭的07序列,如0550558 = 4510 ,注意不要與十進(jìn)制混淆!第5頁,共43頁。實型常量一般形式:小數(shù)表示法由整數(shù)部分、小數(shù)點與小數(shù)部分組成例:3.1416、2.718281828指數(shù)形式:科學(xué)計數(shù)法由尾數(shù)部分、

3、字符E/e與指數(shù)部分組成例:3.14e3 = 3.14103、2.7E2 = 2.7102第6頁,共43頁。字符型常量與反斜杠字符常量字符型常量以單引號括起來的單一字符,如A、c字符常量按照其在字符集(一般為 ASCII 表)中的編碼值存儲并參與運算反斜杠字符常量以開頭,后跟字符或數(shù)字,用于表示一個特定含義的字符,例如n表示換行字符,稱為轉(zhuǎn)義字符序列常與普通字符混雜于某個字符串中第7頁,共43頁。ASCII 碼表01234567890000001002003004005006abt10nvfr016017020021022023200240250260270300310320330340353

4、0036037space!#$%&40()*+,./015023456789:;60?ABCDE70FGHIJKLMNO80PQRSTUVWXY90Z_abc100defghijklm110nopqrstuvw120 xyz|177第8頁,共43頁。轉(zhuǎn)義序列及其意義轉(zhuǎn)義序列 功能與意義 a響鈴b退格f換頁n換行r返回到當(dāng)前行首t水平制表鍵v垂直制表鍵0ASCII碼0字符自身字符(僅在字符常數(shù)中需要)“字符“(僅在字符串常數(shù)中需要)ddd“ddd”表示八進(jìn)制的該字符ASCII碼值第9頁,共43頁。Tsinghua0字符串常量字符串:以雙引號括起來的一串字符例:“Tsinghua”、“Progra

5、mming in C”字符串的長度:其中的字符數(shù)目長度n,占用n+1字節(jié),最后一個字節(jié)存儲NULL字符0例:“Tsinghua”占用9個字節(jié)字符串常量與字符常量不同字符串至少占用一個字節(jié),為什么?84115105110103104117970第10頁,共43頁。符號常量宏定義#define指令:預(yù)處理命令例:#define PI 3.14一旦定義,可以代替常量使用可理解為對常量進(jìn)行命名目的與意義增強(qiáng)程序可讀性使用有意義的名字命名增強(qiáng)程序的可維護(hù)性將值定義為符號常量,則程序中僅需要修改一次#include #define PI 3.14int main() float r, area; r =

6、3.0; area = PI * r * r; printf(“%f”, area); return 0;第11頁,共43頁。2.2 數(shù)據(jù)類型及變量基本數(shù)據(jù)類型變量及變量的定義變量的初始化第12頁,共43頁?;緮?shù)據(jù)類型基本數(shù)據(jù)類型的分類字符型:char;整型:int;浮點型:float;雙精度浮點型:double;無型:void基本數(shù)據(jù)類型的長度(位數(shù))和取值范圍與計算機(jī)和 C 編譯器有關(guān)整型二進(jìn)制位數(shù)與CPU字長相同;字符單字節(jié);浮點型4字節(jié);雙精度浮點型8字節(jié)修飾符有符號:signed;無符號:unsigned;短型:short;長型:long修飾除void之外的其他四種基本數(shù)據(jù)類型第1

7、3頁,共43頁。整數(shù)的取值范圍類型標(biāo)識符位數(shù)最小值最大值char8128127unsigned char80255signed char/char8128127int322,147,483,6482,147,483,647signed int/int322,147,483,6482,147,483,647unsigned int3204,294,967,295short int/short1632,76832,767signed short int/short1632,76832,767unsigned short int16065,535long int/long322,147,483,64

8、82,147,483,647signed long int/long322,147,483,6482,147,483,647unsigned long int3204,294,967,295第14頁,共43頁。浮點數(shù)與無型數(shù)據(jù)的取值范圍類型標(biāo)識符位數(shù)有效位最小值最大負(fù)值最小正值最大值float3273.40e381.18e381.18e383.40e38double64151.80e3082.23e3082.23e3081.80e308long double80191.19e49323.36e49323.36e49321.19e4932類型標(biāo)識符位數(shù)最小值最大值void32不確定不確定第15頁

9、,共43頁。變量與變量的定義變量的定義:在程序執(zhí)行過程中,其值改變的量與常量的定義不同,常量在程序執(zhí)行期間不可改變值系統(tǒng)為每個變量分配合適的存儲空間,以存放其值保存待處理的數(shù)據(jù)、中間與最終運算結(jié)果變量的四個基本特征:VANT值(value):在任一時刻,每個變量均具有惟一值地址(address):每個變量均具有惟一地址,且除非其生命結(jié)束,地址不可更改名稱(name):每個變量具有固定的名稱或名字標(biāo)識類型(type):每個變量均具有確定的類型,不可更改第16頁,共43頁。變量的定義與使用示例#include int main() char c; int x, y, z; unsigned lon

10、g distance; float m; m = 1.11; m = 2 * m; m = m + 2.2; printf(“%fn”, m); return 0; 定義三個整型變量x, y, z 定義字符變量c 定義無符號長整型變量distance 定義浮點型變量m 對浮點型變量m進(jìn)行賦值 計算過程中修改m的值 再次修改m的值 輸出m的值(計算結(jié)果)第17頁,共43頁。變量的初始化在定義變量時設(shè)定初始值char c = c;float x, y, z = 4.53;double a = 15.5, b = 2.0; 將z初始化為4.53,x, y未初始化 將變量c初始化為c,ASCII值99

11、 a, b均進(jìn)行初始化未初始化變量并不意味空值可以參與運算,但沒有意義,往往導(dǎo)致錯誤結(jié)果第18頁,共43頁。2.3 運算符與表達(dá)式運算符(操作符)與表達(dá)式概述混合類型數(shù)據(jù)的運算賦值語句與賦值表達(dá)式算術(shù)運算符與算術(shù)表達(dá)式關(guān)系運算符與關(guān)系表達(dá)式邏輯運算符與邏輯表達(dá)式位運算符其他運算符與表達(dá)式第19頁,共43頁。運算符與表達(dá)式概述表達(dá)式由操作符與操作數(shù)組成的序列,完成一系列的運算,得到最終的計算結(jié)果表達(dá)式結(jié)果的數(shù)據(jù)類型由參與運算的操作數(shù)確定操作數(shù)常量、變量、函數(shù)調(diào)用、括號內(nèi)的子表達(dá)式操作符種類繁多,意義豐富,功能強(qiáng)大:39個,46種優(yōu)先級: 15級第20頁,共43頁。操作符及其優(yōu)先級優(yōu)先級操作符15

12、. () 函數(shù)調(diào)用 +后綴 后綴14sizeof +前綴 前綴 ! + &取址 *引領(lǐng) ()類型轉(zhuǎn)換13 *乘 / %12+ 1110 =9= !=8&位與76|5&4|3? :2= *= /= %= += = = &= = |=1,第21頁,共43頁。混合類型數(shù)據(jù)的運算混合類型數(shù)據(jù)運算表達(dá)式中的數(shù)據(jù)類型不可能總相同在實際運算前將兩個操作數(shù)轉(zhuǎn)換成同一數(shù)據(jù)類型類型轉(zhuǎn)換隱式類型轉(zhuǎn)換:系統(tǒng)自動進(jìn)行基本原則:確保運算精度不會降低整數(shù)提升:從短型到長型,先有符號后無符號浮點數(shù)轉(zhuǎn)換:從float到double再到long double顯式類型轉(zhuǎn)換:程序員手工進(jìn)行可簡化計算,提高程序效率格式:(類型標(biāo)識符)

13、表達(dá)式;例:b = c + (int)a;第22頁,共43頁。隱式類型轉(zhuǎn)換的例子:char ch = d;int i = 6;float f = 10.0;double d = 0.2, result;result = (ch / i) + (4 + f * d) * (f - i)計算過程:ch / i 結(jié)果為 16(整型)4 + f * d 結(jié)果為 6.0(雙精度浮點型)f i 結(jié)果為 4.0(浮點型)result 結(jié)果為 40.0(雙精度浮點型)第23頁,共43頁。賦值語句與賦值表達(dá)式賦值表達(dá)式賦值操作符:優(yōu)先級較低賦值表達(dá)式的值:賦值操作符賦給目標(biāo)變量的值例:while( ( c =

14、getchar() ) != EOF ) /* */ 賦值語句以分號結(jié)束的賦值表達(dá)式格式:變量名 = 表達(dá)式;例:b = c + (int)a;賦值語句對左邊變量名或等價的數(shù)組元素名實施寫操作右邊的表達(dá)式結(jié)果若與左邊的類型不同,則先轉(zhuǎn)換再賦值,此時可能導(dǎo)致數(shù)據(jù)精度的損失第24頁,共43頁。復(fù)合賦值操作符注意事項賦值操作符右邊的子表達(dá)式作為整體參與運算例: y *= x + 1 等價于 y = y * (x + 1) 復(fù)合賦值操作符名稱示例等價于+=加賦y += x;y = y + x;=減賦y = x;y = y x;*=乘賦y *= x;y = y * x;/=除賦y /= x;y = y

15、/ x;%=余賦y %= x;y = y % x;第25頁,共43頁。算術(shù)運算符與算術(shù)表達(dá)式基本算術(shù)運算符加(+)、減()、乘(*)、除(/)、余(%)遞增遞減運算符前綴:先遞增遞減,再參與運算后綴:先參與運算,再遞增遞減操作數(shù)必須為變量,而不能為其他表達(dá)式算術(shù)表達(dá)式例: x = ( b + sqrt( b * b 4 * a * c ) ) / ( 2 * a )第26頁,共43頁。遞增遞減運算符前綴:先遞增遞減,再參與運算后綴:先參與運算,再遞增遞減i+ (后綴)或 +i (前綴) 相當(dāng)于 i = i + 1i- (后綴)或 -i (前綴) 相當(dāng)于 i = i - 1k1 = 3, k2

16、= 3, j = 5;m1 = ( +k1 ) * j;m2 = ( k2+ ) * j;n = k1 + k2;m1 = 20m2 = 15n = 8第27頁,共43頁。關(guān)系運算符與關(guān)系表達(dá)式關(guān)系運算符大于()、等于(=)、小于()、不大于(=)、不等于(!=)關(guān)系表達(dá)式關(guān)系運算符與兩個操作數(shù)構(gòu)成的表達(dá)式運算結(jié)果:真或假C語言以0表示假,以非0表示真(經(jīng)常以1表示)示 例例:x = y,a b常用于條件語句:if( grade y | a b & 3 = 2 計算時一定要留意運算符的優(yōu)先級,拿不準(zhǔn)時加括號第29頁,共43頁。位運算符位運算符:以單獨的二進(jìn)制位為操作對象按位與(&)、按位或(|

17、)、按位異或()、按位取反()、左移()位運算表xyx & yx | yx yy000001010110100111111100第30頁,共43頁。按位與運算按位與:用以屏蔽某些位或取出某些位示例: x = x & y,其中x原為0 xB675,y原為0 x00FFx為16位,取出低8位,高8位置0 x = 0 xB6751011011010101110y = 0 x00FF0000000011111111x = x & y10110110101011100000000010101110測試指定位是否為0測試左邊第4位是否為0:y = x & 0 x1000;結(jié)果:y為0表示測試位為0,否則為

18、1第31頁,共43頁。按位或運算按位或:用以打開某些位(將其置1)示例: x = x | y,其中x原為0 xB675,y原為0 x00FFx為16位,低8位全置1,高8位不變x = 0 xB6751011011010101110y = 0 x00FF0000000011111111x = x | y10110110101011101011011011111111第32頁,共43頁。按位異或運算按位異或:用以判斷兩個操作數(shù)相應(yīng)位是否相異示例: x = x y,其中x原為0 xB675,y原為0 x00FFx為16位x = 0 xB6751011011010101110y = 0 x00FF00

19、00000011111111x = x y10110110101011101011011001010001按位異或的本質(zhì):按位進(jìn)行的不進(jìn)位加法按位異或既可使各位翻轉(zhuǎn),也可使各位保持第33頁,共43頁。按位取反運算按位取反:將單個操作數(shù)的所有位全部翻轉(zhuǎn)示例: x = x,其中x原為0 xB675x = 0 xB6751011011010101110 x = x10110110101011100100100101010001第34頁,共43頁。移位運算符(左移):相當(dāng)于乘2n,原高位舍棄,低位補(bǔ)0格式:操作對象 左移位數(shù)例:y = x n,其中x原為0 xB675,n為2x = 0 xB67510

20、11011010101110y = x (右移):相當(dāng)于除2n,原低位舍棄,高位補(bǔ)0(無符號數(shù))或符號位(有符號數(shù))格式:操作對象 右移位數(shù)例:y = x n,其中x原為0 xB675,n為2x = 0 xB6751011011010101110y = x n101101101010111000011011010111101101101101011110第35頁,共43頁。其他運算符與表達(dá)式條件運算符與條件表達(dá)式格式:表達(dá)式1 ? 表達(dá)式2 : 表達(dá)式3計算過程:先計算表達(dá)式1的值,若為真,則結(jié)果為表達(dá)式2的值,否則為表達(dá)式3的值例:x = ( a b ) ? a : b;上例等價于:if(

21、a b ) x = a; else x = b;逗號運算符與逗號表達(dá)式以逗號連接的表達(dá)式計算過程:從左到右逐個計算各個子表達(dá)式,結(jié)果為最后一個子表達(dá)式的值例:z = ( x = m + n, y = m n, x / y );第36頁,共43頁。2.4 基本輸入輸出函數(shù)基本事實輸入輸出是語言與算法必須具備的功能C 語言本身沒有輸入輸出語句或命令,輸入輸出需使用標(biāo)準(zhǔn)庫函數(shù)基本輸入輸出函數(shù)原型位于頭文件“stdio.h”中輸入輸出函數(shù)格式化輸出函數(shù)格式化輸入函數(shù)字符輸入輸出函數(shù)第37頁,共43頁。格式化輸出函數(shù) printf()格式化輸出函數(shù) printf() 調(diào)用格式printf(“輸出格式描述

22、字符串”, 輸出項列表);例:printf(“age = %dn”, age);%y:格式轉(zhuǎn)換說明符%d:十進(jìn)制整數(shù);%i:十進(jìn)制整數(shù);%f:浮點數(shù);%e:指數(shù)形式的浮點數(shù);%c:單個字符;%s:字符串;%u:無符號整數(shù);%x:十六進(jìn)制整數(shù);%o:八進(jìn)制整數(shù)%m.ny:”m”表示以“%y”格式輸出時,數(shù)據(jù)所占用的位數(shù)(場寬),“.n”可選,表示小數(shù)點后的位數(shù),“”表示數(shù)據(jù)左對齊(缺省時,數(shù)據(jù)右對齊,前補(bǔ)空格)第38頁,共43頁。格式化輸出示例指出下述程序的運行結(jié)果#include int main() int x, y, z; x = 10; y = 15; z = 25; printf(“Results as follows:n”); printf(“x = %d, y = %d, z = %dn”, x, y, z); printf(“x + y = %dnx + y + z = %dn”, x

溫馨提示

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

評論

0/150

提交評論