C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)課件_第1頁(yè)
C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)課件_第2頁(yè)
C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)課件_第3頁(yè)
C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)課件_第4頁(yè)
C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)課件_第5頁(yè)
已閱讀5頁(yè),還剩52頁(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章C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)2回顧C(jī)語(yǔ)言的特點(diǎn)C程序的編譯和運(yùn)行過(guò)程編譯器將源程序轉(zhuǎn)換成機(jī)器能理解的程序連接器用于連接相關(guān)的目標(biāo)文件以生成可執(zhí)行程序2回顧C(jī)語(yǔ)言的特點(diǎn)3教學(xué)目標(biāo)算法的表示方法理解變量和常量的含義熟悉基本數(shù)據(jù)類型

——int、char、float和double掌握算術(shù)運(yùn)算符和賦值運(yùn)算符的用法理解表達(dá)式理解類型轉(zhuǎn)換3教學(xué)目標(biāo)算法的表示方法4算法著名計(jì)算機(jī)科學(xué)家沃思提出一個(gè)公式:數(shù)據(jù)結(jié)構(gòu)+算法=程序算法:為解決一個(gè)具體問(wèn)題而采取的確定的有限的操作步驟,僅指計(jì)算機(jī)能執(zhí)行的算法對(duì)數(shù)據(jù)的描述:數(shù)據(jù)結(jié)構(gòu)(datastructure)對(duì)操作的描述:算法(algorithm)4算法對(duì)數(shù)據(jù)的描述:數(shù)據(jù)結(jié)構(gòu)(datastructure)5算法的特性有窮性在合理的時(shí)間內(nèi)完成確定性(無(wú)歧義)如果x≥0,則輸出Yes;如果x≤0,則輸出No;可行性(有效性)能有效執(zhí)行負(fù)數(shù)開平方?jīng)]有輸入或有多個(gè)輸入有一個(gè)或多個(gè)輸出有足夠的情報(bào)5算法的特性有窮性有足夠的情報(bào)6算法的表示方法自然語(yǔ)言描述流程圖在1966年,Bohra與Jacopini提出N-S圖1973年,美國(guó)學(xué)者I.Nassi和B.Shneiderman提出偽代碼6算法的表示方法自然語(yǔ)言描述7例1有兩個(gè)存儲(chǔ)單元a和b,要求將它們的值互換。

分析:按存儲(chǔ)器的性質(zhì),如果將單元a的值直接送到單元b中,那么就會(huì)覆蓋掉b原來(lái)的內(nèi)容,因此,需要借助一個(gè)臨時(shí)單元c來(lái)交換。

具體算法如下:步驟1:將單元a的值送給單元c;步驟2:將單元b的值送給單元a;步驟3:將單元c的值送給單元b。自然語(yǔ)言描述7例1有兩個(gè)存儲(chǔ)單元a和b,要求將它們的值互換。分析:8例2求1+2+3+4+…+10。步驟1:將0送到S中;步驟2:將1送到n中;步驟3:把n的值加到S中;步驟4:n增1;步驟5:若n≤10則轉(zhuǎn)回步驟3,否則執(zhí)行步驟6;步驟6:輸出S的值。自然語(yǔ)言描述8例2求1+2+3+4+…+10。步驟1:將0送到S9流程圖通常采用一些幾何圖形來(lái)代表各種類型的操作,在圖形內(nèi)標(biāo)明文字或符號(hào)來(lái)表示操作的內(nèi)容,并用箭頭來(lái)表示操作的順序。

用流程圖表示算法,直觀形象,易于理解,但由于流程圖允許使用箭頭隨意跳轉(zhuǎn),對(duì)表示算法的層次結(jié)構(gòu)非常不利,且流程圖占的篇幅較大,作圖工作量也很大。

流程圖起止框輸入/輸出框判斷框處理框流程線連接點(diǎn)9流程圖通常采用一些幾何圖形來(lái)代表各種類型的操作,在圖形內(nèi)標(biāo)10順序結(jié)構(gòu)流程圖表示方法BA10順序結(jié)構(gòu)流程圖表示方法BA11選擇結(jié)構(gòu)流程圖表示方法BN如果

成績(jī)<60

那么

通知補(bǔ)考否則

告知你考試成績(jī)AY條件P11選擇結(jié)構(gòu)流程圖表示方法BN如果成績(jī)<60那么AY條件12循環(huán)結(jié)構(gòu)流程圖表示方法A條件PA當(dāng)型循環(huán)直到型循環(huán)真假假條件P假真12循環(huán)結(jié)構(gòu)流程圖表示方法A條件PA當(dāng)型循環(huán)直到型循環(huán)真假假13將例2求1+2+3+4+…+10用流程圖進(jìn)行描述。n+1=>n1=>ns+n=>s0=>sn≤10輸出s是否流程圖13將例2求1+2+3+4+…+10n+1=>14針對(duì)流程圖存在的缺點(diǎn),I.Nassi和B.Shneiderman提出了結(jié)構(gòu)化程序設(shè)計(jì)的流程圖,稱為N-S圖,更能體現(xiàn)結(jié)構(gòu)化程序設(shè)計(jì)的思想。推薦使用N-S圖。

N-S圖完全去掉了流程線,算法的所有處理步驟都寫在一個(gè)大矩形框內(nèi)(表示簡(jiǎn)單、符合結(jié)構(gòu)化思想)(象堆積木)結(jié)構(gòu)化程序設(shè)計(jì)的三種基本結(jié)構(gòu)

——順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)

N-S圖(盒圖)14針對(duì)流程圖存在的缺點(diǎn),I.Nassi和B.Shnei15結(jié)構(gòu)化程序設(shè)計(jì)的三種基本結(jié)構(gòu)具有以下共同的特點(diǎn):只有一個(gè)入口;只有一個(gè)出口;結(jié)構(gòu)內(nèi)的每一部分都有機(jī)會(huì)被執(zhí)行到;結(jié)構(gòu)內(nèi)不存在“死循環(huán)”。

N-S圖(盒圖)15結(jié)構(gòu)化程序設(shè)計(jì)的三種基本結(jié)構(gòu)具有以下共同的特點(diǎn):N-S圖16將例2求1+2+3+4+…+10用N-S圖進(jìn)行描述。0s1nn≤10n+ssn+1n

輸出sN-S圖(盒圖)16將例2求1+2+3+4+…+100sN-S圖17將求10個(gè)任意整數(shù)中的最大數(shù)用N-S圖進(jìn)行描述。輸入max1nn<10

輸入xTx>max?Fxmaxn+1n輸出maxN-S圖(盒圖)17將求10個(gè)任意整數(shù)中的最大數(shù)用N-S圖進(jìn)行描述18程序設(shè)計(jì)步驟根據(jù)實(shí)際問(wèn)題設(shè)計(jì)應(yīng)用程序大致要經(jīng)過(guò)以下四個(gè)步驟:

分析問(wèn)題

畫流程圖或N-S圖

編寫程序

運(yùn)行并調(diào)試程序

采用自頂向下、逐步細(xì)化的結(jié)構(gòu)化分析的方法18程序設(shè)計(jì)步驟根據(jù)實(shí)際問(wèn)題設(shè)計(jì)應(yīng)用程序大致要經(jīng)過(guò)以下四個(gè)步19例3求三個(gè)數(shù)中的最大數(shù)。

19例3求三個(gè)數(shù)中的最大數(shù)。20數(shù)據(jù)類型(DataType)數(shù)據(jù)為什么要區(qū)分類型?不同類型的數(shù)據(jù)代表不同的數(shù)據(jù)表示形式合法的取值范圍占用內(nèi)存空間大小可參與的運(yùn)算種類

20數(shù)據(jù)類型(DataType)數(shù)據(jù)為什么要區(qū)分類型?21數(shù)據(jù)類型在C語(yǔ)言中,數(shù)據(jù)類型一般包括基本數(shù)據(jù)類型、構(gòu)造數(shù)據(jù)類型、指針類型和空類型等四大類。數(shù)據(jù)類型指針類型構(gòu)造類型基本類型空類型void整型int(含枚舉類型)實(shí)型(浮點(diǎn)型)字符型char數(shù)組結(jié)構(gòu)體共用體單精度f(wàn)loat雙精度double21數(shù)據(jù)類型在C語(yǔ)言中,數(shù)據(jù)類型一般包括基本數(shù)據(jù)類型、構(gòu)造22一個(gè)簡(jiǎn)單的C程序例子#include<stdio.h>/*函數(shù)功能:計(jì)算兩個(gè)整數(shù)相加之和

入口參數(shù):整型數(shù)據(jù)a和b

返回值:整型數(shù)a和b之和*/int

Add(inta,intb){

return(a+b);}/*主函數(shù)*/main(){

intx,y,sum=0;

printf("Inputtwointegers:");

scanf("%d%d",&x,&y);/*輸入兩個(gè)整型數(shù)x和y*/ sum=Add(x,y);/*調(diào)用函數(shù)Add計(jì)算x和y相加之和*/

printf("sum=%d\n",sum);/*輸出x和y相加之和*/}并列的兩個(gè)函數(shù)其中一個(gè)是程序的入口程序注釋22一個(gè)簡(jiǎn)單的C程序例子#include<stdio.h23C語(yǔ)言中的基本元素程序語(yǔ)句標(biāo)識(shí)符關(guān)鍵字常量、變量運(yùn)算符分隔符……關(guān)鍵字(Keyword)又稱為保留字?jǐn)?shù)據(jù)類型修飾符int,控制語(yǔ)句return等

標(biāo)識(shí)符(Identifier)系統(tǒng)預(yù)定義標(biāo)識(shí)符,main,printf等用戶自定義標(biāo)識(shí)符,Add,x,y等運(yùn)算符(Operator)34種,+分隔符(Separator)空格、回車/換行、逗號(hào)等其它符號(hào)大花括號(hào)“{”和“}”“/*”和“*/”是程序注釋所需的定界符

數(shù)據(jù)(Data)變量(Variable)常量(Constant)

23C語(yǔ)言中的基本元素程序語(yǔ)句標(biāo)識(shí)符關(guān)鍵字(Keyword)24常量常量是在程序中保持不變的量

常量區(qū)分為不同類型:整型、實(shí)型、字符型和字符串型如12、3.2、'a'、"hello"

24常量常量是在程序中保持不變的量 常量區(qū)分為不同類型:整型25整型常量整型常量有三種不同的表示形式:十進(jìn)制:無(wú)前綴,無(wú)后綴八進(jìn)制:在八進(jìn)制數(shù)值前面加前綴“0”,其數(shù)碼取值為0~7。例如:023,0457,01324等十六進(jìn)制:前綴為“0X”或“0x”,其數(shù)碼取值為0~9、A~F或a~f。例如:0X2A,0XA0,0XFFFF等當(dāng)任意整型常量后跟一個(gè)字母u或U時(shí),表示是無(wú)符號(hào)整型。例如:123u當(dāng)任意整型常量后跟一個(gè)字母l或L時(shí),表示是長(zhǎng)整型。例如:123L25整型常量整型常量有三種不同的表示形式:26實(shí)型常量實(shí)型(浮點(diǎn)型)常量有2種不同的表現(xiàn)形式:小數(shù)形式:由數(shù)字和小數(shù)點(diǎn)組成,必須要有小數(shù)點(diǎn)。例如:0.123,123.,123.0,0.0等。指數(shù)形式:如123e3或123E3都代表123×103。注意字母e或E之前必須有數(shù)字,且e或E后面的指數(shù)必須為整數(shù)。規(guī)范化的指數(shù)形式:在字母e或E之前的小數(shù)部分中,小數(shù)點(diǎn)左邊應(yīng)有一位且只能有一位非零的數(shù)字,如1.23e5。26實(shí)型常量實(shí)型(浮點(diǎn)型)常量有2種不同的表現(xiàn)形式:27字符型常量C語(yǔ)言的字符常量是用單撇號(hào)括起來(lái)的一個(gè)字符,如'A','a','$'等。轉(zhuǎn)義字符:以一個(gè)字符“\”開頭的字符序列,代表特殊的含義。27字符型常量C語(yǔ)言的字符常量是用單撇號(hào)括起來(lái)的一個(gè)字符,如28八進(jìn)制數(shù)字表示(\ddd): '\123''\3'

注意數(shù)字的取值范圍十六進(jìn)制數(shù)字表示(\xdd): '\xFF''\x5' 說(shuō)明:字符可用對(duì)應(yīng)的編碼(整數(shù))表示 如:用065530x35表示'5'C中經(jīng)常將字符常量等價(jià)為整數(shù)參與運(yùn)算: 如:'A'+32結(jié)果為'a''0'-48為0字符型常量28八進(jìn)制數(shù)字表示(\ddd): '\123''\29字符串由若干字符(含轉(zhuǎn)義字符)組成,用雙引號(hào)界定 如:"hello""a""123""""\n"

"Tom\tis\078\n"含幾個(gè)字符?沒(méi)有長(zhǎng)度為零的字符(''),但有長(zhǎng)度為零的字符串("")注:雙引號(hào)在一行內(nèi)成對(duì)出現(xiàn),長(zhǎng)字符串可寫在多行上,C會(huì)自動(dòng)連接為整體。例如:"hello,I'm""yu." "Whoareyou?"輸出顯示:hello,I’myu.Whoareyou?字符串常量29字符串由若干字符(含轉(zhuǎn)義字符)組成,用雙引號(hào)界定字符串常30符號(hào)常量在C語(yǔ)言中,用一個(gè)標(biāo)識(shí)符來(lái)表示一個(gè)常量,稱之為符號(hào)常量一般形式為:#define<符號(hào)常量名><常量值>#include<stdio.h>#definePI3.14159main(){ doubles,r; r=5; s=PI*r*r;printf("areas=%f",s);}30符號(hào)常量在C語(yǔ)言中,用一個(gè)標(biāo)識(shí)符來(lái)表示一個(gè)常量,稱之為符31聲明和使用變量聲明變量:Datatypevariablename;如:intage;定義后給變量賦值:variablename=value;如:age=20;定義時(shí)初始化變量:Datatypevariablename=value;如:intage=20;給變量賦值,除了給一個(gè)直接的值以外,還可以通過(guò)計(jì)算獲得31聲明和使用變量聲明變量:給變量賦值,除了給一個(gè)直接的值以32變量的命名規(guī)則:變量名可以由字母、數(shù)字和_(下劃線)組合而成變量名不能包含除_以外的任何特殊字符,如:%、#、逗號(hào)、空格等變量名必須以字母或

_(下劃線)開頭變量名不能包含空白字符(換行符、空格和制表符稱為空白字符)C語(yǔ)言中的某些詞(例如int和float等)稱為保留字,具有特殊意義,不能用作變量名C語(yǔ)言區(qū)分大小寫,因此變量price與變量PRICE是兩個(gè)不同的變量變量命名在C語(yǔ)言中,變量命名需要遵循一定的規(guī)則(標(biāo)識(shí)符)有效名稱principalcost_pricemarks_3lastnamecity無(wú)效名稱123ratecurrency$discount%zipcode32變量的命名規(guī)則:變量命名在C語(yǔ)言中,變量命名需要遵循33使用整型變量聲明:intpage_number;longintpopulation;unsignedintage;初始化:intmax_marks=100;在同一語(yǔ)句中可以聲明多個(gè)類型相同的變量:int

page_number,copies,paper_width;33使用整型變量聲明:在同一語(yǔ)句中可以聲明多個(gè)類型相同的變量34單精度實(shí)型float在C

語(yǔ)言中用于存儲(chǔ)單精度實(shí)數(shù)float32位-3.4×10-38~3.4×10+38,7位有效數(shù)字聲明:floatselling_price;初始化:floatselling_price=11.3;34單精度實(shí)型float在C語(yǔ)言中用于存儲(chǔ)單精度實(shí)數(shù)f35雙精度實(shí)型內(nèi)存floatdouble213.5671435568967

64位取值范圍:-1.7×10-308~1.7×

1030816

位有效數(shù)字聲明:doublepressure_level;初始化:doublepressure_level=213.5671435568967;double在C

語(yǔ)言中用于存儲(chǔ)雙精度實(shí)數(shù)213.567135雙精度實(shí)型內(nèi)存floatdouble213.56714336shortintintlongfloatdoubleTurboC2B2B4B4B8BVC++6.02B4B4B4B8B數(shù)據(jù)類型所占的位數(shù)與機(jī)器硬件(CPU)、操作系統(tǒng)、開發(fā)環(huán)境有關(guān)。基本數(shù)據(jù)類型與環(huán)境間的關(guān)系36shortintintlongfloatdoubleT37字符型占8位內(nèi)存示例:chargender;gender='m';chargender='m';值符號(hào)值符號(hào)值符號(hào)0空字符44,91[32空格45-92\33!46.93]34"47/94^35#48

~570~9

95-36$58:96`37%59;97~122a~z38&60<123{39'61=124|40(62>125}41)63?126~42*64@127DEL(Delete鍵)43+65~90A

~Z

37字符型占8位內(nèi)存示例:chargender;cha38char型與int型之間的關(guān)系#include<stdio.h>main(){ charch='b';printf("%c,%d\n",ch,ch); ch='b'-32;

printf("%c,%d\n",ch,ch);}#include<stdio.h>main(){ charch='b';printf("%c,%d\n",ch,ch);

ch='b'-('a'-'A')

;

printf("%c,%d\n",ch,ch);}b,98B,66

b,98B,66

例:小寫字母轉(zhuǎn)換為大寫字母38char型與int型之間的關(guān)系#include<std39函數(shù)C語(yǔ)言提供了豐富的內(nèi)部函數(shù),又叫庫(kù)函數(shù),也稱標(biāo)準(zhǔn)函數(shù),其定義按函數(shù)類型存放在不同的“頭文件”中,使用時(shí)應(yīng)該在源文件中的開始位置包含上相應(yīng)的頭文件。

例如,使用數(shù)學(xué)函數(shù)時(shí),應(yīng)該在源文件中的開始位置使用#include"math.h"把頭文件math.h包含到源文件中。

引用內(nèi)部函數(shù)時(shí),只需要寫出相應(yīng)的函數(shù)名,并在后面的括號(hào)中給出所要計(jì)算的自變量值,即可得到所需要的函數(shù)值。例如,sqrt(4.0)得2.0,fabs(-100.0)得100.0。使用標(biāo)準(zhǔn)函數(shù)時(shí),必須注意以下兩點(diǎn):(1)使用三角函數(shù)時(shí),必須注意角度的單位是“弧度”;(2)引用標(biāo)準(zhǔn)函數(shù)時(shí),自變量要寫在括號(hào)里面,自變量可以是常量、變量或表達(dá)式。

39函數(shù)C語(yǔ)言提供了豐富的內(nèi)部函數(shù),又叫庫(kù)函40常用的標(biāo)準(zhǔn)數(shù)學(xué)函數(shù)函數(shù)名功能函數(shù)名功能sqrt(x)計(jì)算x的平方根,x應(yīng)大于等于0exp(x)計(jì)算ex的值fabs(x)計(jì)算x的絕對(duì)值pow(x,y)計(jì)算xy的值log(x)計(jì)算lnx的值sin(x)計(jì)算sinx的值,x為弧度值log10(x)計(jì)算lgx的值cos(x)計(jì)算cosx的值,x為弧度值40常用的標(biāo)準(zhǔn)數(shù)學(xué)函數(shù)函數(shù)名功能函數(shù)名功能sqrt(41表達(dá)式表達(dá)式由操作數(shù)和運(yùn)算符的組合而成表達(dá)式中的操作數(shù)可以是變量、常量或者子表達(dá)式表達(dá)式是常量、變量、數(shù)組元素、函數(shù)等運(yùn)算對(duì)象和運(yùn)算符以及括號(hào)的有意義組合。類似數(shù)學(xué)算式或公式,但寫法有所不同。運(yùn)算符的類型有:算術(shù)運(yùn)算符 +-*/%++--

指針運(yùn)算符 *&關(guān)系運(yùn)算符 ><==>=<=!=求字節(jié)數(shù)運(yùn)算符 sizeof邏輯運(yùn)算符 !&&|| 強(qiáng)制類型轉(zhuǎn)換運(yùn)算符 (類型)位運(yùn)算符 <<>>~|^&分量運(yùn)算符 .->賦值運(yùn)算符 =

下標(biāo)運(yùn)算符 []條件運(yùn)算符 ?: 其他逗號(hào)運(yùn)算符 ,注意:運(yùn)算符具有優(yōu)先級(jí)和結(jié)合性。41表達(dá)式表達(dá)式由操作數(shù)和運(yùn)算符的組合而成注意:運(yùn)算符具有優(yōu)42算術(shù)運(yùn)算符算術(shù)

一元

二元操作數(shù)操作數(shù)運(yùn)算符二元運(yùn)算符+-*/%兩個(gè)整數(shù)相除,其值為整數(shù),如5/3值為1操作數(shù)中有一個(gè)為實(shí)數(shù)時(shí),結(jié)果為double型%(模(求余)運(yùn)算符):%兩側(cè)均為整型數(shù)據(jù)42算術(shù)運(yùn)算符算術(shù)一元二元操作數(shù)操作數(shù)運(yùn)算符二元運(yùn)算符+43算術(shù)運(yùn)算符和算術(shù)表達(dá)式算術(shù)一元--++num++num=num+1num--num=num-1++num--numnum++num--前綴后綴二元表達(dá)式如何計(jì)算結(jié)果(num1=5)num2=++num1;num1=num1+1;num2=num1;num2=6;num1=6;num2=num1++;num2=num1;num1=num1+1;num2=5;num1=6;num2=--num1;num1=num1-1;num2=num1;num2=4;num1=4;num2=num1--;num2=num1;num1=num1-1;num2=5;num1=4;43算術(shù)運(yùn)算符和算術(shù)表達(dá)式算術(shù)一元--++num++num=44例:算術(shù)運(yùn)算符和算術(shù)表達(dá)式應(yīng)用#include<stdio.h>main(){

inta=5,b=3,c=25,d=12;floatqu;intre,in,de;/*使用算術(shù)運(yùn)算符*/qu=a/b;//除法re=a%b;//求模in=++c;de=--d;printf("商為

%f\n",qu);printf("余數(shù)為

%d\n",re);printf(“加

1后為

%d\n",in);printf("減

1后為

%d\n",de);}商為1.000000余數(shù)為2加1后為26減1后為1144例:算術(shù)運(yùn)算符和算術(shù)表達(dá)式應(yīng)用#include<std45賦值運(yùn)算符和賦值表達(dá)式變量

表達(dá)式Height=177.5Weight=78Gender=

’m’x=a+bw=sin(a)+sin(b)y=i++-j最簡(jiǎn)單的運(yùn)算符:=作用是將一個(gè)數(shù)據(jù)(或表達(dá)式的值)賦給一個(gè)變量。注意:賦值符號(hào)左邊只能是變量,不能是表達(dá)式,也不允許是常量。45賦值運(yùn)算符和賦值表達(dá)式變量表達(dá)式Height46復(fù)合賦值運(yùn)算符運(yùn)算符表達(dá)式計(jì)算結(jié)果(假設(shè)X=10)+=X+=5X=X+515-=X-=5X=X-55*=X*=5X=X*550/=X/=5X=X/52%=X%=5X=X%5046復(fù)合賦值運(yùn)算符運(yùn)算符表達(dá)式計(jì)算結(jié)果(假設(shè)X=10)+=47賦值運(yùn)算符和賦值表達(dá)式使用#include<stdio.h>main(){floatbook_price=60.75;//存放書的價(jià)格

printf("\n書的價(jià)格

=%f",book_price);book_price+=12.50;printf("\n書的新價(jià)格

=%f\n",book_price);}book_price=book_price+12.50;47賦值運(yùn)算符和賦值表達(dá)式使用#include<stdio48逗號(hào)運(yùn)算符與逗號(hào)表達(dá)式形式:表達(dá)式1,表達(dá)式2作用:用于連接表達(dá)式計(jì)算過(guò)程:先求解表達(dá)式1,再求解表達(dá)式2。整個(gè)逗號(hào)表達(dá)式的值是表達(dá)式2的值。如:3+5,6+8例:x=(a=3,6*3)x=a=3,6*a逗號(hào)表達(dá)式可組合逗號(hào)運(yùn)算符的優(yōu)先級(jí)最低,結(jié)合方向自左到右并不是任何地方出現(xiàn)的逗號(hào)都是逗號(hào)運(yùn)算符如:printf("%d,%d,%d\n",a,b,c);如:(a=3*5,a*4),a+548逗號(hào)運(yùn)算符與逗號(hào)表達(dá)式形式:表達(dá)式1,表達(dá)式2計(jì)算過(guò)程49類型溢出C語(yǔ)言直接提供的任何類型都有取值范圍。當(dāng)向其賦超過(guò)此范圍的數(shù)值,就會(huì)產(chǎn)生數(shù)值溢出,得到一個(gè)不正確的結(jié)果。int的范圍是-2147483648~2147483647如果超出取值范圍,給它一個(gè)小于-2147483648或者大于2147483647的數(shù)會(huì)如何呢?編程測(cè)驗(yàn)……小蛇能吞下大象嗎?49類型溢出C語(yǔ)言直接提供的任何類型都有取值范圍。當(dāng)向其賦超50類型溢出解決方案解決方案:預(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ò)誤處理。50類型溢出解決方案解決方案:51運(yùn)算符的優(yōu)先級(jí)和結(jié)合性優(yōu)先級(jí):

++、--、+、-、sizeof()

*、/、%+、-=、+=、-=、*=、/=、%=,結(jié)合性:

右結(jié)合——++、--、+、-、sizeof()=、+=、-=、*=、/=、%=

左結(jié)合——*、/、%、+、-、,51運(yùn)算符的優(yōu)先級(jí)和結(jié)合性優(yōu)先級(jí):52自動(dòng)類型轉(zhuǎn)換doublefloatlongunsignedintchar,short低高說(shuō)明:必定的轉(zhuǎn)換運(yùn)算對(duì)象類型不同時(shí)轉(zhuǎn)換例charch;inti;floatf;doubled;ch/i+f*d-(f+i)intintdoubledoubledoubledoubledoubledoubleintintdoubledoubledoub

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論