




已閱讀5頁(yè),還剩40頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第2章 C語(yǔ)言程序設(shè)計(jì)基礎(chǔ),2,教學(xué)目標(biāo),理解變量和常量的含義 熟悉基本數(shù)據(jù)類型 - int、char、float 和 double 了解sizeof運(yùn)算符 了解標(biāo)準(zhǔn)函數(shù)(庫(kù)函數(shù))的使用 理解表達(dá)式 使用算術(shù)運(yùn)算符 掌握賦值運(yùn)算符的用法 理解類型轉(zhuǎn)換,3,C語(yǔ)言中的基本元素,程序,指令,標(biāo)識(shí)符 關(guān)鍵字 常量 運(yùn)算符 分隔符 ,常量是在程序中保持不變的量,常量用于定義具有如下特點(diǎn)的數(shù)據(jù): 在程序中保持不變 在程序內(nèi)部頻繁使用 需要用比較簡(jiǎn)單的方式替代某些值,4,計(jì)算機(jī)中常量的表示形式,計(jì)算機(jī)中常量的表示形式 1、字面常量或直接常量,亦稱常數(shù)從字面即可判別的量 例如:100,12.5,s等 2、符號(hào)常量用一個(gè)標(biāo)識(shí)符代表一個(gè)常量。但要事前定義 例如 #define PI 3.14159,#include #define PI 3.14159 int main(void) double s,r; r=5; s = PI * r * r; printf(“area s=%f“,s); return 0; ,5,整型常量,整型常量有三種不同的表示形式: 十進(jìn)制:無(wú)前綴,無(wú)后綴 八進(jìn)制:在八進(jìn)制數(shù)值前面加前綴“0”,其數(shù)碼取值為07。 例如:023,0457,01324等 十六進(jìn)制:前綴為“0X”或“0x”,其數(shù)碼取值為09、AF或af。例如:0X2A,0XA0,0XFFFF等 當(dāng)任意整型常量后跟一個(gè)字母u或U時(shí),表示是無(wú)符號(hào)整型。例如,123u,6,浮點(diǎn)型常量,浮點(diǎn)型常量有2種不同的表現(xiàn)形式: 十進(jìn)制小數(shù)形式:由數(shù)字和小數(shù)點(diǎn)組成,必須要有小數(shù)點(diǎn)。 例如:0.123,123.,123.0,0.0等。 指數(shù)形式:如123e3或123E3都代表123103。注意字母e或E之前必須有數(shù)字,且e或E后面的指數(shù)必須為整數(shù)。 規(guī)范化的指數(shù)形式:在字母e或E之前的小數(shù)部分中,小數(shù)點(diǎn)左邊應(yīng)有一位且只能有一位非零的數(shù)字,如1.23e5。,7,字符型常量,C語(yǔ)言的字符常量是用單撇號(hào)括起來(lái)的一個(gè)字符,如A,$等 轉(zhuǎn)義字符:以一個(gè)字符“”開頭的字符序列,代表特殊的含義。,8,例:轉(zhuǎn)義字符使用,運(yùn)行結(jié)果,#include void main() printf(“123456789n“); printf(“t123n“); printf(“123n“); printf(“hello!“n“); ,9,變量,程序,編寫程序時(shí),常常需要將數(shù)據(jù)存儲(chǔ)在內(nèi)存中,方便后面使用這個(gè)數(shù)據(jù)或者修改這個(gè)數(shù)據(jù)的值。,通常使用變量來(lái)存儲(chǔ)數(shù)據(jù)。使用變量可以引用存儲(chǔ)在內(nèi)存中的數(shù)據(jù),并隨時(shí)根據(jù)需要顯示數(shù)據(jù)或執(zhí)行數(shù)據(jù)操縱。,存儲(chǔ) Rate,Rate * 5%,將值存儲(chǔ)為DiscAmt,Rate-DiscAmt,10,0.5,將值存儲(chǔ)為Result,9.5,10,變量命名,在 C 語(yǔ)言中,變量命名需要遵循一定的規(guī)則,有效名稱,principal,cost_price,marks_3,lastname,city,無(wú)效名稱,123rate,currency$,discount%,zip code,變量的命名規(guī)則: 變量名可以由字母、數(shù)字和 _(下劃線)組合而成 變量名不能包含除 _ 以外的任何特殊字符,如:%、# 、逗號(hào)、空格等 變量名必須以字母或 _(下劃線)開頭 變量名不能包含空白字符(換行符、空格和制表符稱為空白字符) C 語(yǔ)言中的某些詞(例如 int 和 float 等)稱為保留字,具有特殊意義,不能用作變量名 C 語(yǔ)言區(qū)分大小寫,因此變量 price 與變量 PRICE 是兩個(gè)不同的變量,11,聲明和使用變量,聲明變量: Datatype variablename; 例如: int age; 定義時(shí)初始化變量: Datatype variablename = value; 例如: int age=20; 定義后初始化變量: variablename = value; 例如: int age; age=20;,給變量賦值,除了給一個(gè)直接的值以外,還可以通過(guò)計(jì)算獲得,12,基本數(shù)據(jù)類型,數(shù)據(jù)屬于不同類別,Africa,The quick brown fox,TRUE,數(shù)據(jù),非數(shù)值,數(shù)值,整型,非整型,9002.12,999,9/12/2003,2.175,123,Jackie Chan,char,數(shù)據(jù)類型,非數(shù)值,數(shù)值,整型,int,short int,long int,double,float,非整型,13,整型,參加教材20頁(yè)表2.1,14,使用整型變量,聲明: int page_number; long int population; unsigned int age; 可按如下方式初始化: int max_marks = 100; page_number0;,在同一語(yǔ)句中可以聲明多個(gè)類型相同的變量: int page_number, paper_width;,15,單精度浮點(diǎn)型,float 用于聲明在 C 語(yǔ)言中用于存儲(chǔ)單精度浮點(diǎn)數(shù)的變量,float,32 位,-3.410-383.410+38 ,7位有效數(shù)字,聲明: float selling_price; 初始化: float selling_price = 11.3; selling_price = 65.90;,16,雙精度浮點(diǎn)型,213.5671435568967,64位,取值范圍:-1.710-308 1.7 10308,16 位有效數(shù)字,聲明: double pressure_level; 初始化: double dvalue = 35.4; pressure_level = 213.5671435568967;,double 用于聲明在C語(yǔ)言中用于存儲(chǔ)雙精度浮點(diǎn)數(shù)的變量,17,數(shù)據(jù)類型所占的位數(shù)與機(jī)器硬件(CPU)、操作系統(tǒng)、開發(fā)環(huán)境有關(guān)。,18,字符型,在線保險(xiǎn)單 年齡:_ 保險(xiǎn)總額:_ 性別:_,23,98340.00, M ,數(shù)值型,字符型,int/float,char,19,字符型, 5 p $,有效的字符型值,“2“,2,正確,2 + 2 = 4,X,20,字符型,占 8 位內(nèi)存,signed 或 unsigned,Signed -128 至 +127,unsigned 0 至 255,示例:,char gender; gender=m;,char gender=m;,21,char型與int型之間的關(guān)系,#include int main(void) char ch = b; printf(“%c, %dn“, ch, ch); ch = b - 32; printf(“%c, %dn“, ch, ch); return 0; ,#include int main(void) char ch = b; printf(“%c, %dn“, ch, ch); ch = b - (a - A) ; printf(“%c, %dn“, ch, ch); return 0; ,b, 98 B, 66,b, 98 B, 66,例:小寫字母轉(zhuǎn)換為大寫字母,22,標(biāo)準(zhǔn)函數(shù),C語(yǔ)言提供了豐富的內(nèi)部函數(shù)(又稱庫(kù)函數(shù)、標(biāo)準(zhǔn)函數(shù)),其定義按函數(shù)類型存放在不同的“頭文件”中,使用時(shí)應(yīng)該在源文件中的開始位置包含相應(yīng)的頭文件。,用不同類型的庫(kù)函數(shù),要連不同的頭文件 如,使用數(shù)學(xué)函數(shù)時(shí), #include “math.h” 使用標(biāo)準(zhǔn)I/O函數(shù)時(shí), #include “stdio.h” 使用字符串函數(shù)時(shí), #include “string.h”,參見(jiàn)教材P24表2.3,23,標(biāo)準(zhǔn)函數(shù),調(diào)用庫(kù)函數(shù)形式:函數(shù)名(參數(shù)值表) 例如, sqrt(4.0) 得2.0 fabs(-100.0) 得100.0,使用庫(kù)函數(shù)時(shí),必須注意以下幾點(diǎn): 1)要包含相應(yīng)“頭文件” 2)函數(shù)名要正確 3)自變量要寫在括號(hào)里面,各自變量用逗號(hào)隔開;自變量可以是常量、變量或表達(dá)式;要注意數(shù)據(jù)類型。對(duì)于無(wú)參函數(shù),其括號(hào)也不能少 4)使用三角函數(shù)時(shí),必須注意角度的單位是“弧度” 5)在調(diào)用函數(shù)處得到函數(shù)返回值,24,表達(dá)式,Sum,=,num1,+,num2,表達(dá)式,25,表達(dá)式,Z = ( X * 2 ) + ( 5 Y ),26,表達(dá)式,表達(dá)式由操作數(shù)和運(yùn)算符的組合而成 表達(dá)式中的操作數(shù)可以是變量、常量或者子表達(dá)式 運(yùn)算符的主要類型有: 算術(shù)運(yùn)算符 賦值運(yùn)算符 關(guān)系運(yùn)算符 邏輯運(yùn)算符,27,算術(shù)運(yùn)算符,算術(shù),一元,二元,操作數(shù),操作數(shù),運(yùn)算符,二元運(yùn)算符,+,-,*,/,%,28,算術(shù)運(yùn)算符和算術(shù)表達(dá)式,算術(shù),一元,-,+,num+,num=num+1,num-,num=num-1,+num -num,num+ num-,前綴,后綴,二元,29,一元運(yùn)算符舉例,30,賦值運(yùn)算符,變量 表達(dá)式;,Height = 177.5; Weight = 78; Gender = m; x = a+b; w = sin(a)+sin(b); y = i+ -j;,最簡(jiǎn)單的運(yùn)算符:,=,作用是將一個(gè)數(shù)據(jù)(或表達(dá)式的值)賦給一個(gè)變量。 注意:賦值符號(hào)左邊只能是變量,不能是表達(dá)式,也不允許是常量。,31,例:運(yùn)算符應(yīng)用,/* 使用算術(shù)運(yùn)算符 */ #include int main(void) int a = 5, b = 3, c = 25, d = 12,q, r,i,e; q = a / b; / 除法 r = a % b; / 求模 i = +c; e = -d; printf (“商為 %dn“,q); printf (“余數(shù)為 %dn“,r); printf (“%d加 1 后為 %dn“,c,i); printf (“ %d減 1 后為 %dn“, d ,e); return 0; ,輸出: 商為 1 余數(shù)為 2 25加 1 后為 26 12減 1 后為 11,32,復(fù)合賦值運(yùn)算符,X *= 5+sin(3.4),X =X*( 5+sin(3.4),33,賦值運(yùn)算符使用,#include int main (void) float book_price = 60.75; /存放書的價(jià)格 printf(“n 書的價(jià)格 = %f“,book_price); book_price += 12.50; printf(“n 書的新價(jià)格 =%fn“,book_price); return 0; ,book_price=book_price+12.50;,34,sizeof運(yùn)算符,示例:,sizeof(int);,float num; sizeof(num);,使用 sizeof 運(yùn)算符可以獲得數(shù)據(jù)類型或變量占用內(nèi)存空間的大小。其一般形式為: sizeof(type_name)或sizeof(variable_name) sizeof 運(yùn)算符的結(jié)果以字節(jié)為單位顯示,注意:在32位計(jì)算機(jī)中,int類型的變量占4字節(jié)的內(nèi)存大小,和long類型的大小一樣,所以現(xiàn)在基本上可以直接使用int類型,而不需要使用long類型。,35,sizeof使用舉例,#include int main(void) printf(“Data type Number of bytesn“); printf(“- -n“); printf(“char %dn“, sizeof(char); printf(“int %dn“, sizeof(int); printf(“short int %dn“, sizeof(short); printf(“l(fā)ong int %dn“, sizeof(long); printf(“float %dn“, sizeof(float); printf(“double %dn“, sizeof(double); return 0; ,36,為什么要用sizeof獲得字長(zhǎng),因?yàn)?同種類型在不同的平臺(tái)其占字節(jié)數(shù)不盡相同。比如int在16位、32位和64位系統(tǒng)分別占2、4和8個(gè)字節(jié)。 現(xiàn)象與危害: 在平臺(tái)間移植時(shí)會(huì)出現(xiàn)問(wèn)題,導(dǎo)致數(shù)據(jù)丟失或者溢出。 解決方案: 用,并且只用sizeof獲得字長(zhǎng)。,37,類型溢出,C語(yǔ)言直接提供的任何類型都有取值范圍。當(dāng)向其賦超過(guò)此范圍的數(shù)值,就會(huì)產(chǎn)生數(shù)值溢出,得到一個(gè)不正確的結(jié)果。 int的范圍是-21474836482147483647 如果超出取值范圍,給它一個(gè)小于-2147483648或者大于2147483647的數(shù)會(huì)如何呢? (定義一個(gè)整型變量,看看能否存儲(chǔ)一個(gè)身份證號(hào)),小蛇能吞下大象嗎?,38,類型溢出解決方案,解決方案: 預(yù)先估算運(yùn)算結(jié)果的可能范圍,采用取值范圍更大的類型。 1+2+3+ 1!+2!+3!+ 13+23+33+ 如果不需要處理負(fù)數(shù),則采用無(wú)符號(hào)類型。 在運(yùn)算還沒(méi)開始之前就判斷運(yùn)算數(shù)是否在合理的取值范圍內(nèi)。如果超出,則停止運(yùn)算,轉(zhuǎn)錯(cuò)誤處理。,39,類型轉(zhuǎn)換,自動(dòng)類型轉(zhuǎn)換 原則:把表示范圍小的類型的值轉(zhuǎn)換到表示范圍大的類型的值 short int long float double 強(qiáng)制類型轉(zhuǎn)換 語(yǔ)法:(類型名) 變量或數(shù)值 例如: int a = 5, b = 3; float qu = (float)a / b;,40,自動(dòng)類型轉(zhuǎn)換,在進(jìn)行賦值操作時(shí),會(huì)發(fā)生類型轉(zhuǎn)換 將取值范圍小的類型轉(zhuǎn)為取值范圍大的類型是安全的 反之是不安全的 如果大類型的值在小類型能容納的范圍之內(nèi),則平安無(wú)事;但是,浮點(diǎn)數(shù)轉(zhuǎn)為整數(shù),會(huì)丟失小數(shù)部分,非四舍五入。反之,轉(zhuǎn)換后的結(jié)果必然是錯(cuò)誤的,具體結(jié)果與機(jī)器和實(shí)現(xiàn)方式有關(guān)。避免如此使用,好的編譯器會(huì)發(fā)出警告,41,強(qiáng)制類型轉(zhuǎn)換,消除從大到小的警告 l = (long)i; 可以通過(guò)“(類型)表達(dá)式”的方式把表達(dá)式的值轉(zhuǎn)為任意類型,屠 龍 刀,倚 天 劍,例如:float x=100.6; int y; y=x%3 ;,強(qiáng)轉(zhuǎn)時(shí),你必須知道你在做什么 強(qiáng)轉(zhuǎn)與
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 藥品經(jīng)營(yíng)質(zhì)量管理制度
- 藥品采購(gòu)預(yù)警管理制度
- 藥店辦公日常管理制度
- 藥店服務(wù)衛(wèi)生管理制度
- 莆田校外托管管理制度
- 薪酬福利職級(jí)管理制度
- 設(shè)備升級(jí)改造管理制度
- 設(shè)備定期檢定管理制度
- 設(shè)備日常使用管理制度
- 設(shè)備生產(chǎn)人員管理制度
- 高處安裝維護(hù)拆除作業(yè)培訓(xùn)
- 2025年中式烹調(diào)師(技師)理論考試筆試試題(50題)含答案
- DB61∕T 1914-2024 煤礦安全風(fēng)險(xiǎn)分級(jí)管控和隱患排查治理 雙重預(yù)防機(jī)制建設(shè)與運(yùn)行規(guī)范
- 種植二期手術(shù)護(hù)理配合
- 行政事業(yè)單位內(nèi)部控制工作中存在的問(wèn)題與遇到的困難
- 人工智能在醫(yī)療器械中的應(yīng)用-全面剖析
- 智慧農(nóng)旅綜合體項(xiàng)目可行性研究報(bào)告(參考范文)
- 2025年標(biāo)準(zhǔn)離婚協(xié)議書范本完整版
- 四川2024年11月四川南充市人民政府辦公室遴選(考調(diào))工作人員3人國(guó)家公務(wù)員考試消息筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 2025年云南省保山市隆陽(yáng)區(qū)小升初模擬數(shù)學(xué)測(cè)試卷含解析
- 2024年鄭州市公安機(jī)關(guān)招聘警務(wù)輔助人員筆試真題
評(píng)論
0/150
提交評(píng)論