函數(shù)2市公開課一等獎省名師優(yōu)質(zhì)課賽課一等獎?wù)n件_第1頁
函數(shù)2市公開課一等獎省名師優(yōu)質(zhì)課賽課一等獎?wù)n件_第2頁
函數(shù)2市公開課一等獎省名師優(yōu)質(zhì)課賽課一等獎?wù)n件_第3頁
函數(shù)2市公開課一等獎省名師優(yōu)質(zhì)課賽課一等獎?wù)n件_第4頁
函數(shù)2市公開課一等獎省名師優(yōu)質(zhì)課賽課一等獎?wù)n件_第5頁
已閱讀5頁,還剩54頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

(三)變量存放屬性

1、變量存放屬性(也稱存放類別):用來指定變量生存期,即從為它分配單元,到收回它所占存放單元時間段。2、變量共有四種存放屬性,分別是:auto (自動) static(靜態(tài))register(存放器) extern(外部)對應(yīng),含有各存放屬性變量分別叫:自動變量 靜態(tài)變量存放器變量 外部變量3、變量定義普通格式應(yīng)為:[存放屬性]<類型名><變量名>定義變量時,存放屬性放在類型名前。省略對變量存放屬性指定時,默認(rèn)為auto。

不一樣變量(主要指全局量和局部量)能夠指定存放屬性也不一樣,下面分別介紹各變量存放屬性使用方法。

4.局部量存放分配局部變量分為兩類:一類是局部自動變量,一類是局部靜態(tài)變量,它們分配方式不一樣。(1)局部自動變量[1]定義方式:[auto]<類型名><變量名>比如:intf1(intx){autointy=2,s;//y和s是自動變量…………}[2]自動變量生存期在定義自動變量時,系統(tǒng)即在動態(tài)區(qū)內(nèi)為其分配存放單元,函數(shù)運行結(jié)束后,便釋放它所占存放單元。分配和釋放都由系統(tǒng)自動完成。(2)局部靜態(tài)變量[1]定義方式局部靜態(tài)變量(簡稱靜態(tài)變量)定義方式為:static<類型名><變量名>例如:intf2(inta){staticintr=2,t;//r和t是靜態(tài)變量…………}在定義靜態(tài)變量時,也可認(rèn)為它賦初值。[2]靜態(tài)變量生存期和作用在定義靜態(tài)變量時,系統(tǒng)即在靜態(tài)區(qū)內(nèi)為其分配存放單元,即使函數(shù)運行結(jié)束,它占存放單元也不釋放,一直占到程序運行結(jié)束。特點:在函數(shù)體內(nèi)修改后靜態(tài)變量值便被保留下來,下次再調(diào)用該函數(shù)時候,上次調(diào)用后結(jié)果值,便作為此次調(diào)用初值。意義:靜態(tài)變量起到全局變量作用。假如設(shè)計人員欲使用一個“全局變量”,而又怕受到其它函數(shù)干擾(被誤改了值),不如將其設(shè)計成靜態(tài)變量。運行結(jié)果:

x1=4

r=6

x2=4

r=10#include"stdio.h"voidf2(inta){staticintr=2;r+=a;printf("r=%d\n",r);return;}voidmain(){intx=4;printf("x1=%d\n",x);f2(x);printf("x2=%d\n",x);f2(x);}(3)靜態(tài)變量和自動變量初值及作用域?qū)Ρ萚1]初值:定義靜態(tài)變量時給它賦初值(稱為編譯初值),這個初值只在第一次函數(shù)調(diào)用(它所在函數(shù))時起作用,再次調(diào)用時,編譯初值便不起作用了,因為,第二次調(diào)用時初值,由前次調(diào)用后(本變量)結(jié)果值所取代。自動變量沒有編譯初值,只有調(diào)用初值,即每次調(diào)用(它所在函數(shù))時,都為它賦一次定義時指定初值。[2]作用域:即使靜態(tài)變量生存期與全局變量一樣長,不過它作用域卻和自動變量一樣,其它函數(shù)不能使用本函數(shù)定義靜態(tài)變量。

(4)存放器變量[1]定義方式存放器變量定義方式為:register<類型名><變量名>比如:intf2(inta){registerinti,g=1;//i和g是存放器變量…………}[2]存放器變量作用為了提升程序運行速度,C語言允許用戶將(幾個)局部變量,定義為存放器變量,系統(tǒng)不為它們分配內(nèi)存單元,而是直接將其存放在存放器中。[3]存放器變量生存期和作用域

等同于自動變量所以,同一個存放器能夠輪番地分配給不一樣函數(shù)中定義存放器變量。[4]注意:存放器變量只能是局部變量或形參,而不能是全局變量,也不能是靜態(tài)變量。因為CPU中存放器個數(shù)有限,所以同一個函數(shù)中定義存放器變量個數(shù)受到限制。若不夠系統(tǒng)將會按自動變量處理。另外,帶有優(yōu)化功效編譯器,能夠自動識別使用頻繁變量,并會自動將其改為存放器變量,所以程序員可依據(jù)情況選擇使用存放器變量。5.全局量存放分配和使用方法

全部全局變量都分配在用戶靜態(tài)存放區(qū)內(nèi),因而都屬于靜態(tài)變量(與靜態(tài)局部變量含義略有不一樣)。

[1]定義:在函數(shù)外面定義變量稱為全局變量。[2]全局變量生存期(變量空間存在時間):即分配存放單元起,到程序運行結(jié)束。[3]全局變量作用域(可被使用范圍):從第一次說明處(定義,或申明)到根源程序文件尾。(與局部量重名時,不起作用)#include"stdio.h"intr=2;//全局量voidf2(inta){r+=a;printf("r=%d\n",r);return;}voidmain(){intx=4;printf("r=%d\n",r);printf("x1=%d\n",x);f2(x);printf("x2=%d\n",x);f2(x);}[4]在一個源程序文件中,使用其它源程序文件中定義(允許使用)全局量在根源程序文件(指使用方)要加上對該全局變量申明,申明方式為:extern<類型名><全局變量名>比如://源程序文件3:externintc;//不妨稱c為外部全局變量voidf1(){……}intf2(){……}這里“externintc;”是對源程序文件3中引用其它源程序文件中定義全局量c進(jìn)行申明(不是定義)。extern申明作用:其一,告訴編譯系統(tǒng),根源程序文件中一些函數(shù)要用到這個全局變量c,或者說,將全局變量c作用域擴展到根源程序文件。其二是告訴編譯系統(tǒng),該全局變量已經(jīng)在其它源程序文件中定義過了,且已經(jīng)分配了存放單元,編譯時,不要再為它分配存放單元了。注意,對外部全局變量申明不能放在某個函數(shù)中,即使根源程序文件中只有一個函數(shù)用到這個外部全局變量。對外部全局變量申明通常放在源程序文件前面。使用外部變量比較通用方法是,把全部外部變量做成一個頭文件,只要在使用外部變量源文件中包含一下即可。變量和函數(shù)存放屬性小結(jié)

五、函數(shù)嵌套調(diào)用和遞歸調(diào)用

(一)嵌套調(diào)用和遞歸調(diào)用概念1、嵌套調(diào)用:假如函數(shù)A調(diào)用函數(shù)B,函數(shù)B又調(diào)用函數(shù)C,且A,B,C都是不一樣函數(shù),那么這種調(diào)用關(guān)系,被稱為嵌套調(diào)用。2、遞歸調(diào)用:若子函數(shù)A調(diào)用本身,那么稱為這種調(diào)用關(guān)系為遞歸調(diào)用,而子函數(shù)A稱作遞歸函數(shù)。若子函數(shù)A調(diào)用子函數(shù)B,子函數(shù)B又(直接或間接地)調(diào)用子函數(shù)A,那么這種調(diào)用關(guān)系稱為間接遞歸(或聯(lián)立遞歸)。對應(yīng),前者(非間接遞歸)稱作直接遞歸調(diào)用(或自遞歸)。3、注意:主函數(shù)不能是遞歸函數(shù),因為主調(diào)函數(shù)不被任何函數(shù)(當(dāng)然也包含主函數(shù)本身)所調(diào)用。主函數(shù)只能獨立運行,或者由系統(tǒng)程序所調(diào)用。調(diào)用關(guān)系能夠是線性、樹狀、網(wǎng)狀。(二)函數(shù)嵌套調(diào)用對于函數(shù)嵌套調(diào)用,前面已經(jīng)說得很清楚了,本小節(jié)給出兩個例子,深入說明函數(shù)嵌套調(diào)用。例:若一個m位正整數(shù)n等于它各位數(shù)字m次方之和,則稱n是一個Armstrong數(shù)。比如,三位數(shù)153=13+53+33四位數(shù)1634=14+64+34+44五位數(shù)92727=95+25+75+25+75編程判斷一個正整數(shù)n是否是Armstrong數(shù)。函數(shù)調(diào)用關(guān)系圖示解題算法設(shè)計:拆數(shù)n,并求出n位數(shù)m,然后再計算各位數(shù)字m次方,累加,再與n比較。函數(shù)split(longn,inta[])用來將n各位數(shù)字由低位到高位拆出來存放在數(shù)組a[]中,同時統(tǒng)計n位數(shù)m作為該函數(shù)返回值。函數(shù)expnm(intn,intm)用來計算nm次方,并將計算結(jié)果作為函數(shù)返回值。函數(shù)體中使用循環(huán)累乘方法計算nm次方值,而沒使用數(shù)學(xué)庫中標(biāo)準(zhǔn)函數(shù)pow(x,y),主要考慮其參數(shù)是實型(double類型),計算結(jié)果值可能不夠準(zhǔn)確。函數(shù)sum(intm,intd[])用來計算序列累加和。sum()中調(diào)用expnm()求一個數(shù)m次方值。這里調(diào)用便是嵌套調(diào)用。主函數(shù)讀入數(shù)據(jù)n,調(diào)用split()、sum(),依據(jù)調(diào)用結(jié)果,輸出n是,或不是Armstrong數(shù)信息。程序以下://判斷n是不是Armstrong數(shù)源程序文件Armstrong.c#include<stdio.h>intsplit(longn,inta[])//拆數(shù){intm=0;while(n){a[m++]=n%10;//拆出一位,放入數(shù)組中n/=10;}returnm;}

longexpnm(intn,intm)//計算求nm次方{inti;longk;k=n;for(i=1;i<m;i++)k*=n;returnk;}longsum(intm,intd[]){longs=0;inti;for(i=0;i<m;i++)s+=expnm(d[i],m);//求各位數(shù)字m次方之和returns;}

voidmain(){longn;intm,d[10];printf("請輸入正整數(shù)數(shù)n:");scanf("%ld",&n);m=split(n,d);//將n拆成m位數(shù)字,放入數(shù)組d[]中//返回n位數(shù)mif(n==sum(m,d))printf("%ld是Armstrong數(shù)\n",n);else printf("%ld不是Armstrong數(shù)\n",n);}(三)函數(shù)遞歸調(diào)用自遞歸函數(shù)又可依據(jù)函數(shù)體內(nèi)遞歸調(diào)用點多少,分成線性遞歸(或曰單調(diào)遞歸,簡單遞歸)和非線性遞歸。線性遞歸函數(shù)函數(shù)體內(nèi)只有一個遞歸調(diào)用點,或者,即使有幾個遞歸調(diào)用點,但任何情況下,至多執(zhí)行其中一個。非線性遞歸函數(shù)函數(shù)體內(nèi)最少有兩個遞歸調(diào)用點,而且遞歸每執(zhí)行一次,這些遞歸調(diào)用點可能同時都要執(zhí)行。線性遞歸執(zhí)行路線是簡單直線,而非線性遞歸執(zhí)行路線卻是一個樹形路線。1.線性遞歸函數(shù)例:計算n!值遞歸函數(shù)doublefac(intn){if(n!=0)returnn*fac(n-1);//遞歸調(diào)用elsereturn1;//若n=0,則返回值為1}若主調(diào)函數(shù)用語句:s=fac(3);fac(3)遞歸調(diào)用路線和返回路線

注意:遞歸函數(shù)體內(nèi)必須有遞歸終止條件,即邊界條件,而且每遞歸一次向終止條件前深入,不然遞歸將無休止進(jìn)行下去,造成系統(tǒng)瓦解。使用遞歸技術(shù)最大優(yōu)點是,程序結(jié)構(gòu)簡單。使用遞歸技術(shù)最大缺點是,增加了系統(tǒng)對棧區(qū)管理,因而單純遞歸并不能提升程序運行速度,相反會降低速度。

例求兩個正整數(shù)最大條約數(shù)遞歸函數(shù)。intgcd(inta,intb){if(b)returngcd(b,a%b);elsereturna;}以上兩個遞歸函數(shù)函數(shù)體內(nèi)都只有一處遞歸調(diào)用,所以都屬于線性遞歸函數(shù)。遞歸是一個“隱式”循環(huán)。反過來說,全部線性遞歸函數(shù),都能夠簡單地改為非遞歸函數(shù)(用循環(huán)語句實現(xiàn))。假如要計算f(3,17)函數(shù)值,用數(shù)學(xué)推導(dǎo)法,得到:f(3,17)//第一次調(diào)用,a=3,用第二公式遞歸=f(17÷2,3)+2//第二次調(diào)用=f(8,3)+2//化簡,a=8,用第三公式遞歸=f(3÷4,8÷2)+1+2//第三次調(diào)用=f(0,4)+3//化簡,a=0,用第三公式遞歸=f(4÷4,0÷2)+1+3//第三次調(diào)用=f(1,0)+4//化簡=1+4//第四次調(diào)用,b=0,返回a(=1),并終止遞歸。=5//最終結(jié)果值等于5

例:一個多調(diào)用點線性遞歸函數(shù)示例。例:一個多調(diào)用點線性遞歸函數(shù)(實現(xiàn))。intf(inta,intb){if(!b)returna;//遞歸終止條件為:b等于0elseif(a%2)returnf(b/2,a)+2;//第一個遞歸調(diào)用點elsereturnf(b/4,a/2)+1;//第二個遞歸調(diào)用點}

即使該函數(shù)體內(nèi)有兩處遞歸調(diào)用,不過二者至多執(zhí)行一個,所以它仍屬于線性遞歸函數(shù)。2.非線性遞歸函數(shù)例:一個非線性遞歸函數(shù)示例(智力測試題)。voidp(inta,intb){intm;if(a<=b){m=(a+b)/2;printf("%4d",m);p(a,m-1);//遞歸調(diào)用(1)p(m+1,b);//遞歸調(diào)用點(2)}}思索:假如把函數(shù)p(a,b)函數(shù)定義為:voidp1(inta,intb){intm;if(a<=b){m=(a+b)/2;p1(a,m-1);printf("%4d",m);p1(m+1,b);}}或者改為:voidp2(inta,intb){intm;if(a<=b){m=(a+b)/2;p2(a,m-1);p2(m+1,b);printf("%4d",m);}}例:相傳古印度所羅門教徒玩一個游戲——焚塔(Hanoitower)。游戲意思是將64片大小不等中心有孔圓形金片穿在一根金鋼石柱子上,小片在上,大片在下形成寶塔形狀。假如按下述三條規(guī)則要求,把這些金片從源桿A,一片片地全部搬到目標(biāo)桿B上。當(dāng)完成整個游戲,放下最終一片金片時,就會天崩地裂,宇宙毀滅。三條規(guī)則是:(1)只給一根中間過渡用桿(稱桿C)。(2)每次只能從一桿頂部取下一片,并馬上把它放在另一桿上(不能放在別處,或拿在手里不放)。(3)任何時候,任一桿上金片只能小壓大不能大壓?。ㄐ≡谏隙笤谙拢?。試求出移動方法(即每次將哪片從哪個柱子搬到哪個柱子上)。將圓片按直徑大小依次編號1,2,3,……,n。整體移動過程能夠描述為:先(遞歸地)將桿A上n-1片,移到桿C(利用桿B);把A上唯一一片(片n)移到桿B;再把桿C上n-1片(遞歸地)移到桿B(利用桿A)。比如,n=3時,將A桿上編號為1、2、3三片移到桿B步驟是:move1fromAtoBmove2fromAtoCmove1fromBtoCmove3fromAtoBmove1fromCtoAmove2fromCtoBmove1fromAtoB

主函數(shù)調(diào)用語句為:

n=3;

Hanoi(n,’A’,’B’,’C’);下面給出求解Hanoi塔問題遞歸函數(shù)。voidHanoi(intn,chara,charb,charc)//把n個圓片從桿a,利用桿c,移到桿b。{if(n>0){Hanoi(n-1,a,c,b);//把n-1個圓片從a,利用b,移到cprintf("move%dfrom%cto%c”,n,a,b);//把a圓片n移到bHanoi(n-1,c,b,a);//把n-1個圓片從c,利用a,移到b}}當(dāng)然也能夠用“n=4;”或“n=5;”等進(jìn)行試驗,不過千萬不能用“n=64;”上機試驗。因為經(jīng)過簡單推導(dǎo),按規(guī)則移動64片圓片,要搬動264-1次。假如每秒搬一次,約需5800億年??梢姷街嬗顨缫膊荒茏鐾赀@個游戲。即使讓計算機“搬”,每秒搬一億次,也要用上58,要做完這個游戲依然是不可能。為了降低“空”遞歸調(diào)用次數(shù),可將函數(shù)Hanoi改寫成下面形式,輸出結(jié)果是一樣。voidHanoi(intn,chara,charb,charc)//把n個圓片從桿a,利用桿c,移到桿b。{if(n==1)//只有一片,可直接搬過去printf("move%dfrom%cto%c”,n,a,b);else//多于一片才遞歸{Hanoi(n-1,a,c,b);printf("move%dfrom%cto%c”,n,a,b);Hanoi(n-1,c,b,a);}}例:將計算斐波那契數(shù)程序段

改為遞歸函數(shù)。遞歸函數(shù),以下。intfib(inti){if((i==1)||(i==2))return1;elsereturnfib(i-1)+fib(i-2);}六、編譯預(yù)處理(一)定義:顧名思義,編譯預(yù)處理就是在對源程序進(jìn)行編譯時,在正式編譯之前,對源程序文件中內(nèi)容預(yù)先作處理。依據(jù)需要,用戶能夠在源程序文件中加入一些編譯預(yù)處理命令(簡稱預(yù)編譯命令)。在編譯階段,編譯程序中預(yù)處理程序先對用戶預(yù)編譯命令進(jìn)行分析和處理,然后再進(jìn)行編譯。編譯預(yù)處理功效為程序調(diào)試、移植及模塊化程序設(shè)計提供了便利和幫助。(二)分類:三種預(yù)編譯命令。宏定義文件包含條件編譯全部預(yù)編譯命令都以#開頭,后面跟命令名和相關(guān)信息。(三)宏定義宏定義分為帶參數(shù)和不帶參數(shù)兩種,其使用方法各有不一樣。1.不帶參數(shù)宏定義命令格式:#define<宏名><宏代換串>宏名是一個標(biāo)識符。宏代換串是一個字符串。注意,這里所說字符串,并非指C語言語法成份(串常量和串變量),而是指源程序中一段內(nèi)容。(三)宏定義宏定義分為帶參數(shù)和不帶參數(shù)兩種,其使用方法各有不一樣。1.不帶參數(shù)宏定義命令格式:#define<宏名><宏代換串>命令含義:用戶在程序中本該寫宏代換串地方,用宏名代替(即用宏名代替宏代換串)。預(yù)處理方式:預(yù)處理時,編譯系統(tǒng)將程序中全部客觀存在名(標(biāo)識符)都置換成命令中指定宏代換串(稱為宏置換,或宏展開),從而還原用戶原來用意。

不帶參數(shù)宏定義命令,主要有三種使用方法。(1)用于定義符號常量。比如:#definePI3.14159用戶用宏名PI代表3.14159,于是預(yù)處理時,將全部PI都置換成3.14159。(2)用宏名代替一個較長字符串。比如:

#definenewptr(ptr)malloc(sizeof(snode))目標(biāo)是為了簡化書寫。(3)用宏名代替某項操作(不講)。

關(guān)于不帶參數(shù)宏定義使用方法,有下面幾點說明:(1)習(xí)慣上宏名用大寫字母表示,以區(qū)分于變量名,同時預(yù)防置換錯誤。(2)宏定義末尾不加分號,若加了分號,則分號被看作“字符串”一部分,置換時將連同分號一起置換。比如:#definePI3.14159;那么:s=PI*r*r;宏展開后,該語句被置換成:s=3.14159;*r*r;//注意,表示式中間出現(xiàn)一個分號顯然與原意不符。(3)宏定義標(biāo)識符也有作用域,其作用域從定義點到根源文件結(jié)束。因為用宏定義符號常量通常作為全局量,所以宏定義命令通常出現(xiàn)在源程序文件開頭處(只是一個習(xí)慣使用方法)。(4)const不能完全代替宏定義,因為宏定義除了用于定義符號常量外(即不帶參數(shù)宏),也能夠用來定義一個含有操作功效字符串(實際上是語句,或表示式)。(5)后面宏定義能夠引用前面已定義宏名,預(yù)處理時將層層置換。比如:#defineR12.03#definePI3.14159#defineSPI*R*R定義宏S時,引用了宏R和宏P(guān)I,宏展開時,程序中標(biāo)識符S將被置換成:3.14159*12.03*12.03即使簡化了書寫,不過這么置換會降低程序清楚度(易讀性)。(6)宏展開時,只置換宏名(標(biāo)識符),不置換含有宏名其它字符串。不過,因為宏展開是在編譯前進(jìn)行,所以置換時,往往因(一些系統(tǒng))不作正當(dāng)性檢驗而出現(xiàn)置換錯誤。以TC2.0為例,若定義宏:#definef101101不置換關(guān)鍵字for中f,不置換字符常量'f',也不置換標(biāo)識符vfp中f,但卻置換標(biāo)識符flag中f。當(dāng)然,這種置換是錯誤。從這個意義上說,提倡使用const定義常量方式。

(四)文件包含處理1、含義:文件包含預(yù)處理,是按照用戶命令,將一個源程序文件全部內(nèi)容,插在另一個源程序文件內(nèi)容中,合在一起進(jìn)行編譯。2、文件包含命令普通格式為:#include"文件名"或#include<文件名>注意,命令后面不加分號。(兩種寫法有區(qū)分)文件名指明要包含文件對象(即被包含文件名稱)。當(dāng)然被包含文件必須是已經(jīng)存在C源程序文件,或系統(tǒng)庫文件。兩種寫法區(qū)分比如:#include"stdio.h"或#include<stdio.h>前者(用雙引號將被包含文件括起來)指示編譯系統(tǒng)先在用戶當(dāng)前目錄中尋找要包含文件,若找不到,再按系統(tǒng)設(shè)定標(biāo)準(zhǔn)目錄路徑尋找該文件。后者(用尖括號將被包含文件括起來)指示編譯系統(tǒng)按系統(tǒng)設(shè)定標(biāo)準(zhǔn)目錄路徑尋找要包含文件。

3、文件包含命令能夠出現(xiàn)在源程序文件任意地方。比如,在兩個函數(shù)之間,編譯時,會將被包含文件內(nèi)容“夾在”本文件內(nèi)容“中間”進(jìn)行編譯。不過,習(xí)慣上,文件包含命令都放在源程序文件開頭處,也就是希望編譯系統(tǒng)將被包含文件內(nèi)容,加在根源程序文件內(nèi)容之前,再進(jìn)行編譯,所以被包含文件又稱為“頭部文件”(簡稱頭文件),而且文件后綴通常為“.h”。文件包含命令作用示意圖4、文件包含命令使用方法及注意事項:(1)一條#include命令只能指定一個被包含文件,若要包含多個文件,則應(yīng)分別使用#include命令。比如:一個源程序文件中要使用各種標(biāo)準(zhǔn)庫函數(shù),這些庫函數(shù)文件都要“包含進(jìn)來”,即程序前部要加上:#include<stdio.h>//標(biāo)準(zhǔn)I/O函數(shù),必須加此命令#include<math.h>//標(biāo)準(zhǔn)數(shù)學(xué)函數(shù),必須加此命令#in

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論