最基礎(chǔ)的C語言教程_第1頁
最基礎(chǔ)的C語言教程_第2頁
最基礎(chǔ)的C語言教程_第3頁
最基礎(chǔ)的C語言教程_第4頁
最基礎(chǔ)的C語言教程_第5頁
已閱讀5頁,還剩197頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

C語言程序設(shè)計(jì)主講:高照艷1第一章C語言概述主要內(nèi)容:C語言的發(fā)展C語言的特點(diǎn)簡單C程序介紹算法結(jié)構(gòu)化程序設(shè)計(jì)C程序的執(zhí)行過程2C語言出現(xiàn)的歷史背景(1)C語言的發(fā)展源于人們希望用高級(jí)語言編寫操作系統(tǒng)。ALGOL60(高級(jí)語言)60->CPL(劍橋大學(xué)推出接近硬件規(guī)模大難實(shí)現(xiàn))63->BCPL(劍橋大學(xué)簡化CPL)67->B語言(貝爾實(shí)驗(yàn)室用B寫了UNIX操作系統(tǒng))70->C語言(用C改寫了UNIX90%,即第5版)72-73->標(biāo)準(zhǔn)C(K&R《TheCProgramminglanguage》)78->ANSIC83(ANSI美國國家標(biāo)準(zhǔn)化協(xié)會(huì))->87ANSIC->ISOC90(ISO-國際標(biāo)準(zhǔn)化組織)

版本:MicrosoftC、TurboC、BorlandC、QuickC(2)C語言既具有高級(jí)語言特性,又具有低級(jí)語言特性-中級(jí)語言。1.1C語言的發(fā)展

31.2

C語言的特點(diǎn)語言簡潔,表達(dá)能力強(qiáng),易于理解只有32個(gè)關(guān)鍵字,9種控制語句32個(gè)關(guān)鍵字:(由系統(tǒng)定義,不能重作其它定義)autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunsignedunionvoidvolatilewhile49種控制語句:if()~else~for()~while()~do~while()continuebreakswitchgotoreturn5運(yùn)算符豐富34種運(yùn)算符,運(yùn)算能力強(qiáng)、效率高。算術(shù)運(yùn)算符:+-*/%++--關(guān)系運(yùn)算符:<<===>>=!=邏輯運(yùn)算符:!&&||位運(yùn)算符:<<>>~|^&賦值運(yùn)算符:=及其擴(kuò)展條件運(yùn)算符:?:逗號(hào)運(yùn)算符:,指針運(yùn)算符:*&求字節(jié)數(shù):sizeof強(qiáng)制類型轉(zhuǎn)換:(類型)分量運(yùn)算符:.->下標(biāo)運(yùn)算符:[]其它:()-6數(shù)據(jù)類型豐富C數(shù)據(jù)類型基本類型構(gòu)造類型指針類型空類型void定義類型typedef數(shù)值類型字符類型char枚舉類型enum整型浮點(diǎn)型單精度型float雙精度型double短整型short長整型long整型int數(shù)組結(jié)構(gòu)體struct共用體union7具有結(jié)構(gòu)化的控制語句程序書寫格式自由能進(jìn)行位操作,能實(shí)現(xiàn)匯編語言的大部分功能,可以直接對(duì)硬件進(jìn)行操作語言生成的代碼質(zhì)量高,程序執(zhí)行效率高可移植性好8例1.1編寫程序,在屏幕上打印字符串“ThisisaCprogram.\n”。main(){

printf("ThisisaCprogram.\n");}1.3簡單C程序介紹

9例1.2/*求兩數(shù)之和*/

main() { inta,b,sum;/*定義變量*/

a=123; b=456; sum=a+b; printf(“Sumis%d\n”,sum); }

Sumis579

10例1.3求兩數(shù)之最大值

main(){ inta,b,c;scanf(”%d,%d”,&a,&b);c=max(a,b);

/*調(diào)用自定義函數(shù)max*/printf(“max=%d\n”,c); }intmax(intx,inty)

/*自定義函數(shù)*/{intz;if(x>y)z=x;elsez=y;return(z); }11C程序結(jié)構(gòu)C程序由函數(shù)構(gòu)成必須有,且只能有一個(gè)main(主函數(shù))總是從main函數(shù)開始執(zhí)行函數(shù)由函數(shù)首部和函數(shù)體組成函數(shù)首部指定函數(shù)名、函數(shù)參數(shù)、類型函數(shù)體從{開始,到}結(jié)束函數(shù)內(nèi)有語句12C程序結(jié)構(gòu)(續(xù))語句包括說明性語句、可執(zhí)行語句以;表示語句結(jié)束注釋可以出現(xiàn)在程序的任何位置

用/*和*/括起來,必須成對(duì)出現(xiàn)書寫格式C語言沒有行的概念,書寫格式自由。習(xí)慣小寫字母,縮進(jìn)格式。131.4程序的靈魂-算法程序包括兩方面內(nèi)容:1.對(duì)數(shù)據(jù)的描述。數(shù)據(jù)元素及各元素之間的關(guān)系,即數(shù)據(jù)結(jié)構(gòu)。2.對(duì)操作的描述。即操作步驟,也就是算法。程序=數(shù)據(jù)結(jié)構(gòu)+算法程序=數(shù)據(jù)結(jié)構(gòu)+算法+程序設(shè)計(jì)方法+語言工具環(huán)境說明:高級(jí)語言的數(shù)據(jù)結(jié)構(gòu)是以數(shù)據(jù)類型來體現(xiàn)的。141.4.1算法什么是算法為解決某一應(yīng)用問題而采用的解題步驟算法的描述方式

用自然語言描述算法

用流程圖描述算法

用N-S結(jié)構(gòu)圖描述算法用計(jì)算機(jī)語言表示算法(即實(shí)現(xiàn)算法)例如:輸出兩個(gè)數(shù)中的最大數(shù)15用自然語言描述算法第一步:輸入x和y的值第二步:比較x和y的值,如果x大于y,則輸出x的值,否則輸出y的值。

例如當(dāng)描述“輸出10個(gè)數(shù)中最大數(shù)”的算法時(shí),會(huì)冗長、難于理解16圖1.5用流程圖描述算法用流程圖描述算法NYz=yz=xx>y?開始輸入x和y結(jié)束輸出z起止框輸入/輸出框判斷框處理框流程線17用N-S結(jié)構(gòu)圖描述算法輸入x、y的值x>yTFz=xz=y輸出z的值圖1.7用N-S結(jié)構(gòu)圖描述的算法18第一章1.1引言算法的特性(1)有窮性。

(2)確定性。

(3)有效性。

(4)輸入。

(5)輸出。

191.4.2結(jié)構(gòu)化程序設(shè)計(jì)程序的三種基本結(jié)構(gòu)順序結(jié)構(gòu)程序:按照書寫順序依次執(zhí)行語句選擇結(jié)構(gòu)程序:按照條件判斷選擇執(zhí)行語句循環(huán)結(jié)構(gòu)程序:通過條件控制循環(huán)執(zhí)行語句三種基本結(jié)構(gòu)的共同點(diǎn):都是只有一個(gè)入口和一個(gè)出口;結(jié)構(gòu)內(nèi)的每一個(gè)框都有機(jī)會(huì)被執(zhí)行;結(jié)構(gòu)內(nèi)沒有死循環(huán)。20結(jié)構(gòu)化程序設(shè)計(jì)的三種基本結(jié)構(gòu):1)順序結(jié)構(gòu)傳統(tǒng)流程圖N-S流程圖

ABAB開始結(jié)束其中:A、B為操作框,可由一條或多條語句實(shí)現(xiàn)。212)選擇結(jié)構(gòu)(分支結(jié)構(gòu))傳統(tǒng)流程圖N-S流程圖

入口出口ABP

PABTFTF其中:P為分支判斷條件;

A、B必有一個(gè)且只有一個(gè)被執(zhí)行;

A、B之一可是空操作,用表示。22

3)循環(huán)結(jié)構(gòu)當(dāng)型循環(huán)——先判斷后循環(huán),有可能一次也不循環(huán)。入口

FTPA當(dāng)P為真

A出口其中:P為循環(huán)判斷條件;

A為要重復(fù)執(zhí)行的操作,稱為循環(huán)體;23

直到型循環(huán)——先循環(huán)后判斷,至少循環(huán)一次。

入口

FTPA

A直到P為真

出口其中:P為循環(huán)判斷條件;

A為要重復(fù)執(zhí)行的操作,稱為循環(huán)體;24算法舉例例:計(jì)算5!(1×2×3×4×5)

1→t1→i當(dāng)i≤5t×i→ti+1→i輸出t1→t1→i

t×i→ti+1→i直到i>5輸出t當(dāng)型循環(huán)直到型循環(huán)25結(jié)構(gòu)化程序設(shè)計(jì)的基本原則:結(jié)構(gòu)化程序設(shè)計(jì)的基本原則:采用自頂向下、逐步細(xì)化的方法進(jìn)行設(shè)計(jì);采用模塊化原則和方法進(jìn)行設(shè)計(jì)。即將大型任務(wù)從上向下劃分為多個(gè)功能模塊,每個(gè)模塊又可以劃分為若干子模塊,然后分別進(jìn)行模塊程序的編寫;每個(gè)模塊都是用結(jié)構(gòu)化程序?qū)崿F(xiàn),即都只能由三種基本結(jié)構(gòu)組成,并通過計(jì)算機(jī)語言的結(jié)構(gòu)化語句實(shí)現(xiàn)。261.5

C語言的上機(jī)操作步驟一.上機(jī)過程:編譯正確正確正確有錯(cuò)誤有錯(cuò)誤編輯運(yùn)行27C程序的執(zhí)行過程

1.源程序文件的建立和編輯

編寫源程序,形成.C文件需用編輯工具:tc.exe、記事本2.編譯

編譯源程序,形成目標(biāo)程序.Obj文件需用編譯工具:tcc.exe3.連接

連接OBJ文件和調(diào)用的庫函數(shù),形成運(yùn)行程序

.exe

文件需用連接工具:tlink.exe4.運(yùn)行

.exe

文件28裝載c程序編輯c程序運(yùn)行c程序(ctrl+F9)正確?看結(jié)果(alt+F5)運(yùn)行下一程序?是是否退出否2.上機(jī)過程流程圖:29F3(打開源程序)F2(保存當(dāng)前源程序)F9(編譯當(dāng)前源程序)CTRL+F9(運(yùn)行當(dāng)前源程序)ALT+F5(查看運(yùn)行結(jié)果)3.編寫、運(yùn)行C程序時(shí)常用功能鍵30三、需要記住的TC中一些常用功能鍵F1:幫助。

F2:將當(dāng)前文件存盤。 F3:裝載原有文件或給新文件命名。 F4:程序運(yùn)行到光標(biāo)所在行。 F5:放大或縮小活動(dòng)窗口切換。F6:開或關(guān)活動(dòng)窗口切換。F7:單步運(yùn)行程序,跟蹤進(jìn)入函數(shù)內(nèi)部運(yùn)行。F8:單步運(yùn)行程序,不跟蹤進(jìn)入函數(shù)內(nèi)部。

第一章1.3C語言集成開發(fā)環(huán)境31實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)一

[實(shí)驗(yàn)?zāi)康腯[實(shí)驗(yàn)內(nèi)容和步驟]1.設(shè)計(jì)算法,寫出程序2.在TurboC下編輯,得到源程序(.c)3.編譯,得到目標(biāo)文件(.obj)4.連接,得到可執(zhí)行文件(.exe)5.分析結(jié)果[實(shí)驗(yàn)體會(huì)]32C程序設(shè)計(jì)

數(shù)據(jù)類型、運(yùn)算符與表達(dá)式332.1數(shù)據(jù)類型2.2常量與變量2.3整型數(shù)據(jù)2.4實(shí)型數(shù)據(jù)2.5字符型數(shù)據(jù)2.6變量賦初值2.7混合運(yùn)算2.8運(yùn)算符與表達(dá)式

數(shù)據(jù)類型、運(yùn)算符與表達(dá)式

CHAPTER234數(shù)據(jù)類型、運(yùn)算符與表達(dá)式

C的數(shù)據(jù)類型C語言提供的數(shù)據(jù)結(jié)構(gòu)是以數(shù)據(jù)類型形式出現(xiàn)的數(shù)據(jù)在內(nèi)存中存放的情況有數(shù)據(jù)類型決定

數(shù)據(jù)的操作要依靠運(yùn)算符實(shí)現(xiàn),而數(shù)據(jù)和運(yùn)算符共同組成了表達(dá)式。35數(shù)據(jù)類型、運(yùn)算符與表達(dá)式

C的數(shù)據(jù)類型數(shù)組類型數(shù)據(jù)類型構(gòu)造類型空類型指針類型雙精度單精度實(shí)型(浮點(diǎn)型)字符型枚舉類型基本類型整型結(jié)構(gòu)體類型共用體類型363.2常量與變量

3.2.1常量和符號(hào)常量常量:在運(yùn)行過程中,其值不能被改變的量稱為常量。

分類:整型﹑實(shí)型﹑字符﹑字符串符號(hào)常量,用一個(gè)標(biāo)識(shí)符代表的常量。

習(xí)慣上,符號(hào)常量名用大寫,變量用小寫,以示區(qū)別。-1,0,123為整型常量

4.6,-1.23為實(shí)型常量

‘a(chǎn)’,‘d’

為字符常量#definePRICE255A=PRICE*A+6C=PRICE+C/120PRICE是標(biāo)識(shí)符,符號(hào)常量373.2.2變量變量:在程序運(yùn)行過程中,其值可以改變的量稱為變量。標(biāo)識(shí)符:用來標(biāo)識(shí)變量名、符號(hào)常量名、函數(shù)名、類型名、數(shù)組名、文件名的有效字符序列稱為標(biāo)識(shí)符。由字母、數(shù)字和下劃線三種字符組成,且第一個(gè)字符必須為字母或下劃線。合法的變量名如:average,abd,a,s2,

student_name,_init不合法的變量名:M.D.John,1a,#33,a>b3.C語言要求對(duì)變量“先定義,后使用”。383.3整型數(shù)據(jù)

3.3.1整型常量由一系列數(shù)字組成。也可帶有減號(hào),但不使用加號(hào)。十進(jìn)制整數(shù):123,-456,0八進(jìn)制整數(shù):以0開頭的數(shù)據(jù),如:-011,0123十六進(jìn)制整數(shù):以0x開頭的數(shù)據(jù),如:0x123

整型常量的分類根據(jù)其值的范圍而決定其類型,并可以賦值給類型相匹配的整型變量。393.3.2整型變量1.整數(shù)數(shù)據(jù)在內(nèi)存中的存放形式

數(shù)據(jù)在內(nèi)存中是以二進(jìn)制形式存放的。例如:3=(0000000000000011)2要區(qū)別:+3和-3方法是:將符號(hào)也數(shù)碼化即: 正的符號(hào)+用

0表示 負(fù)的符號(hào)-用

1表示數(shù)值是以補(bǔ)碼表示的。正數(shù)的補(bǔ)碼和其原碼的形式相同。

負(fù)數(shù)的補(bǔ)碼:將該數(shù)的絕對(duì)值的二進(jìn)制形式,按位取反再加1。-3=(11111111111111101)2402.整型變量的分類

整型…

int在內(nèi)存中以二進(jìn)制形式存放,每一個(gè)整型變量在內(nèi)存中占2個(gè)字節(jié)。短整型…

以shortint表示或以short表示,一般與int占有的內(nèi)存相同。長整形…以longint表示或以long表示,一般占有在內(nèi)存中字節(jié)為int兩倍。無符號(hào)型…只能存放正整數(shù),它的表示是在上述三種類型之前加上unsigned類型名稱類型符bit取值范圍整型(短整型)intshort[int]16-215~215-1(-32768~32767)無符號(hào)整型unsigned[int]160~216-1(0~65535)長整型long[int]32-231~231-1無符號(hào)長整型unsignedlong[int]320~232-1413.整型變量的定義對(duì)變量的定義一般放在函數(shù)的開頭部分。[例2.1]main(){inta,b,c,d;unsignedu;a=12;b=-24;u=10;c=a+u;d=b+u;printf(“a+u=%d,b+u=%d\n”,c,d);}a+u=22,b+u=-14不同類型的數(shù)可以直接運(yùn)算424.整型數(shù)據(jù)的溢出main(){inta,b;

a=32767;b=a+1;printf(“%d,%d”,a,b);}運(yùn)行結(jié)果為32767,-327683.3.3整型常量的類型①一個(gè)整常量,其值在-2^15~2^15-1內(nèi)可認(rèn)為是int

型,并可賦值給int

型和longint

型變量;②一個(gè)整常量,其值在–2^31~

2^31-1

范圍內(nèi)則認(rèn)為它是longint

型,可賦值給一個(gè)longint

型變量;③常量中無unsigned

型,但一個(gè)非負(fù)值的整常量可以賦給unsigned

型整變量;433.4實(shí)型數(shù)據(jù)3.4.1實(shí)型常量1.十進(jìn)制小數(shù)形式(日常記數(shù)形式)1.0+12.0-12.00.02.指數(shù)形式(科學(xué)記數(shù)形式)<尾數(shù)>E(e)<整型指數(shù)>。例如3.0E+5等。3.4.2實(shí)型變量1.類型:單精度:float,分配4Byte雙精度:double,分配8Byte2.存儲(chǔ):指數(shù)部分小數(shù)部分

小數(shù)的符號(hào)位指數(shù)的符號(hào)位44實(shí)型數(shù)據(jù)的類型及規(guī)定

類型類型符Byte絕對(duì)值的范圍有效數(shù)字單精度型float410-38~10386~7位雙精度型double810-308~1030815~16位實(shí)型常量不分float和double,根據(jù)范圍賦值給相應(yīng)的變量。如:floata;

doubleb;

a=111111.111;b=111111.111

a中實(shí)際存儲(chǔ)的是111111.1(7位有效)

b中實(shí)際存儲(chǔ)的是111111.111(全部有效)453.5字符型數(shù)據(jù)3.5.1字符常量1.定義用一對(duì)單引號(hào)括起來的單個(gè)字符,稱為字符常量。例如,‘A’、‘1’、‘+’等。2.轉(zhuǎn)義字符C語言還允許使用一種特殊形式的字符常量,就是以反斜杠“\”開頭的字符序列。\0字符串結(jié)束標(biāo)志\n回車換行\(zhòng)t跳到下一個(gè)輸出位置\"雙引號(hào)字符\dddddd為1到3位八進(jìn)制數(shù)所代表的字符\xhhhh為1到2位十六進(jìn)制數(shù)所代表的字符463.5.2字符型變量

字符變量的類型關(guān)鍵字為char,一般占用1字節(jié)內(nèi)存單元。

1.變量值的存儲(chǔ)

將一個(gè)字符常量存儲(chǔ)到一個(gè)字符變量中,實(shí)際上是將該字符的ASCII碼值(無符號(hào)整數(shù))存儲(chǔ)到內(nèi)存單元中。例如:charch1,ch2; /*定義兩個(gè)字符變量:ch1,ch2*/ch1=’a’;ch2=’b’;/*給字符變量賦值*/’a’、’b’的ASCII碼為97、98。

2.特性1)字符數(shù)據(jù)在內(nèi)存中存儲(chǔ)的是字符的ASCII碼;2)C語言允許字符型數(shù)據(jù)與整型數(shù)據(jù)之間通用,可以互相賦值。3)字符數(shù)據(jù)也可以整數(shù)形式輸出。47

[例1]字符變量的字符形式輸出和整數(shù)形式輸出。

main()

{charc1,c2;

c1='a';c2='b';printf(“c1=%c,c2=%c\n”,c1,c2);

printf(“c1=%d,c2=%d\n”,c1,c2);

}

程序運(yùn)行結(jié)果:

c1=a,c2=b

c1=97,c2=9848

[例2]

大小寫字母的轉(zhuǎn)換。

main()

{charc1,c2;

c1='a';c2='b';c1=c1-32;c2=c2-32;printf(“%cc2=%c\n”,c1,c2);

}

程序運(yùn)行結(jié)果:

AB

49數(shù)據(jù)類型、運(yùn)算符與表達(dá)式

字符型數(shù)據(jù)3.5.3字符串常量用雙引號(hào)括起來的字符序列。如:“Howdoyoudo”,“CHINA”,“a”,“$123.34”

等。字符串可以一次輸出。如:

printf(“Howdoyoudo”);C語言規(guī)定:在存儲(chǔ)字符串常量時(shí),由系統(tǒng)在字符串的末尾自動(dòng)加一個(gè)‘\0’作為字符串的結(jié)束標(biāo)志。在內(nèi)存中,對(duì)字符串常量是采用字符數(shù)組表示,即用一個(gè)字符型數(shù)組來存放一個(gè)字符串。注意:‘a(chǎn)’是字符常量,“a”是字符串常量,二者不同。50綜上所述,字符常量'A'與字符串常量"A"是兩回事:(1)定界符不同:字符常量使用單引號(hào),而字符串常量使用雙引號(hào);(2)長度不同:字符常量的長度固定為1,而字符串常量的長度,可以是某個(gè)整數(shù);(3)存儲(chǔ)要求不同:字符常量存儲(chǔ)的是字符的ASCII碼值,而字符串常量,除了要存儲(chǔ)有效的字符外,還要存儲(chǔ)一個(gè)結(jié)束標(biāo)志’\0’。513.6變量賦初值在變量定義的同時(shí)可以為變量賦初值。如:inta=3;

(相當(dāng)于inta;a=3;)

floatf=3.56;

charc=‘a(chǎn)’;

inta,b,c=5;表示只給c賦初值。(相當(dāng)于inta,b,c;c=5;)523.7各類數(shù)值型數(shù)據(jù)間的混合運(yùn)算

不同類型的數(shù)據(jù)(整型、實(shí)型、字符型)可進(jìn)行混合運(yùn)算。

如:10+‘a(chǎn)’+1.5-8765.1234*‘b’

必須首先將它們轉(zhuǎn)換成同一類型的數(shù)值。轉(zhuǎn)換原則是由低向高轉(zhuǎn)換,運(yùn)算結(jié)果為最高級(jí)別的類型。

doublefloatlongunsignedintchar,short表示必須要轉(zhuǎn)換表示由低向高高低53數(shù)據(jù)類型、運(yùn)算符與表達(dá)式

混合運(yùn)算如:10+‘a(chǎn)’+i*f-d/eintdoubledouble–double+double54例2-5:已知:floata=2.0;intb=6,c=3;求解:a*b/c-1.5+’A’+abs(-5)=?12.0/34.0-1.52.5+65(int)67.5572.5第二章2.3運(yùn)算符和表達(dá)式553.8算術(shù)運(yùn)算符和算術(shù)表達(dá)式

1.基本的算術(shù)運(yùn)算:+、-、*、/、%%是模運(yùn)算,即求余運(yùn)算,要求整數(shù)。

如:7%4的結(jié)果是3。說明:

5/3的結(jié)果仍是整數(shù),小數(shù)部分被忽略。5.3/3或5/3.0的結(jié)果為double型。

C編譯系統(tǒng)將實(shí)型常量作為雙精度來處理。如果參加+、-、*、/運(yùn)算的兩個(gè)數(shù)中有一個(gè)數(shù)為實(shí)數(shù),則結(jié)果是double型。2.算術(shù)表達(dá)式:用算術(shù)運(yùn)算符將運(yùn)算對(duì)象按C的語法規(guī)則連接起的式子。例如:a*b/c-1.5+‘a(chǎn)’優(yōu)先級(jí)(算術(shù)運(yùn)算):

()*/%+-在同一級(jí)別中,采取由左至右的結(jié)合方向。

如:a-b+c相當(dāng)于(a-b)+c563.強(qiáng)制類型轉(zhuǎn)換運(yùn)算符可將一個(gè)表達(dá)式轉(zhuǎn)換成所需類型。其一般形式為:(類型名)(表達(dá)式)例如:(double)a(int)(x+y)(float)(5%3)在強(qiáng)制類型轉(zhuǎn)換時(shí),得到一個(gè)所需類型的中間變量,原來變量的類型未發(fā)生變化。

57練習(xí)main(){inti;floatx;x=3.6;i=(int)x;printf("x=%f,i=%d\n",x,i);}58數(shù)據(jù)類型、運(yùn)算符與表達(dá)式

運(yùn)算符和表達(dá)式4.自增、自減運(yùn)算符

使變量的值加1或減1。如:++i,--i在使用i之前,先使i的值加(減)1i++,i--

在使用i之后,再使i的值加(減)1例如:i的值為3,則j=++i;j的值為4,i的值為4j=i++;j的值為3,i的值為4又如:printf(“%d”,++i);輸出結(jié)果為4printf(“%d”,i++);輸出結(jié)果為3單獨(dú)使用時(shí),i++,++i等價(jià)59第二章2.3運(yùn)算符和表達(dá)式結(jié)合性:自右向左例:i=2;j=-i++;分析:(1)++、--、+、-是同級(jí)運(yùn)算符,結(jié)合方向:自右向左。(2)-i++等價(jià)于-(i++)(3)對(duì)于括號(hào)內(nèi)的自增運(yùn)算,要先使用i,再使i增加1。運(yùn)算結(jié)果:i的值為3,j的值為-2。60練習(xí)a=1,b=2,c=3,d=4下列式子的值分別是多少?a*b/ca*b%c+1++a*b-c--613.9賦值運(yùn)算符和賦值表達(dá)式

1.賦值運(yùn)算符:“=”。2.復(fù)合賦值運(yùn)算:在賦值符號(hào)前加上其它運(yùn)算符號(hào)。

+=,-=,*=,/=,%=,<<=,>>=,&=,^=,|=例如:a+=3;等價(jià)于a=a+3;x*=y+8;等價(jià)于x=x*(y+8);x%=3;等價(jià)于x=x%3;賦值運(yùn)算符僅優(yōu)先于“,”,且具有右結(jié)合性例如:

a=b=b*c等價(jià)于:a=(b=(b*c)

)賦值號(hào)與數(shù)學(xué)中的等號(hào)含義不同例如:數(shù)學(xué)中a=b等價(jià)于b=aC語言中a=b不等價(jià)于b=a623.賦值運(yùn)算中的類型轉(zhuǎn)換

<實(shí)型變量>=<整型表達(dá)式>小數(shù)部分自動(dòng)補(bǔ)0<整型變量>=<實(shí)型表達(dá)式>自動(dòng)舍去實(shí)型表達(dá)式的小數(shù)部分(注意不進(jìn)行四舍五入)

<字符變量>=<整型表達(dá)式><整型變量>=<長整型表達(dá)式>自動(dòng)截取表達(dá)式值的低字節(jié)賦值,舍去高字節(jié)<整型變量>=<字符數(shù)據(jù)><長整型變量>=<整型表達(dá)式>自動(dòng)給高字節(jié)補(bǔ)0或補(bǔ)163數(shù)據(jù)類型、運(yùn)算符與表達(dá)式

運(yùn)算符和表達(dá)式

4.賦值表達(dá)式:由賦值運(yùn)算符將一個(gè)變量和一個(gè)表達(dá)式連接起來的式子。

一般形式為:<變量><賦值運(yùn)算符><表達(dá)式>例如:inta=12;求下列運(yùn)算的結(jié)果a+=a-=a*aa=a-a*a=12-12*12=-132)a+=-132a=a+(-132)=(-132)+(-132)=-264a=-26464練習(xí)inti=1,j=2,k=3,m=4;計(jì)算下列式子的值i+=j+kj*=k=m+565數(shù)據(jù)類型、運(yùn)算符與表達(dá)式

運(yùn)算符和表達(dá)式3.10逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式

逗號(hào)運(yùn)算符又稱為“順序求值運(yùn)算符”,是所有運(yùn)算符中級(jí)別最低的,它將兩個(gè)表達(dá)式連接起來。一般形式為:表達(dá)式1,表達(dá)式2求解過程是:先求解表達(dá)式1,再求解表達(dá)式2,整個(gè)逗號(hào)表達(dá)式的值是表達(dá)式2的值。例如:a=3*5,a*4;a的值為15,表達(dá)式的值為60(a=3*5,a*4),a+5;a的值為15,表達(dá)式的值為20

又如:x=(a=3,6*3);x的值為18x=a=3,6*ax的值為3,表達(dá)式的值為1866第4章最簡單的C程序設(shè)計(jì)

-順序程序設(shè)計(jì)671C語句概述2賦值語句3數(shù)據(jù)的輸入輸出4字符數(shù)據(jù)輸入輸出5格式輸入輸出7程序舉例

684.1C語句概述

用C語言編寫的程序稱為C語言源程序,簡稱C程序。

C語言一般由一個(gè)或若干個(gè)函數(shù)組成,而這些函數(shù)可以保存在一個(gè)或幾個(gè)源程序中,這些文件都以.C作為文件擴(kuò)展名。[例]求園的面積#DEFINEPI=3.1415926main(){floatr,s;r=20;s=r*r*PI;printf(“area=%f”,s);}area=1256.637C程序源程序文件1源程序文件i源程序文件n……預(yù)編譯命令函數(shù)1函數(shù)n…變量申明部分執(zhí)行部分(語句)語句是計(jì)算機(jī)執(zhí)行的最小單位69C語句分類

和其他高級(jí)語言一樣,C語言的語句也是用來向計(jì)算機(jī)發(fā)出操作命令的。一條語句經(jīng)過編譯后生成若干條機(jī)器指令。在C語言中只有可執(zhí)行語句,沒有非執(zhí)行語句。C語句有以下五類:⑴控制語句,完成一定的控制功能;①if()~else~(條件語句)②for()~(循環(huán)語句)③while()~(循環(huán)語句)④do~while()(循環(huán)語句)⑤continue(結(jié)束本次循環(huán)語句)⑥break(中止執(zhí)行switch或循環(huán)語句)⑦Switch(多分支選擇語句)⑧goto(轉(zhuǎn)向語句)⑨return(從函數(shù)返回語句)70⑵函數(shù)調(diào)用語句,由一次函數(shù)調(diào)用加一個(gè)分號(hào)構(gòu)成一個(gè)語句,

如:printf(“ThisisaCstatement.”);⑶表達(dá)式語句,由一個(gè)表達(dá)式構(gòu)成一個(gè)語句,

如:a=3(是表達(dá)式,不是語句)

a=3;(是語句)⑷空語句,只有一個(gè)分號(hào),什么也不做;⑸復(fù)合語句,用{}把一些語句括起來成為復(fù)合語句。相當(dāng)一條語句,哪里有語句,哪里就可用復(fù)合語句。

if(a>b){max=a;min=b;}復(fù)合語句最后一個(gè)語句中最后的分號(hào)不能忽略不寫。714.2賦值語句賦值表達(dá)式后面加上分號(hào),構(gòu)成賦值語句。功能:將數(shù)據(jù)賦給變量。

如:x=3.1;a=‘d’+123+b/d;程序中基本的命令行必須是一個(gè)語句,表達(dá)式不能單獨(dú)構(gòu)成語句。例如:‘d’+123+b/d是一個(gè)表達(dá)式a=‘d’+123+b/d;是一個(gè)賦值語句

特點(diǎn):

①C語言中的賦值號(hào)“=”作為賦值運(yùn)算符;

②作為賦值表達(dá)式可以被包括在其他表達(dá)式之中;

if((a=b)>0)t=a;

③賦值語句可以連接賦值;

a=b=c=2;724.3數(shù)據(jù)輸入輸出的概念

1.所謂輸入輸出是以計(jì)算機(jī)主機(jī)為主體而言的。主機(jī)向外部設(shè)備-“輸出”,外部設(shè)備向主機(jī)-“輸入”。2.C語言本身不提供輸入輸出語句,輸入和輸出操作是由函數(shù)實(shí)現(xiàn)。C語言通過調(diào)用四個(gè)系統(tǒng)函數(shù)來實(shí)現(xiàn)輸入輸出。

printf(),scanf(),getchar(),

putchar()

3.在使用C語言庫函數(shù)時(shí),要用到預(yù)編譯命令“#include”將有關(guān)的“頭文件包括到用戶源文件中。在調(diào)用標(biāo)準(zhǔn)輸入輸出庫函數(shù)時(shí),文件開頭應(yīng)有以下預(yù)編譯命令:#include<stdio.h>

或#include”stdio.h”734.4字符數(shù)據(jù)的輸入輸出1.字符輸出函數(shù)putchar()向終端輸出一個(gè)字符。如:putchar(c);

輸出變量c的值,c可以是字符型變量或整型變量。

[例3.1]#include“stdio.h”main(){chara,b,c;a=‘B’;b=‘O’;c=‘Y’;putchar(a);putchar(b);putchar(c);}BOY74也可以輸出控制字符,如putchar(’\n’)輸出一個(gè)換行符。輸出其它轉(zhuǎn)義字符putchar(‘\101’);輸出‘A’;

putchar(‘\’’);輸出單引號(hào)putchar(‘\015’);使輸出回車,不換行[例3.2]#include<stdio.h>main(){chara,b,c;a='B';b='O';c='Y';putchar(a);putchar('\n');putchar(b);

putchar('\n');putchar(c);putchar('\n');}BOY752.字符輸入函數(shù)getchar()從終端(或系統(tǒng)隱含指定的輸入設(shè)備)輸入一個(gè)字符。一般形式為:getchar();

函數(shù)的值就是從輸入設(shè)備得到的字符[例]#include“stdio.h”main(){charc;c=getchar();putchar(c);}aa↓76[例]從鍵盤上輸入一個(gè)大寫字母,分別用大小寫字母形式輸出,同時(shí)輸出它們的ascii碼。#include“stdio.h”main(){charc1,c2;c1=getchar();printf(“%c,%d\n”,c1,c1);c2=c1+32;printf(“%c,%d\n”,c2,c2);}A↓A,65a,97774.5格式輸入與輸出函數(shù)1.格式輸出函數(shù)printf()按規(guī)定格式向終端輸出若干個(gè)任意類型的數(shù)據(jù)。一般格式:printf(控制格式,輸出列表)被輸出的數(shù)據(jù),可以是常量、變量、表達(dá)式用雙引號(hào)括起的轉(zhuǎn)換控制字符串,它包括兩種信息:格式說明,由%開始。如:%d,%f,%c普通字符,要輸出的字符printf(“%d%d”,a,b)格式說明輸出列表printf(“a=%db=%d”,a,b);

控制格式輸出列表78printf()格式字符格式字符說明d,i以帶符號(hào)的十進(jìn)制形式輸出整數(shù)(正數(shù)不輸出符號(hào))o以8進(jìn)制無符號(hào)形式輸出整數(shù)(不輸出前導(dǎo)符0)x,X以16進(jìn)制無符號(hào)形式輸出整數(shù)(不輸出前導(dǎo)符0x)

u以無符號(hào)10進(jìn)制形式輸出整數(shù)c以字符形式輸出,只輸出一個(gè)字符s輸出字符串f以小數(shù)形式輸出單、雙精度數(shù),隱含輸出6位小數(shù)e,E以標(biāo)準(zhǔn)指數(shù)形式輸出單、雙精度數(shù),數(shù)字部分小數(shù)位數(shù)為6位g,G選用%f或%e格式中輸出寬度較短的一種格式,不輸出無意義的079printf()附加格式說明字符字符說明字母l用于長整型整數(shù),可加在格式符d、o、x、u前面m(代表一個(gè)正整數(shù))數(shù)據(jù)最小寬度.n(代表一個(gè)正整數(shù))對(duì)實(shí)數(shù),表示輸出n位小數(shù);對(duì)字符串,表示截取的字符個(gè)數(shù)-輸出的數(shù)字或字符在域內(nèi)向左靠例如:%ld——輸出十進(jìn)制長整型數(shù)%m.nf——右對(duì)齊,m位域?qū)?,n位小數(shù)或n個(gè)字符

%-m.nf——左對(duì)齊80例1.

main()

{intx1=123;

longx2=123456;

printf("x1=%d,x1=%5d,x1=%-5d,x1=%2d\n",x1,x1,x1,x1);

printf("x2=%ld,x2=%8ld,x2=%5ld\n",x2,x2,x2);

}

程序運(yùn)行結(jié)果如下:x1=123,x1=□□123,x1=123□□,x1=123x2=123456,x2=□□123456,x2=12345681例2.main(){intm=-1;longn=123456789;printf(“m=%d,%o,%x,%u\n",m,m,m,m);printf("n=%d\n",n);printf("n=%ld\n",n);}程序輸出:1122a=11,b=22m=-1,177777,ffff,65535n=-13035n=12345678982例3.main(){floatf=123.456;doubled1,d2;d1=1111111111111.111111111;d2=2222222222222.222222222;printf("%f,%12f,%12.2f,%-12.2f,%.2f\n",f,f,f,f,f);printf("d1+d2=%f\n",d1+d2);}

程序運(yùn)行結(jié)果如下:123.456001,□□123.456001,□□□□□□123.46,123.46□□□□□□,123.46d1+d2=3333333333333.333010 對(duì)于實(shí)數(shù),也可使用格式符%e,以標(biāo)準(zhǔn)指數(shù)形式輸出:尾數(shù)中的整數(shù)部分占一位,小數(shù)點(diǎn)占一位,尾數(shù)中的小數(shù)部分占5位;指數(shù)部分占4位(如e-03),共計(jì)11位。也可使用格式符%g,讓系統(tǒng)根據(jù)數(shù)值的大小,自動(dòng)選擇%f或%e格式、且不輸出無意義的零。83最簡單的C程序設(shè)計(jì)

數(shù)據(jù)輸出在使用printf()函數(shù)時(shí)要注意:有些系統(tǒng)要求格式字符必須用小寫字母;2.格式控制符中,可包含轉(zhuǎn)義字符;3.格式說明必須以“%”開頭;欲輸出字符%則應(yīng)在“格式控制”字符串中用連續(xù)兩個(gè)%表示。5.

不同的系統(tǒng)在實(shí)現(xiàn)格式輸出時(shí),輸出結(jié)果可能會(huì)有一些小的差別。842.格式輸入函數(shù)scanf()把從輸入設(shè)備輸入的數(shù)值按先后順序存入在內(nèi)存的地址中去。一般格式:

scanf(格式控制,地址列表)[例]main(){inta,b,c;scanf(“%d%d%d”,&a,&b,&c);printf(“%d,%d,%d”,a,b,c);}345↓3,4,585最簡單的C程序設(shè)計(jì)

數(shù)據(jù)輸入scanf()格式字符格式字符說明d,i用來輸入十進(jìn)制整數(shù)o用來輸入8進(jìn)制整數(shù)x,X用來輸入16進(jìn)制整數(shù)c用來輸入單個(gè)字符s用來輸入字符串,將字符串送到一個(gè)字符數(shù)組中,在輸入時(shí)以非空白字符開始,以第一個(gè)空白字符結(jié)束。字符串以串結(jié)束標(biāo)志‘\0’作為其最后一個(gè)字符。f用來輸入實(shí)數(shù),可以用小數(shù)形式或指數(shù)形式輸入e,E,g,G與f作用相同,e和f、g可以互相替換86最簡單的C程序設(shè)計(jì)

數(shù)據(jù)輸入scanf()附加格式說明字符字符說明字母l用于輸入長整型數(shù)據(jù)(可用%ld、%lo、%lx),以及double型數(shù)據(jù)(用%lf或%le)字母h用于輸入短整型數(shù)據(jù)(可用%hd、%ho、%hx)域?qū)挘橐徽麛?shù))指定輸入數(shù)據(jù)所占寬度(列數(shù))*表示本輸入項(xiàng)在讀入后不賦給相應(yīng)的變量87在使用scanf()函數(shù)時(shí)要注意:Scanf()函數(shù)中的“格式控制”后面應(yīng)當(dāng)是變量地址;如果在“格式控制”字符串中除了格式說明以外還有其他字符,則在輸入數(shù)據(jù)時(shí)應(yīng)輸入與這些字符相同的字符;在用“%c”格式輸入字符時(shí),空格字符和“轉(zhuǎn)義字符”都作為有效字符輸入;

在輸入數(shù)據(jù)時(shí),遇到以下情況時(shí)該數(shù)據(jù)認(rèn)為結(jié)束:①遇空格,或按回車;②遇指定的寬度結(jié)束,如“%3d”,只取3列;③遇非法輸入88[例]輸入三角形的邊長,求三角形的面積。

area=√s*(s-a)*(s-b)*(s-c)s=(a+b+c)/2#include"stdio.h"#include"math.h"main(){floata,b,c,s,area;scanf("%f,%f,%f",&a,&b,&c);s=1.0/2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c));printf("a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2f\n",a,c,b,s);printf("area=%7.2f\n",area);}3,4,6

↓a=3.00,b=4.00,c=6.00,s=6.50area=5.334.6順序結(jié)構(gòu)程序設(shè)計(jì)舉例89第五章

選擇結(jié)構(gòu)程序設(shè)計(jì)關(guān)系運(yùn)算符和關(guān)系表達(dá)式邏輯運(yùn)算符和邏輯表達(dá)式If語句三種形式條件運(yùn)算符Switch語句905.1關(guān)系運(yùn)算符和關(guān)系表達(dá)式1.關(guān)系運(yùn)算符關(guān)系運(yùn)算實(shí)際上是兩個(gè)量的比較,比較的結(jié)果只有兩種可能:真(1)、假(0)。例如:a>3?當(dāng)a=5時(shí),比較的結(jié)果為真;當(dāng)a=1時(shí),結(jié)果為假。

C語言提供6種關(guān)系運(yùn)算符<(小于)<=(小于或等于)>(大于)>=(大于或等于)==相等!=不等912.關(guān)系表達(dá)式用關(guān)系運(yùn)算符或者等式運(yùn)算符將兩個(gè)表達(dá)式連接起來,叫關(guān)系表達(dá)式。合法的關(guān)系表達(dá)式:

a>b、a+b>b+c、(a=3)>(b=5)、(a==3)>(b==5)、‘a(chǎn)’<‘b’、(a>b)>(b<c)關(guān)系表達(dá)式的值是一個(gè)邏輯值,非真即假.

關(guān)系表達(dá)式5==3的值為假(在計(jì)算機(jī)中記為0);

5>=0的值為真(在計(jì)算機(jī)中記為1)。

例:a=3,b=2,c=1,

則:(1)a>b的值為1(2)(a>b)==c的值為真(即1)(3)b+c<a的值為0(4)d=a>b中d的值為a>b的值,為1。(5)f=a>b>c中f的值為1>c的值,為0。92關(guān)系、等式和邏輯運(yùn)算符關(guān)于優(yōu)先次序<,<=,>,>=為同一級(jí)別,==和!=為同一級(jí)別。在同一級(jí)別中,采取由左至右的結(jié)合方向。

算術(shù)運(yùn)算符關(guān)系運(yùn)算符賦值運(yùn)算符高低[例]c>a+bc>(a+b)a>b!=c(a>b)!=ca==b<ca==(b<c)a=b>ca=(b>c)

等式運(yùn)算符935.2邏輯運(yùn)算符邏輯運(yùn)算:產(chǎn)生真假值的運(yùn)算。邏輯運(yùn)算符:①

&&

邏輯與(AND)②||

邏輯或(OR)③

!邏輯非(NOT)“&&”和“||”是雙目運(yùn)算符。“!”是一元運(yùn)算符.

如:

a&&ba,b同時(shí)為真,則表達(dá)式為真a||ba,b只要有一個(gè)為真,表達(dá)式為真!aa為真,則表達(dá)式為假ab!a!ba&&ba||bTTFFTTTFFTFTFTTFFTFFTTFF94關(guān)系、等式和邏輯運(yùn)算符邏輯運(yùn)算符的優(yōu)先級(jí)!&&||

邏輯運(yùn)算符“&&”和“||”低于關(guān)系運(yùn)算符,“!”高于算術(shù)運(yùn)算符

a>b&&x>y相當(dāng)于:(a>b)&&(x>y)a==b||x==y相當(dāng)于:(a==b)||(x==y)!a||a>b相當(dāng)于:(!a)||(a>b)!算術(shù)關(guān)系邏輯賦值95邏輯表達(dá)式用邏輯運(yùn)算符將關(guān)系表達(dá)式或邏輯量連接起來就是邏輯表達(dá)式。在C語言中,當(dāng)判斷一個(gè)量的真假時(shí),一切非0數(shù)均被當(dāng)成‘真’來處理。

例如:若a=4,則!a的值為0若a=4,b=5,則a&&b的值為1

a||b的值為1

!a||b的值為14&&0||2的值為1區(qū)分下面的表達(dá)式中算術(shù)運(yùn)算量,關(guān)系運(yùn)算量和邏輯運(yùn)算量:

5>3&&2||8<4-!0結(jié)果為1

5>3是兩個(gè)數(shù)值間的比較,結(jié)果為11&&2是兩個(gè)非0值(邏輯量)間的運(yùn)算,結(jié)果為11||8<4-!0,根據(jù)優(yōu)先級(jí),先計(jì)算!0,結(jié)果為196[例]判斷某一年是否是閏年。條件是:能被4整除,但不能被100整除;能被4整除,又能被400整除。

用year表示年份,判斷閏年的邏輯表達(dá)式為:

(year%4==0&&year%100!=0)||(year%400==0)如果給year輸入一個(gè)值,使上面的表達(dá)式的值為1時(shí),則year所代表的年份就是閏年。變換一下角度,如何判斷year不是閏年?

!((year%4==0&&year%100!=0)||(year%400==0))當(dāng)year的值使表達(dá)式的值為1時(shí),則year所代表的就不是閏年。關(guān)系、等式和邏輯運(yùn)算符975.3if語句if語句的三種形式if用來判斷給定的條件的真假,并決定執(zhí)行哪一種操作。1.if<表達(dá)式>語句條件滿足時(shí)執(zhí)行表達(dá)式后面的語句,然后繼續(xù)執(zhí)行以下的語句。條件不滿足時(shí),越過if表達(dá)式后面的語句,往下執(zhí)行。表達(dá)式語句真(非0)假(0)例如:如果輸入的是正數(shù),則打印出來。if(x>0)printf("%d",x);98選擇結(jié)構(gòu)程序設(shè)計(jì)

if語句if語句的三種形式2.if<表達(dá)式>語句1else語句2條件滿足時(shí),執(zhí)行語句1,然后繼續(xù)執(zhí)行if以下的語句。條件不滿足時(shí),執(zhí)行語句2,然后繼續(xù)執(zhí)行if以下的語句。表達(dá)式語句1語句2真假PYNAB例如:輸出兩個(gè)數(shù)中較大的一個(gè)。if(x>y)printf("%d",x);elseprintf("%d",y);99選擇結(jié)構(gòu)程序設(shè)計(jì)

if語句if語句的第三種形式if<表達(dá)式1>語句1;

elseif<表達(dá)式2>語句2;elseif<表達(dá)式3>語句3;elseif<表達(dá)式4>語句4;else語句5

表達(dá)式1表達(dá)式2表達(dá)式3表達(dá)式4語句1語句2語句3語句4語句5假假假假真真真真100選擇結(jié)構(gòu)程序設(shè)計(jì)

if語句例如:商場(chǎng)促銷,購物500元以上,8折;購物300元以上,85折;購物100元以上,9折;購物50元以上,95折;購物50元以下,不打折。根據(jù)消費(fèi)量,計(jì)算優(yōu)惠率。

設(shè):消費(fèi)量為money;折扣為cost;實(shí)際花費(fèi)priceif(money>500)cost=0.2;elseif(money>300)cost=0.15;elseif(money>100)cost=0.1;elseif(money>50)cost=0.05;elsecost=0;price=money-(money*cost);101選擇結(jié)構(gòu)程序設(shè)計(jì)

if語句If語句的嵌套嵌套的定義:在if語句中又包含一個(gè)或多個(gè)if語句。嵌套的一般形式:If()if()語句1else語句2Elseif()語句3else語句4(注意??!If與else的配對(duì)關(guān)系。)102[例]比較兩個(gè)整數(shù)的關(guān)系。#include<stdio.h>main(){intx,y;printf("EnterintegerXandY:");scanf("%d%d",&x,&y);

if(x!=y)

if(x>y)printf("X>Y\n");

elseprintf("X<Y\n");

elseprintf("X=Y\n");}103[例]輸入兩個(gè)數(shù),按數(shù)值大小次序排列輸出.main(){floata,b,t;scanf("%f,%f",&a,&b);if(a>b){t=a;a=b;b=t;}printf("%5.2f,%5.2f",a,b);}

輸入為3.6,-3.2輸出為-3.20,3.60104[例]輸入三個(gè)數(shù),按由小到大次序排列并輸出。main(){flaota,b,c,t;scanf("%f,%f,%f",&a,&b,&c);if(a>b){t=a;a=b;b=t;}if(a>c){t=a;a=c;c=t;}if(b>c){t=b;b=c;c=t;}printf("%5.2f,%5.2f,%5.2f",a,b,c);}輸入為:3,7,1輸出為:1.00,3.00,7.00105選擇結(jié)構(gòu)程序設(shè)計(jì)

程序舉例[例]寫一程序判斷某一年是否是閏年.main(){intyear,leap;printf("輸入年份:");scanf("%d",&year);if((year%4==0&&year%100!=0)||(year%400==0))leap=1;elseleap=0;if(leap)printf("%disleapyear\n",year);elseprintf("%disnotleapyear\n",year);}輸入年份:20042004isleapyear

106選擇結(jié)構(gòu)程序設(shè)計(jì)

if語句條件運(yùn)算符max=(a>b)?a:b;條件表達(dá)式當(dāng)(a>b)為真時(shí),表達(dá)式取a的值當(dāng)(a>b)為假時(shí),表達(dá)式取b的值條件運(yùn)算符是三目運(yùn)算符

表達(dá)式1?表達(dá)式2:表達(dá)式3條件運(yùn)算符的結(jié)合方向?yàn)?從右向左"

例如:a>b?a:c>d?c:d

相當(dāng)于a>b?a:(c>d?c:d)

如果a=1,b=2,c=3,d=4,則條件表達(dá)式的值為4。107選擇結(jié)構(gòu)程序設(shè)計(jì)

if語句main(){intx,y;scarf("%d",&x);if(x==0)y=0;elseif(x>0)y=1;elsey=-1;print("x=%d,y=%d\n",x,y);}[例]

-1(x<0)

y=0(x=0)1(x>0)開始輸出Y結(jié)束輸入XX<0X=0Y=-1Y=0Y=1YNYN輸入為:4輸出為:x=4,y=1108[例]輸入一個(gè)字符,判斷大小寫,如是大寫,則轉(zhuǎn)換成小寫,輸出。main(){charc;scanf("%c",&c);c=(c>='A'&&c<='Z')?(c+32):c;printf("%c",c)}選擇結(jié)構(gòu)程序設(shè)計(jì)

if語句1095.4switch語句Switch語句是多分支選擇語句,也叫開關(guān)語句或者選擇語句。一般形式:

switch(表達(dá)式){case常量表達(dá)式1:語句1;case常量表達(dá)式2:語句2;

…………case常量表達(dá)式n:語句n;default:語句n+1;}功能:1.計(jì)算表達(dá)式的值,與常量表達(dá)式的值比較,等于第i個(gè)值時(shí),順序執(zhí)行語句序列i、i+1、…、n+12.若與所有常量表達(dá)式值都不相等,執(zhí)行語句序列n+1。如:switch(a)

{case5:printf("&");break;case2:printf("#");break;default:printf("$");break;}如:switch(a)

{case5:printf("&");case2:printf("#");default:printf("$");}110選擇結(jié)構(gòu)程序設(shè)計(jì)

switch語句[例]根據(jù)成績等級(jí)打出成績范圍.main(){chargrade;printf("Enteryourgrade\n");scanf("%c",&grade);switch(grade);{case'A':printf("85~100\n");break;case'B':printf("70~84\n");break;case'C':printf("60~69\n");break;case'D':printf("<60\n");break;default:printf("error\n");}}輸入為B輸出為70

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論