版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
C語(yǔ)言基本語(yǔ)法歸納
及實(shí)例介紹計(jì)算機(jī)教學(xué)中心李雪飛提綱C語(yǔ)言概況C程序的結(jié)構(gòu)數(shù)據(jù)類型、運(yùn)算符與表達(dá)式最簡(jiǎn)單的C程序設(shè)計(jì)—順序程序設(shè)計(jì)選擇結(jié)構(gòu)程序設(shè)計(jì)循環(huán)控制數(shù)組函數(shù)指針C語(yǔ)言概況C的優(yōu)點(diǎn)1)、高效2)、可移植3)、靈活C的缺點(diǎn)可讀性差,學(xué)習(xí)應(yīng)用較難。C語(yǔ)言概況--簡(jiǎn)單的C程序[例1.1]
main(){printf("ThisisaCprogram.\n");}該程序的作用:在屏幕上輸出一行信息:ThisisaCprogram.
1、main()表示“主函數(shù)”,每一個(gè)C程序都必須有且只有一個(gè)主函數(shù)。2、main函數(shù)體由大括號(hào){}括起來(lái)。3、語(yǔ)句后面有一個(gè)分號(hào)。.4、printf()是C語(yǔ)言的輸出函數(shù)。雙引號(hào)內(nèi)的字符被原樣輸出。5、“\n”是換行符,即在輸出ThisisaCprogram之后換行。[例1.2]求兩數(shù)之和。
main()
{inta,b,sum;/*定義三個(gè)整型變量。(int=integer)。*/a=123;b=456;
/*把常數(shù)123賦給變量a,把常數(shù)456賦給變量b*/sum=a+b;
/*計(jì)算a、b之和,并把和值賦變量給sum*/
printf(“Sumis%d\n”,sum);/*輸出sum的值*/}
程序的輸出信息為:
sumis579/**/中間的內(nèi)容表示“注釋”。注釋是程序員對(duì)程序某部分的功能和作用所做的說(shuō)明,是給人看的,對(duì)編譯和運(yùn)行不起作用。%d表示輸出的數(shù)據(jù)類型是十進(jìn)制整數(shù)類型。在輸出時(shí),該位置用對(duì)應(yīng)變量sum的值代替。[例1.3]輸入兩個(gè)整數(shù),輸出其中的最大值。
intmax(intx,inty)/*求兩數(shù)最大值函數(shù)max*/
{intz;
if(x>y)z=x;elsez=y;
return(z);/*將z的值返回給主函數(shù)main*/
}/*返回值通過(guò)函數(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ù),將實(shí)參a,b的值給形參x,y*/printf(“max=%d”,c);/*輸出最大值*/
}C程序的結(jié)構(gòu)1、C程序是由函數(shù)構(gòu)成的。一個(gè)C源程序至少包括一個(gè)函數(shù)(main函數(shù):它代表程序開(kāi)始執(zhí)行的起始位置),也可以包括一個(gè)main函數(shù)和若干其它函數(shù)。因此,函數(shù)是C程序的基本單位。
C程序中有三種類型的函數(shù):1).main():主函數(shù),每一個(gè)C程序必須且只有一個(gè)main()函數(shù)。2).開(kāi)發(fā)系統(tǒng)提供的特殊函數(shù),如printf()、scanf()等。TurboC開(kāi)發(fā)系統(tǒng)提供三百多個(gè)函數(shù)。3).程序員自己設(shè)計(jì)的函數(shù),如例1.3中的函數(shù)max()。
C的函數(shù)相當(dāng)于其它語(yǔ)言中的子程序。用函數(shù)來(lái)實(shí)現(xiàn)特定的功能。可以說(shuō)C是函數(shù)式的語(yǔ)言。程序全部工作都是由函數(shù)來(lái)完成的。C的這種特性很容易實(shí)現(xiàn)模塊化。C程序的結(jié)構(gòu)C程序的結(jié)構(gòu)2、一個(gè)函數(shù)由兩部分組成:
(1)函數(shù)的說(shuō)明部分。包括函數(shù)名、函數(shù)類型、函數(shù)屬性、函數(shù)參數(shù)(形參)名、形式參數(shù)類型。如intmax(intx,inty)函數(shù)類型函數(shù)名函數(shù)參數(shù)類型函數(shù)參數(shù)名函數(shù)參數(shù)類型函數(shù)參數(shù)名(2)函數(shù)體。即函數(shù)說(shuō)明部分下面的大括弧{...}內(nèi)的部分。如果一個(gè)函數(shù)內(nèi)有多個(gè)大括弧,則最外層的一對(duì){}為函數(shù)體的范圍。
函數(shù)體一般包括:①變量定義。如[例1.3]中main函數(shù)中的“inta,b,c;”
②執(zhí)行部分。由若干個(gè)語(yǔ)句組成。
當(dāng)然,在某些情況下也可以沒(méi)有變量定義部分(例如[例1.1])。甚至可以既無(wú)變量定義也無(wú)執(zhí)行部分,如:
dump()
{}
它是一個(gè)空函數(shù),什么也不干,但這是合法的。C程序的結(jié)構(gòu)3、一個(gè)C程序總是從main函數(shù)開(kāi)始執(zhí)行的,而不論main函數(shù)在整個(gè)程序中的位置如何(main函數(shù)可以放在程序最前頭,也可以放在程序最后,或在一些函數(shù)之前在另一些函數(shù)之后)。
4、C程序書(shū)寫格式自由,一行內(nèi)可以寫幾個(gè)語(yǔ)句,一個(gè)語(yǔ)句可以分寫在多行上。C程序沒(méi)有行號(hào),也不象fortran或cobol那樣嚴(yán)格規(guī)定書(shū)寫格式(語(yǔ)句必須從某一列開(kāi)始書(shū)寫)。
C程序的結(jié)構(gòu)5、每個(gè)語(yǔ)句和數(shù)據(jù)定義的最后必須有一個(gè)分號(hào)。分號(hào)是C語(yǔ)句的必要組成部分。例如:c=a+b;分號(hào)不可少。即使是程序中最后一個(gè)語(yǔ)句也應(yīng)包含分號(hào)(這是和pascal語(yǔ)言不同的)。6、C語(yǔ)言本身沒(méi)有輸入輸出語(yǔ)句。輸入和輸出的操作是由庫(kù)函數(shù)scanf和printf等函數(shù)來(lái)完成的。C對(duì)輸入輸出實(shí)行“函數(shù)化”。7、可以用/*……*/對(duì)C程序中的任何部分作注釋??梢栽黾映绦虻目勺x性。
C程序的結(jié)構(gòu)程序開(kāi)發(fā)過(guò)程……
C源代碼編譯程序目標(biāo)代碼鏈接程序可執(zhí)行代碼庫(kù)C源代碼編譯程序目標(biāo)代碼數(shù)據(jù)類型、運(yùn)算符與表達(dá)式§3.1信息在計(jì)算機(jī)中的存儲(chǔ)與表示計(jì)算機(jī)的基本功能是進(jìn)行數(shù)據(jù)的計(jì)算和加工處理,程序和數(shù)據(jù)在計(jì)算機(jī)的存儲(chǔ)是用二進(jìn)制形式表示的。數(shù)與字符是自然信息與計(jì)算機(jī)二進(jìn)制信息的中轉(zhuǎn)環(huán)節(jié)。數(shù)制:就是用一組固定的數(shù)字和一套統(tǒng)一的規(guī)則來(lái)表示數(shù)據(jù)的方法。日常使用的十進(jìn)制(逢十進(jìn)一)機(jī)器內(nèi)部的二進(jìn)制(逢二進(jìn)一)其它常用的數(shù)制:八進(jìn)制,十六進(jìn)制不同數(shù)制之間的對(duì)應(yīng)表示十進(jìn)制decimal二進(jìn)制binary八進(jìn)制octal十六進(jìn)制hexdecimal000011112102231133410044510155611066711177十進(jìn)制decimal二進(jìn)制binary八進(jìn)制octal十六進(jìn)制hexdecimal810008910019101010111011121100131101141110151111161000010ABCDEF201011121314151617數(shù)制間的轉(zhuǎn)換1.二、八、十六進(jìn)制轉(zhuǎn)換為十進(jìn)制按權(quán)展開(kāi)法。例:(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)10數(shù)制間的轉(zhuǎn)換2.十進(jìn)制轉(zhuǎn)換為二、八、十六進(jìn)制整數(shù)部分:除R取余法(先余為低,后余為高)小數(shù)部分:乘R取整法(先整為高,后整為低)轉(zhuǎn)換精度問(wèn)題例:(4.6875)10=(?)2結(jié)果:(100.1011)2(87.5)10=(?)8結(jié)果:(127.47)8數(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)制合三為一、合四為一§3.2C的數(shù)據(jù)類型數(shù)據(jù)結(jié)構(gòu)指的是數(shù)據(jù)的組織形式。不同的計(jì)算機(jī)語(yǔ)言所允許定義和使用的數(shù)據(jù)結(jié)構(gòu)是不同的。處理同一類問(wèn)題,如果數(shù)據(jù)結(jié)構(gòu)不同,算法也會(huì)不同。所以,我們應(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語(yǔ)言的數(shù)據(jù)結(jié)構(gòu)是以數(shù)據(jù)類型形式出現(xiàn)的。C的數(shù)據(jù)類型如下:§3.2常量與變量3.2.1常量和符號(hào)常量3.2.2變量3.2.1常量和符號(hào)常量在程序運(yùn)行過(guò)程中,其值不能被改變的量稱為常量。常量分為:(1)整型常量;如12,0,-3等;(2)實(shí)型常量;如4.6,-1.23等;(3)字符常量;如‘a(chǎn)’,‘d’等;(將在后面的小節(jié)中詳細(xì)講解)常量一般從其字面形式即可判別,這種常量稱為字面常量或直接常量。也可以用一個(gè)標(biāo)識(shí)符代表一個(gè)常量。如例3.1例3.1符號(hào)常量的使用。#definePRICE30main(){intnum,total;num=10;total=num*PRICE;printf(“total=%d”,total);}程序中用#define命令行定義PRICE代表常量30,此后凡在本文件中出現(xiàn)的PRICE都代表30,可以和常量一樣進(jìn)行運(yùn)算。程序運(yùn)行結(jié)果為:total=300符號(hào)常量用一個(gè)標(biāo)識(shí)符代表一個(gè)常量的,稱為符號(hào)常量,即標(biāo)識(shí)符形式的常量。注意:符號(hào)常量不同于變量。符號(hào)常量的值在其作用域(例3.1中即為main()函數(shù))內(nèi)不能被改變,也不能被再次賦值。如:在主函數(shù)main中再次用“PRICE=40”語(yǔ)句對(duì)PRICE賦值是錯(cuò)誤的。為了方便區(qū)分符號(hào)常量與變量,習(xí)慣上符號(hào)常量名大寫,變量名小寫。使用符號(hào)常量的好處(1)含義清楚。定義符號(hào)常量名時(shí)應(yīng)考慮“見(jiàn)名知意”,在一個(gè)規(guī)范的程序中不提倡使用很多的常數(shù),如:sum=15*30*23.5*43.在檢查程序時(shí)搞不清各個(gè)常數(shù)究竟代表什么。應(yīng)盡量使用“見(jiàn)名知意”的變量名和符號(hào)常量。(2)在需要改變一個(gè)常量時(shí)能夠做到“一改全改”。例如,在程序中多處用到某物品的價(jià)格,如果價(jià)格用常數(shù)表示,則在價(jià)格進(jìn)行調(diào)整時(shí),需要在程序中作多處修改;若使用符號(hào)常量PRICE代表價(jià)格,則只需在定義該符號(hào)常量處作一次修改即可。如:#definePRICE=35
3.2.2變量其值可以改變的量稱為變量。一個(gè)變量應(yīng)該有一個(gè)名字,在內(nèi)存中占據(jù)一定的存儲(chǔ)單元。在該存儲(chǔ)單元中存放該變量的值。注意:變量名與變量值的區(qū)別。
3a變量名(一個(gè)符號(hào)地址,在對(duì)程序編譯時(shí)系統(tǒng)分配給它一個(gè)內(nèi)存地址)變量值(在程序中對(duì)變量取值,實(shí)際上是通過(guò)變量名找到相應(yīng)內(nèi)存地址,從其存儲(chǔ)單元中讀取數(shù)據(jù))存儲(chǔ)單元變量的使用是程序設(shè)計(jì)的中心環(huán)節(jié)之一,應(yīng)掌握:(1)變量的定義:某一時(shí)刻值是確定的,不同時(shí)刻可能取不同的值,其改變是不連續(xù)的。(2)變量的兩個(gè)要素
變量名:它是一個(gè)標(biāo)識(shí)符,代表一定的內(nèi)存存儲(chǔ)單元,存儲(chǔ)單元有一個(gè)地址。C語(yǔ)言以“&變量名”表示變量的地址。
變量值:它存放在相應(yīng)的存儲(chǔ)單元中,C語(yǔ)言在使用變量名時(shí),實(shí)際上是在使用存儲(chǔ)單元中存放的變量的值。變量的命名規(guī)則變量的命名符合一般標(biāo)識(shí)符(名字)的命名規(guī)則。(1)“字母數(shù)字串”;以字母開(kāi)頭,后邊跟以字母或者數(shù)字,下劃線等同于字母。(漢字看作字母,但編程時(shí)盡量避免使用漢字,因?yàn)闈h字的兼容性不好)(2)建議長(zhǎng)度不超過(guò)8個(gè)字符(可移植性要求);(3)區(qū)分大小寫(一般使用小寫字母);(4)盡量做到“見(jiàn)名知意”,避免使用代數(shù)符號(hào)(如a,b);(5)不能有空格,不能有小數(shù)點(diǎn)。變量的強(qiáng)制定義在C語(yǔ)言中,要求對(duì)所有用到的變量作強(qiáng)制定義,就是“先定義,后使用”。這樣做的目的是:(1)凡是沒(méi)有被事先定義的,不作為變量名,這就能保證程序中變量名使用的正確;(2)每一個(gè)變量被指定為一確定類型,在編譯時(shí)就能為其分配相應(yīng)的存儲(chǔ)單元;(3)制定每一變量屬于一個(gè)類型,這就便于在編譯時(shí),據(jù)此檢查該變量所進(jìn)行的運(yùn)算是否合法?!?.3整型數(shù)據(jù)3.3.1整型常量的表示方法3.3.2整型變量3.3.3整型常量的類型
3.3.1整型常量的表示方法整形常量即整常數(shù)。C整常數(shù)可用以下三種形式表示:(1)十進(jìn)制整數(shù)。如123、-456、0(2)八進(jìn)制整數(shù)。以0開(kāi)頭的數(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開(kāi)頭的數(shù)是16進(jìn)制數(shù)。如0x123,代表16進(jìn)制數(shù)123。
3.3.2整型變量1.整型數(shù)據(jù)在內(nèi)存中的存放形式2.整型變量的分類3.整型變量的定義4.整型數(shù)據(jù)的溢出整型變量的分類(1)基本型,以int表示。(2)短整型,以shortint表示,或以short表示。(3)長(zhǎng)整型,以longint表示,或以long表示。(4)無(wú)符號(hào)型,以存儲(chǔ)單元中全部二進(jìn)位(bit)存放數(shù)本身,而不必空出最高位作為符號(hào)位。無(wú)符號(hào)型中又分為無(wú)符號(hào)整型、無(wú)符號(hào)短整型和無(wú)符號(hào)長(zhǎng)整型,分別以u(píng)nsignedint,unsignedshort,unsignedlong表示。如果整量在內(nèi)存中占2個(gè)字節(jié)(16位),則int型變量數(shù)的范圍為-32768~32767。而unsignedint型變量數(shù)的范圍為0~65535.各類數(shù)據(jù)所占內(nèi)存字節(jié)數(shù)C標(biāo)準(zhǔn)沒(méi)有具體規(guī)定以上各類數(shù)據(jù)所占內(nèi)存的字節(jié)數(shù),只要求long型數(shù)據(jù)長(zhǎng)度不短于int型,short型不長(zhǎng)于int型。具體如何實(shí)現(xiàn),有各計(jì)算機(jī)系統(tǒng)自行決定。通常的做法是:把long定為32位,把short定為16位,而int可以是16位,也可以是32位。在微機(jī)上用long型可以得到大范圍的整數(shù),但同時(shí)會(huì)降低運(yùn)算速度,因此不要隨便使用long型。整型變量的定義前面已提到,C規(guī)定在程序中所有用到的變量都必須在程序中指定其類型,即“定義”。這和BASIC,FORTRAN不同,而和PASCAL相類似。例如:inta,b;(指定變量a,b為整型)
unsignedshortc,d;(指定變量c,d為無(wú)符號(hào)短整型)
longe,f(指定變量e,f為長(zhǎng)整型)對(duì)變量的定義,一般是放在一個(gè)函數(shù)的開(kāi)頭部分的聲明部分,變量的作用域是整個(gè)函數(shù);也可以放在函數(shù)中的某一分程序內(nèi),但變量的作用域只限于該分程序內(nèi)(這將在第8章介紹)。例3.2整型變量的定義與使用main(){inta,b,c,d;/*指定a,b,c,d為整型變量*/unsignedu;/*指定u為無(wú)符號(hào)整型變量*/a=12;b=-24;u=10;c=a+u;d=b+u;printf(“a+u=%d,b+u=%d\n”,c,d);}運(yùn)行結(jié)果為:a+u=22,b+u=-14可以看到:不同種類的整型數(shù)據(jù)可以進(jìn)行算術(shù)運(yùn)算。在本例中是int型數(shù)據(jù)與unsignedint型數(shù)據(jù)進(jìn)行加減運(yùn)算?!?.4實(shí)型數(shù)據(jù)3.4.1實(shí)型常量的表示方法3.4.2實(shí)型變量3.4.3實(shí)型常量的類型3.4.1實(shí)型常量的表示方法實(shí)數(shù)在C語(yǔ)句中又稱為浮點(diǎn)數(shù)。實(shí)數(shù)有兩種表示形式:(1)十進(jìn)制數(shù)形式。它由數(shù)字和小數(shù)點(diǎn)組成(注意必須有小數(shù)點(diǎn))。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ù)形式。3.4.2實(shí)型變量1.實(shí)型數(shù)據(jù)在內(nèi)存中的存放形式2.實(shí)型變量的分類3.實(shí)型數(shù)據(jù)的舍入誤差3.4.2實(shí)型變量1.實(shí)型數(shù)據(jù)在內(nèi)存中的存放形式2.實(shí)型變量的分類3.實(shí)型數(shù)據(jù)的舍入誤差§3.5字符型數(shù)據(jù)3.5.1字符常量3.5.2字符變量3.5.3字符數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式3.5.4字符串常量3.5.1字符常量C的字符常量是用單引號(hào)括起來(lái)的一個(gè)字符。如'a','D','?'等都是字符常量。注意,'a'和'A'是不同的字符的常量。除了以上形式的字符常量外,C還允許用一種特殊的字符常,就是以一個(gè)“\”開(kāi)關(guān)的字符序列。例如,前面已經(jīng)遇到過(guò)的,在printf函數(shù)中的‘\n’,它代表一個(gè)“換行”符,這種非顯示字符難以用一般形式的字符表示,故規(guī)定用這種特殊形式表示。這類特殊的字符稱為“轉(zhuǎn)義字符”。轉(zhuǎn)義字符a.控制字符:\t水平制表(跳到下一個(gè)tab位置);\r回車;\n換行;
b.疑難字符:\’單引號(hào)字符\\反斜杠字符
c.指定ASCII碼對(duì)應(yīng)的字符:
格式1:\xhh:1到2位十六進(jìn)制數(shù)ASCII碼對(duì)應(yīng)的字符
如:\x42表示字符“B”;
格式2:\ddd:
1到3位八進(jìn)制數(shù)ASCII碼對(duì)應(yīng)的字符
如:\102同樣表示字符“B”;3.5.2字符變量字符型變量用來(lái)存放字符常量,注意只能放一個(gè)字符,不要以為在一個(gè)字符變量中可以放一個(gè)字符串(包括若干字符)。字符變量的字義如下:
charc1,c2;
它表示c1和c2為字符型變量,各可以放一個(gè)字符。因此可以用下面語(yǔ)句對(duì)c1,c2賦值:
c1='a';c2='b'一般以一個(gè)字節(jié)來(lái)存放一個(gè)字符,或者說(shuō)一個(gè)字符變量在內(nèi)存中占一個(gè)字節(jié)。
3.5.3字符數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式將一個(gè)字符常量放到一個(gè)字符變量中,并不是把該字符本身放到內(nèi)存單元中,而是將該字符的ASCII碼放到存儲(chǔ)單元中,而且以二進(jìn)制形式存放。例如:執(zhí)行賦值語(yǔ)句c1=‘a(chǎn)’;c2=‘b’;字符‘a(chǎn)’的ASCII碼為97,‘b’為98,在內(nèi)存中變量c1,c2的值如圖所示:既然在內(nèi)存中,字符數(shù)據(jù)以ASCII碼存放,它的存儲(chǔ)形式就與整數(shù)的存儲(chǔ)類似,這使得字符型數(shù)據(jù)和整型數(shù)據(jù)之間可以通用。9798c1c20110000101100010c1c2字符型數(shù)據(jù)和整型數(shù)據(jù)的通用性一個(gè)字符數(shù)據(jù)既可以以字符形式輸出,也可以以整數(shù)形式輸出。兩種通用形式的輸出;以字符形式輸出時(shí),需要先將存儲(chǔ)單元中的ASCII碼轉(zhuǎn)換成相應(yīng)字符,然后輸出;以整數(shù)形式輸出時(shí),直接將ASCII碼作為整數(shù)輸出。對(duì)字符數(shù)據(jù)進(jìn)行算術(shù)運(yùn)算;相當(dāng)于對(duì)它們的ASCII碼進(jìn)行整數(shù)的算術(shù)運(yùn)算。相互賦值;字符數(shù)據(jù)與整型數(shù)據(jù)可以相互賦值。兩種通用形式的輸出main(){charc1,c2;c1=97;c2=98;(等價(jià)于c1=‘a(chǎn)’;c2=‘b’;)printf(“%c%c\n”,c1,c2);printf(“%d%d\n”,c1,c2);}
將97和98兩個(gè)整數(shù)直接存放到c1和c2的內(nèi)存單元中。
先將字符‘a(chǎn)’和‘b’化成ASCII碼97和98,然后放到內(nèi)存單元中。兩者的作用和結(jié)果是完全相同的程序輸出如下:ab9798對(duì)字符數(shù)據(jù)進(jìn)行算術(shù)運(yùn)算例3.7大小寫字母的轉(zhuǎn)換。main(){charc1,c2;c1=‘a(chǎn)’;c2=‘b’;c1=c1-32;c2=c2-32;printf(“%c%c”,c1,c2);}運(yùn)行結(jié)果為:AB‘a(chǎn)’的ASCII碼為97,‘A’為65;‘b’為98,‘B’為66。從ASCII代碼表中可以發(fā)現(xiàn):每一個(gè)小寫字母比它相應(yīng)的大寫字母的ASCII碼大32。C語(yǔ)言允許字符數(shù)據(jù)與整數(shù)直接進(jìn)行算術(shù)運(yùn)算。相互賦值字符數(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);}運(yùn)行結(jié)果:a,97a,973.5.4字符串常量前面已提到,字符常量是由一對(duì)單引號(hào)括起來(lái)的單個(gè)字符。C語(yǔ)言除了允許使用字符常量外,還允許使用字符串常量。字符串常量是一對(duì)雙引號(hào)括起來(lái)的字符序列。如:“Howdoyoudo.”,“CHINA”,“$123.45”都是字符串常量??梢暂敵鲆粋€(gè)字符串,如printf("Howdoyoudo.");不要將字符常量與字符串?;煜??!產(chǎn)’是字符常量,“a”是字符串常量,二者不同。假設(shè)C被指定為字符變量:
charc;c=‘a(chǎn)’;是正確的;而c=“a”;是錯(cuò)誤的。
c=“CHINA”,也是錯(cuò)誤的。不能把一個(gè)字符串賦給一個(gè)字符變量。
究竟為什么c=‘a(chǎn)’就是正確的,而c=“a”就錯(cuò)了呢?§3.6變量賦初值程序中常需要對(duì)一些變量預(yù)先設(shè)置初值。C語(yǔ)言允許在定義變量的同時(shí)使變量初始化。inta=3;/*指定a為整型變量,初值為3*/floatf=3.56;/*指定f為實(shí)型變量,初值為3.56*/charc=‘a(chǎn)’;/*指定c為字符變量,初值為‘a(chǎn)’*/也可以使被定義的變量的一部分賦初值。inta,b,c=5;/*指定a,b,c為整型變量,只對(duì)c初始化*/如果對(duì)幾個(gè)變量賦予初值3,應(yīng)寫為:inta=3,b=3,c=3;
不能寫成:inta=b=c=3
初始化不是在編譯階段完成的(只有在第8章中介紹的靜態(tài)存儲(chǔ)變量和外部變量的初始化時(shí)在編譯階段完成的)。如:inta=3;相當(dāng)于:inta;/*指定a為整型變量*/a=3;/*賦值語(yǔ)句,將3賦給a*/如:inta,b,c=5;相當(dāng)于:inta,b,c;/*指定a,b,c為整型變量*/c=5;/*賦值語(yǔ)句,將5賦給c*/
§3.7算術(shù)運(yùn)算符和算術(shù)表達(dá)式3.7.1C運(yùn)算符簡(jiǎn)介3.7.2算術(shù)運(yùn)算符和算術(shù)表達(dá)式1.基本的算術(shù)運(yùn)算符2.算術(shù)表達(dá)式和運(yùn)算符的優(yōu)先級(jí)與結(jié)合性3.強(qiáng)制類型轉(zhuǎn)換運(yùn)算符4.自增、自減運(yùn)算符5.有關(guān)表達(dá)式使用中的問(wèn)題說(shuō)明3.7.1C運(yùn)算符簡(jiǎn)介C語(yǔ)言是表達(dá)式語(yǔ)言,除了控制語(yǔ)句和輸入輸出外幾乎都是表達(dá)式。如:賦值符“=”作為賦值運(yùn)算符,而方括號(hào)“[]”作為下標(biāo)運(yùn)算符等。C的運(yùn)算符有13類之多。
C的運(yùn)算符1.算術(shù)運(yùn)算符(+,-,*,/,%,即加,減,乘,除,求余)2.關(guān)系運(yùn)算符(>,<,==,>=,<=,!=)3.邏輯運(yùn)算符(!,&&,||)4.位運(yùn)算符(<<,>>,~,|,^,&)5.賦值運(yùn)算符(=及其擴(kuò)展賦值運(yùn)算符)6.條件運(yùn)算符(?,:)7.逗號(hào)運(yùn)算符(,)8.指針運(yùn)算符(*和&)9.求字節(jié)數(shù)運(yùn)算符(sizeof)10.強(qiáng)制類型轉(zhuǎn)換運(yùn)算符((類型))11.分量運(yùn)算符(.->)12.下標(biāo)運(yùn)算符([])13.其他(如函數(shù)調(diào)用運(yùn)算符())
運(yùn)算符詳見(jiàn)本書(shū)附錄III基本的算術(shù)運(yùn)算符四則運(yùn)算:+(加法運(yùn)算符,或正值運(yùn)算符。如3+5、+3)-(減法運(yùn)算符,或負(fù)值運(yùn)算符。如5-2、-2)*(乘法運(yùn)算符。如3*5)/(除法運(yùn)算符。如5/3)%(模運(yùn)算符,或求余運(yùn)算符,%兩則應(yīng)均為整型數(shù)據(jù))說(shuō)明:/運(yùn)算如果除數(shù)或被除數(shù)中有一個(gè)為負(fù)數(shù),則舍入的方向是不固定的。如-5/3有的機(jī)器上結(jié)果為-1,有的為-2。但多數(shù)機(jī)器采取“向零取整”的方法,即5/3=1,-5/3=-1,取整后向零靠攏。算術(shù)表達(dá)式和運(yùn)算符的優(yōu)先級(jí)與結(jié)合性用算術(shù)運(yùn)算符和括號(hào)將運(yùn)算對(duì)象(操作數(shù))連接起來(lái),符合C語(yǔ)法規(guī)則的式子,稱C算術(shù)表達(dá)式。運(yùn)算對(duì)象包括常量、變量、函數(shù)。合法的C算術(shù)表達(dá)式如:a*b/c-1.5+‘a(chǎn)’優(yōu)先級(jí):若運(yùn)算對(duì)象兩側(cè)運(yùn)算符的優(yōu)先級(jí)不同,則先乘除后加減。結(jié)合性:若一個(gè)運(yùn)算對(duì)象兩側(cè)的運(yùn)算符的優(yōu)先級(jí)相同,則滿足結(jié)合性規(guī)則,自左向右,左結(jié)合性(運(yùn)算對(duì)象先與左面的運(yùn)算符結(jié)合)。
自增、自減運(yùn)算符有前置和后置兩種形式:
前置形式:++變量名,--變量名
后置形式:變量名++,變量名--功能:對(duì)變量的值進(jìn)行自加1(自減1)的運(yùn)算。例:語(yǔ)句++a;相當(dāng)于執(zhí)行a=a+1;
前置形式運(yùn)算規(guī)則:先對(duì)表達(dá)式中含有前置自增(減)運(yùn)算符的變量進(jìn)行自加(減)1,然后用這些變量的新值參與表達(dá)式運(yùn)算。后置形式運(yùn)算規(guī)則:先用變量原值參與表達(dá)式運(yùn)算,然后對(duì)含有后置自加(減)運(yùn)算符的變量進(jìn)行自加(減)1運(yùn)算。
main()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);}運(yùn)行結(jié)果:4,4運(yùn)行結(jié)果:4,3(1)自增運(yùn)算符(++)和自減運(yùn)算符(--),只能用于變量,不能用于常量或表達(dá)式;(2)++和--的結(jié)合方向?yàn)椤白杂抑磷蟆薄?/p>
考慮:若i的初值為3,那么print(“%d”,-i++)的結(jié)果應(yīng)該為多少呢?§3.8賦值運(yùn)算符和賦值表達(dá)式1.賦值運(yùn)算符2.類型轉(zhuǎn)換3.復(fù)合的賦值運(yùn)算符4.賦值表達(dá)式1.賦值運(yùn)算符賦值符號(hào)“=”就是賦值運(yùn)算符,作用是將一個(gè)數(shù)據(jù)賦給一個(gè)變量。如“a=3”的作用是執(zhí)行一次賦值操作(或稱賦值運(yùn)算),把常量3賦給變量a。也可以將一個(gè)表達(dá)式的值賦給一個(gè)變量。如“a=3+5-8%5”,相當(dāng)于把結(jié)果值5賦給變量a(“a=5”)。2.類型轉(zhuǎn)換如果賦值運(yùn)算符兩側(cè)的類型不一致,但都是數(shù)值型或字符型時(shí),在賦值時(shí)要進(jìn)行類型轉(zhuǎn)換。3.復(fù)合的賦值運(yùn)算符在賦值符“=”之前加上其他運(yùn)算符,可以構(gòu)成復(fù)合的運(yùn)算符。如:a+=3等價(jià)于a=a+3,x%=3等價(jià)于x=x%3。注意:賦值符“=”右邊看作一項(xiàng)。凡是二元運(yùn)算符,都可以與賦值符一起組成復(fù)合賦值符。C語(yǔ)言規(guī)定了10種復(fù)合賦值運(yùn)算符:+=,-=,*=,/=,%=,<<=,>>=,&=,^=,|=規(guī)則:(1)“=”后邊先加括號(hào);(2)“=”前邊復(fù)制到“=”后邊;4.賦值表達(dá)式由賦值運(yùn)算符將一個(gè)變量和一個(gè)表達(dá)式連接起來(lái)的式子稱為“賦值表達(dá)式”。一般形式為:<變量>
<賦值運(yùn)算符><表達(dá)式>賦值表達(dá)式求解過(guò)程:將賦值運(yùn)算符右側(cè)“表達(dá)式”的值賦給左側(cè)的變量。表達(dá)式的值就是被賦值的變量的值。上述一般形式中的“表達(dá)式”還可以是一個(gè)賦值表達(dá)式。如:a=(b=5)。所以,C語(yǔ)言允許連續(xù)賦值。inta,b,c;
a=b=c=0;
連續(xù)使用等號(hào)時(shí),從右向左順序賦值:a=(b=(c=0));賦值表達(dá)式也可以包含復(fù)合的賦值運(yùn)算符。如:a+=a-=a*a也是一個(gè)賦值表達(dá)式。若a的初值為12,則:先進(jìn)行“a-=a*a”,相當(dāng)于a=a-a*a,a的值為12-144=-132;再進(jìn)行“a+=-132”的運(yùn)算,相當(dāng)于“a=a+(-132)”,a的值為-132-132=-264?!?.9逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式逗號(hào)運(yùn)算符(又稱順序求值運(yùn)算符):,逗號(hào)表達(dá)式:用逗號(hào)運(yùn)算符把兩個(gè)表達(dá)式連接起來(lái)的表達(dá)式。一般形式為:表達(dá)式1,表達(dá)式2,…..,表達(dá)式n逗號(hào)表達(dá)式的值:表達(dá)式n的值.如:逗號(hào)表達(dá)式“3+5,6+8”的值為14。如:“a=3*5,a*4”,由于賦值運(yùn)算符的優(yōu)先級(jí)高于逗號(hào)運(yùn)算符(逗號(hào)運(yùn)算符在所有運(yùn)算符中級(jí)別最低),因此應(yīng)先求解a=3*5,再求解a*4,得到逗號(hào)表達(dá)式的值60。一個(gè)逗號(hào)表達(dá)式又可以與另一個(gè)表達(dá)式組成一個(gè)新的逗號(hào)表達(dá)式,如:(a=3*5,a*4),a+5,先計(jì)算出a的值為15,由于a*4的操作并沒(méi)有改變a的值,所以a+5的值為20。因此,逗號(hào)表達(dá)式最終的值為20。在許多情況下,使用逗號(hào)表達(dá)式的目的只是想分別得到各個(gè)表達(dá)式的值。逗號(hào)表達(dá)式最常用于循環(huán)(for)語(yǔ)句。注意:并不是任何地方出現(xiàn)的逗號(hào)都作為逗號(hào)運(yùn)算符。例如函數(shù)參數(shù)也是用逗號(hào)來(lái)間隔的,如:printf(“%d,%d,%d”,a,b,c);課堂作業(yè):2.1指出下面哪些是合法的變量名:①123②abc③a+b④a_b⑤pad⑥?12⑦Li_Li⑧*P2.2‘a(chǎn)’在內(nèi)存中占
個(gè)字節(jié),“a”在在內(nèi)存中占
個(gè)字節(jié).2.3寫出下面程序的運(yùn)行結(jié)果:
main(){charch;ch=‘B’;/*B的ascii碼的值為66*/printf(“%c,%d\n”,ch,ch)
②④⑤⑦12B662.4寫出下面程序的運(yùn)行結(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);}運(yùn)行結(jié)果:a=16,b=18,c=202.5寫出下面程序的運(yùn)行結(jié)果:main(){inta=4;intb,c;c=a+(b=2);a+=a-=a*a;printf("%d,%d,%d\n",a,b,c);}2.6寫出下面程序的運(yùn)行結(jié)果:
main(){inta,b,c=9;a=3,b=4; c%=a+b; printf(“%d\n”,c) }
運(yùn)行結(jié)果:-24,2,6運(yùn)行結(jié)果:22.7寫出下面程序的運(yùn)行結(jié)果:
main(){ inti,j,m,n; i=8;j=10; m=++i; n=j++; printf("%d,%d,%d,%d\n",i,j,m,n);}運(yùn)行結(jié)果:9,11,9,102.8寫出下面程序的運(yùn)行結(jié)果:
main(){ floatx=5.4; inti; i=(int)x; printf(”x=%f,i=%d\n",x,i);}運(yùn)行結(jié)果:x=5.400000,I=5第四章最簡(jiǎn)單的C程序設(shè)計(jì)
————順序程序設(shè)計(jì)§4.1C語(yǔ)句概述§4.2賦值語(yǔ)句§4.3數(shù)據(jù)輸入輸出的概念及實(shí)現(xiàn)§4.4字符數(shù)據(jù)輸入輸出函數(shù)§4.5格式輸入與輸出§4.6順序結(jié)構(gòu)程序設(shè)計(jì)舉例§4.1C語(yǔ)句概述與其他高級(jí)語(yǔ)言一樣,C語(yǔ)言的語(yǔ)句用來(lái)向計(jì)算機(jī)系統(tǒng)發(fā)出操作指令。一個(gè)語(yǔ)句經(jīng)編譯后產(chǎn)生若干條機(jī)器指令。一個(gè)實(shí)際的程序應(yīng)當(dāng)包含若干條語(yǔ)句。C語(yǔ)句都是用來(lái)完成一定的操作任務(wù)的;聲明部分的內(nèi)容不應(yīng)稱為語(yǔ)句。如:inta;不是一個(gè)C語(yǔ)句,它不產(chǎn)生機(jī)器操作,而只是對(duì)變量的定義。C程序結(jié)構(gòu)C程序源程序文件1源程序文件2源程序文件n預(yù)處理命令全局變量聲明函數(shù)1函數(shù)n函數(shù)首部函數(shù)體局部變量聲明執(zhí)行語(yǔ)句…..…C語(yǔ)句分類C語(yǔ)句可以分為以下5類:1.控制語(yǔ)句;2.函數(shù)調(diào)用語(yǔ)句;3.表達(dá)式語(yǔ)句;4.空語(yǔ)句;5.復(fù)合語(yǔ)句;1.控制語(yǔ)句完成一定的控制功能。C只有9種控制語(yǔ)句:
if()~else~(條件語(yǔ)句)
for()~(循環(huán)語(yǔ)句)
while()~(循環(huán)語(yǔ)句)
do~while()(循環(huán)語(yǔ)句)
continue(結(jié)束本次循環(huán)語(yǔ)句)
break(中止switch或循環(huán)語(yǔ)句)
switch(多分支選擇語(yǔ)句)
goto(轉(zhuǎn)向語(yǔ)句)
return(從函數(shù)返回語(yǔ)句)
()表示條件,~表示內(nèi)嵌的語(yǔ)句。2.函數(shù)調(diào)用語(yǔ)句由一次函數(shù)調(diào)用加一個(gè)分號(hào)構(gòu)成一個(gè)語(yǔ)句。如:printf(“ThisisaCstatement.”);一次函數(shù)調(diào)用分號(hào)3.表達(dá)式語(yǔ)句由一個(gè)表達(dá)式構(gòu)成一個(gè)語(yǔ)句;最典型的是,由賦值表達(dá)式構(gòu)成一個(gè)賦值語(yǔ)句(表達(dá)式后面加分號(hào)即構(gòu)成語(yǔ)句)。如:a=3是一個(gè)賦值表達(dá)式,而a=3;是一個(gè)賦值語(yǔ)句。一個(gè)語(yǔ)句必須在最后出現(xiàn)分號(hào)。任何表達(dá)式都可以加上分號(hào)而成為語(yǔ)句。如:x+y;是語(yǔ)句,但沒(méi)有意義(沒(méi)有將相加之和賦給另一個(gè)變量)。表達(dá)式能構(gòu)成語(yǔ)句是C語(yǔ)言的一個(gè)重要特色。C中大多數(shù)語(yǔ)句是表達(dá)式語(yǔ)句(包括函數(shù)調(diào)用語(yǔ)句),所以有人稱C語(yǔ)言為“表達(dá)式語(yǔ)言”。4.空語(yǔ)句
空語(yǔ)句:僅包含一個(gè)分號(hào)的語(yǔ)句,它什么都不做。有時(shí)用來(lái)做被轉(zhuǎn)向點(diǎn),或是循環(huán)語(yǔ)句中的循環(huán)體(循環(huán)體是空語(yǔ)句,表示循環(huán)體什么也不做。)
如:;5.復(fù)合語(yǔ)句由大括號(hào){}括起來(lái)的語(yǔ)句序列,稱為復(fù)合語(yǔ)句,或是分程序。
如:{z=x+y;t=z/100;printf("%f",t); }注意:復(fù)合語(yǔ)句中最后一個(gè)語(yǔ)句最后的分號(hào)不能忽略不寫。C語(yǔ)言允許一行寫幾個(gè)語(yǔ)句,也可以一個(gè)語(yǔ)句拆開(kāi)寫在幾行上?!?.2賦值語(yǔ)句C語(yǔ)言的賦值語(yǔ)句具有其他高級(jí)語(yǔ)言賦值語(yǔ)句的一切特點(diǎn)和功能,但也有不同之處:1、C語(yǔ)言中的賦值號(hào)“=”是一個(gè)運(yùn)算符,而其它大多數(shù)語(yǔ)言中賦值號(hào)“=”不是運(yùn)算符。 2、關(guān)于賦值表達(dá)式和賦值語(yǔ)句的概念。其他大多數(shù)高級(jí)語(yǔ)言中沒(méi)有“賦值表達(dá)式”這一概念。作為賦值表達(dá)式可以包括在其他表達(dá)式之中,如:
if((a=b)>0)t=a;(先賦值,將b的值賦給a;再判斷a是否>0,若>0,則執(zhí)行t=a;)if((a=b;)>0)t=a;(不合法:if條件不能包含賦值語(yǔ)句)§4.3數(shù)據(jù)輸入輸出的概念及實(shí)現(xiàn)所謂輸入輸出是以計(jì)算機(jī)主機(jī)為主體而言的。從計(jì)算機(jī)向外部輸出設(shè)備(顯屏,打印機(jī))輸出數(shù)據(jù)稱為“輸出”;從輸入設(shè)備(鍵盤,磁盤)向計(jì)算機(jī)輸入數(shù)據(jù)稱為“輸入”。C語(yǔ)言本身不提供輸入輸出語(yǔ)句,輸入和輸出操作是由函數(shù)來(lái)實(shí)現(xiàn)的。在C的標(biāo)準(zhǔn)函數(shù)庫(kù)中提供了一些輸入輸出函數(shù),例如,printf函數(shù)和scanf函數(shù)。在使用它們時(shí),千萬(wàn)不要簡(jiǎn)單地認(rèn)為它們是C語(yǔ)言的“輸入輸出語(yǔ)句”。printf和scanf不是C語(yǔ)言的關(guān)鍵字。完全可以不用printf和scanf這兩個(gè)名字,而另外編兩個(gè)函數(shù),另用其它函數(shù)名。
C提供的函數(shù)以庫(kù)的形式存放在系統(tǒng)中,它們不是C語(yǔ)言文本中的組成部分。因此各函數(shù)的功能和名,在各種不同的計(jì)算機(jī)系統(tǒng)所不同。有些通用的函數(shù)(如printf和scanf等),各種計(jì)算機(jī)系統(tǒng)都提供,成為各種計(jì)算機(jī)系統(tǒng)的標(biāo)準(zhǔn)函數(shù)(標(biāo)準(zhǔn)輸入輸出庫(kù)的一部分)。在程序編譯連接時(shí),用戶程序與標(biāo)準(zhǔn)文件相連,所以在程序中可以直接使用printf和scanf函數(shù)。注意:在源程序中有printf函數(shù),在編譯時(shí)并不把它翻譯成目標(biāo)指令,而是在執(zhí)行階段中調(diào)用已被連接的函數(shù)庫(kù)中的printf函數(shù)。C語(yǔ)言函數(shù)庫(kù)中有一批“標(biāo)準(zhǔn)輸入輸出函數(shù)”,它是以標(biāo)準(zhǔn)的輸入輸出設(shè)備(一般為終端設(shè)備)為輸入輸出對(duì)象的。其中有:
putchar(輸出字符)getchar(輸入字符)
printf(格式輸出)scanf(格式輸入)
puts(輸出字符串)gets(輸入字符串)在使用標(biāo)準(zhǔn)I/O庫(kù)函數(shù)時(shí),要用預(yù)編譯命令“#include”將“stdio.h”文件包括到用戶源文件中。即
#include“stdio.h”(或#include<stdio.h>)。stdio.h是standartinput&output的縮寫,它包括了標(biāo)準(zhǔn)I/O庫(kù)有關(guān)的變量定義和宏定義(有關(guān)預(yù)編譯命令見(jiàn)第九章)。在需要使用標(biāo)準(zhǔn)I/O庫(kù)中的函數(shù)時(shí),應(yīng)在程序前使用上述預(yù)編譯命令,但在用printf和scanf函數(shù)時(shí),則可以不要(只有printf和scanf例外)。預(yù)編譯命令“#include”都是放在程序的開(kāi)頭,因此這類文件被稱為“頭文件”?!?.4字符數(shù)據(jù)輸入輸出函數(shù)4.4.1putchar函數(shù)(字符輸出函數(shù))4.4.2getchar函數(shù)(字符輸入函數(shù))4.4.1putchar函數(shù)putchar函數(shù)的作用是向終端輸出一個(gè)字符。例如: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);
}
運(yùn)行結(jié)果:BOY也可以輸出控制字符,如putchar(‘\n’)輸出一個(gè)換行符。
如果將例4.1程序最后一行改為:
putchar(a);putchar('\n');putchar(b);putchar('\n');putchar(c);putchar('\n');
則輸出結(jié)果為:
B
O
Y也可以輸出其它轉(zhuǎn)義字符,如:
putchar(‘\101’)(輸出字符‘A’)
putchar(‘\’‘)(輸出單引號(hào)字符’)
putchar(‘015’)(輸出回車,不換行,使輸出的位置移到本行開(kāi)頭)
4.4.2getchar函數(shù)此函數(shù)的作用是從終端(或系統(tǒng)隱含指定的輸入設(shè)備)輸入一個(gè)字符。getchar函數(shù)沒(méi)有參數(shù),其一般形式為:getchar()函數(shù)的值就是從輸入設(shè)備得到的字符。例4.2:#include"stdio.h"
main()
{charc;
c=getchar();
putchar(c);
}
在運(yùn)行時(shí),如果從鍵盤輸入字‘a(chǎn)’
a<enter>(輸入a后,按“回車”鍵,字符才送到內(nèi)存)
a(輸出變量c的值'a')請(qǐng)注意,getchar()只能接收一個(gè)字符。getchar函數(shù)得到的字符可以賦給一個(gè)字符變量或整型變量,也可以不賦給任何變量,作為表達(dá)式的一部分。例如,例4.2第4、5行可以用下面一行代替:putchar(getchar());也可以用printf函數(shù):printf("%c",getchar());在函數(shù)中要用getchar函數(shù),應(yīng)該在函數(shù)的前面(或本文件開(kāi)頭)用#include"stdio.h”。因?yàn)樵谑褂脴?biāo)準(zhǔn)I/O庫(kù)中的函數(shù)時(shí)需要用到“stdio.h”文件中包含的一些信息。
§4.5格式輸入與輸出4.5.1printf函數(shù)(格式輸出函數(shù))4.5.2scanf函數(shù)(格式輸入函數(shù))4.5.1printf函數(shù)1.printf函數(shù)的一般格式2.格式字符printf函數(shù)的一般格式printf函數(shù)的作用是:向終端(或系統(tǒng)隱含指定的輸出設(shè)備)輸出若干個(gè)任意類型的數(shù)據(jù)。注意:putchar只能輸出字符,而且只能是一個(gè)字符;而printf可以輸出多個(gè)數(shù)據(jù),且為任意類型。一般格式:printf(格式控制,輸出列表)如:printf(“%d,%c\n”,i,c)格式說(shuō)明:將數(shù)據(jù)轉(zhuǎn)換為指定格式輸出。普通字符:即需要原樣輸出的字符(逗號(hào),空格和換行符)輸出列表:需要輸出的數(shù)據(jù),可以是表達(dá)式。例:printf(“a=%d_b=%d”,a,b);
雙引號(hào)中的字符除了“%d”和“%d”以外,還有非格式說(shuō)明的普通字符“a=”、“b=”及空格“_”,它們按原樣輸出。若a=3,b=4,則輸出為:a=3_b=4格式字符對(duì)不同類型的數(shù)據(jù)用不同的格式字符。常用的有以下幾種格式字符:
(1)
d格式符(6)s格式符
(2)
o格式符(7)f格式符
(3)x格式符(8)e格式符
(4)u格式符(9)g格式符
(5)c格式符
d格式符:輸出十進(jìn)制整數(shù)%d:按整型數(shù)據(jù)的實(shí)際長(zhǎng)度輸出;%md:輸出m位(指定的輸出字段寬度);(數(shù)據(jù)位數(shù)小于m位時(shí)左端補(bǔ)空格,大于m位時(shí)按實(shí)際長(zhǎng)度輸出);%ld,%mld:l表示輸出“長(zhǎng)整型”數(shù)據(jù),也可以指定輸出字段寬度;一個(gè)int型數(shù)據(jù)可以用%d或%ld格式輸出;注:%后面的m(位數(shù)控制)對(duì)于其它格式符也適用。例、(□表示空格)inti=123;longj=123456;printf("%d,%5d,%ld,%8ld
",i,i,j,j);
輸出:123,□□123,123456,□□123456c格式符:輸出一個(gè)字符一個(gè)整數(shù),只要它的值在0~255之間,也可以用字符形式輸出。在輸出前,系統(tǒng)會(huì)將該整數(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,97s格式符:輸出一個(gè)字符串(1)%s:原樣輸出字符串;如:printf(“%s”,“CHINA”)輸出:CHINA(2)%ms:輸出字符串占m列;>m全輸出<m左補(bǔ)空格;(3)%-ms:輸出字符串占m列;<m字符串左靠右補(bǔ)空格;(4)%m.ns:輸出字符串占m列,但只取串左端n個(gè)字符。這n個(gè)字符輸出在m列的右側(cè),左補(bǔ)空格。(5)%-m.ns:輸出字符串占m列,但只取串左端n個(gè)字符。這n個(gè)字符輸出在m列的左側(cè),右補(bǔ)空格。若n>m,則m自動(dòng)取n值,即保證n個(gè)字符正常輸出。例4.5main(){ printf("%3s,%7.2s,%.4s,%-5.3s\n","CHINA","CHINA","CHINA","CHINA");}輸出:CHINA,□□□□□CH,CHIN,CHI□□m自動(dòng)取n值,即等價(jià)于:%4.4sf格式符:以小數(shù)形式輸出實(shí)數(shù)(單/雙精度)(1)%f:由系統(tǒng)自動(dòng)指定字段寬度,使整數(shù)部分全部輸出,并輸出6位小數(shù)。(2)%m.nf:指定輸出的數(shù)據(jù)共占m列,其中由n位小數(shù)。若數(shù)值長(zhǎng)度<m,則左端補(bǔ)空格。(3)%-m.nf:同%m.nf,只是輸出的數(shù)值向左端靠,右端補(bǔ)空格。
注意:并非全部數(shù)字都是有效數(shù)字。單精度實(shí)數(shù)的有效位數(shù)一般為7位,而雙精度實(shí)數(shù)的有效位數(shù)一般為16位(小數(shù)6位)。例4.6main(){floatx,y;x=111111.111;y=222222.222;printf(“%f”,x+y);}運(yùn)行結(jié)果為:333333.328125顯然,只有前7位數(shù)字是有效數(shù)字。例4.7main(){doublex,y;x=1111111111111.111111111;y=2222222222222.222222222;printf(“%f”,x+y);}運(yùn)行結(jié)果為:3333333333333.333010可以看到,最后3位小數(shù)(超過(guò)16位)是無(wú)意義的。例: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□□□□按原樣輸出的字符由于格式定義而輸出的字符4.5.2scanf函數(shù)getchar函數(shù)只能用來(lái)輸入一個(gè)字符,用scanf函數(shù)可以用來(lái)輸入任何類型的多個(gè)數(shù)據(jù)。在前面已初步接觸到了scanf函數(shù),在本節(jié)中再作詳細(xì)介紹。1.一般形式2.格式說(shuō)明3.使用scanf函數(shù)時(shí)應(yīng)注意的問(wèn)題一般形式scanf(格式控制,地址表列)“格式控制”含義同printf函數(shù)?!暗刂繁砹小笔怯扇舾蓚€(gè)地址組成的表列,可能是變量的地址,或字符串的首地址。例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);
}運(yùn)行時(shí)按以下方式輸入a,b,c的值:
345<enter>(輸入a,b,c的值)
3,4,5(輸出a,b,c的值)&a,&b,&c中的“&”是“地址運(yùn)算符”,&a指a在內(nèi)存中的地址。上面scanf函數(shù)的作用是:按照a,b,c在內(nèi)存的地址將a,b,c的值存進(jìn)去。
見(jiàn)下圖,a,b,c的地址是在定義a,b,c之后就確定的(在編譯階段分配的)。
354acb"%d%d%d"表示按十進(jìn)制整數(shù)形式輸入數(shù)據(jù)。輸入數(shù)據(jù)時(shí),在兩個(gè)數(shù)據(jù)之間以一個(gè)或多個(gè)空格間隔,也可以用回車鍵、跳格鍵tab。下面輸入各法:①345<enter>
②3<enter>
45<enter>
③3(按tab鍵)4<enter>
5<enter>用“%d%d%d”格式輸入時(shí),不能用逗號(hào)作為兩個(gè)數(shù)據(jù)間的分隔符,如下面輸入不合法:3,4,5<enter>
格式說(shuō)明和printf函數(shù)中的格式說(shuō)明相似,以%開(kāi)始,以一個(gè)字符結(jié)束,中間可以插入附加的字符。
格式字符說(shuō)明d,i用來(lái)輸入有符號(hào)的十進(jìn)制整數(shù)。
u用來(lái)輸入無(wú)符號(hào)的十進(jìn)制整數(shù)。o用來(lái)輸入無(wú)符號(hào)的八進(jìn)制整數(shù)。x,Xc用來(lái)輸入單個(gè)字符。s輸入字符串,將字符串送到一個(gè)字符數(shù)組中,輸入以非空白符開(kāi)始,以第一個(gè)空白符結(jié)束,以'\0'作為其最后一個(gè)字符。
f用來(lái)輸入實(shí)數(shù),可以用小數(shù)形式或指數(shù)形式輸入。
e,E,g,G與f作用相同,e與f,g可以互相替換(大小寫作用相同)。
用來(lái)輸入無(wú)符號(hào)的十六進(jìn)制整數(shù)(大小寫作用相同)。scanf的附加格式說(shuō)明字符字符lh域?qū)?說(shuō)明用于輸入長(zhǎng)整型數(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)的變量。
§4.6順序結(jié)構(gòu)程序設(shè)計(jì)舉例[例4.10]輸入三角形的三邊長(zhǎng),計(jì)算其面積。算法:問(wèn)題求解的方法與步驟.
算法的表示:1)自然語(yǔ)言:Step1:輸入a,b,cStep2:計(jì)算s=(a+b+c)/2Step3:計(jì)算面積areaStep4:輸出面積area2)傳統(tǒng)流程圖計(jì)算面積area輸出面積area輸入a、b、c計(jì)算s結(jié)束開(kāi)始3)結(jié)構(gòu)化流程圖(N-S圖)4)偽代碼(1)(用英語(yǔ)描述)begin(算法開(kāi)始)inputa,b,cs(a+b+c)/2areas(s-a)(s-b)(s-c)outputareaend5)計(jì)算機(jī)語(yǔ)言計(jì)算面積area輸出面積area輸入a、b、c計(jì)算s1.設(shè)計(jì)算法、設(shè)三邊長(zhǎng)a、b、c,面積area的算法是:2.畫出流程圖。求平方根函數(shù)sqrt()在math.h中定義。計(jì)算面積area輸出面積area輸入a、b、c計(jì)算s結(jié)束開(kāi)始#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);}運(yùn)行情況如下:3,4,6↙a=□□□3.00,b=□□□4.00,c=□□□6.00area=□□□5.33例4.11輸入一個(gè)大寫字母,改為小寫字母輸出。#include<stdio.h>main(){charc1,c2;c1=getchar();printf(“%c,%d\n”,c1,c1);c2=c1+32;printf(“%c,%d\n”,c2,c2);}運(yùn)行情況如下:A<enter>A,65a,97第5章選擇結(jié)構(gòu)程序設(shè)計(jì)C語(yǔ)言中選擇結(jié)構(gòu)是用if語(yǔ)句實(shí)現(xiàn)的。if語(yǔ)句最常用的形式是:if(關(guān)系表達(dá)式)語(yǔ)句1else語(yǔ)句2例如:if(x>0)y=1;elsey=-1;其中,x>0是一個(gè)關(guān)系表達(dá)式,“>”是一個(gè)關(guān)系運(yùn)算符。§5.1關(guān)系運(yùn)算符和關(guān)系表達(dá)式§5.2邏輯運(yùn)算§5.3if語(yǔ)句§5.4switch語(yǔ)句§5.5程序舉例§5.1關(guān)系運(yùn)算符和關(guān)系表達(dá)式關(guān)系運(yùn)算是邏輯運(yùn)算的一種。所謂“關(guān)系運(yùn)算”實(shí)際上是“比較運(yùn)算”。將兩個(gè)值進(jìn)行比較,判斷比較的結(jié)果是否符合給定的條件。例如,a>3是關(guān)系表達(dá)式,大于號(hào)“>”是一個(gè)關(guān)系運(yùn)算符,如果a的值為5,則滿足給定的的“a>3”條件,因此關(guān)系表達(dá)式a>3的值為“真”(即“條件滿足”);如果a的值為2,不滿足“a>3”條件,則稱關(guān)系表達(dá)式的值為“假”。5.1.1關(guān)系運(yùn)算符及其優(yōu)先次序5.1.2關(guān)系表達(dá)式5.1.1關(guān)系運(yùn)算符及其優(yōu)先次序C語(yǔ)言有六種關(guān)系運(yùn)算符:(1)<小于(2)<=小于或等于優(yōu)先級(jí)相同(高)
(3)>大于(4)>=大于或等于(5)==(等于)
優(yōu)先級(jí)相同(低)
(6)!=不等于算術(shù)運(yùn)算符關(guān)系運(yùn)算符賦值運(yùn)算符5.1.2關(guān)系表達(dá)式用關(guān)系運(yùn)算符將兩個(gè)表達(dá)式(算術(shù)表達(dá)式或關(guān)系表達(dá)式、邏輯表達(dá)式、賦值表達(dá)式、字符表達(dá)式)連接起來(lái)的式子,稱為關(guān)系表達(dá)式。如:a>b,a+b>b+c,(a=3)>(b=5),‘a(chǎn)’<‘b’等都是關(guān)系表達(dá)式。關(guān)系表達(dá)式的值是一個(gè)邏輯值,即“真”或“假”。C語(yǔ)言中用1代表“真”,用0代表“假”。如:a=3,b=2,c=3,則關(guān)系表達(dá)式“a>b”的值為“真”,表達(dá)式的值為1;“b+c<a”的值為“假”,表達(dá)式的值為0。例、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á)式)§5.2邏輯運(yùn)算5.2.1邏輯運(yùn)算符及其優(yōu)先次序5.2.2邏輯表達(dá)式5.2.1邏輯運(yùn)算符及其優(yōu)先次序C語(yǔ)言提供三種邏輯運(yùn)算符:&&“邏輯與”雙目(元)運(yùn)算符(相當(dāng)于AND)
||“邏輯或”雙目(元)運(yùn)算符(相當(dāng)于OR)
!“邏輯非”一目(元)運(yùn)算符(相當(dāng)于NOT)如:(a>b)&&(x>y);(a>b)||(x>y);!(a>b);邏輯運(yùn)算舉例如下:
a&&b若a,b為真,則a&&b為真。
a||b若a,b之一為真,則a||b為真。
!a若a為真,則!a為假。
在一個(gè)邏輯表達(dá)式中如果包含多個(gè)邏輯運(yùn)算符,如
!a&&b||x>y&&c,按以下的優(yōu)先次序:(1)!(非)→&&(與)→||(或),即“!”為三者中最高的;(2)邏輯運(yùn)算符中的“&&”和“||”低于關(guān)系運(yùn)算符,“!”高于算術(shù)運(yùn)算符。如:
(a>b)&&(x>y)可寫成:a>b&&x>y
(a==b)||(x==y)可寫成:a==b||x==y
(!a)||(a>b)可寫成:!a||a>b!(邏輯非)算術(shù)運(yùn)算符關(guān)系運(yùn)算符&&和||賦值運(yùn)算符5.2.2邏輯表達(dá)式用邏輯運(yùn)算符將關(guān)系表達(dá)式或邏輯量連接起來(lái)的式子就是邏輯表達(dá)式。邏輯表達(dá)式的值是一個(gè)邏輯量“真”或“假”。C語(yǔ)言編譯系統(tǒng)在給出邏輯運(yùn)算結(jié)果時(shí),以1代表“真”,以0代表“假”。但在判斷一個(gè)量是否為“真”時(shí),以0代表“假”,以非0代表“真”,即將一個(gè)非零的數(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。
如果在一個(gè)表達(dá)式中不同位置上出現(xiàn)數(shù)值,應(yīng)區(qū)分哪些是作為數(shù)值運(yùn)算或關(guān)系運(yùn)算的對(duì)象,哪些作為邏輯運(yùn)算的對(duì)象。如:5>3&&8<4-!0(結(jié)果為0)邏輯運(yùn)算符兩側(cè)的運(yùn)算對(duì)象不但可以是0和1,或者是0和非0的整數(shù),也可以是任何類型的數(shù)據(jù),可以是字符型、實(shí)型或指針型等。系統(tǒng)最終以0和非0來(lái)判斷它們屬于“真”或“假”。例如:‘c’&&‘d’的值為1,因?yàn)椤甤’和‘d’的ASCII值都不為0,按“真”處理。在邏輯表達(dá)式的求解中,并不是所有的邏輯運(yùn)算符都被執(zhí)行,只是在必須執(zhí)行下一個(gè)邏輯運(yùn)算符才能求出表達(dá)式的解時(shí),才執(zhí)行該運(yùn)算符。如:(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時(shí),由于“a>b”的值為0,m=0,而“n=c>d”不被執(zhí)行,因此n的值不是0而仍保持原值1。用邏輯表達(dá)式來(lái)表示復(fù)雜的條件例如,判別某一年year是否閏年。閏年的條件是符合下面二者之一:①能被4整除,但不能被100整除。②能被400整除。邏輯表達(dá)式表示為:
(year%4==0&&year%100!=0)||year%400==0上述表達(dá)式值為真(1),則year為閏年;否則為非閏年。
還可以加一個(gè)“!”來(lái)判別非閏年:
!((year%4==0&&year%100!=0)||year%400==0)
若表達(dá)式值為真(1),year為非閏年。
§5.3if語(yǔ)句5.3.1if語(yǔ)句的三種形式5.3.2if語(yǔ)句的嵌套5.3.3條件運(yùn)算符5.3.1if語(yǔ)句的三種形式if語(yǔ)句:判別條件是否滿足,來(lái)決定程序的流程(執(zhí)行兩路操作之一)。(1)if(表達(dá)式)語(yǔ)句例如:if(x>y)printf("%d",x);表達(dá)式語(yǔ)句假(0)真(非0)(2)if(表達(dá)式)語(yǔ)句1else
語(yǔ)句2例如:if(x>y)printf("%d",x);elseprintf("%d",y);表達(dá)式語(yǔ)句1語(yǔ)句2假真(3)
if
(表達(dá)式1)
語(yǔ)句1
elseif(表達(dá)式2)語(yǔ)句2
elseif(表達(dá)式3)語(yǔ)句3
elseif(表達(dá)式m)語(yǔ)句m
else語(yǔ)句n
例如:
if(num>500)cost=0.15;
elseif(num>300)cost=0.10;
elseif(num>100)cost=0.075;
elseif(num>50)cost=0.05;
elsecost=0;
….表達(dá)式1表達(dá)式2表達(dá)式3表達(dá)式4語(yǔ)句5語(yǔ)句4語(yǔ)句3語(yǔ)句2語(yǔ)句1假假假假真真真真對(duì)if語(yǔ)句的三點(diǎn)說(shuō)明(1)if后面的“表達(dá)式”,一般為邏輯表達(dá)式或關(guān)系表達(dá)式。例如:if(a==b&&x==y)printf(“a=b,x=y”);
系統(tǒng)對(duì)表達(dá)式的值進(jìn)行判斷,若為0,按“假”處理,若為非0,按“真”處理,執(zhí)行指定的語(yǔ)句。表達(dá)式可以是任意的數(shù)值類型(包括整型、實(shí)型、字符型、指針型數(shù)據(jù))。例如:if(3)printf(“O.K.”);執(zhí)行結(jié)果:O.K.
if(‘a(chǎn)’)printf(“%d”,‘a(chǎn)’);執(zhí)行結(jié)果:97
(2)第二、第三種形式的if語(yǔ)句中,在每個(gè)else前面有一分號(hào),整個(gè)語(yǔ)句結(jié)束處有一分號(hào)。例如:if(x>0)
printf(“%f”,x);
else
printf("%f",-x);
這個(gè)分號(hào)是if語(yǔ)句中的內(nèi)嵌語(yǔ)句所要求的。如果無(wú)此分號(hào),則出現(xiàn)語(yǔ)法錯(cuò)誤。
(3)在if和else后面可以只含一個(gè)內(nèi)嵌的操作語(yǔ)句,也可以有多個(gè)操作語(yǔ)句。若有多個(gè)操作語(yǔ)句,則用花括號(hào)“{}”將幾個(gè)語(yǔ)句括起來(lái)成為一個(gè)復(fù)合語(yǔ)句。例如:if(a+b>c&&b+c>a&&c+a>b)
{s=0.5*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("area=%6.2f",area;}
elseprintf("itisnotatrilateral");注意:在{}外面不需要再加分號(hào)。例5.1:輸入兩個(gè)實(shí)數(shù),按代數(shù)值由小到大
輸出這兩個(gè)數(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);}運(yùn)行示例:3.6,-3.2↙-3.20,3.60
a>b?交換a、b的位置假真
例5.2:輸入三個(gè)數(shù)a,b,c,按由小到大輸出。main(){floata,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);}運(yù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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度網(wǎng)絡(luò)安全風(fēng)險(xiǎn)評(píng)估與解決方案合同范本3篇
- 二零二五版股權(quán)激勵(lì)合同:某上市公司對(duì)高級(jí)管理人員股權(quán)激勵(lì)計(jì)劃3篇
- 2025年度時(shí)尚服飾店開(kāi)業(yè)活動(dòng)承包合同3篇
- 2025年度高端不銹鋼醫(yī)療器械制造委托合同3篇
- 二零二五版智能穿戴設(shè)備代加工合同范本2篇
- 二零二五年度環(huán)保型車間生產(chǎn)承包服務(wù)合同范本3篇
- 二零二五年高管子女教育援助與扶持合同3篇
- 2025年草場(chǎng)租賃與牧區(qū)基礎(chǔ)設(shè)施建設(shè)合同3篇
- 二零二五版涵洞工程勞務(wù)分包單價(jià)及工期延誤賠償合同3篇
- 二零二五版財(cái)務(wù)報(bào)表編制會(huì)計(jì)勞動(dòng)合同范本3篇
- GB/T 34241-2017卷式聚酰胺復(fù)合反滲透膜元件
- GB/T 12494-1990食品機(jī)械專用白油
- 運(yùn)輸供應(yīng)商年度評(píng)價(jià)表
- 成熙高級(jí)英語(yǔ)聽(tīng)力腳本
- 北京語(yǔ)言大學(xué)保衛(wèi)處管理崗位工作人員招考聘用【共500題附答案解析】模擬試卷
- 肺癌的診治指南課件
- 人教版七年級(jí)下冊(cè)數(shù)學(xué)全冊(cè)完整版課件
- 商場(chǎng)裝修改造施工組織設(shè)計(jì)
- 統(tǒng)編版一年級(jí)語(yǔ)文上冊(cè) 第5單元教材解讀 PPT
- 加減乘除混合運(yùn)算600題直接打印
- ASCO7000系列GROUP5控制盤使用手冊(cè)
評(píng)論
0/150
提交評(píng)論