版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
C語言基本語法歸納
及實例介紹計算機教學(xué)中心李雪飛1精選ppt提綱C語言概況C程序的結(jié)構(gòu)數(shù)據(jù)類型、運算符與表達(dá)式最簡單的C程序設(shè)計—順序程序設(shè)計選擇結(jié)構(gòu)程序設(shè)計循環(huán)控制數(shù)組函數(shù)指針2精選pptC語言概況C的優(yōu)點1)、高效2)、可移植3)、靈活C的缺點可讀性差,學(xué)習(xí)應(yīng)用較難。3精選pptC語言概況--簡單的C程序[例1.1]
main(){printf("ThisisaCprogram.\n");}該程序的作用:在屏幕上輸出一行信息:ThisisaCprogram.
1、main()表示“主函數(shù)”,每一個C程序都必須有且只有一個主函數(shù)。2、main函數(shù)體由大括號{}括起來。3、語句后面有一個分號。.4、printf()是C語言的輸出函數(shù)。雙引號內(nèi)的字符被原樣輸出。5、“\n”是換行符,即在輸出ThisisaCprogram之后換行。4精選ppt[例1.2]求兩數(shù)之和。
main()
{inta,b,sum;/*定義三個整型變量。(int=integer)。*/a=123;b=456;
/*把常數(shù)123賦給變量a,把常數(shù)456賦給變量b*/sum=a+b;
/*計算a、b之和,并把和值賦變量給sum*/
printf(“Sumis%d\n”,sum);/*輸出sum的值*/}
程序的輸出信息為:
sumis579/**/中間的內(nèi)容表示“注釋”。注釋是程序員對程序某部分的功能和作用所做的說明,是給人看的,對編譯和運行不起作用。%d表示輸出的數(shù)據(jù)類型是十進(jìn)制整數(shù)類型。在輸出時,該位置用對應(yīng)變量sum的值代替。5精選ppt[例1.3]輸入兩個整數(shù),輸出其中的最大值。
intmax(intx,inty)/*求兩數(shù)最大值函數(shù)max*/
{intz;
if(x>y)z=x;elsez=y;
return(z);/*將z的值返回給主函數(shù)main*/
}/*返回值通過函數(shù)名max帶回main函數(shù)調(diào)用處*/
main()/*主函數(shù)*/
{inta,b,c;
scanf(“%d,%d”,&a,&b);/*輸入a,b的值*/
c=max(a,b);/*調(diào)用max函數(shù),將實參a,b的值給形參x,y*/printf(“max=%d”,c);/*輸出最大值*/
}6精選pptC程序的結(jié)構(gòu)1、C程序是由函數(shù)構(gòu)成的。一個C源程序至少包括一個函數(shù)(main函數(shù):它代表程序開始執(zhí)行的起始位置),也可以包括一個main函數(shù)和若干其它函數(shù)。因此,函數(shù)是C程序的基本單位。
7精選pptC程序中有三種類型的函數(shù):1).main():主函數(shù),每一個C程序必須且只有一個main()函數(shù)。2).開發(fā)系統(tǒng)提供的特殊函數(shù),如printf()、scanf()等。TurboC開發(fā)系統(tǒng)提供三百多個函數(shù)。3).程序員自己設(shè)計的函數(shù),如例1.3中的函數(shù)max()。
C的函數(shù)相當(dāng)于其它語言中的子程序。用函數(shù)來實現(xiàn)特定的功能??梢哉fC是函數(shù)式的語言。程序全部工作都是由函數(shù)來完成的。C的這種特性很容易實現(xiàn)模塊化。C程序的結(jié)構(gòu)8精選pptC程序的結(jié)構(gòu)2、一個函數(shù)由兩部分組成:
(1)函數(shù)的說明部分。包括函數(shù)名、函數(shù)類型、函數(shù)屬性、函數(shù)參數(shù)(形參)名、形式參數(shù)類型。如intmax(intx,inty)函數(shù)類型函數(shù)名函數(shù)參數(shù)類型函數(shù)參數(shù)名函數(shù)參數(shù)類型函數(shù)參數(shù)名(2)函數(shù)體。即函數(shù)說明部分下面的大括弧{...}內(nèi)的部分。如果一個函數(shù)內(nèi)有多個大括弧,則最外層的一對{}為函數(shù)體的范圍。
9精選ppt函數(shù)體一般包括:①變量定義。如[例1.3]中main函數(shù)中的“inta,b,c;”
②執(zhí)行部分。由若干個語句組成。
當(dāng)然,在某些情況下也可以沒有變量定義部分(例如[例1.1])。甚至可以既無變量定義也無執(zhí)行部分,如:
dump()
{}
它是一個空函數(shù),什么也不干,但這是合法的。C程序的結(jié)構(gòu)10精選ppt3、一個C程序總是從main函數(shù)開始執(zhí)行的,而不論main函數(shù)在整個程序中的位置如何(main函數(shù)可以放在程序最前頭,也可以放在程序最后,或在一些函數(shù)之前在另一些函數(shù)之后)。
4、C程序書寫格式自由,一行內(nèi)可以寫幾個語句,一個語句可以分寫在多行上。C程序沒有行號,也不象fortran或cobol那樣嚴(yán)格規(guī)定書寫格式(語句必須從某一列開始書寫)。
C程序的結(jié)構(gòu)11精選ppt5、每個語句和數(shù)據(jù)定義的最后必須有一個分號。分號是C語句的必要組成部分。例如:c=a+b;分號不可少。即使是程序中最后一個語句也應(yīng)包含分號(這是和pascal語言不同的)。6、C語言本身沒有輸入輸出語句。輸入和輸出的操作是由庫函數(shù)scanf和printf等函數(shù)來完成的。C對輸入輸出實行“函數(shù)化”。7、可以用/*……*/對C程序中的任何部分作注釋??梢栽黾映绦虻目勺x性。
C程序的結(jié)構(gòu)12精選ppt程序開發(fā)過程……
C源代碼編譯程序目標(biāo)代碼鏈接程序可執(zhí)行代碼庫C源代碼編譯程序目標(biāo)代碼13精選ppt數(shù)據(jù)類型、運算符與表達(dá)式14精選ppt§3.1信息在計算機中的存儲與表示計算機的基本功能是進(jìn)行數(shù)據(jù)的計算和加工處理,程序和數(shù)據(jù)在計算機的存儲是用二進(jìn)制形式表示的。數(shù)與字符是自然信息與計算機二進(jìn)制信息的中轉(zhuǎn)環(huán)節(jié)。數(shù)制:就是用一組固定的數(shù)字和一套統(tǒng)一的規(guī)則來表示數(shù)據(jù)的方法。日常使用的十進(jìn)制(逢十進(jìn)一)機器內(nèi)部的二進(jìn)制(逢二進(jìn)一)其它常用的數(shù)制:八進(jìn)制,十六進(jìn)制15精選ppt不同數(shù)制之間的對應(yīng)表示十進(jìn)制decimal二進(jìn)制binary八進(jìn)制octal十六進(jìn)制hexdecimal00001111210223113341004451015561106671117716精選ppt十進(jìn)制decimal二進(jìn)制binary八進(jìn)制octal十六進(jìn)制hexdecimal810008910019101010111011121100131101141110151111161000010ABCDEF20101112131415161717精選ppt數(shù)制間的轉(zhuǎn)換1.二、八、十六進(jìn)制轉(zhuǎn)換為十進(jìn)制按權(quán)展開法。例:(101.11)2=1×22+0×21+1×20+1×2-1+1×2-2
=(5.75)10(127.4)8=1×82+2×81+7×80+4×2-1
=(87.5)1018精選ppt數(shù)制間的轉(zhuǎn)換2.十進(jìn)制轉(zhuǎn)換為二、八、十六進(jìn)制整數(shù)部分:除R取余法(先余為低,后余為高)小數(shù)部分:乘R取整法(先整為高,后整為低)轉(zhuǎn)換精度問題例:(4.6875)10=(?)2結(jié)果:(100.1011)2(87.5)10=(?)8結(jié)果:(127.47)819精選ppt數(shù)制間的轉(zhuǎn)換3.二進(jìn)制與八、十六進(jìn)制之間的轉(zhuǎn)換八、十六進(jìn)制轉(zhuǎn)換為二進(jìn)制一分為三、一分為四 例: (23.54)8=(010011.101100)2
=(10011.1011)2
(13.B)16=(00010011.1011)2
=(10011.1011)2二進(jìn)制轉(zhuǎn)換為八、十六進(jìn)制合三為一、合四為一20精選ppt§3.2C的數(shù)據(jù)類型數(shù)據(jù)結(jié)構(gòu)指的是數(shù)據(jù)的組織形式。不同的計算機語言所允許定義和使用的數(shù)據(jù)結(jié)構(gòu)是不同的。處理同一類問題,如果數(shù)據(jù)結(jié)構(gòu)不同,算法也會不同。所以,我們應(yīng)當(dāng)綜合考慮算法和數(shù)據(jù)結(jié)構(gòu),選擇最佳的數(shù)據(jù)結(jié)構(gòu)和算法。數(shù)據(jù)結(jié)構(gòu)+算法=程序?qū)Τ绦虍?dāng)中所用到的所有數(shù)據(jù)都必須指定其數(shù)據(jù)類型。C語言的數(shù)據(jù)結(jié)構(gòu)是以數(shù)據(jù)類型形式出現(xiàn)的。21精選pptC的數(shù)據(jù)類型如下:22精選ppt§3.2常量與變量3.2.1常量和符號常量3.2.2變量23精選ppt3.2.1常量和符號常量在程序運行過程中,其值不能被改變的量稱為常量。常量分為:(1)整型常量;如12,0,-3等;(2)實型常量;如4.6,-1.23等;(3)字符常量;如‘a(chǎn)’,‘d’等;(將在后面的小節(jié)中詳細(xì)講解)常量一般從其字面形式即可判別,這種常量稱為字面常量或直接常量。也可以用一個標(biāo)識符代表一個常量。如例3.124精選ppt例3.1符號常量的使用。#definePRICE30main(){intnum,total;num=10;total=num*PRICE;printf(“total=%d”,total);}程序中用#define命令行定義PRICE代表常量30,此后凡在本文件中出現(xiàn)的PRICE都代表30,可以和常量一樣進(jìn)行運算。程序運行結(jié)果為:total=30025精選ppt符號常量用一個標(biāo)識符代表一個常量的,稱為符號常量,即標(biāo)識符形式的常量。注意:符號常量不同于變量。符號常量的值在其作用域(例3.1中即為main()函數(shù))內(nèi)不能被改變,也不能被再次賦值。如:在主函數(shù)main中再次用“PRICE=40”語句對PRICE賦值是錯誤的。為了方便區(qū)分符號常量與變量,習(xí)慣上符號常量名大寫,變量名小寫。26精選ppt使用符號常量的好處(1)含義清楚。定義符號常量名時應(yīng)考慮“見名知意”,在一個規(guī)范的程序中不提倡使用很多的常數(shù),如:sum=15*30*23.5*43.在檢查程序時搞不清各個常數(shù)究竟代表什么。應(yīng)盡量使用“見名知意”的變量名和符號常量。(2)在需要改變一個常量時能夠做到“一改全改”。例如,在程序中多處用到某物品的價格,如果價格用常數(shù)表示,則在價格進(jìn)行調(diào)整時,需要在程序中作多處修改;若使用符號常量PRICE代表價格,則只需在定義該符號常量處作一次修改即可。如:#definePRICE=35
27精選ppt3.2.2變量其值可以改變的量稱為變量。一個變量應(yīng)該有一個名字,在內(nèi)存中占據(jù)一定的存儲單元。在該存儲單元中存放該變量的值。注意:變量名與變量值的區(qū)別。
3a變量名(一個符號地址,在對程序編譯時系統(tǒng)分配給它一個內(nèi)存地址)變量值(在程序中對變量取值,實際上是通過變量名找到相應(yīng)內(nèi)存地址,從其存儲單元中讀取數(shù)據(jù))存儲單元28精選ppt變量的使用是程序設(shè)計的中心環(huán)節(jié)之一,應(yīng)掌握:(1)變量的定義:某一時刻值是確定的,不同時刻可能取不同的值,其改變是不連續(xù)的。(2)變量的兩個要素
變量名:它是一個標(biāo)識符,代表一定的內(nèi)存存儲單元,存儲單元有一個地址。C語言以“&變量名”表示變量的地址。
變量值:它存放在相應(yīng)的存儲單元中,C語言在使用變量名時,實際上是在使用存儲單元中存放的變量的值。29精選ppt變量的命名規(guī)則變量的命名符合一般標(biāo)識符(名字)的命名規(guī)則。(1)“字母數(shù)字串”;以字母開頭,后邊跟以字母或者數(shù)字,下劃線等同于字母。(漢字看作字母,但編程時盡量避免使用漢字,因為漢字的兼容性不好)(2)建議長度不超過8個字符(可移植性要求);(3)區(qū)分大小寫(一般使用小寫字母);(4)盡量做到“見名知意”,避免使用代數(shù)符號(如a,b);(5)不能有空格,不能有小數(shù)點。30精選ppt變量的強制定義在C語言中,要求對所有用到的變量作強制定義,就是“先定義,后使用”。這樣做的目的是:(1)凡是沒有被事先定義的,不作為變量名,這就能保證程序中變量名使用的正確;(2)每一個變量被指定為一確定類型,在編譯時就能為其分配相應(yīng)的存儲單元;(3)制定每一變量屬于一個類型,這就便于在編譯時,據(jù)此檢查該變量所進(jìn)行的運算是否合法。31精選ppt§3.3整型數(shù)據(jù)3.3.1整型常量的表示方法3.3.2整型變量3.3.3整型常量的類型
32精選ppt3.3.1整型常量的表示方法整形常量即整常數(shù)。C整常數(shù)可用以下三種形式表示:(1)十進(jìn)制整數(shù)。如123、-456、0(2)八進(jìn)制整數(shù)。以0開頭的數(shù)是八進(jìn)制數(shù)。如0123表示八進(jìn)制數(shù)123,即(123)8,等于十進(jìn)制數(shù)83(1×82+2×81+3×80=83)。-011表示八進(jìn)制數(shù)-11,即十進(jìn)制數(shù)-9。(3)十六進(jìn)制整數(shù)。以0x開頭的數(shù)是16進(jìn)制數(shù)。如0x123,代表16進(jìn)制數(shù)123。
33精選ppt3.3.2整型變量1.整型數(shù)據(jù)在內(nèi)存中的存放形式2.整型變量的分類3.整型變量的定義4.整型數(shù)據(jù)的溢出34精選ppt整型變量的分類(1)基本型,以int表示。(2)短整型,以shortint表示,或以short表示。(3)長整型,以longint表示,或以long表示。(4)無符號型,以存儲單元中全部二進(jìn)位(bit)存放數(shù)本身,而不必空出最高位作為符號位。無符號型中又分為無符號整型、無符號短整型和無符號長整型,分別以unsignedint,unsignedshort,unsignedlong表示。如果整量在內(nèi)存中占2個字節(jié)(16位),則int型變量數(shù)的范圍為-32768~32767。而unsignedint型變量數(shù)的范圍為0~65535.35精選ppt各類數(shù)據(jù)所占內(nèi)存字節(jié)數(shù)C標(biāo)準(zhǔn)沒有具體規(guī)定以上各類數(shù)據(jù)所占內(nèi)存的字節(jié)數(shù),只要求long型數(shù)據(jù)長度不短于int型,short型不長于int型。具體如何實現(xiàn),有各計算機系統(tǒng)自行決定。通常的做法是:把long定為32位,把short定為16位,而int可以是16位,也可以是32位。在微機上用long型可以得到大范圍的整數(shù),但同時會降低運算速度,因此不要隨便使用long型。36精選ppt整型變量的定義前面已提到,C規(guī)定在程序中所有用到的變量都必須在程序中指定其類型,即“定義”。這和BASIC,FORTRAN不同,而和PASCAL相類似。例如:inta,b;(指定變量a,b為整型)
unsignedshortc,d;(指定變量c,d為無符號短整型)
longe,f(指定變量e,f為長整型)對變量的定義,一般是放在一個函數(shù)的開頭部分的聲明部分,變量的作用域是整個函數(shù);也可以放在函數(shù)中的某一分程序內(nèi),但變量的作用域只限于該分程序內(nèi)(這將在第8章介紹)。37精選ppt例3.2整型變量的定義與使用main(){inta,b,c,d;/*指定a,b,c,d為整型變量*/unsignedu;/*指定u為無符號整型變量*/a=12;b=-24;u=10;c=a+u;d=b+u;printf(“a+u=%d,b+u=%d\n”,c,d);}運行結(jié)果為:a+u=22,b+u=-14可以看到:不同種類的整型數(shù)據(jù)可以進(jìn)行算術(shù)運算。在本例中是int型數(shù)據(jù)與unsignedint型數(shù)據(jù)進(jìn)行加減運算。38精選ppt§3.4實型數(shù)據(jù)3.4.1實型常量的表示方法3.4.2實型變量3.4.3實型常量的類型39精選ppt3.4.1實型常量的表示方法實數(shù)在C語句中又稱為浮點數(shù)。實數(shù)有兩種表示形式:(1)十進(jìn)制數(shù)形式。它由數(shù)字和小數(shù)點組成(注意必須有小數(shù)點)。0.123,.123,123.0,123.,0.0都是十進(jìn)制數(shù)形式。(2)指數(shù)形式。如123e3或123E3都代表123×103
。但注意字母e(或E)之前必須有數(shù)字,且e后面指數(shù)必須為整數(shù),如e3,2.1e3.5,.e3,e等都不是合法的指數(shù)形式。40精選ppt3.4.2實型變量1.實型數(shù)據(jù)在內(nèi)存中的存放形式2.實型變量的分類3.實型數(shù)據(jù)的舍入誤差41精選ppt3.4.2實型變量1.實型數(shù)據(jù)在內(nèi)存中的存放形式2.實型變量的分類3.實型數(shù)據(jù)的舍入誤差42精選ppt§3.5字符型數(shù)據(jù)3.5.1字符常量3.5.2字符變量3.5.3字符數(shù)據(jù)在內(nèi)存中的存儲形式3.5.4字符串常量43精選ppt3.5.1字符常量C的字符常量是用單引號括起來的一個字符。如'a','D','?'等都是字符常量。注意,'a'和'A'是不同的字符的常量。除了以上形式的字符常量外,C還允許用一種特殊的字符常,就是以一個“\”開關(guān)的字符序列。例如,前面已經(jīng)遇到過的,在printf函數(shù)中的‘\n’,它代表一個“換行”符,這種非顯示字符難以用一般形式的字符表示,故規(guī)定用這種特殊形式表示。這類特殊的字符稱為“轉(zhuǎn)義字符”。44精選ppt轉(zhuǎn)義字符a.控制字符:\t水平制表(跳到下一個tab位置);\r回車;\n換行;
b.疑難字符:\’單引號字符\\反斜杠字符
c.指定ASCII碼對應(yīng)的字符:
格式1:\xhh:1到2位十六進(jìn)制數(shù)ASCII碼對應(yīng)的字符
如:\x42表示字符“B”;
格式2:\ddd:
1到3位八進(jìn)制數(shù)ASCII碼對應(yīng)的字符
如:\102同樣表示字符“B”;45精選ppt3.5.2字符變量字符型變量用來存放字符常量,注意只能放一個字符,不要以為在一個字符變量中可以放一個字符串(包括若干字符)。字符變量的字義如下:
charc1,c2;
它表示c1和c2為字符型變量,各可以放一個字符。因此可以用下面語句對c1,c2賦值:
c1='a';c2='b'一般以一個字節(jié)來存放一個字符,或者說一個字符變量在內(nèi)存中占一個字節(jié)。
46精選ppt3.5.3字符數(shù)據(jù)在內(nèi)存中的存儲形式將一個字符常量放到一個字符變量中,并不是把該字符本身放到內(nèi)存單元中,而是將該字符的ASCII碼放到存儲單元中,而且以二進(jìn)制形式存放。例如:執(zhí)行賦值語句c1=‘a(chǎn)’;c2=‘b’;字符‘a(chǎn)’的ASCII碼為97,‘b’為98,在內(nèi)存中變量c1,c2的值如圖所示:既然在內(nèi)存中,字符數(shù)據(jù)以ASCII碼存放,它的存儲形式就與整數(shù)的存儲類似,這使得字符型數(shù)據(jù)和整型數(shù)據(jù)之間可以通用。9798c1c20110000101100010c1c247精選ppt字符型數(shù)據(jù)和整型數(shù)據(jù)的通用性一個字符數(shù)據(jù)既可以以字符形式輸出,也可以以整數(shù)形式輸出。兩種通用形式的輸出;以字符形式輸出時,需要先將存儲單元中的ASCII碼轉(zhuǎn)換成相應(yīng)字符,然后輸出;以整數(shù)形式輸出時,直接將ASCII碼作為整數(shù)輸出。對字符數(shù)據(jù)進(jìn)行算術(shù)運算;相當(dāng)于對它們的ASCII碼進(jìn)行整數(shù)的算術(shù)運算。相互賦值;字符數(shù)據(jù)與整型數(shù)據(jù)可以相互賦值。48精選ppt兩種通用形式的輸出main(){charc1,c2;c1=97;c2=98;(等價于c1=‘a(chǎn)’;c2=‘b’;)printf(“%c%c\n”,c1,c2);printf(“%d%d\n”,c1,c2);}
將97和98兩個整數(shù)直接存放到c1和c2的內(nèi)存單元中。
先將字符‘a(chǎn)’和‘b’化成ASCII碼97和98,然后放到內(nèi)存單元中。兩者的作用和結(jié)果是完全相同的程序輸出如下:ab979849精選ppt對字符數(shù)據(jù)進(jìn)行算術(shù)運算例3.7大小寫字母的轉(zhuǎn)換。main(){charc1,c2;c1=‘a(chǎn)’;c2=‘b’;c1=c1-32;c2=c2-32;printf(“%c%c”,c1,c2);}運行結(jié)果為:AB‘a(chǎn)’的ASCII碼為97,‘A’為65;‘b’為98,‘B’為66。從ASCII代碼表中可以發(fā)現(xiàn):每一個小寫字母比它相應(yīng)的大寫字母的ASCII碼大32。C語言允許字符數(shù)據(jù)與整數(shù)直接進(jìn)行算術(shù)運算。50精選ppt相互賦值字符數(shù)據(jù)與整型數(shù)據(jù)可以相互賦值。main(){inti;charc;i=‘a(chǎn)’;c=97;printf(“%c,%d\n”,c,c);printf(“%c,%d\n”,i,i);}運行結(jié)果:a,97a,9751精選ppt3.5.4字符串常量前面已提到,字符常量是由一對單引號括起來的單個字符。C語言除了允許使用字符常量外,還允許使用字符串常量。字符串常量是一對雙引號括起來的字符序列。如:“Howdoyoudo.”,“CHINA”,“$123.45”都是字符串常量??梢暂敵鲆粋€字符串,如printf("Howdoyoudo.");52精選ppt不要將字符常量與字符串?;煜??!產(chǎn)’是字符常量,“a”是字符串常量,二者不同。假設(shè)C被指定為字符變量:
charc;c=‘a(chǎn)’;是正確的;而c=“a”;是錯誤的。
c=“CHINA”,也是錯誤的。不能把一個字符串賦給一個字符變量。
究竟為什么c=‘a(chǎn)’就是正確的,而c=“a”就錯了呢?53精選ppt§3.6變量賦初值程序中常需要對一些變量預(yù)先設(shè)置初值。C語言允許在定義變量的同時使變量初始化。inta=3;/*指定a為整型變量,初值為3*/floatf=3.56;/*指定f為實型變量,初值為3.56*/charc=‘a(chǎn)’;/*指定c為字符變量,初值為‘a(chǎn)’*/也可以使被定義的變量的一部分賦初值。inta,b,c=5;/*指定a,b,c為整型變量,只對c初始化*/如果對幾個變量賦予初值3,應(yīng)寫為:inta=3,b=3,c=3;
不能寫成:inta=b=c=3
54精選ppt初始化不是在編譯階段完成的(只有在第8章中介紹的靜態(tài)存儲變量和外部變量的初始化時在編譯階段完成的)。如:inta=3;相當(dāng)于:inta;/*指定a為整型變量*/a=3;/*賦值語句,將3賦給a*/如:inta,b,c=5;相當(dāng)于:inta,b,c;/*指定a,b,c為整型變量*/c=5;/*賦值語句,將5賦給c*/
55精選ppt§3.7算術(shù)運算符和算術(shù)表達(dá)式3.7.1C運算符簡介3.7.2算術(shù)運算符和算術(shù)表達(dá)式1.基本的算術(shù)運算符2.算術(shù)表達(dá)式和運算符的優(yōu)先級與結(jié)合性3.強制類型轉(zhuǎn)換運算符4.自增、自減運算符5.有關(guān)表達(dá)式使用中的問題說明56精選ppt3.7.1C運算符簡介C語言是表達(dá)式語言,除了控制語句和輸入輸出外幾乎都是表達(dá)式。如:賦值符“=”作為賦值運算符,而方括號“[]”作為下標(biāo)運算符等。C的運算符有13類之多。
57精選pptC的運算符1.算術(shù)運算符(+,-,*,/,%,即加,減,乘,除,求余)2.關(guān)系運算符(>,<,==,>=,<=,!=)3.邏輯運算符(!,&&,||)4.位運算符(<<,>>,~,|,^,&)5.賦值運算符(=及其擴展賦值運算符)6.條件運算符(?,:)7.逗號運算符(,)8.指針運算符(*和&)9.求字節(jié)數(shù)運算符(sizeof)10.強制類型轉(zhuǎn)換運算符((類型))11.分量運算符(.->)12.下標(biāo)運算符([])13.其他(如函數(shù)調(diào)用運算符())
運算符詳見本書附錄III58精選ppt基本的算術(shù)運算符四則運算:+(加法運算符,或正值運算符。如3+5、+3)-(減法運算符,或負(fù)值運算符。如5-2、-2)*(乘法運算符。如3*5)/(除法運算符。如5/3)%(模運算符,或求余運算符,%兩則應(yīng)均為整型數(shù)據(jù))說明:/運算如果除數(shù)或被除數(shù)中有一個為負(fù)數(shù),則舍入的方向是不固定的。如-5/3有的機器上結(jié)果為-1,有的為-2。但多數(shù)機器采取“向零取整”的方法,即5/3=1,-5/3=-1,取整后向零靠攏。59精選ppt算術(shù)表達(dá)式和運算符的優(yōu)先級與結(jié)合性用算術(shù)運算符和括號將運算對象(操作數(shù))連接起來,符合C語法規(guī)則的式子,稱C算術(shù)表達(dá)式。運算對象包括常量、變量、函數(shù)。合法的C算術(shù)表達(dá)式如:a*b/c-1.5+‘a(chǎn)’優(yōu)先級:若運算對象兩側(cè)運算符的優(yōu)先級不同,則先乘除后加減。結(jié)合性:若一個運算對象兩側(cè)的運算符的優(yōu)先級相同,則滿足結(jié)合性規(guī)則,自左向右,左結(jié)合性(運算對象先與左面的運算符結(jié)合)。
60精選ppt自增、自減運算符有前置和后置兩種形式:
前置形式:++變量名,--變量名
后置形式:變量名++,變量名--功能:對變量的值進(jìn)行自加1(自減1)的運算。例:語句++a;相當(dāng)于執(zhí)行a=a+1;
前置形式運算規(guī)則:先對表達(dá)式中含有前置自增(減)運算符的變量進(jìn)行自加(減)1,然后用這些變量的新值參與表達(dá)式運算。后置形式運算規(guī)則:先用變量原值參與表達(dá)式運算,然后對含有后置自加(減)運算符的變量進(jìn)行自加(減)1運算。
61精選pptmain()main(){intj,i=3;{intj,i=3;j=++i;(相當(dāng)于i=i+1;j=i)j=i++;(相當(dāng)于j=i;i=i+1)printf(“%d,%d”,i,j);}printf(“%d,%d”,i,j);}運行結(jié)果:4,4運行結(jié)果:4,3(1)自增運算符(++)和自減運算符(--),只能用于變量,不能用于常量或表達(dá)式;(2)++和--的結(jié)合方向為“自右至左”。
考慮:若i的初值為3,那么print(“%d”,-i++)的結(jié)果應(yīng)該為多少呢?62精選ppt§3.8賦值運算符和賦值表達(dá)式1.賦值運算符2.類型轉(zhuǎn)換3.復(fù)合的賦值運算符4.賦值表達(dá)式63精選ppt1.賦值運算符賦值符號“=”就是賦值運算符,作用是將一個數(shù)據(jù)賦給一個變量。如“a=3”的作用是執(zhí)行一次賦值操作(或稱賦值運算),把常量3賦給變量a。也可以將一個表達(dá)式的值賦給一個變量。如“a=3+5-8%5”,相當(dāng)于把結(jié)果值5賦給變量a(“a=5”)。64精選ppt2.類型轉(zhuǎn)換如果賦值運算符兩側(cè)的類型不一致,但都是數(shù)值型或字符型時,在賦值時要進(jìn)行類型轉(zhuǎn)換。65精選ppt3.復(fù)合的賦值運算符在賦值符“=”之前加上其他運算符,可以構(gòu)成復(fù)合的運算符。如:a+=3等價于a=a+3,x%=3等價于x=x%3。注意:賦值符“=”右邊看作一項。凡是二元運算符,都可以與賦值符一起組成復(fù)合賦值符。C語言規(guī)定了10種復(fù)合賦值運算符:+=,-=,*=,/=,%=,<<=,>>=,&=,^=,|=規(guī)則:(1)“=”后邊先加括號;(2)“=”前邊復(fù)制到“=”后邊;66精選ppt4.賦值表達(dá)式由賦值運算符將一個變量和一個表達(dá)式連接起來的式子稱為“賦值表達(dá)式”。一般形式為:<變量>
<賦值運算符><表達(dá)式>賦值表達(dá)式求解過程:將賦值運算符右側(cè)“表達(dá)式”的值賦給左側(cè)的變量。表達(dá)式的值就是被賦值的變量的值。上述一般形式中的“表達(dá)式”還可以是一個賦值表達(dá)式。如:a=(b=5)。所以,C語言允許連續(xù)賦值。67精選pptinta,b,c;
a=b=c=0;
連續(xù)使用等號時,從右向左順序賦值:a=(b=(c=0));賦值表達(dá)式也可以包含復(fù)合的賦值運算符。如:a+=a-=a*a也是一個賦值表達(dá)式。若a的初值為12,則:先進(jìn)行“a-=a*a”,相當(dāng)于a=a-a*a,a的值為12-144=-132;再進(jìn)行“a+=-132”的運算,相當(dāng)于“a=a+(-132)”,a的值為-132-132=-264。68精選ppt§3.9逗號運算符和逗號表達(dá)式逗號運算符(又稱順序求值運算符):,逗號表達(dá)式:用逗號運算符把兩個表達(dá)式連接起來的表達(dá)式。一般形式為:表達(dá)式1,表達(dá)式2,…..,表達(dá)式n逗號表達(dá)式的值:表達(dá)式n的值.如:逗號表達(dá)式“3+5,6+8”的值為14。如:“a=3*5,a*4”,由于賦值運算符的優(yōu)先級高于逗號運算符(逗號運算符在所有運算符中級別最低),因此應(yīng)先求解a=3*5,再求解a*4,得到逗號表達(dá)式的值60。69精選ppt一個逗號表達(dá)式又可以與另一個表達(dá)式組成一個新的逗號表達(dá)式,如:(a=3*5,a*4),a+5,先計算出a的值為15,由于a*4的操作并沒有改變a的值,所以a+5的值為20。因此,逗號表達(dá)式最終的值為20。在許多情況下,使用逗號表達(dá)式的目的只是想分別得到各個表達(dá)式的值。逗號表達(dá)式最常用于循環(huán)(for)語句。注意:并不是任何地方出現(xiàn)的逗號都作為逗號運算符。例如函數(shù)參數(shù)也是用逗號來間隔的,如:printf(“%d,%d,%d”,a,b,c);70精選ppt課堂作業(yè):2.1指出下面哪些是合法的變量名:①123②abc③a+b④a_b⑤pad⑥?12⑦Li_Li⑧*P2.2‘a(chǎn)’在內(nèi)存中占
個字節(jié),“a”在在內(nèi)存中占
個字節(jié).2.3寫出下面程序的運行結(jié)果:
main(){charch;ch=‘B’;/*B的ascii碼的值為66*/printf(“%c,%d\n”,ch,ch)
②④⑤⑦12B6671精選ppt2.4寫出下面程序的運行結(jié)果:main(){inta=10,b,c,d;intb,c;a+=6;b=(c=20,6,a+2);printf("a=%d,b=%d,c=%d\n",a,b,c);}運行結(jié)果:a=16,b=18,c=2072精選ppt2.5寫出下面程序的運行結(jié)果:main(){inta=4;intb,c;c=a+(b=2);a+=a-=a*a;printf("%d,%d,%d\n",a,b,c);}2.6寫出下面程序的運行結(jié)果:
main(){inta,b,c=9;a=3,b=4; c%=a+b; printf(“%d\n”,c) }
運行結(jié)果:-24,2,6運行結(jié)果:273精選ppt2.7寫出下面程序的運行結(jié)果:
main(){ inti,j,m,n; i=8;j=10; m=++i; n=j++; printf("%d,%d,%d,%d\n",i,j,m,n);}運行結(jié)果:9,11,9,1074精選ppt2.8寫出下面程序的運行結(jié)果:
main(){ floatx=5.4; inti; i=(int)x; printf(”x=%f,i=%d\n",x,i);}運行結(jié)果:x=5.400000,I=575精選ppt第四章最簡單的C程序設(shè)計
————順序程序設(shè)計76精選ppt§4.1C語句概述§4.2賦值語句§4.3數(shù)據(jù)輸入輸出的概念及實現(xiàn)§4.4字符數(shù)據(jù)輸入輸出函數(shù)§4.5格式輸入與輸出§4.6順序結(jié)構(gòu)程序設(shè)計舉例77精選ppt§4.1C語句概述與其他高級語言一樣,C語言的語句用來向計算機系統(tǒng)發(fā)出操作指令。一個語句經(jīng)編譯后產(chǎn)生若干條機器指令。一個實際的程序應(yīng)當(dāng)包含若干條語句。C語句都是用來完成一定的操作任務(wù)的;聲明部分的內(nèi)容不應(yīng)稱為語句。如:inta;不是一個C語句,它不產(chǎn)生機器操作,而只是對變量的定義。78精選pptC程序結(jié)構(gòu)C程序源程序文件1源程序文件2源程序文件n預(yù)處理命令全局變量聲明函數(shù)1函數(shù)n函數(shù)首部函數(shù)體局部變量聲明執(zhí)行語句…..…79精選pptC語句分類C語句可以分為以下5類:1.控制語句;2.函數(shù)調(diào)用語句;3.表達(dá)式語句;4.空語句;5.復(fù)合語句;80精選ppt1.控制語句完成一定的控制功能。C只有9種控制語句:
if()~else~(條件語句)
for()~(循環(huán)語句)
while()~(循環(huán)語句)
do~while()(循環(huán)語句)
continue(結(jié)束本次循環(huán)語句)
break(中止switch或循環(huán)語句)
switch(多分支選擇語句)
goto(轉(zhuǎn)向語句)
return(從函數(shù)返回語句)
()表示條件,~表示內(nèi)嵌的語句。81精選ppt2.函數(shù)調(diào)用語句由一次函數(shù)調(diào)用加一個分號構(gòu)成一個語句。如:printf(“ThisisaCstatement.”);一次函數(shù)調(diào)用分號82精選ppt3.表達(dá)式語句由一個表達(dá)式構(gòu)成一個語句;最典型的是,由賦值表達(dá)式構(gòu)成一個賦值語句(表達(dá)式后面加分號即構(gòu)成語句)。如:a=3是一個賦值表達(dá)式,而a=3;是一個賦值語句。一個語句必須在最后出現(xiàn)分號。任何表達(dá)式都可以加上分號而成為語句。如:x+y;是語句,但沒有意義(沒有將相加之和賦給另一個變量)。表達(dá)式能構(gòu)成語句是C語言的一個重要特色。C中大多數(shù)語句是表達(dá)式語句(包括函數(shù)調(diào)用語句),所以有人稱C語言為“表達(dá)式語言”。83精選ppt4.空語句
空語句:僅包含一個分號的語句,它什么都不做。有時用來做被轉(zhuǎn)向點,或是循環(huán)語句中的循環(huán)體(循環(huán)體是空語句,表示循環(huán)體什么也不做。)
如:;84精選ppt5.復(fù)合語句由大括號{}括起來的語句序列,稱為復(fù)合語句,或是分程序。
如:{z=x+y;t=z/100;printf("%f",t); }注意:復(fù)合語句中最后一個語句最后的分號不能忽略不寫。C語言允許一行寫幾個語句,也可以一個語句拆開寫在幾行上。85精選ppt§4.2賦值語句C語言的賦值語句具有其他高級語言賦值語句的一切特點和功能,但也有不同之處:1、C語言中的賦值號“=”是一個運算符,而其它大多數(shù)語言中賦值號“=”不是運算符。 2、關(guān)于賦值表達(dá)式和賦值語句的概念。其他大多數(shù)高級語言中沒有“賦值表達(dá)式”這一概念。作為賦值表達(dá)式可以包括在其他表達(dá)式之中,如:
if((a=b)>0)t=a;(先賦值,將b的值賦給a;再判斷a是否>0,若>0,則執(zhí)行t=a;)if((a=b;)>0)t=a;(不合法:if條件不能包含賦值語句)86精選ppt§4.3數(shù)據(jù)輸入輸出的概念及實現(xiàn)所謂輸入輸出是以計算機主機為主體而言的。從計算機向外部輸出設(shè)備(顯屏,打印機)輸出數(shù)據(jù)稱為“輸出”;從輸入設(shè)備(鍵盤,磁盤)向計算機輸入數(shù)據(jù)稱為“輸入”。C語言本身不提供輸入輸出語句,輸入和輸出操作是由函數(shù)來實現(xiàn)的。在C的標(biāo)準(zhǔn)函數(shù)庫中提供了一些輸入輸出函數(shù),例如,printf函數(shù)和scanf函數(shù)。在使用它們時,千萬不要簡單地認(rèn)為它們是C語言的“輸入輸出語句”。printf和scanf不是C語言的關(guān)鍵字。完全可以不用printf和scanf這兩個名字,而另外編兩個函數(shù),另用其它函數(shù)名。
87精選pptC提供的函數(shù)以庫的形式存放在系統(tǒng)中,它們不是C語言文本中的組成部分。因此各函數(shù)的功能和名,在各種不同的計算機系統(tǒng)所不同。有些通用的函數(shù)(如printf和scanf等),各種計算機系統(tǒng)都提供,成為各種計算機系統(tǒng)的標(biāo)準(zhǔn)函數(shù)(標(biāo)準(zhǔn)輸入輸出庫的一部分)。在程序編譯連接時,用戶程序與標(biāo)準(zhǔn)文件相連,所以在程序中可以直接使用printf和scanf函數(shù)。注意:在源程序中有printf函數(shù),在編譯時并不把它翻譯成目標(biāo)指令,而是在執(zhí)行階段中調(diào)用已被連接的函數(shù)庫中的printf函數(shù)。88精選pptC語言函數(shù)庫中有一批“標(biāo)準(zhǔn)輸入輸出函數(shù)”,它是以標(biāo)準(zhǔn)的輸入輸出設(shè)備(一般為終端設(shè)備)為輸入輸出對象的。其中有:
putchar(輸出字符)getchar(輸入字符)
printf(格式輸出)scanf(格式輸入)
puts(輸出字符串)gets(輸入字符串)89精選ppt在使用標(biāo)準(zhǔn)I/O庫函數(shù)時,要用預(yù)編譯命令“#include”將“stdio.h”文件包括到用戶源文件中。即
#include“stdio.h”(或#include<stdio.h>)。stdio.h是standartinput&output的縮寫,它包括了標(biāo)準(zhǔn)I/O庫有關(guān)的變量定義和宏定義(有關(guān)預(yù)編譯命令見第九章)。在需要使用標(biāo)準(zhǔn)I/O庫中的函數(shù)時,應(yīng)在程序前使用上述預(yù)編譯命令,但在用printf和scanf函數(shù)時,則可以不要(只有printf和scanf例外)。預(yù)編譯命令“#include”都是放在程序的開頭,因此這類文件被稱為“頭文件”。90精選ppt§4.4字符數(shù)據(jù)輸入輸出函數(shù)4.4.1putchar函數(shù)(字符輸出函數(shù))4.4.2getchar函數(shù)(字符輸入函數(shù))91精選ppt4.4.1putchar函數(shù)putchar函數(shù)的作用是向終端輸出一個字符。例如:putchar(c)輸出字符串變量C的值。C可以是字符型變量或整型變量。例4.1:#include"stdio.h"
main()
{chara,b,c;
a="B";b="O";c="Y";
putchar(a);putchar(b);putchar(c);
}
運行結(jié)果:BOY92精選ppt也可以輸出控制字符,如putchar(‘\n’)輸出一個換行符。
如果將例4.1程序最后一行改為:
putchar(a);putchar('\n');putchar(b);putchar('\n');putchar(c);putchar('\n');
則輸出結(jié)果為:
B
O
Y93精選ppt也可以輸出其它轉(zhuǎn)義字符,如:
putchar(‘\101’)(輸出字符‘A’)
putchar(‘\’‘)(輸出單引號字符’)
putchar(‘015’)(輸出回車,不換行,使輸出的位置移到本行開頭)
94精選ppt4.4.2getchar函數(shù)此函數(shù)的作用是從終端(或系統(tǒng)隱含指定的輸入設(shè)備)輸入一個字符。getchar函數(shù)沒有參數(shù),其一般形式為:getchar()函數(shù)的值就是從輸入設(shè)備得到的字符。例4.2:#include"stdio.h"
main()
{charc;
c=getchar();
putchar(c);
}
在運行時,如果從鍵盤輸入字‘a(chǎn)’
a<enter>(輸入a后,按“回車”鍵,字符才送到內(nèi)存)
a(輸出變量c的值'a')95精選ppt請注意,getchar()只能接收一個字符。getchar函數(shù)得到的字符可以賦給一個字符變量或整型變量,也可以不賦給任何變量,作為表達(dá)式的一部分。例如,例4.2第4、5行可以用下面一行代替:putchar(getchar());也可以用printf函數(shù):printf("%c",getchar());在函數(shù)中要用getchar函數(shù),應(yīng)該在函數(shù)的前面(或本文件開頭)用#include"stdio.h”。因為在使用標(biāo)準(zhǔn)I/O庫中的函數(shù)時需要用到“stdio.h”文件中包含的一些信息。
96精選ppt§4.5格式輸入與輸出4.5.1printf函數(shù)(格式輸出函數(shù))4.5.2scanf函數(shù)(格式輸入函數(shù))97精選ppt4.5.1printf函數(shù)1.printf函數(shù)的一般格式2.格式字符98精選pptprintf函數(shù)的一般格式printf函數(shù)的作用是:向終端(或系統(tǒng)隱含指定的輸出設(shè)備)輸出若干個任意類型的數(shù)據(jù)。注意:putchar只能輸出字符,而且只能是一個字符;而printf可以輸出多個數(shù)據(jù),且為任意類型。99精選ppt一般格式:printf(格式控制,輸出列表)如:printf(“%d,%c\n”,i,c)格式說明:將數(shù)據(jù)轉(zhuǎn)換為指定格式輸出。普通字符:即需要原樣輸出的字符(逗號,空格和換行符)輸出列表:需要輸出的數(shù)據(jù),可以是表達(dá)式。100精選ppt例:printf(“a=%d_b=%d”,a,b);雙引號中的字符除了“%d”和“%d”以外,還有非格式說明的普通字符“a=”、“b=”及空格“_”,它們按原樣輸出。若a=3,b=4,則輸出為:a=3_b=4101精選ppt格式字符對不同類型的數(shù)據(jù)用不同的格式字符。常用的有以下幾種格式字符:
(1)
d格式符(6)s格式符
(2)
o格式符(7)f格式符
(3)x格式符(8)e格式符
(4)u格式符(9)g格式符
(5)c格式符
102精選pptd格式符:輸出十進(jìn)制整數(shù)%d:按整型數(shù)據(jù)的實際長度輸出;%md:輸出m位(指定的輸出字段寬度);(數(shù)據(jù)位數(shù)小于m位時左端補空格,大于m位時按實際長度輸出);%ld,%mld:l表示輸出“長整型”數(shù)據(jù),也可以指定輸出字段寬度;一個int型數(shù)據(jù)可以用%d或%ld格式輸出;注:%后面的m(位數(shù)控制)對于其它格式符也適用。103精選ppt例、(□表示空格)inti=123;longj=123456;printf("%d,%5d,%ld,%8ld
",i,i,j,j);
輸出:123,□□123,123456,□□123456104精選pptc格式符:輸出一個字符一個整數(shù),只要它的值在0~255之間,也可以用字符形式輸出。在輸出前,系統(tǒng)會將該整數(shù)作為ASCII碼轉(zhuǎn)換成相應(yīng)的字符;反之,字符數(shù)據(jù)也可以用整數(shù)形式輸出。例:4.4main(){charc='a';inti=97;printf("%c,%d\n",c,c);printf("%c,%d\n",i,i);}
可以指定輸出字段寬度:printf(“%3c”,c);則輸出:__a
輸出:a,97a,97105精選ppts格式符:輸出一個字符串(1)%s:原樣輸出字符串;如:printf(“%s”,“CHINA”)輸出:CHINA(2)%ms:輸出字符串占m列;>m全輸出<m左補空格;(3)%-ms:輸出字符串占m列;<m字符串左靠右補空格;(4)%m.ns:輸出字符串占m列,但只取串左端n個字符。這n個字符輸出在m列的右側(cè),左補空格。(5)%-m.ns:輸出字符串占m列,但只取串左端n個字符。這n個字符輸出在m列的左側(cè),右補空格。若n>m,則m自動取n值,即保證n個字符正常輸出。106精選ppt例4.5main(){ printf("%3s,%7.2s,%.4s,%-5.3s\n","CHINA","CHINA","CHINA","CHINA");}輸出:CHINA,□□□□□CH,CHIN,CHI□□m自動取n值,即等價于:%4.4s107精選pptf格式符:以小數(shù)形式輸出實數(shù)(單/雙精度)(1)%f:由系統(tǒng)自動指定字段寬度,使整數(shù)部分全部輸出,并輸出6位小數(shù)。(2)%m.nf:指定輸出的數(shù)據(jù)共占m列,其中由n位小數(shù)。若數(shù)值長度<m,則左端補空格。(3)%-m.nf:同%m.nf,只是輸出的數(shù)值向左端靠,右端補空格。
注意:并非全部數(shù)字都是有效數(shù)字。單精度實數(shù)的有效位數(shù)一般為7位,而雙精度實數(shù)的有效位數(shù)一般為16位(小數(shù)6位)。108精選ppt例4.6main(){floatx,y;x=111111.111;y=222222.222;printf(“%f”,x+y);}運行結(jié)果為:333333.328125顯然,只有前7位數(shù)字是有效數(shù)字。109精選ppt例4.7main(){doublex,y;x=1111111111111.111111111;y=2222222222222.222222222;printf(“%f”,x+y);}運行結(jié)果為:3333333333333.333010可以看到,最后3位小數(shù)(超過16位)是無意義的。110精選ppt例:4.8main(){floatf=123.456; printf("%f□□%10f□□%10.2f□□%.2f□□
%-10.2f\n",f,f,f,f,f);}輸出:123.455994□□
123.455994□□
□□□□123.46□□123.46□□
123.46□□□□按原樣輸出的字符由于格式定義而輸出的字符111精選ppt4.5.2scanf函數(shù)getchar函數(shù)只能用來輸入一個字符,用scanf函數(shù)可以用來輸入任何類型的多個數(shù)據(jù)。在前面已初步接觸到了scanf函數(shù),在本節(jié)中再作詳細(xì)介紹。1.一般形式2.格式說明3.使用scanf函數(shù)時應(yīng)注意的問題112精選ppt一般形式scanf(格式控制,地址表列)“格式控制”含義同printf函數(shù)?!暗刂繁砹小笔怯扇舾蓚€地址組成的表列,可能是變量的地址,或字符串的首地址。113精選ppt例4.9:用scanf函數(shù)輸入數(shù)據(jù)main()
{inta,b,c;
scanf("%d%d%d",&a,&b,&c);
printf("%d,%d,%d\n",a,b,c);
}運行時按以下方式輸入a,b,c的值:
345<enter>(輸入a,b,c的值)
3,4,5(輸出a,b,c的值)&a,&b,&c中的“&”是“地址運算符”,&a指a在內(nèi)存中的地址。上面scanf函數(shù)的作用是:按照a,b,c在內(nèi)存的地址將a,b,c的值存進(jìn)去。
114精選ppt見下圖,a,b,c的地址是在定義a,b,c之后就確定的(在編譯階段分配的)。
354acb115精選ppt"%d%d%d"表示按十進(jìn)制整數(shù)形式輸入數(shù)據(jù)。輸入數(shù)據(jù)時,在兩個數(shù)據(jù)之間以一個或多個空格間隔,也可以用回車鍵、跳格鍵tab。下面輸入各法:①345<enter>
②3<enter>
45<enter>
③3(按tab鍵)4<enter>
5<enter>用“%d%d%d”格式輸入時,不能用逗號作為兩個數(shù)據(jù)間的分隔符,如下面輸入不合法:3,4,5<enter>
116精選ppt格式說明和printf函數(shù)中的格式說明相似,以%開始,以一個字符結(jié)束,中間可以插入附加的字符。
格式字符說明d,i用來輸入有符號的十進(jìn)制整數(shù)。
u用來輸入無符號的十進(jìn)制整數(shù)。o用來輸入無符號的八進(jìn)制整數(shù)。x,Xc用來輸入單個字符。s輸入字符串,將字符串送到一個字符數(shù)組中,輸入以非空白符開始,以第一個空白符結(jié)束,以'\0'作為其最后一個字符。
f用來輸入實數(shù),可以用小數(shù)形式或指數(shù)形式輸入。
e,E,g,G與f作用相同,e與f,g可以互相替換(大小寫作用相同)。
用來輸入無符號的十六進(jìn)制整數(shù)(大小寫作用相同)。117精選pptscanf的附加格式說明字符字符lh域?qū)?說明用于輸入長整型數(shù)據(jù)(可用%ld,%lo,%lx,%lu),以及double型數(shù)據(jù)(用%lf或%le)。
用于輸入短整型數(shù)據(jù)(可用%hd,%ho,%hx)。
指定輸入數(shù)據(jù)所占寬度(列數(shù)),域?qū)拺?yīng)為正整數(shù)表示本輸入頂在讀入后不賦給相應(yīng)的變量。
118精選ppt§4.6順序結(jié)構(gòu)程序設(shè)計舉例[例4.10]輸入三角形的三邊長,計算其面積。119精選ppt算法:問題求解的方法與步驟.
算法的表示:1)自然語言:Step1:輸入a,b,cStep2:計算s=(a+b+c)/2Step3:計算面積areaStep4:輸出面積area2)傳統(tǒng)流程圖計算面積area輸出面積area輸入a、b、c計算s結(jié)束開始120精選ppt3)結(jié)構(gòu)化流程圖(N-S圖)4)偽代碼(1)(用英語描述)begin(算法開始)inputa,b,cs(a+b+c)/2areas(s-a)(s-b)(s-c)outputareaend5)計算機語言計算面積area輸出面積area輸入a、b、c計算s121精選ppt1.設(shè)計算法、設(shè)三邊長a、b、c,面積area的算法是:2.畫出流程圖。求平方根函數(shù)sqrt()在math.h中定義。計算面積area輸出面積area輸入a、b、c計算s結(jié)束開始122精選ppt#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\n",a,b,c);printf("area=%7.2f\n",area);}運行情況如下:3,4,6↙a=□□□3.00,b=□□□4.00,c=□□□6.00area=□□□5.33123精選ppt例4.11輸入一個大寫字母,改為小寫字母輸出。#include<stdio.h>main(){charc1,c2;c1=getchar();printf(“%c,%d\n”,c1,c1);c2=c1+32;printf(“%c,%d\n”,c2,c2);}運行情況如下:A<enter>A,65a,97124精選ppt第5章選擇結(jié)構(gòu)程序設(shè)計125精選pptC語言中選擇結(jié)構(gòu)是用if語句實現(xiàn)的。if語句最常用的形式是:if(關(guān)系表達(dá)式)語句1else語句2例如:if(x>0)y=1;elsey=-1;其中,x>0是一個關(guān)系表達(dá)式,“>”是一個關(guān)系運算符。126精選ppt§5.1關(guān)系運算符和關(guān)系表達(dá)式§5.2邏輯運算§5.3if語句§5.4switch語句§5.5程序舉例127精選ppt§5.1關(guān)系運算符和關(guān)系表達(dá)式關(guān)系運算是邏輯運算的一種。所謂“關(guān)系運算”實際上是“比較運算”。將兩個值進(jìn)行比較,判斷比較的結(jié)果是否符合給定的條件。例如,a>3是關(guān)系表達(dá)式,大于號“>”是一個關(guān)系運算符,如果a的值為5,則滿足給定的的“a>3”條件,因此關(guān)系表達(dá)式a>3的值為“真”(即“條件滿足”);如果a的值為2,不滿足“a>3”條件,則稱關(guān)系表達(dá)式的值為“假”。128精選ppt5.1.1關(guān)系運算符及其優(yōu)先次序5.1.2關(guān)系表達(dá)式129精選ppt5.1.1關(guān)系運算符及其優(yōu)先次序C語言有六種關(guān)系運算符:(1)<小于(2)<=小于或等于優(yōu)先級相同(高)
(3)>大于(4)>=大于或等于(5)==(等于)
優(yōu)先級相同(低)
(6)!=不等于算術(shù)運算符關(guān)系運算符賦值運算符130精選ppt5.1.2關(guān)系表達(dá)式用關(guān)系運算符將兩個表達(dá)式(算術(shù)表達(dá)式或關(guān)系表達(dá)式、邏輯表達(dá)式、賦值表達(dá)式、字符表達(dá)式)連接起來的式子,稱為關(guān)系表達(dá)式。如:a>b,a+b>b+c,(a=3)>(b=5),‘a(chǎn)’<‘b’等都是關(guān)系表達(dá)式。關(guān)系表達(dá)式的值是一個邏輯值,即“真”或“假”。C語言中用1代表“真”,用0代表“假”。如:a=3,b=2,c=3,則關(guān)系表達(dá)式“a>b”的值為“真”,表達(dá)式的值為1;“b+c<a”的值為“假”,表達(dá)式的值為0。131精選ppt例、a=3,b=2,c=1;1).c>a+b等效于c>(a+b)表達(dá)式的值為02).a>b==c等效于(a>b)==c表達(dá)式的值為13).a!=b<c等效于a!=(b<c)表達(dá)式的值為14).a=b>c等效于a=(b>c)(賦值表達(dá)式)表達(dá)式的值為1例:a=3,b=2,c=1;d=a<bd的值為0(賦值表達(dá)式)f=a>b>cf的值為0(賦值表達(dá)式)132精選ppt§5.2邏輯運算5.2.1邏輯運算符及其優(yōu)先次序5.2.2邏輯表達(dá)式133精選ppt5.2.1邏輯運算符及其優(yōu)先次序C語言提供三種邏輯運算符:&&“邏輯與”雙目(元)運算符(相當(dāng)于AND)
||“邏輯或”雙目(元)運算符(相當(dāng)于OR)
!“邏輯非”一目(元)運算符(相當(dāng)于NOT)如:(a>b)&&(x>y);(a>b)||(x>y);!(a>b);邏輯運算舉例如下:
a&&b若a,b為真,則a&&b為真。
a||b若a,b之一為真,則a||b為真。
!a若a為真,則!a為假。
134精選ppt在一個邏輯表達(dá)式中如果包含多個邏輯運算符,如
!a&&b||x>y&&c,按以下的優(yōu)先次序:(1)!(非)→&&(與)→||(或),即“!”為三者中最高的;(2)邏輯運算符中的“&&”和“||”低于關(guān)系運算符,“!”高于算術(shù)運算符。如:
(a>b)&&(x>y)可寫成:a>b&&x>y
(a==b)||(x==y)可寫成:a==b||x==y
(!a)||(a>b)可寫成:!a||a>b!(邏輯非)算術(shù)運算符關(guān)系運算符&&和||賦值運算符135精選ppt5.2.2邏輯表達(dá)式用邏輯運算符將關(guān)系表達(dá)式或邏輯量連接起來的式子就是邏輯表達(dá)式。邏輯表達(dá)式的值是一個邏輯量“真”或“假”。C語言編譯系統(tǒng)在給出邏輯運算結(jié)果時,以1代表“真”,以0代表“假”。但在判斷一個量是否為“真”時,以0代表“假”,以非0代表“真”,即將一個非零的數(shù)值認(rèn)作為“真”。①若a=4,!a的值為0。②若a=4,b=5,a&&b的值為1。③a,b值同前,a||b的值為1。④a,b值同前,!a||b的值為1。⑤4&&0||2的值為1。
136精選ppt如果在一個表達(dá)式中不同位置上出現(xiàn)數(shù)值,應(yīng)區(qū)分哪些是作為數(shù)值運算或關(guān)系運算的對象,哪些作為邏輯運算的對象。如:5>3&&8<4-!0(結(jié)果為0)邏輯運算符兩側(cè)的運算對象不但可以是0和1,或者是0和非0的整數(shù),也可以是任何類型的數(shù)據(jù),可以是字符型、實型或指針型等。系統(tǒng)最終以0和非0來判斷它們屬于“真”或“假”。例如:‘c’&&‘d’的值為1,因為‘c’和‘d’的ASCII值都不為0,按“真”處理。137精選ppt在邏輯表達(dá)式的求解中,并不是所有的邏輯運算符都被執(zhí)行,只是在必須執(zhí)行下一個邏輯運算符才能求出表達(dá)式的解時,才執(zhí)行該運算符。如:(1)a&&b&&c(2)a||b||c
例:(m=a>b)&&(n=c>d),當(dāng)a=1,b=2,c=3,d=4,m和n的原值為1時,由于“a>b”的值為0,m=0,而“n=c>d”不被執(zhí)行,因此n的值不是0而仍保持原值1。138精選ppt用邏輯表達(dá)式來表示復(fù)雜的條件例如,判別某一年year是否閏年。閏年的條件是符合下面二者之一:①能被4整除,但不能被100整除。②能被400整除。邏輯表達(dá)式表示為:
(year%4==0&&year%100!=0)||year%400==0上述表達(dá)式值為真(1),則year為閏年;否則為非閏年。
還可以加一個“!”來判別非閏年:
!((year%4==0&&year%100!=0)||year%400==0)
若表達(dá)式值為真(1),year為非閏年。
139精選ppt§5.3if語句5.3.1if語句的三種形式5.3.2if語句的嵌套5.3.3條件運算符140精選ppt5.3.1if語句的三種形式if語句:判別條件是否滿足,來決定程序的流程(執(zhí)行兩路操作之一)。(1)if(表達(dá)式)語句例如:if(x>y)printf("%d",x);表達(dá)式語句假(0)真(非0)141精選ppt(2)if(表達(dá)式)語句1else
語句2例如:if(x>y)printf("%d",x);elseprintf("%d",y);表達(dá)式語句1語句2假真142精選ppt(3)
if
(表達(dá)式1)
語句1
elseif(表達(dá)式2)語句2
elseif(表達(dá)式3)語句3
elseif(表達(dá)式m)語句m
else語句n
例如:
if(num>500)cost=0.15;
elseif(num>300)cost=0.10;
elseif(num>100)cost=0.075;
els
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 房屋戶外景觀停車場施工合同
- 圖書館木門安裝合同
- 設(shè)備租賃合同:科研儀器租賃模板
- 汕頭賽車場租賃合同
- 太陽能工程監(jiān)理協(xié)議
- 會計師事務(wù)所續(xù)租合同
- 員工離職后知識產(chǎn)權(quán)協(xié)議書
- 石油企業(yè)安全員聘用合同模板
- 藝術(shù)園區(qū)共建租賃合同
- 能源供應(yīng)合同備案規(guī)則
- 第四單元 美洲樂聲-《紅河谷》課件 2023-2024學(xué)年人音版初中音樂七年級下冊
- 學(xué)習(xí)任務(wù)群視域下小學(xué)語文整本書閱讀教學(xué)策略
- 砌磚工程實訓(xùn)總結(jié)報告
- MOOC 神經(jīng)病學(xué)-西安交通大學(xué) 中國大學(xué)慕課答案
- 石油化學(xué)智慧樹知到期末考試答案2024年
- (正式版)SHT 3227-2024 石油化工裝置固定水噴霧和水(泡沫)噴淋滅火系統(tǒng)技術(shù)標(biāo)準(zhǔn)
- 醫(yī)養(yǎng)結(jié)合機構(gòu)服務(wù)質(zhì)量評價標(biāo)準(zhǔn)(二級醫(yī)養(yǎng)結(jié)合機構(gòu))
- 單側(cè)嵌頓性腹股溝直疝個案護理
- 大學(xué)生國家安全教育智慧樹知到期末考試答案2024年
- 認(rèn)真復(fù)習(xí)努力備考班會課件
- 中醫(yī)培訓(xùn)課件:《艾灸技術(shù)》
評論
0/150
提交評論