C語(yǔ)言程序設(shè)計(jì)(復(fù)習(xí)一)_第1頁(yè)
C語(yǔ)言程序設(shè)計(jì)(復(fù)習(xí)一)_第2頁(yè)
C語(yǔ)言程序設(shè)計(jì)(復(fù)習(xí)一)_第3頁(yè)
C語(yǔ)言程序設(shè)計(jì)(復(fù)習(xí)一)_第4頁(yè)
C語(yǔ)言程序設(shè)計(jì)(復(fù)習(xí)一)_第5頁(yè)
已閱讀5頁(yè),還剩198頁(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)介

C程序設(shè)計(jì)§1.3簡(jiǎn)單的C程序介紹

為了更好、更快地掌握C程序,我們先看幾個(gè)C語(yǔ)言程序:例1.main(){printf("Thisisacprogram\n");}例2.main()/*求兩個(gè)數(shù)之和*/

{

inta,b,sum;/*這是定義變量*/

a=123;b=456;sum=a+b;printf("sumis%d\n",sum);}例3.main()/*主函數(shù)*/{inta,b,c;/*定義變量*/scanf("%d,%d",&a,&b);/*輸入變量a和b的值*/c=max(a,b);/*調(diào)用max函數(shù),將得到的值賦給c*/printf("max=%d",c;)/*輸出c的值*/}intmax(x,y)intx,y;/*對(duì)形參x、y作類型定義*/{intz;//max函用到的變量z,也要加以定義

z=y;if(x>y)z=x;return(z);/*將z的值返回,通過(guò)max帶回調(diào)用處*/}通過(guò)分析,初步看到:1.C程序全部由一個(gè)一個(gè)的函數(shù)構(gòu)成。至少有一個(gè)主函數(shù)main(),其它函數(shù)可被主函數(shù)調(diào)用或相互調(diào)用。其它函數(shù)可為C函數(shù)庫(kù)中函數(shù),也可為自己編的函數(shù)。上述特點(diǎn)稱為程序的模塊化.2.

函數(shù)的構(gòu)成:

函數(shù)說(shuō)明+函數(shù)體

函數(shù)體:

變量定義與執(zhí)行語(yǔ)句

可允許空函數(shù):

dump(){}函數(shù)說(shuō)明包括:函數(shù)名、類型、屬性、參數(shù)等3.

函數(shù)的執(zhí)行一定從main()開(kāi)始。盡管main()函數(shù)位置可自由。4.

書寫自由,一個(gè)語(yǔ)句可多行,一行可多個(gè)語(yǔ)句。5.

每一條語(yǔ)句必須有一個(gè)分號(hào);6.C語(yǔ)言的輸入/出均以函數(shù)形式出現(xiàn)。scanf(),printf().7.

可用/

/對(duì)C語(yǔ)言加注釋第二章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式§2.1.數(shù)據(jù)類型

著名計(jì)算機(jī)科學(xué)家沃思提出:

程序=數(shù)據(jù)結(jié)構(gòu)+算法

所以,存放數(shù)據(jù)的方式直接反映了一種語(yǔ)言的數(shù)據(jù)表達(dá)能力。數(shù)據(jù)的存儲(chǔ)方式又稱之為:數(shù)據(jù)類型。

舉一個(gè)例子:以考生各科成績(jī)及總分排隊(duì)問(wèn)題為列。

成績(jī)的存放–––以數(shù)組形式

排隊(duì)方法––––算法C數(shù)據(jù)類型豐富,分為:基本類型構(gòu)造類型指針類型空類型整型字符型實(shí)型單精度雙精度數(shù)組結(jié)構(gòu)體共用體數(shù)據(jù)有常量、變量之分,均為其中一種類型。枚舉例:#definePRICE30main(){intnum,total;num=10;total=num*PRICE;printf("total=%d",total);}還可用一個(gè)符號(hào)表示一個(gè)常量符號(hào)常量2.2.2變量

程序執(zhí)行中可以改變的量稱為變量。變量包括變量名和變量值。變量名

用標(biāo)識(shí)符命名,對(duì)應(yīng)一定數(shù)量的內(nèi)存存貯單元,其單元數(shù)視變量類型而定。標(biāo)識(shí)符

由字母、數(shù)字、下劃線組成且由字母或下劃線開(kāi)頭的字符串。

標(biāo)識(shí)符可用來(lái)命名變量及作為常量名、函數(shù)名、類型名、文件名等,一個(gè)程序內(nèi)不得有重復(fù)名。

如:_sum,sum,student_name,price等

習(xí)慣上,變量名、函數(shù)名等用小寫字母表示。常量名用大寫字母表示(以增加可讀性)。C語(yǔ)言中,變量須先定義,后使用如:intstudentstudent=30;

則若寫成student=30,則未定義,編譯時(shí)指出其錯(cuò)。

一旦變量被定義,即可在編譯時(shí)為其分配相應(yīng)數(shù)量的單元,并檢查其運(yùn)算的合法性。§2.3整型數(shù)據(jù)2.3.1整型常量整型常量

整型常數(shù)C語(yǔ)言提供了三種形式

十進(jìn)制如:256,308,-120等八進(jìn)制以數(shù)字0開(kāi)頭表示的整數(shù)例:0235,0146-012等.0235=2×82+3×8+5=15710

0146=1×82+4×8+6=10210-012=-(1×8+2)=-1010十六進(jìn)制以"0x"開(kāi)頭的整型數(shù)

如:0x16,0x28§2.4實(shí)型數(shù)據(jù)2.4.1實(shí)型常量有二種表示形式

1.十進(jìn)制形式如:0.126,523.64等2.

指數(shù)形式對(duì)于較大或較小的數(shù),可用指數(shù)形式

0.00001261.26E–512600001.26E+6或1.26E6'E','e'均可.§2.5字符型數(shù)據(jù)

用一對(duì)單引號(hào)括起來(lái)的單個(gè)字符。

如'a','A',二者不一樣.

此外,以"\"開(kāi)頭后接一個(gè)字符或n個(gè)字符代表了一種特殊字符常量。–––轉(zhuǎn)義字符。

如\n––換行,\r––回車2.5.1字符常量其它如下表:字符形式\n\t\v\b\r\f\\\'\ddd\xxh功能換行橫向跳格(即跳到下一個(gè)輸出區(qū))豎向跳格退格回車走紙換頁(yè)反斜杠字符“\”單引號(hào)(撇號(hào))字符1到3位8進(jìn)制數(shù)所代表的字符1到2位16進(jìn)制數(shù)所代表的字符其定義方式為:

charc1,c2;c1='A';c2='B';字符變量只占一個(gè)字節(jié)單元。2.5.2字符變量用來(lái)存放一個(gè)字符的變量.

一個(gè)字符存入一個(gè)字符變量。其對(duì)應(yīng)單元存放的是其ASCII碼,即ASCII碼的二進(jìn)制形式。

由此:字符變量中的數(shù)據(jù)是一整型數(shù)據(jù)。輸出時(shí)既可輸出字符,亦可輸出整數(shù),且字符變量可作整數(shù)運(yùn)算。2.5.3字符數(shù)據(jù)的實(shí)際存放形式例1:main(){charc1,c2;c1=97;c2=98;printf("%c%c",c1,c2)}運(yùn)行結(jié)果ab

看如下幾個(gè)例子:例2:main(){charc1,c2;c1='a';c2='b';c1=c1–32;c2=c2–32;printf("%c%c",c1,c2)}運(yùn)行結(jié)果AB例3:main(){inti;charc;i='a';c=97;printf("%c,%d\n",c,c);printf("%c,%d\n",i,i);}

運(yùn)行結(jié)果:a,97a,97用雙引號(hào)括起來(lái)的字符串。

例:"GoodMorning!"

注意'A'與"A"是不同字符串存放時(shí),在最后加上"/0"––空字符。

于是:GoodMorning!/02.5.4字符串常量"A"A/0但'A'

A注意:1.

字符串長(zhǎng)度=實(shí)際字符個(gè)數(shù)+1,但最后\0不輸出.

printf("GoodMorning!")此處不寫/0。自動(dòng)加上。2.

單個(gè)字符的字符串不能賦給字符變量。

例:charc;c="a";是錯(cuò)誤的?!?.8算術(shù)運(yùn)算符與算術(shù)表達(dá)式運(yùn)算符:運(yùn)算的符號(hào)表示。

C語(yǔ)言有豐富的運(yùn)算功能,先簡(jiǎn)述之2.8.1.C運(yùn)算符1.

算術(shù)運(yùn)算符+,–,,/,%,等3.

邏輯運(yùn)算符!,&&,||2.

關(guān)系運(yùn)算符>,<,==,>=,<=,!=4.

位運(yùn)算符<<,>>,~,|,^,&.5.

賦值運(yùn)算符=等6.

條件運(yùn)算符?=7.

逗號(hào)運(yùn)算符,8.

指針運(yùn)算符*,&11.

分量運(yùn)算符?,,12.

下標(biāo)運(yùn)算符[]13.

其它運(yùn)算符如函數(shù)的調(diào)用()9.

求字節(jié)數(shù)運(yùn)算符sizeof10.

強(qiáng)制類型轉(zhuǎn)換運(yùn)算符(類型)

2.8.2算術(shù)運(yùn)算符和算術(shù)表達(dá)式一、基本算術(shù)運(yùn)算符+

加法正值3+6,+3–減法負(fù)值6–4,–5乘法38/除法8/5%求余7%4的值為3注:

兩個(gè)整型數(shù)據(jù)相除(結(jié)果為整,一般向零靠攏)。–5/3–1“/”中,有一個(gè)float,則結(jié)果為double型,使用時(shí)千萬(wàn)注意int/int出現(xiàn)數(shù)據(jù)丟失。四、自增,自減運(yùn)算符設(shè)有inti=3;++自增1––自減1則:++i,i++都會(huì)使i變?yōu)?,但有區(qū)別:++i:先使i值+1,再使用i值;i++:先使用i值,再使i值+1.j=++i;j=4,i=4.(i=i+1;j=i;)j=i++;j=3,i=4.

(j=i;i=i+1)同理:––i,i––,均使i值–1,但:

又如:printf("i=%d\n",i++);

結(jié)果:i=3若:

printf("i=%d\n",++i);

結(jié)果:i=4––i:先使i值–1,再使用i值;i––:先使用i值,再使i值–1i=3;幾點(diǎn)注意:1.++和––運(yùn)算法只能用于變量,不得用于常量和表達(dá)式.2.++,–

–,的結(jié)合性為從右至左,而一般算術(shù)運(yùn)算符為從左至右。如:如5++,(a+b)++均為不合法.–i++"–"和"++"為同一優(yōu)先級(jí).–i++相當(dāng)于–(i++)若i=3,則結(jié)果為–3,i為4.++,––主要用于循環(huán)變量自增或自減。第三章最簡(jiǎn)單的C程序設(shè)計(jì)§3.1C語(yǔ)句概述C語(yǔ)句全部為可執(zhí)行語(yǔ)句,對(duì)應(yīng)若干機(jī)器操作指命令C程序由許多源文件組成。(分別編譯,然后連接)每一個(gè)源文件由預(yù)編譯命令和若干函數(shù)組成。每一個(gè)函數(shù)由說(shuō)明部分和語(yǔ)句部分組成。其結(jié)構(gòu)如圖除說(shuō)明部分外,重要部分為語(yǔ)句部分。C程序源程序文件1源程序文件i源程序文件n預(yù)編譯命令函數(shù)1函數(shù)n說(shuō)明部分執(zhí)行部分(語(yǔ)句)……控制語(yǔ)句––改變語(yǔ)句的執(zhí)行順序共有9種控制語(yǔ)句:if()~else~(條件)for()~(循環(huán))while()~(循環(huán))do~while(循環(huán))continue(結(jié)束本次循環(huán))switch(多分支選擇)break(中止整個(gè)循環(huán))goto(轉(zhuǎn)移)return(函數(shù)返回)()表示條件,~表示語(yǔ)句

在C程序的順序、選擇、循環(huán)三種結(jié)構(gòu)中,選擇結(jié)構(gòu)是一重要結(jié)構(gòu)第四章邏輯運(yùn)算和判斷選取控制問(wèn)題:條件如何表達(dá)?邏輯運(yùn)算、關(guān)系運(yùn)算§4.1關(guān)系運(yùn)算符

關(guān)系運(yùn)算比較運(yùn)算,如:a>3為一比較運(yùn)算,當(dāng)a=5,a>3成立。結(jié)果稱為“真”,否則,如:a=1,a>3不成立,為假。上述表達(dá)式a>3稱為關(guān)系表達(dá)式。4.1.1

關(guān)系運(yùn)算符及其優(yōu)先次序1.<,<=,>,>=為同一優(yōu)先級(jí),==,!=等為同一優(yōu)先級(jí),但前者高于后者。2.關(guān)系運(yùn)算符優(yōu)先級(jí)低于算術(shù)運(yùn)算符。C語(yǔ)言提供了六種關(guān)系運(yùn)算符

<<=>>===!=優(yōu)先級(jí)為:3.關(guān)系運(yùn)算符優(yōu)先級(jí)高于賦值運(yùn)算符。如下圖:算術(shù)運(yùn)算符賦值運(yùn)算符關(guān)系運(yùn)算符高低舉例:c>a+bc>(a+b)a>b!=c(a>b)!=ca==b<ca==(b<c)a=b>ca=(b>c)4.1.2

關(guān)系表達(dá)式關(guān)系表達(dá)式的結(jié)果值規(guī)定為1或0.如:a>b,a+b>b+c,(a=3)>(b=5),'a'>'b',(a>b)>(b<c)完整的定義:用關(guān)系運(yùn)算符將兩個(gè)表達(dá)式(算術(shù)、關(guān)系、邏輯、賦值、字符等表達(dá)式)連接起來(lái)的式子。1––結(jié)果為真(成立)0––結(jié)果為假(不成立)§4.2邏輯運(yùn)算符和邏輯表達(dá)式

用邏輯運(yùn)算符將關(guān)系表達(dá)式、邏輯表達(dá)式連接起來(lái)的式子–––邏輯表達(dá)式。a&&b當(dāng)a,b均為1時(shí),才為1a||b當(dāng)a,b中有一個(gè)為1時(shí),才為1!a當(dāng)a為1,!a為0,反之為1.由此看到:||和&&為雙目運(yùn)算符.!為單目運(yùn)算符。4.2.2

邏輯表達(dá)式

1.邏輯表達(dá)式的值與關(guān)系表達(dá)式值一樣,真為1,假為0。例:a=4則!a值為0.此處只要a0,為真.則!a值為0.a=4,b=5a&&b為1

前面已定義了邏輯表達(dá)式,以下看一看邏輯表達(dá)式的值及具體的運(yùn)算。程序的三種基本結(jié)構(gòu)

從結(jié)構(gòu)化程序設(shè)計(jì)角度出發(fā),程序有三種結(jié)構(gòu):·順序結(jié)構(gòu)·選擇結(jié)構(gòu)·循環(huán)結(jié)構(gòu)1.順序結(jié)構(gòu)表示ABAB先執(zhí)行A,再執(zhí)行B.2.選擇結(jié)構(gòu)表示為ABPTFBTPFA存在某條件P,若P為真,則執(zhí)行A,否則執(zhí)行B。3.循環(huán)結(jié)構(gòu)表示為PFTAAP為T(1)當(dāng)型結(jié)構(gòu)當(dāng)P條件成立時(shí)(T),反復(fù)執(zhí)行A,直到P為“假”時(shí)才停止循環(huán).有兩種結(jié)構(gòu):當(dāng)型和直到型(2)

直到型APFTA直到P為真

先執(zhí)行A,再判斷P,若為F,再執(zhí)行A,如此反復(fù),直到P為T.

另外:由選擇結(jié)構(gòu)可以派生出另一種基本結(jié)構(gòu)––多分支結(jié)構(gòu).KK=K1A1A2AiAn……K=K2K=Ki

已證明:上述三種結(jié)構(gòu)組成的程序可以解決全部的問(wèn)題,所以任何一種高級(jí)語(yǔ)言都具備上述三種結(jié)構(gòu)。§4.3if語(yǔ)句–––條件判斷4.3.1if的三種形式功能:當(dāng)表達(dá)式值非0時(shí),執(zhí)行語(yǔ)句A,否則不執(zhí)行語(yǔ)句A.表達(dá)式語(yǔ)句A=00例如:

if(x>y)printf("%d",x)形式1

if(表達(dá)式)

語(yǔ)句A其流程圖:形式2if(表達(dá)式)

語(yǔ)句Aelse語(yǔ)句B功能:表達(dá)式為非0,執(zhí)行語(yǔ)句A

表達(dá)式為0,執(zhí)行語(yǔ)句B表達(dá)式語(yǔ)句A語(yǔ)句B0=0例:if(x>y) printf("%d",x); elseprintf("%d",y);形式3if(表達(dá)式1)

語(yǔ)句1

elseif(表達(dá)式2)

語(yǔ)句2elseif(表達(dá)式3)

語(yǔ)句3……elseif(表達(dá)式n)語(yǔ)句nelse

語(yǔ)句n流程:表達(dá)1表達(dá)2表達(dá)3表達(dá)n語(yǔ)句1語(yǔ)句2語(yǔ)句3語(yǔ)句n語(yǔ)句n語(yǔ)句1……0=0=0000如:if(3)prinft("o.k");if('a')…1.表達(dá)式可以是邏輯、關(guān)系,甚至是算術(shù)表達(dá)式。2.上述形式中的語(yǔ)句必須以分號(hào)結(jié)束3.上述形式中的語(yǔ)句可以是由{}括起來(lái)的復(fù)合語(yǔ)句。此時(shí),在{}外可以不用分號(hào).注意的問(wèn)題: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);}例4.1輸入兩個(gè)實(shí)數(shù),按代數(shù)值由小到大次序輸出這兩個(gè)數(shù)。

3.6,–3.2–3.20,3.60運(yùn)行情況如下:例4.2輸入三個(gè)數(shù),按大小順序輸出。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)行情況如下:3,7,11.00,3.00,7.004.3.2.if語(yǔ)句的嵌套if(表達(dá)式1)內(nèi)嵌ifelse內(nèi)嵌注意:else與最近的if配對(duì).一般形式在上述形式的if語(yǔ)句中,又可以是if語(yǔ)句–––稱為嵌套。if(表達(dá)式2)語(yǔ)句1if(表達(dá)式3)語(yǔ)句3else語(yǔ)句2else語(yǔ)句4例:if()if()語(yǔ)句2else語(yǔ)句3if(){if()語(yǔ)句1}

else…所以:必要時(shí)加{}.if()語(yǔ)句1else§4.4switch語(yǔ)句–––開(kāi)關(guān)語(yǔ)句

問(wèn)題:當(dāng)某一表達(dá)式有n個(gè)取值,每一取值執(zhí)行一語(yǔ)句,則如果用內(nèi)嵌if十分繁鎖,而用switch簡(jiǎn)單.一般形式:switch(表達(dá)式){case常量表達(dá)式1:語(yǔ)句1

case常量表達(dá)式2:語(yǔ)句2

case常量表達(dá)式n:語(yǔ)句ndefault:語(yǔ)句n+1}例:

根據(jù)成績(jī)等級(jí)打印百分?jǐn)?shù)段.switch(grade){case'A':printf("85~100\n");case'B':printf("70~84\n");case'C':printf("60~69\n");case'D':printf("<60\n");default:printf("error\n");}

根據(jù)表達(dá)式的取值,判斷其與哪一個(gè)常量表達(dá)式相等。如=表達(dá)式i,則自語(yǔ)句i開(kāi)始執(zhí)行,直到語(yǔ)句n+1止。若與所有常量表達(dá)式值不相等,則從default后的語(yǔ)句開(kāi)始執(zhí)行。功能:以上存在一個(gè)問(wèn)題:沒(méi)有完全起到分支作用。解決辦法:增加break語(yǔ)句,使之跳出switch結(jié)構(gòu)。switch(表達(dá)式)

{case常表1:語(yǔ)句1;

break;

case常表2:語(yǔ)句2;

break;……

case常表n:語(yǔ)句n;

break;default:語(yǔ)句n+1;}注:

1.

常表值必須互不相等,否則二異性。2.case順序無(wú)關(guān)緊要。3.

不一定非用break不可,有時(shí)幾種情況合并執(zhí)行一組語(yǔ)句。switch(grade){case'A':case'B':case'C':printf(">60\n");break;case'D':printf("<60\n");break;}第五章循環(huán)控制§5.1概述

前面已介紹了順序結(jié)構(gòu),選擇結(jié)構(gòu),本章介紹循環(huán)結(jié)構(gòu)。如:

sum=1+2+3+…+100;實(shí)際問(wèn)題:

一組重復(fù)執(zhí)行的語(yǔ)句。則用循環(huán)結(jié)構(gòu)解決。C語(yǔ)言用四種形式循環(huán)2.

while語(yǔ)句3.

do…while語(yǔ)句4.

for語(yǔ)句1.if語(yǔ)句與goto語(yǔ)句§5.3while語(yǔ)句1.形式:while(表達(dá)式)語(yǔ)句2.執(zhí)行過(guò)程:先判斷表達(dá)式的值。若0.則執(zhí)行其后面的語(yǔ)句,否則while執(zhí)行完畢。專門的當(dāng)型循環(huán)語(yǔ)句––while語(yǔ)句3.

流程圖:表達(dá)式語(yǔ)句0=0下一語(yǔ)句將上述例子用while語(yǔ)句寫出

while(i<=100){sum+=i;i++;}語(yǔ)句中應(yīng)有使表達(dá)式=0的語(yǔ)句。否則會(huì)出現(xiàn)無(wú)限循環(huán)–––"死"循環(huán)。注:

while后面的語(yǔ)句一般為復(fù)合語(yǔ)句,即:加{}§5.4do…while語(yǔ)句

一種專門的“直到型”循環(huán)語(yǔ)句。2.執(zhí)行過(guò)程:先執(zhí)行語(yǔ)句,再判表達(dá)式的值,若0,再執(zhí)行語(yǔ)句,否則結(jié)束循環(huán)3.流程:語(yǔ)句表達(dá)式0=01.形式:do語(yǔ)句while(表達(dá)式);main(){inti,sum=0;i=1;do{sum=sum+i;i++;}while(i<=100);printf("%d",sum);}程序如下:while語(yǔ)句與do…while語(yǔ)句的區(qū)別:當(dāng)?shù)谝淮螆?zhí)行時(shí),若表達(dá)式=0時(shí),則while語(yǔ)句與dowhile有所不同,dowhile執(zhí)行一次后面的語(yǔ)句,而while不執(zhí)行?!?.5for語(yǔ)句1.形式

首先計(jì)算表達(dá)式1,接著執(zhí)行表達(dá)式2,若表達(dá)式2的值0,則執(zhí)行語(yǔ)句,接著計(jì)算表達(dá)式3,再判斷表達(dá)式2的值.依此重復(fù)下去,直到表達(dá)式2的值=0(假)。一種形式更為靈活的循環(huán)語(yǔ)句。2.執(zhí)行過(guò)程for(表達(dá)式1;表達(dá)式2;表達(dá)式3)語(yǔ)句3.

流程:計(jì)算表達(dá)式1求表達(dá)式2值語(yǔ)句計(jì)算表達(dá)式3結(jié)束for語(yǔ)句=0(假)0(真)用for語(yǔ)句寫出上述例子for用while代替的流程表達(dá)式1;

while(表達(dá)式2){語(yǔ)句表達(dá)式3;}for(i=1;i<=100;i++)sum+=i;for語(yǔ)句完全可以用while代替,但for直觀、簡(jiǎn)單、方便4.for語(yǔ)句的幾種特例例:任意輸入兩個(gè)整數(shù)a,b,求main(){inti,j,a,b,sum;printf("pleaseinputtwonumber!\n")scanf("a=%d,b=%d",&a,&b);i=a;j=b;可以省略表達(dá)式1,但須保留分號(hào);這時(shí)在for之前就得賦值給循環(huán)變量;if(a>b){i=b;j=a;}for(;i<=j;i++)sum=sum+i;printf("\nsum=%d",sum);}

表達(dá)式2一般不可省略,否則為無(wú)限循環(huán)相當(dāng)于:while(1){sum=sum+i;i++;}例:for(i=1;;i++)sum=sum+i;相當(dāng)于條件永真、永不為0,若用while表示

表達(dá)式3亦可省略,但在循環(huán)體中須有語(yǔ)句修改循環(huán)變量;以使表達(dá)式2在某一時(shí)刻為0而正常結(jié)束循環(huán)。例:for(sum=0,i=1;i<=100;){sum=sum+v;i++;}

若同時(shí)省略表達(dá)式1,表達(dá)式3,則相當(dāng)于while(表達(dá)式2)語(yǔ)句。相當(dāng)于

while(i<=100)

{

sum+=i;i++;}例:for(;i<=100,){sum+=i;i++;}§5.6

循環(huán)的嵌套

與其它語(yǔ)言一樣,當(dāng)循環(huán)體中又包含了另一個(gè)完整的循環(huán)語(yǔ)句時(shí)–––嵌套。C有三種循環(huán)語(yǔ)句,均可以相互嵌套:

while(){…while() …{}}§5.7

幾種循環(huán)的比較1.對(duì)于同一問(wèn)題,四種循環(huán)可相互替代。但不提倡用goto.2.for循環(huán)功能強(qiáng)于while,do…while.但若不是明顯地給出循環(huán)變量初終值(或修改條件),則應(yīng)用while或do…while.以增強(qiáng)程序的結(jié)構(gòu)化和可讀性。3.要防止無(wú)限循環(huán)––死循環(huán)。4.循環(huán)過(guò)程中,為了結(jié)束本次循環(huán)或跳出整個(gè)循環(huán)。分別要用到continue和break語(yǔ)句?!?.8

break語(yǔ)句和contiune語(yǔ)句

問(wèn)題:計(jì)算圓的面積r2,半徑取1,2,3,4…,當(dāng)面積>100時(shí)結(jié)束。for(r=1;r<=10;r++){area=pirr;if(area>100)break;

}printf("%f",area);}5.8.1break語(yǔ)句

從結(jié)構(gòu)化程序要求出發(fā),用break,退出循環(huán),進(jìn)入下一條語(yǔ)句。

注:break只能用于循環(huán)語(yǔ)句和switch語(yǔ)句。5.8.2continuce語(yǔ)句

main(){intn;for(n=100;n<200;n++)if(n%3!=0)printf("%d",n);}問(wèn)題:編寫程序,打印100~200中不能被3整除的數(shù)。換一種方式:main(){intn;for(n=100;n<=200;n++){if(n%3==0)continue;printf("%d",n);}}continue語(yǔ)句起了結(jié)束本次循環(huán)的作用?!?.9

程序舉例例1:

求Fibonacci數(shù)例:1,1,2,3,5,8,…前40個(gè)數(shù)。程序要點(diǎn):每輸出4個(gè)數(shù)時(shí)換行。f1=f1+f2;

f2=f2+f1;交替的結(jié)果正好為一序列規(guī)律:

F1=1,F2=1Fn=Fn–1+Fn–2(n>2)程序如下:main(){longintf1,f2; inti; f1=1;f2=1; for(i=1;i<=20;i++) { printf("%12ld%12ld",f1,f2);if(i%2==0)printf("\n");f1=f1+f2;f2=f2+f1;}}f1=1,f2=1fori=1to20

輸出f1,f2f1=f1+f2f2=f2+f1圖5.13運(yùn)行結(jié)果為:15342331597109467502551422935245782415781718553772584177111211393832040570288739088169213896104181286571964181346269922746563245986321144987676546368317811217830914930352102334155

判一個(gè)數(shù)m是否為素?cái)?shù)的方法:

每打印10個(gè)數(shù),換一次行。當(dāng)用2,3,…的整數(shù)去除它時(shí)均不能除盡,則為素?cái)?shù)。程序如下:#include<stdio.h>

#include<math.h>main()

{例2.

求100~200的素?cái)?shù).intm,k,i,n=0;for(m=101;m<=200;m=m+2)

{

if(n%10==0)printf("\n");

k=sqrt(m);for(i=2;i<=k;i++)

if(m%i==0)break;if(i>=k+1){printf("%d",m);n=n+1;}}}101103107109113127131137139149151157163167173179181191193197199運(yùn)行結(jié)果如下:一.冒泡法:排序過(guò)程:(1)比較第一個(gè)數(shù)與第二個(gè)數(shù),若a[0]>a[1],則交換;然后比較第二個(gè)數(shù)與第三個(gè)數(shù);依次類推,直至第n-1個(gè)數(shù)和第n個(gè)數(shù)比較為止——第一趟冒泡排序,結(jié)果最大的數(shù)被安置在最后一個(gè)元素位置上(2)對(duì)前n-1個(gè)數(shù)進(jìn)行第二趟冒泡排序,結(jié)果使次大的數(shù)被安置在第n-1個(gè)元素位置(3)重復(fù)上述過(guò)程,共經(jīng)過(guò)n-1趟冒泡排序后,排序結(jié)束。#include<stdio.h>main(){inta[11],i,j,t;printf("Input10numbers:\n");for(i=1;i<11;i++)scanf("%d",&a[i]);printf("\n");

for(j=1;j<=9;j++)for(i=1;i<=10-j;i++)

if(a[i]>a[i+1])

{t=a[i];a[i]=a[i+1];a[i+1]=t;}printf("Thesortednumbers:\n");for(i=1;i<11;i++)printf("%d",a[i]);}二、

排序問(wèn)題–––計(jì)算機(jī)處理數(shù)據(jù)的一個(gè)重要問(wèn)題排序算法較多,一種最簡(jiǎn)單的算法–––選擇排序法用得較多?;舅悸?設(shè)有n個(gè)數(shù),需將它們從小到大順序排列。則:2.在剩下的n–1個(gè)元素中,找出第二小的元素并把它放在第二個(gè)位置上。3.對(duì)上述過(guò)程重復(fù),直至剩下一個(gè)元素。1.從n個(gè)元素中,通過(guò)比較,找出最小元素,放在第一個(gè)位置上。例:8,4,20,100,28,1,兩次交換第2次:1,4,20,100,28,8–––

一次交換第3次:1,4,8,100,28,20–––

一次交換第4次:1,4,8,28,100,20,1,4,8,20,100,28兩次交換第5次:1,4,8,20,28,100–––

一次交換第1次:4,8,20,100,28,11,8,20,100,28,4

從以上例子可以看到:用到兩種循環(huán),第一種循環(huán)––找第i小的元素,第二種循––對(duì)其后的元素的一一比較。流程圖:初始化輸入n個(gè)元素a數(shù)組i1ji+1a[i]>a[j]交換a[i]a[j]BANoYesjj+1j>nii+1i>n–1打印結(jié)果結(jié)束內(nèi)循環(huán)外循環(huán)BANoYesYesNo程序:main(){inta[11];inti,j,t;printf("pleaseinput10n~:\n");for(i=1;i<=n;i++)scanf("%d",&a[i]);printf("\n");for(i=1;i<=9;i++)for(j=i+1;j<=10;j++)if(a[i]>a[j]){t=a[i];a[i]=a[j];a[j]=t;}printf("thesortednumbers:\n");for(i=1;i<=10;i++)printf(“%d”,a[i]);}第六章數(shù)組

前面所用到的數(shù)據(jù)均為基本類型(整、實(shí)、字符),為了豐富數(shù)據(jù)類型,須提供強(qiáng)有力的數(shù)據(jù)表達(dá)方式。C語(yǔ)言提供了一種構(gòu)造類型數(shù)據(jù)–––由基本類型按某一規(guī)則組合在一起。

其中數(shù)組:同一種(基本)類型按一定順序組合在一起的數(shù)據(jù)類型?!?.1

一維數(shù)組6.1.1一維數(shù)組的定義1.數(shù)組名的確定方法同變量名。2.C語(yǔ)言用方括號(hào)[]表示數(shù)組元數(shù)個(gè)數(shù)。形式:類型說(shuō)明符數(shù)組名[常量表達(dá)式];例:inta[20];floatx[100];3.常量表達(dá)式為常量和符號(hào)常量。不允許有變量,其表達(dá)式的值代表了元素的個(gè)數(shù)。例:inta[20];

表示有20個(gè)元素且元素從0開(kāi)始編排:a[0],a[1]…,a[19]4.可在定義時(shí)對(duì)靜態(tài)數(shù)組和外部存儲(chǔ)(全局)數(shù)組賦初值,方法如下:

對(duì)部分元素賦初值

staticinta[10]={0,1,2,3,4};靜態(tài)

對(duì)全部元素賦初值

staticinta[10]={10,11,12,13,14,15,16,17,18,19,}如此,只有前5個(gè)元素初值確定,后5個(gè)元素由系統(tǒng)設(shè)置。如對(duì)數(shù)組元素賦同一初值,必須一一寫出:staticinta[10]={0,0,0,0,0,0,0,0,0,0};若賦全部元素的初值,可省略常量表達(dá)式

…a[]={0,1,2,3};

表示a[4],即只有4個(gè)元素。6.1.2一維數(shù)組的引用2.引用方式:數(shù)組名[下標(biāo)]

代表了一個(gè)元素,等價(jià)一個(gè)同類型的變量。3.一般地,一維數(shù)組各元素分配在連續(xù)地內(nèi)存單元之中。1.須象使用變量那樣,先定義,后使用例:a[0]5+a[1]6為正確的算術(shù)表達(dá)式§6.2二維數(shù)組6.2.1二維數(shù)組的定義1.不可將定義寫為inta[4,10]。形式類型說(shuō)明符數(shù)組名[常量表達(dá)式][常量表達(dá)式]例:inta[4][10];floatx[8][20];2.可將二維數(shù)組的元素看成為若干個(gè)特殊的一維數(shù)組。

如:

intb[3][4];則:有三個(gè)特殊的一維數(shù)組b[0],b[1],b[2],每一個(gè)又有四個(gè)元素:b[0][0],b[0][1],b[0][2],b[0][3],b[1][0],b[1][1],b[1][2],b[1][3],b[2][0],b[2][1],b[2][2],b[2][3],3.二維數(shù)組的存放方式為:按行存放。由此可推廣至三維、n維數(shù)組的定義和存放。即:最右邊的下標(biāo)變化最快。4.初始化:

按行給二維數(shù)組賦初值:staticinta[3][4]={{1,2,3,4},{5,6,7,8,},{9,10,11,12,}};可以去掉其中的{}。

可以對(duì)部分元素賦初值,但需表達(dá)清楚。如:staticinta[3][4]={{1,2},{3},{8}}。則相當(dāng)于120030008000可通過(guò)賦初值決定數(shù)組大小。如為二維,則只可省略第一維的大小.staticinta[][4]={1,2,3,…,12};6.2.2二維數(shù)組元素的引用形式:數(shù)組名[下標(biāo)][下標(biāo)]

其中的下標(biāo)為整型表達(dá)式,但不得越界。與一維數(shù)組元素一樣,二維數(shù)組元素相當(dāng)于同類型的簡(jiǎn)單變量。6.2.3程序舉例a=123456b=142536程序如下:main(){staticinta[2][3]={{1,2,3},{4,5,6}};staticintb[3][2],i,j;例1

將一個(gè)二維數(shù)組行和列元素互換,存到另一個(gè)二維數(shù)組中。例如:printf("arraya:\n");for(i=0;i<=1;i++){for(j=0;j<=2;j++){printf("%5d",a[i][j]);b[j][i]=a[i][j];}printf("\n");}printf("arrayb:\n");for(i=0;i<=2;i++){for(j=0;j<=1;j++)printf("%5d",b[i][j]);printf("\n");}}運(yùn)行結(jié)果如下:

arraya:123456arrayb:142536例2.有一個(gè)3×4的矩陣,要求編程序求出其中值最大的那個(gè)元素的值,以及所在的行號(hào)和列號(hào)。max=a[0][0]fori=0to2forj=0to3a[i][j]>maxmax=a[i][j]row=icolum=j輸出:max和row,colum真假二維數(shù)組一般用二重循環(huán)據(jù)此寫出以下程序:main(){inti,j,row=0,colum=0,max;staticinta[3][4]={{1,2,3,4},{9,8,7,6},{–10,10,–5,2}}max=a[0][0];for(i=0;i<=2;i++)for(j=0;j<=3;j++)if(a[i][j]>max){max=a[i][j];row=i;colum=j;

}printf("max=%d,row=%d,colum=%d\n",max,row,colum);}輸出結(jié)果為:

max=10,row=2,colum=1§6.3字符數(shù)組6.3.1字符數(shù)組的定義類型名數(shù)組名大小1.初始化:

直接給出字符串中的各字符

staticchara[4]={'G','o','o','d'};

存放字符數(shù)據(jù)。字符串–––用字符數(shù)組存放。charc[10];若字符多于元素個(gè)數(shù),則語(yǔ)法錯(cuò),反之,后而補(bǔ)"\0"可以去掉定義時(shí)的大小設(shè)置,而通過(guò)自動(dòng)賦值決定 長(zhǎng)度(大小)staticcharx[]={'I','','a','m','','a','','s','t','u','d','e','n','t'};2.字符數(shù)組的引用每一個(gè)字符數(shù)組元素相當(dāng)于一個(gè)字符變量。格式符:%c–––逐個(gè)輸入/輸出字符。

%s–––整個(gè)串一次輸入/輸出。1.輸出(用%s)

用%s輸出時(shí),不輸出‘\0’.

在printf中須直接寫數(shù)組名.

staticcharc[]={"Iamastudent"};printf("%s",c);6.3.2字符數(shù)組的輸入輸出若數(shù)組長(zhǎng)度大于字符串長(zhǎng)度,則遇到‘\0’

即停止輸出

staticcharc[10]="china";printf("%s",c);輸出時(shí)遇到第一個(gè)‘\0’即結(jié)束。2.輸入(用%s)輸入多個(gè)字符串,可用空格隔開(kāi)。

Staticcharstr1[5],str2[5],str3[5];scanf("%s%s%s",str1,str2,str3);輸入字符串時(shí),系統(tǒng)自動(dòng)加上‘\0’則:輸入Howareyou?str1:How\0str2:are\0str3:you\0輸入:Howareyou則只會(huì)將How輸入,且存為scanf中須用地址量,數(shù)組名表示地址量。str:How\0……

但若:staticcharstr[13]scanf("%s",str);6.3.4字符串?dāng)?shù)組舉例例:輸入一行字符,統(tǒng)計(jì)其中有多少個(gè)單詞,單詞之間用空格分隔開(kāi)。程序如下:

#include"stdio.h" main() { charstring[81]; inti,num=0,word=0;charc;gets(string);for(i=0;(c=string[i])!='\0';i++) if(c=='')word=0; elseif(word==0) { word=1; num++; }printf("Thereare%dwordsintheline\n",num);}運(yùn)行情況如下:

Iamaboy.Thereare4wordsintheline第七章函數(shù)§7.1概述1)除main外,其它為系統(tǒng)函數(shù)、自編函數(shù),系統(tǒng)函數(shù):由系統(tǒng)提供,用戶可調(diào)用。自編函數(shù):由用戶按語(yǔ)法規(guī)則編寫。C程序由一個(gè)main和任意個(gè)函數(shù)組成。

2)

除main函數(shù)外,其它函數(shù)可相互調(diào)用main()abcdxz3)函數(shù)不可嵌套定義,具有全局性、平行性,4)函數(shù)分為有參與無(wú)參函數(shù)5)程序從main開(kāi)始執(zhí)行,最后又回到main函數(shù)結(jié)束?!?.2定義與調(diào)用類型標(biāo)識(shí)符函數(shù)名(){說(shuō)明部分語(yǔ)句

}類型標(biāo)識(shí)符:表示返回值類型。1.無(wú)參函數(shù)定義形式調(diào)用方式函數(shù)名();若有返回值可出現(xiàn)在表達(dá)式中無(wú)返值可單獨(dú)出現(xiàn)類型標(biāo)識(shí)符函數(shù)名(形參表列)

形參說(shuō)明

{說(shuō)明部分語(yǔ)句

}2.有參函數(shù)

定義形式例:

求二數(shù)之最大值

intmax(intx,inty)

{

intz;

z=x>y?x:y;

return(z);

}出現(xiàn)return語(yǔ)句,返回值一般與函數(shù)類型一致.調(diào)用方式函數(shù)名(實(shí)參表列);

無(wú)值返回:

有值返回:3.形參與實(shí)參調(diào)用時(shí):

實(shí)參值單向傳遞形參。

函數(shù)被調(diào)用時(shí),臨時(shí)分配單元給形參,調(diào)用完畢,這些單元被釋放。注:

實(shí)參可為表達(dá)式,其值傳遞。實(shí)參:出現(xiàn)在調(diào)用函數(shù)中,形參:出現(xiàn)被調(diào)用函數(shù)中。

實(shí)參、形參類型一致。

可在形參表列中對(duì)形參說(shuō)明。4.函數(shù)返回值變量等

通過(guò)return語(yǔ)句將返回值傳給函數(shù)名,可有多個(gè)return.

返回值類型為函數(shù)類型。一般return中的返回值類型應(yīng)與函數(shù)定義時(shí)的類型一致,不一致時(shí),以函數(shù)定義類型為準(zhǔn)。return(表達(dá)式);由函數(shù)名只能得到一個(gè)返回值。5.調(diào)用函數(shù)應(yīng)對(duì)被調(diào)用函數(shù)的返回值類型作出說(shuō)明:(函數(shù)名相當(dāng)于一變量,但應(yīng)有所區(qū)別)例:

求二實(shí)數(shù)之和

main(){floatadd();floata,b,c;

scanf("%f,%f",&a,&b);c=add(a,b);類型符函數(shù)名();它不同于函數(shù)的定義(功能定義)printf("sum=%f";c);}floatadd(floatx,floaty){floatz;z=x+y;returnz;}

以下幾種情況可省略對(duì)被調(diào)函數(shù)的說(shuō)明:當(dāng)返回值為整型、字符型。在調(diào)用之前定義函數(shù)。

在整個(gè)文件的開(kāi)頭定義函數(shù)。6.實(shí)參傳遞給形參時(shí),實(shí)參的計(jì)算有的系統(tǒng)自左至右,有的自右至左。7.調(diào)用系統(tǒng)函數(shù),需根據(jù)系統(tǒng)提供的手冊(cè)而確定是否要加上預(yù)編譯命令,如:getchar()需加include"stdio.h"§7.3嵌套調(diào)用

函數(shù)不能嵌套定義,但可嵌套調(diào)用a(){調(diào)用b}b(){}main{調(diào)用a}求取大于50小于100的能被3整除的數(shù)的和。#include<stdio.h>intsum(intx,inty){ints=0;intcheck(int); for(inti=x;i<y;i++) s=s+check(i); returns;}intcheck(inty){if((y%3)==0)returny;elsereturn0;}voidmain(){ inta=51,b=100; printf("求和為:%d\n",sum(a,b));}§7.4遞歸調(diào)用

遞歸:

一個(gè)函數(shù)在其函數(shù)體中又出現(xiàn)直接或間接地調(diào)用自身的語(yǔ)句.直接調(diào)用

intf(intx){inty,z;

z=f(y);}間接調(diào)用

intf1

(intx){inty,z;

z=f2(y);}

intf2

(intt)

{inta,b;

a=f1

(b);}以上僅給出了遞歸的概念.顯然:

上述例子會(huì)無(wú)限遞歸(無(wú)限執(zhí)行)。所以,在遞歸調(diào)用時(shí)都有條件限制。n!=1(n=0,1)n(n–1)!(n>1)即:

條件成立,調(diào)用遞歸,否則結(jié)束。一個(gè)最常用的例子:

求n!1.從數(shù)學(xué)上定義2.程序

floatfac(intn){

floatf;if(n<0)printf("inputerror!\n");elseif(n==0||n==1)f=1;

elsef=nfac(n–1);return(f);}voidmain()

{

intn;floaty;printf("inputainteger!")scanf("%d",&n);y=fac(n);printf("%d!=%15.0f",n,y);}3.執(zhí)行過(guò)程:

設(shè)輸入n5main(){

f=5fac(4);

}fac(4){

f=4fac(3);

returnf;}fac(3){

f=3fac(2);

returnf;}–fac=4!n=4n=3fac=3!fac(2){

f=2fac(1);

returnf;}fac(1){

f=f(1);

returnf;}n=1fac=1n=2fac=2!可簡(jiǎn)化表示為n=1n=2n=3n=4fac=4!fac=3!fac=2!fac=1n=5

當(dāng)變成機(jī)器代碼時(shí),將其拉成直線(線性程序代碼)。例:P118漢諾塔(Hanoi)問(wèn)題BCAn個(gè)盤子保證小(上),大(下)問(wèn)題:

將A塔上n個(gè)盤子移至C(借助于B)。移動(dòng)時(shí),保證三個(gè)塔始終是大盤在下,小盤在上。必須用遞歸方式解決1)

先將A塔n–1個(gè)盤子借助于C移至B上2)將A上剩下的一個(gè)移至C上.3)將B上n–1個(gè)盤子借助于A移至C上.可以看到:1)、3)為同一問(wèn)題,都為n–1個(gè)盤子借助于一個(gè)空塔移至另一塔上。程序如下:

voidmove(chargetone,charputone)

{printf("%c––>%c\n",getone,putone);

}voidhanoi(intn,one,chartwo,charthree)/*將n個(gè)盤從one借助two,移動(dòng)three*/{if(n==1)move(one,three);else{hanoi(n–1,one,three,two);move(one,three);hanoi(n–1,two,one,three);}}

voidmain(){intm;printf("inputthenumberofdisdes":);scanf("%d",&m);printf("Thesteptomoving%3ddisdes:\n",m);hanoi(m,'A','B','C');}運(yùn)行情況如下:

inputthenumberofdisdes:3Thesteptomoving3diskes:A>CA>BC>BA>CB>AB>CA>C兩個(gè)函數(shù):move(getone,putone)

表示從getone塔移一個(gè)盤子至putone塔hanoi(n,one,two,three)

表示n個(gè)盤子從one塔借助于two塔(空)移至three塔。

調(diào)用時(shí)塔用字符常量'A','B','C'表示?!?.5數(shù)組作為函數(shù)參數(shù)分為兩種情況:1.

數(shù)組元素作為實(shí)參2.

數(shù)組名同時(shí)為形、實(shí)參一、數(shù)組元素作為實(shí)參

由于數(shù)組元素與相同類型的簡(jiǎn)單變量地位完全一樣;因此,數(shù)組元素作函數(shù)參數(shù)也和簡(jiǎn)單變量一樣,也是值的單向傳遞intx,a[10];如:

xa[5]即a[5]為一元素,與x完全一樣。例:設(shè)有兩個(gè)同樣大小的一維數(shù)組,a[10],b[10]將相應(yīng)元素比較,統(tǒng)計(jì)a中大于b中對(duì)應(yīng)元素的個(gè)數(shù),小于的個(gè)數(shù),相等時(shí)的個(gè)數(shù)。程序如下:

main()

{

intlarge(int,int);inta[10],b[10],i,n=0,m=0,k=0;printf("enterarraya:\n");for(i=0;i<10;i++)scanf("%d",&a[i]);printf("\n");printf("enterarrayb:\n");for(i=0;i<10;i++)scanf("%d",&b[i]);printf("\n");

for(i=0;i<10;i++){

if(large(a[i],b[i])==1)n=n+1;

elseif(large(a[i],b[i])==0)m=m+1;

elsek=k+1;

}printf("a[i]>b[i]%dtimes\na[i]=b[i]%dtimes\na[i]<b[i]%dtimes\n",n,m,k);if(n>k)printf("arrayaislargerthanarrayb\n");elseif(n<k)

printf("arrayaissmallerthanarrayb\n");else

printf("arrayaisequaltoarrayb\n");}intlarge(intx,inty){

intflag;if(x>y)flag=1;elseif(x==y)flag=0;elseflag=-1;return(flag);}運(yùn)行情況如下:

enterarraya:1357986420enterarrayb:5389–1–35604a[i]>b[i]4timesa[i]=b[i]1timesa[i]<b[i]5timesarrayaissmallerthanarrayb特點(diǎn):

直接用數(shù)組名作參數(shù)時(shí),則為地址傳送(不是值傳送),即實(shí)參數(shù)組的首地址傳遞給形參數(shù)組首地址。所以,實(shí)參、形參數(shù)組共享相同的內(nèi)存單元。1.形參數(shù)組可不指定大小,也可用另一參數(shù)作大小,以確定使用實(shí)數(shù)組的元素個(gè)數(shù)。2.形參、實(shí)參數(shù)組必須類型一致。3.多維數(shù)組方式一樣,僅第一維大小的說(shuō)明可省略二、數(shù)組名作實(shí)、形參例1.

有一個(gè)一維數(shù)組score,

溫馨提示

  • 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)論