首都體育學(xué)院《C語(yǔ)言程序設(shè)計(jì)》課件-第5章 函數(shù)_第1頁(yè)
首都體育學(xué)院《C語(yǔ)言程序設(shè)計(jì)》課件-第5章 函數(shù)_第2頁(yè)
首都體育學(xué)院《C語(yǔ)言程序設(shè)計(jì)》課件-第5章 函數(shù)_第3頁(yè)
首都體育學(xué)院《C語(yǔ)言程序設(shè)計(jì)》課件-第5章 函數(shù)_第4頁(yè)
首都體育學(xué)院《C語(yǔ)言程序設(shè)計(jì)》課件-第5章 函數(shù)_第5頁(yè)
已閱讀5頁(yè),還剩41頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

首都體育學(xué)院《C語(yǔ)言程序設(shè)計(jì)》第5章

函數(shù)

第一節(jié)

概述

第二節(jié)

標(biāo)準(zhǔn)庫(kù)函數(shù)

第三節(jié)

函數(shù)的定義調(diào)用和聲明

第四節(jié)

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

第五節(jié)

變量的作用域和存儲(chǔ)類(lèi)別

第六屆C程序文件結(jié)構(gòu)

掌握函數(shù)、函數(shù)值(函數(shù)返回值)以及函數(shù)調(diào)用等基本概念。掌握函數(shù)的定義和調(diào)用方法。掌握函數(shù)參數(shù)的傳遞方法。掌握變量的作用范圍。目標(biāo)要求概述標(biāo)準(zhǔn)庫(kù)函數(shù)

函數(shù)的定義調(diào)用和聲明函數(shù)的嵌套調(diào)用和遞歸調(diào)用

變量的作用域和存儲(chǔ)類(lèi)別C程序文件結(jié)構(gòu)講課提綱模塊化程序設(shè)計(jì)基本思想:將一個(gè)大的程序按功能分割成一些小模塊開(kāi)發(fā)方法:自上向下,逐步分解,分而治之5.1概述5.1概述C程序結(jié)構(gòu)函數(shù)的特點(diǎn)函數(shù)是程序的基本組成單位必須有且只能有一個(gè)名為main的主函數(shù)C程序的執(zhí)行總是從main函數(shù)開(kāi)始,在main中結(jié)束函數(shù)與函數(shù)之間是平行的獨(dú)立的,不能嵌套定義,但可以嵌套調(diào)用,main函數(shù)可以調(diào)用任意其他函數(shù),其他函數(shù)(除main函數(shù)外)之間可相互調(diào)用5.1概述函數(shù)的分類(lèi)從用戶(hù)角度(函數(shù)定義)標(biāo)準(zhǔn)函數(shù)(庫(kù)函數(shù)):由系統(tǒng)提供用戶(hù)自定義函數(shù):用戶(hù)可根據(jù)需要自己編寫(xiě)。從函數(shù)返回值角度分有返回值函數(shù)無(wú)返回值函數(shù)從主調(diào)函數(shù)和被調(diào)函數(shù)間數(shù)據(jù)傳遞角度分有參函數(shù)無(wú)參函數(shù)5.1概述常用標(biāo)準(zhǔn)庫(kù)函數(shù) 使用庫(kù)函數(shù)應(yīng)注意:1、函數(shù)功能2、函數(shù)參數(shù)的數(shù)目和順序,及各參數(shù)意義和類(lèi)型3、函數(shù)返回值意義和類(lèi)型4、需要使用的包含文件5.2標(biāo)準(zhǔn)庫(kù)函數(shù)最常用的幾個(gè)庫(kù)函數(shù)

函數(shù)原型功能返回值doublefabs(doublex)求x的絕對(duì)值。

計(jì)算結(jié)果

doublesqrt(doublex)

計(jì)算x的算術(shù)平方根。

計(jì)算結(jié)果

doublepow(doublex,dlubley)

計(jì)算xy的值。

計(jì)算結(jié)果

doublesin(doublex)

計(jì)算sin(x)的值。計(jì)算結(jié)果

doublecos(doublex)

計(jì)算cos(x)的值。

計(jì)算結(jié)果

doublelog(dlublex)

計(jì)算lnx的值

計(jì)算結(jié)果

doubleexp(doublex)

求ex的值計(jì)算結(jié)果int

rand(void)

產(chǎn)生一個(gè)0到32767之間的隨機(jī)整數(shù)。

隨機(jī)整數(shù)

5.2.1常用標(biāo)準(zhǔn)庫(kù)函數(shù)char*strcat(char*str1,char*str2)

把str2接到str1的后面,str1最后面的'\0'被取消。

返回str1

char*strcpy(char*str1,char*str2)

把str2指向的字符串復(fù)制到str1中去。

返回str1

unsignedstrlen(char*str)

統(tǒng)計(jì)字符串str中字符的個(gè)數(shù)(不包括'\0')

返回字符個(gè)數(shù)

FILE*fopen(char*filename,char*mode)

以mode指定的方式打開(kāi)名為filename的文件。成功返回文件指針,否則返回0int

fclose(FILE*fp)

關(guān)閉fp所指的文件,釋放文件緩沖區(qū)。有錯(cuò)返回非0值,否則返回0int

feof(FILE*fp)

檢查文件是否結(jié)束。文件結(jié)束返回非0值,否則返回05.2.1常用標(biāo)準(zhǔn)庫(kù)函數(shù)基本隨機(jī)數(shù)函數(shù)

偽隨機(jī)數(shù)產(chǎn)生函數(shù):int

rand(void)

種子函數(shù):voidsrand(unsinged

intseed)說(shuō)明:函數(shù)rand()可生成一個(gè)在0~RAND_MAX(32767) 之間均勻分布的偽隨機(jī)整數(shù),但需要使用種子 函數(shù)srand()來(lái)改變r(jià)and()函數(shù)所產(chǎn)生隨機(jī)數(shù)列 的起始點(diǎn),以便于偽隨機(jī)數(shù)更“隨機(jī)”。例如:srand(time(NULL))

//將系統(tǒng)時(shí)間設(shè)為隨即種子

rand()5.2.2偽隨機(jī)數(shù)的產(chǎn)生及應(yīng)用#include<stdio.h>#include<stdlib.h>#include<time.h>main(){

intk=0;

printf("time=%ld\n",time(NULL));

srand(time(NULL));

for(k=0;k<10;k++)

printf("%d\n",rand());

printf("%d\n",RAND_MAX);}5.2.2偽隨機(jī)數(shù)的產(chǎn)生及應(yīng)用猜數(shù)游戲。計(jì)算機(jī)隨機(jī)產(chǎn)生一個(gè)100以?xún)?nèi)的整數(shù),用戶(hù)猜數(shù),最多猜10次,每次給出大了或小了的提示。最后根據(jù)猜的次數(shù)給出相應(yīng)的評(píng)價(jià)。如果10次還沒(méi)有猜對(duì),則輸出“很遺憾,你已經(jīng)沒(méi)有機(jī)會(huì)了!游戲結(jié)束?。。 ?。#include<stdio.h>#include<stdlib.h>#include<time.h>main(){ int

i,magic; intguess;/*人猜的數(shù)*/

srand(time(NULL)); /*產(chǎn)生隨機(jī)函數(shù)的種子*/ magic=rand()%100; /*計(jì)算機(jī)產(chǎn)生隨機(jī)數(shù)*/

for(i=1;i<=10;i++) {printf("請(qǐng)輸入一個(gè)100以?xún)?nèi)的整數(shù):");

scanf("%d",&guess);

if(guess>magic)

printf("大了,再小點(diǎn)!\n"); elseif(guess<magic)

printf("小了,再大點(diǎn)!\n"); else {printf("恭喜你,答對(duì)了!\n");

if(i<=2)

printf("棒極了!\n"); elseif(i<=5)

printf("順利過(guò)關(guān)!"); else

printf("不容易呀,終于猜出來(lái)了!\n"); break; } }

if(i>10)

printf("\t很遺憾,你已經(jīng)沒(méi)有機(jī)會(huì)了!游戲結(jié)束?。?!\n");}均勻分布隨機(jī)數(shù)的產(chǎn)生

rand()函數(shù)產(chǎn)生0~32767之間的偽隨機(jī)數(shù),若在給定區(qū)間[a,b]產(chǎn)生均勻分布的隨機(jī)實(shí)數(shù):

rand()*(b-a)/RAND_MAX+a5.2.2偽隨機(jī)數(shù)的產(chǎn)生及應(yīng)用5.3函數(shù)的定義和調(diào)用函數(shù)定義:類(lèi)型標(biāo)識(shí)符函數(shù)名(形式參數(shù)表){ 函數(shù)聲明部分; 函數(shù)語(yǔ)句部分;}函數(shù)返回值類(lèi)型缺省int型合法標(biāo)識(shí)符函數(shù)體函數(shù)的參數(shù)例有參函數(shù)(現(xiàn)代風(fēng)格)

int

max(int

x,inty){intz;z=x>y?x:y;return(z);}例無(wú)參函數(shù)

printstar(){printf(“**********\n”);}例空函數(shù)

dummy(){}函數(shù)定義說(shuō)明:函數(shù)名:是調(diào)用該函數(shù)的標(biāo)識(shí),是該函數(shù)所占內(nèi)存區(qū)的首地址。函數(shù)值:函數(shù)調(diào)用之后返回給主調(diào)函數(shù)的值稱(chēng)為函數(shù)值,其通過(guò)return語(yǔ)句返回。格式如下:Return(表達(dá)式);

return表達(dá)式;

return;說(shuō)明:函數(shù)中可有多個(gè)return語(yǔ)句若無(wú)return語(yǔ)句,遇}時(shí),自動(dòng)返回調(diào)用函數(shù)若函數(shù)類(lèi)型與return語(yǔ)句中表達(dá)式值的類(lèi)型不一致,按前者為準(zhǔn).void型函數(shù),表明該函數(shù)無(wú)返回值5.3函數(shù)的定義和調(diào)用例函數(shù)返回值類(lèi)型轉(zhuǎn)換main(){intmax(float,float)floata,b,c;

scanf("%f,%f",&a,&b);c=max(a,b);

printf("Maxis%f\n",c);}max(floatx,floaty){floatz;z=x>y?x:y;

return(z);}5.3函數(shù)的定義和調(diào)用函數(shù)的形式參數(shù)定義函數(shù)時(shí),函數(shù)名后圓括號(hào)中的變量稱(chēng)為形參,形參需逐一定義.形參只能是變量形參在函數(shù)被調(diào)用前不占內(nèi)存;函數(shù)調(diào)用時(shí)為形參分配內(nèi)存;調(diào)用結(jié)束,內(nèi)存釋放。形參僅在函數(shù)內(nèi)部有效。函數(shù)體{}

中內(nèi)容是函數(shù)體,是實(shí)現(xiàn)函數(shù)功能的語(yǔ)句。5.3函數(shù)的定義和調(diào)用函數(shù)調(diào)用(一般形式)

函數(shù)名(實(shí)參表);函數(shù)定義與函數(shù)調(diào)用的區(qū)別:函數(shù)定義是編程實(shí)現(xiàn)相應(yīng)功能,而函數(shù)調(diào)用是在需要此功能的地方執(zhí)行此函數(shù)。函數(shù)的定義中有“類(lèi)型標(biāo)識(shí)符”而函數(shù)的調(diào)用中沒(méi)有。函數(shù)的定義后沒(méi)有“;”,而函數(shù)的調(diào)用中有“;”5.3函數(shù)的定義和調(diào)用實(shí)際參數(shù):主調(diào)函數(shù)中調(diào)用一個(gè)函數(shù)時(shí),被調(diào)用函數(shù)名后 面圓括號(hào)中的表達(dá)式

例比較兩個(gè)數(shù)并輸出大者main(){inta,b,c;

scanf("%d,%d",&a,&b);c=max(a,b);

printf("Maxis%d",c);}max(intx,inty){intz;z=x>y?x:y;return(z);}實(shí)參形參c=max(a,b);(main函數(shù))(max函數(shù))max(intx,inty){intz;z=x>y?x:y;return(z);}5.3函數(shù)的定義和調(diào)用說(shuō)明:實(shí)參必須有確定的值,可以是變量、常量或表達(dá)式,并將其值傳給形參形參與實(shí)參個(gè)數(shù)相同、類(lèi)型一致若形參與實(shí)參類(lèi)型不一致,自動(dòng)按形參類(lèi)型轉(zhuǎn)換——函數(shù)調(diào)用轉(zhuǎn)換由實(shí)參到形參的值的單向傳遞5.3函數(shù)的定義和調(diào)用例計(jì)算x的立方#include<stdio.h>floatcube(floatx){return(x*x*x);}main(){floata,product;

printf("Pleaseinputvalueofa:");

scanf("%f",&a);product=cube(a);

printf(”Cubeof%.4fis%.4f\n",a,product);}aproduct××××1.21.21.728x5.3函數(shù)的定義和調(diào)用例交換兩個(gè)數(shù)711x:y:調(diào)用前:調(diào)用結(jié)束:711x:y:main(){intx=7,y=11; printf("x=%d,y=%d\n",x,y);

printf("swapped:\n");

swap(x,y);

printf("x=%d,y=%d\n",x,y);}swap(int

a,intb){inttemp;temp=a;a=b;b=temp;

printf(“a=%d,b=%d\n”,a,b);}調(diào)用:711a:b:711x:y:swap:711x:y:117a:b:temp5.3函數(shù)的定義和調(diào)用函數(shù)調(diào)用方式函數(shù)作為獨(dú)立的語(yǔ)句: 側(cè)重函數(shù)的執(zhí)行功能例:printf("IloveChina!\n");函數(shù)作為表達(dá)式的組成部分: 需要函數(shù)的返回值參與運(yùn)算例:c=max(a,b);函數(shù)作為其他函數(shù)的參數(shù): 需要函數(shù)的返回值例:printf("%d\n",max(a,b));

putchar(getchar());5.3函數(shù)的定義和調(diào)用調(diào)用函數(shù)時(shí),對(duì)被調(diào)函數(shù)的要求:必須是已存在的函數(shù)庫(kù)函數(shù):#include<*.h>用戶(hù)自定義函數(shù):

在主調(diào)函數(shù)中需對(duì)被調(diào)函數(shù)進(jìn)行函數(shù)類(lèi)型聲明函數(shù)聲明:一般形式:

函數(shù)類(lèi)型函數(shù)名(形參類(lèi)型[形參名],…..);5.3函數(shù)的定義和調(diào)用下列情況下,函數(shù)聲明可缺?。?/p>

1、若函數(shù)返值是char或int型,系統(tǒng)自動(dòng)按int型處理2、被調(diào)用函數(shù)定義出現(xiàn)在主調(diào)函數(shù)之前

3、在所有函數(shù)的定義之前,在文件的開(kāi)頭已經(jīng)作了函數(shù) 聲明main(){floatadd(float,float);/*函數(shù)原型聲明*/floata,b,c;

scanf("%f,%f",&a,&b);c=add(a,b);

printf("sumis%f",c);}floatadd(floatx,floaty)/*函數(shù)首部*/

{floatz;/*函數(shù)體*/z=x+y;return(z);}floatadd(floatx,floaty){floatz;z=x+y;return(z);}main(){floata,b,c;

scanf("%f,%f",&a,&b);c=add(a,b);

printf("sumis%f",c);}被調(diào)函數(shù)出現(xiàn)在主調(diào)函數(shù)之前,不必函數(shù)說(shuō)明main(){floata,b;

intc;

scanf("%f,%f",&a,&b);c=max(a,b);

printf("Maxis%d\n",c);}max(floatx,floaty){floatz;z=x>y?x:y;return(z);}int型函數(shù)可不作函數(shù)說(shuō)明5.3函數(shù)的定義和調(diào)用C規(guī)定:函數(shù)定義不可嵌套,但可以嵌套調(diào)用函數(shù)5.4嵌套調(diào)用與遞歸調(diào)用main()調(diào)用函數(shù)a結(jié)束a函數(shù)b函數(shù)調(diào)用函數(shù)b例求三個(gè)數(shù)中最大數(shù)和最小數(shù)的差值

int

dif(int

x,int

y,intz);

int

max(int

x,int

y,intz);

int

min(int

x,int

y,intz);main(){inta,b,c,d;

scanf("%d%d%d",&a,&b,&c);

d=dif(a,b,c);

printf("Max-Min=%d\n",d);}int

dif(int

x,int

y,intz){returnmax(x,y,z)—min(x,y,z);}int

max(int

x,int

y,intz){intr;r=x>y?x:y;return(r>z?r:z);}int

min(int

x,int

y,intz){intr;r=x<y?x:y;return(r<z?r:z);}5.4嵌套調(diào)用與遞歸調(diào)用例求三個(gè)數(shù)中最大數(shù)和最小數(shù)的差值main(){……

d=dif(a,b,c);

……}int

dif(int

x,int

y,intz){returnmax(x,y,z)-min(x,y,z);}int

max(int

x,int

y,intz){……}int

min(int

x,int

y,intz){……}main()調(diào)用函數(shù)dif輸出結(jié)束dif函數(shù)max函數(shù)調(diào)用函數(shù)max調(diào)用函數(shù)minmin函數(shù)5.4嵌套調(diào)用與遞歸調(diào)用定義:函數(shù)直接或間接的調(diào)用自身叫函數(shù)的遞歸調(diào)用int

f(intx){inty,z;……

z=f(y);…….return(2*z);}int

f1(intx){inty,z;……

z=f2(y);…….return(2*z);}int

f2(intt){inta,c;……

c=f1(a);…….return(3+c);}f()調(diào)f調(diào)f2調(diào)f1f1()f2()5.4嵌套調(diào)用與遞歸調(diào)用說(shuō)明:C編譯系統(tǒng)對(duì)遞歸函數(shù)的自調(diào)用次數(shù)沒(méi)有限制必須有一個(gè)明確的結(jié)束遞歸的條件。5.4嵌套調(diào)用與遞歸調(diào)用例求n的階乘int

fac(intn){intf;if(n<0)printf("n<0,dataerror!");elseif(n==0||n==1)f=1;elsef=fac(n-1)*n;return(f);}main(){intn,y;

printf("Inputaintegernumber:");

scanf("%d",&n);

y=fac(n);

printf("%d!=%15d",n,y);}5.4嵌套調(diào)用與遞歸調(diào)用作用域:

若某個(gè)標(biāo)識(shí)符僅能在源程序正文的某個(gè)范圍內(nèi)被使用,則稱(chēng)源程序正文的這個(gè)范圍為該標(biāo)識(shí)符的作用域。分程序作用域:

指該復(fù)合語(yǔ)句的左括弧“{”和右括弧“}”之間的源程序 正文。

文件作用域:

指一個(gè)編譯單位內(nèi)的所有程序正文。根據(jù)作用域的不同,將變量分類(lèi):

局部變量、全局變量5.5變量的作用域與存儲(chǔ)類(lèi)別

局部變量---內(nèi)部變量

在函數(shù)內(nèi)定義,只在本函數(shù)內(nèi)有效說(shuō)明:動(dòng)態(tài)分配內(nèi)存單元main中定義的變量只在main中有效不同函數(shù)中同名變量,占不同內(nèi)存單元形參屬于局部變量可定義在復(fù)合語(yǔ)句中有效的變量有包含關(guān)系的兩個(gè)作用域中的同名變量,外層同名變量被屏蔽。

5.5變量的作用域與存儲(chǔ)類(lèi)別

floatf1(inta){intb,c;…….}charf2(intx,inty){inti,j;……}main(){intm,n;…….}a,b,c有效x,y,i,j有效m,n有效局部變量具有分程序作用域例不同函數(shù)中同名變量main(){inta,b;a=3;b=4;

printf("main:a=%d,b=%d\n",a,b);

sub();

printf("main:a=%d,b=%d\n",a,b);}sub(){inta,b;a=6;b=7;

printf("sub:a=%d,b=%d\n",a,b);}運(yùn)行結(jié)果:main:a=3,b=4sub:a=6,b=7main:a=3,b=45.5變量的作用域與存儲(chǔ)類(lèi)別

有包含關(guān)系的兩個(gè)作用域中的同名變量main(){inta,b,c;

{intc;c=a+b;

}

}使用內(nèi)層同名變量c變量a,b可以在整個(gè)范圍內(nèi)使用5.5變量的作用域與存儲(chǔ)類(lèi)別

全局變量---外部變量說(shuō)明:有效范圍:從定義變量的位置開(kāi)始到本源文件結(jié)束靜態(tài)分配全局變量的內(nèi)存單元減少函數(shù)調(diào)用時(shí)實(shí)參與形參之間的數(shù)據(jù)傳遞若外部變量與局部變量同名,則外部變量被屏蔽不足:全局變量在程序全部執(zhí)行過(guò)程中占用存儲(chǔ)單元降低程序的可讀性,降低函數(shù)的通用性5.5變量的作用域與存儲(chǔ)類(lèi)別

例外部變量與局部變量inta=3,b=5;max(inta,intb){intc;c=a>b?a:b;return(c);}main(){inta=8;

printf("max=%d",max(a,b));}運(yùn)行結(jié)果:max=8局部變量a、b有效范圍局部變量a有效范圍全局變量a、b有效范圍5.5變量的作用域與存儲(chǔ)類(lèi)別

靜態(tài)存儲(chǔ)方式:

程序運(yùn)行期間,始終占有固定的存儲(chǔ)空間。

動(dòng)態(tài)存儲(chǔ)方式:

程序運(yùn)行期間,根據(jù)需要?jiǎng)討B(tài)的分配存儲(chǔ)空間。

變量的存儲(chǔ)類(lèi)型:auto-----自動(dòng)型register-----寄存器型static------靜態(tài)型extern-----外部型變量的定義格式:[存儲(chǔ)類(lèi)型]數(shù)據(jù)類(lèi)型變量表;5.5變量的作用域與存儲(chǔ)類(lèi)別

內(nèi)存用戶(hù)區(qū):

程序區(qū)靜態(tài)存儲(chǔ)區(qū)動(dòng)態(tài)存儲(chǔ)區(qū)全局變量、局部靜態(tài)變量形參變量局部動(dòng)態(tài)變量(autoregister)函數(shù)調(diào)用現(xiàn)場(chǎng)保護(hù)和返回地址等

生存期

靜態(tài)變量:從程序開(kāi)始執(zhí)行到程序結(jié)束動(dòng)態(tài)變量:從包含該變量定義的函數(shù)開(kāi)始執(zhí)行至函數(shù)執(zhí)行結(jié)束5.5變量的作用域與存儲(chǔ)類(lèi)別

局部變量默認(rèn)為auto型靜態(tài)局部變量具有全局壽命和可繼承性寄存器變量個(gè)數(shù)受限,且不能為long,double,float型extern不是變量定義,可擴(kuò)展外部變量作用域靜態(tài)動(dòng)態(tài)存儲(chǔ)方式程序整個(gè)運(yùn)行期間函數(shù)調(diào)用開(kāi)始至結(jié)束

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論