大學(xué)計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)(C語言)--第6章函數(shù)_第1頁
大學(xué)計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)(C語言)--第6章函數(shù)_第2頁
大學(xué)計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)(C語言)--第6章函數(shù)_第3頁
大學(xué)計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)(C語言)--第6章函數(shù)_第4頁
大學(xué)計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)(C語言)--第6章函數(shù)_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第第6 6章章 函數(shù)函數(shù)函數(shù)的定義和返回值函數(shù)的定義和返回值函數(shù)的調(diào)用和聲明函數(shù)的調(diào)用和聲明標(biāo)準(zhǔn)函數(shù)標(biāo)準(zhǔn)函數(shù)123函數(shù)的參數(shù)函數(shù)的參數(shù)4函數(shù)的嵌套調(diào)用和遞歸函數(shù)的嵌套調(diào)用和遞歸5變量的存儲類別變量的存儲類別6一個(gè)一個(gè)C C語言源程序通常由語言源程序通常由一個(gè)主函數(shù)一個(gè)主函數(shù)和和若干個(gè)子函若干個(gè)子函數(shù)組成,數(shù)組成,各子函數(shù)之間的關(guān)系是平行的,因此不各子函數(shù)之間的關(guān)系是平行的,因此不能嵌套定義,但能相互調(diào)用。一個(gè)能嵌套定義,但能相互調(diào)用。一個(gè)C C語言源程序無語言源程序無論包含了多少個(gè)函數(shù),程序的論包含了多少個(gè)函數(shù),程序的執(zhí)行執(zhí)行總是從總是從主函數(shù)主函數(shù)main()main()開始,并終止于開始,

2、并終止于主函數(shù)主函數(shù)main()main()。從用戶使用的角度將函數(shù)分為兩種:從用戶使用的角度將函數(shù)分為兩種:標(biāo)準(zhǔn)函數(shù)標(biāo)準(zhǔn)函數(shù)( (庫庫 函數(shù)函數(shù)) )和用戶自定義函數(shù)。和用戶自定義函數(shù)。、函數(shù)定義的一般形式: 類型標(biāo)識符類型標(biāo)識符 函數(shù)名函數(shù)名(形式參數(shù)表形式參數(shù)表) 函數(shù)體函數(shù)體 函數(shù)名:函數(shù)名:由用戶命名,命名規(guī)則與標(biāo)識符命名規(guī)則相同。由用戶命名,命名規(guī)則與標(biāo)識符命名規(guī)則相同。類型標(biāo)識符類型標(biāo)識符: : 定義了函數(shù)返回值的數(shù)據(jù)類型。當(dāng)函數(shù)的返回值定義了函數(shù)返回值的數(shù)據(jù)類型。當(dāng)函數(shù)的返回值是整形或字符型,可是整形或字符型,可省略省略類型標(biāo)識符。當(dāng)函數(shù)無類型標(biāo)識符。當(dāng)函數(shù)無返回值時(shí),則類型標(biāo)

3、識符用返回值時(shí),則類型標(biāo)識符用voidvoid關(guān)鍵字。關(guān)鍵字。形式參數(shù)表的一般形式為:形式參數(shù)表的一般形式為: 類型標(biāo)識符類型標(biāo)識符 形參形參1 1,類型標(biāo)識符,類型標(biāo)識符 形參形參2 2,若省略形式參數(shù)表,則稱為若省略形式參數(shù)表,則稱為無參函數(shù)無參函數(shù)。否則稱為否則稱為有參函數(shù)。有參函數(shù)。函數(shù)體:包含了說明語句和執(zhí)行語句。函數(shù)體:包含了說明語句和執(zhí)行語句。當(dāng)函數(shù)無函數(shù)體時(shí),則當(dāng)函數(shù)無函數(shù)體時(shí),則為為空函數(shù)??蘸瘮?shù)。2 2、函數(shù)的返回值、函數(shù)的返回值 函數(shù)的返回值是通過函數(shù)的返回值是通過returnreturn語句實(shí)現(xiàn)的。語句實(shí)現(xiàn)的。格式:格式:return(return(表達(dá)式表達(dá)式) );

4、或;或 return return 表達(dá)式;表達(dá)式;語義:語義:當(dāng)函數(shù)執(zhí)行到當(dāng)函數(shù)執(zhí)行到returnreturn語句語句時(shí),程序的流程立即返回到時(shí),程序的流程立即返回到調(diào)用該函數(shù)的地方(通常稱為退出調(diào)用函數(shù)),并通調(diào)用該函數(shù)的地方(通常稱為退出調(diào)用函數(shù)),并通過過returnreturn語句返回函數(shù)值。語句返回函數(shù)值。returnreturn語句中語句中表達(dá)式的值表達(dá)式的值就是就是函數(shù)返回值函數(shù)返回值。注意注意:如果函數(shù)有:如果函數(shù)有返回值返回值,這個(gè),這個(gè)值值就應(yīng)該有一個(gè)確定的數(shù)就應(yīng)該有一個(gè)確定的數(shù)據(jù)類型,所以在定義函數(shù)首部時(shí)應(yīng)指定據(jù)類型,所以在定義函數(shù)首部時(shí)應(yīng)指定函數(shù)值的類型。函數(shù)值的類型

5、。說明:說明:v 在同一個(gè)函數(shù)內(nèi)可根據(jù)需要在在同一個(gè)函數(shù)內(nèi)可根據(jù)需要在多處多處設(shè)置設(shè)置returnreturn語句語句,函,函數(shù)執(zhí)行過程中遇到數(shù)執(zhí)行過程中遇到任何任何一個(gè)一個(gè)returnreturn語句語句時(shí),都將立即時(shí),都將立即返返回回到調(diào)用該函數(shù)的地方。到調(diào)用該函數(shù)的地方。v 如果函數(shù)中沒有如果函數(shù)中沒有returnreturn語句,程序的流程一直執(zhí)行到函語句,程序的流程一直執(zhí)行到函數(shù)末尾的右花括號數(shù)末尾的右花括號“”處,然后返回到調(diào)用該函數(shù)的處,然后返回到調(diào)用該函數(shù)的地方。地方。v 為了明確表示為了明確表示“不返回值不返回值”,可以用,可以用“voidvoid”定義定義“無類無類型型”(

6、或稱(或稱“空類型空類型”)函數(shù)。)函數(shù)。v 如果需要從被調(diào)函數(shù)中帶回一個(gè)確定的值,被調(diào)函數(shù)中如果需要從被調(diào)函數(shù)中帶回一個(gè)確定的值,被調(diào)函數(shù)中必須包含必須包含returnreturn 語句。語句。函數(shù)調(diào)用的一般形式:函數(shù)調(diào)用的一般形式:函數(shù)名函數(shù)名( ( 實(shí)參表實(shí)參表 ) ) 實(shí)參表:可以是常量、變量或表達(dá)式。其類型、實(shí)參表:可以是常量、變量或表達(dá)式。其類型、順序和個(gè)數(shù)必須與函數(shù)定義時(shí)形參表的一致。對順序和個(gè)數(shù)必須與函數(shù)定義時(shí)形參表的一致。對于無參函數(shù),則省略實(shí)參,但括號不能省略。函于無參函數(shù),則省略實(shí)參,但括號不能省略。函數(shù)調(diào)用表達(dá)式可出現(xiàn)在主調(diào)函數(shù)的任何地方。數(shù)調(diào)用表達(dá)式可出現(xiàn)在主調(diào)函數(shù)的

7、任何地方。例:試編寫一個(gè)例:試編寫一個(gè)C C程序按下列公式求排列組合問題程序按下列公式求排列組合問題 Cmn=m!/(n!*(m-n)!)main() int m,n; long cmn; printf(input m,n:); scanf(%d%d,&m,&n); cmn=fac(m)/fac(n)/fac(m-n); printf(%ldn,amn); long fac(int n) int i; long k=1; for(i=1;iy ? x: y); 形參形參形參出現(xiàn)在函數(shù)的定義中,在整個(gè)函數(shù)體內(nèi)可以使用,形參出現(xiàn)在函數(shù)的定義中,在整個(gè)函數(shù)體內(nèi)可以使用,離開該函數(shù)則不

8、能使用;離開該函數(shù)則不能使用;形參必須是變量,在函數(shù)定義時(shí)必須進(jìn)行類型說明;形參必須是變量,在函數(shù)定義時(shí)必須進(jìn)行類型說明;函數(shù)調(diào)用時(shí),形參被臨時(shí)分配存儲單元,調(diào)用結(jié)束后,形參所函數(shù)調(diào)用時(shí),形參被臨時(shí)分配存儲單元,調(diào)用結(jié)束后,形參所占單元被釋放。占單元被釋放。實(shí)參實(shí)參實(shí)參出現(xiàn)在主調(diào)函數(shù)中,在函數(shù)調(diào)用時(shí),把實(shí)參的值傳實(shí)參出現(xiàn)在主調(diào)函數(shù)中,在函數(shù)調(diào)用時(shí),把實(shí)參的值傳遞給形參,從而實(shí)現(xiàn)主調(diào)函數(shù)向被調(diào)函數(shù)的數(shù)據(jù)傳遞。遞給形參,從而實(shí)現(xiàn)主調(diào)函數(shù)向被調(diào)函數(shù)的數(shù)據(jù)傳遞。實(shí)參可以是常量和有確定值的變量、數(shù)組元素或表達(dá)式。實(shí)參可以是常量和有確定值的變量、數(shù)組元素或表達(dá)式。注意:注意:在函數(shù)調(diào)用期間,實(shí)參和形參對應(yīng)

9、不同的內(nèi)存單元,所在函數(shù)調(diào)用期間,實(shí)參和形參對應(yīng)不同的內(nèi)存單元,所以在被調(diào)函數(shù)中形參的改變不會影響到主調(diào)函數(shù)的實(shí)參,這是以在被調(diào)函數(shù)中形參的改變不會影響到主調(diào)函數(shù)的實(shí)參,這是一種一種“單向傳值單向傳值”調(diào)用。調(diào)用。#include “stdio.h”int ab(int d) if (d0) d=-d; return(d); main ( ) int a, b; scanf (“%d” ,&b); a=ab(b); printf (“%d %d”,b,a); 輸入輸入 -5結(jié)果結(jié)果 5 5在被定義的函數(shù)中,必須指定形參的類型。在被定義的函數(shù)中,必須指定形參的類型。實(shí)參與形參應(yīng)在位置、個(gè)

10、數(shù)、類型上保持一致。實(shí)參與形參應(yīng)在位置、個(gè)數(shù)、類型上保持一致。如果實(shí)參為整型而形參為實(shí)型,或者相反,則如果實(shí)參為整型而形參為實(shí)型,或者相反,則發(fā)生發(fā)生“類型不匹配類型不匹配”的錯誤。但字符型與整型的錯誤。但字符型與整型可以互相通用??梢曰ハ嗤ㄓ?。C C語言規(guī)定,實(shí)參變量對形參變量的數(shù)據(jù)傳遞語言規(guī)定,實(shí)參變量對形參變量的數(shù)據(jù)傳遞是是“單向值傳遞單向值傳遞”。即數(shù)據(jù)只能由實(shí)參傳給形。即數(shù)據(jù)只能由實(shí)參傳給形參,而不能由形參傳回給實(shí)參。參,而不能由形參傳回給實(shí)參。 C語言函數(shù)的定義是平行的、獨(dú)立的,不能嵌套定義,但可以嵌套調(diào)用。也就是說,在調(diào)用一個(gè)函數(shù)的過程中,被調(diào)函數(shù)又可以調(diào)用另一個(gè)函數(shù)。例例: :

11、 求求39C)!( !nmnmCnmlong fac(int n) int i; long k=1; for(i=1;i1例:利用遞歸計(jì)算例:利用遞歸計(jì)算n! 1 n=0,1fac(n)= n*fac(n-1) n1C C語言中的每個(gè)變量和函數(shù)都有兩個(gè)屬性:語言中的每個(gè)變量和函數(shù)都有兩個(gè)屬性:數(shù)據(jù)類型數(shù)據(jù)類型和和數(shù)據(jù)的存數(shù)據(jù)的存儲類別儲類別。數(shù)據(jù)的存儲類別指的是數(shù)據(jù)在內(nèi)存中的存儲方法。分。數(shù)據(jù)的存儲類別指的是數(shù)據(jù)在內(nèi)存中的存儲方法。分為:靜態(tài)存儲類和動態(tài)存儲類。變量的存儲類別決定了變量的為:靜態(tài)存儲類和動態(tài)存儲類。變量的存儲類別決定了變量的作用域和生存期。變量的數(shù)據(jù)類型決定了變量的取值范圍。作

12、用域和生存期。變量的數(shù)據(jù)類型決定了變量的取值范圍。程序區(qū)靜態(tài)存儲區(qū)動態(tài)存儲區(qū)作用域:變量能夠起作用的程序范圍。分局部變量和全局變量。作用域:變量能夠起作用的程序范圍。分局部變量和全局變量。生存期:變量占用內(nèi)存單元的時(shí)限。有的變量可能在整個(gè)程序生存期:變量占用內(nèi)存單元的時(shí)限。有的變量可能在整個(gè)程序運(yùn)行期間一直存在(占用內(nèi)存空間),此變量稱為靜運(yùn)行期間一直存在(占用內(nèi)存空間),此變量稱為靜態(tài)變量;也有的變量可能只在某個(gè)函數(shù)的執(zhí)行期間才態(tài)變量;也有的變量可能只在某個(gè)函數(shù)的執(zhí)行期間才存在,這種變量稱為是動態(tài)變量。存在,這種變量稱為是動態(tài)變量。與存儲類別有關(guān)的說明符有四個(gè),即:與存儲類別有關(guān)的說明符有四

13、個(gè),即:auto,static,register,extern在函數(shù)內(nèi)(或復(fù)合語句中)定義的變量稱為局部變在函數(shù)內(nèi)(或復(fù)合語句中)定義的變量稱為局部變量。量。函數(shù)的形參屬于局部變量。函數(shù)的形參屬于局部變量。局部變量的作用域:局部變量的作用域:本函數(shù)(或復(fù)合語句)內(nèi)。本函數(shù)(或復(fù)合語句)內(nèi)。 如:如:main ( ) int a , b ; /*局部變量局部變量a , b 在在main 中有效中有效*/ int b , c ; /*局部變量局部變量b , c 在復(fù)合語句中有效在復(fù)合語句中有效*/ float f1(int a) int b,c; 局部變量的存儲類別有三種:局部變量的存儲類別有三種

14、: autoauto,static static 和和 registerregister。(1) auto (1) auto 變量變量在函數(shù)體中定義的局部變量如果使用在函數(shù)體中定義的局部變量如果使用“autoauto”關(guān)鍵關(guān)鍵字或缺省該關(guān)鍵字,這種局部變量叫字或缺省該關(guān)鍵字,這種局部變量叫“自動變自動變量量”。 如:如:auto int a, b; auto int a, b; 或或 int a, b;int a, b; 自動變量的自動變量的生存期:生存期: 函數(shù)被調(diào)用期間函數(shù)被調(diào)用期間 自動變量的自動變量的值:值: 存放在動態(tài)存儲區(qū)中存放在動態(tài)存儲區(qū)中 main( ) int k ; int

15、 f(int b); for (k=1 ; k=4 ;k+) f (k); int f(int b) int a=10; printf (“a=%d,b=%dn”, a , b ); a+=10 ; 運(yùn)行結(jié)果運(yùn)行結(jié)果: a=10,b=1 a=10,b=2 a=10,b=3 a=10,b=4在同一函數(shù)的兩次調(diào)用之間,自動局部變量的值不保留。 在函數(shù)體中定義的局部變量如果使用在函數(shù)體中定義的局部變量如果使用“staticstatic”關(guān)關(guān)鍵字,稱為鍵字,稱為“靜態(tài)局部變量靜態(tài)局部變量”。 如:如: static int a=10;static int a=10; 靜態(tài)局部變量的靜態(tài)局部變量的生存期

16、:生存期:整個(gè)程序運(yùn)行期間整個(gè)程序運(yùn)行期間 靜態(tài)局部變量的靜態(tài)局部變量的值:值:存放在靜態(tài)存儲區(qū)中存放在靜態(tài)存儲區(qū)中 注意注意: : 在整個(gè)程序的運(yùn)行期間,在整個(gè)程序的運(yùn)行期間,靜態(tài)局部變量靜態(tài)局部變量占占據(jù)的存儲單元一直保留而不釋放,直到程據(jù)的存儲單元一直保留而不釋放,直到程序運(yùn)行結(jié)束。序運(yùn)行結(jié)束。兩次函數(shù)調(diào)用期間變量的值保持連續(xù)。兩次函數(shù)調(diào)用期間變量的值保持連續(xù)。 main( ) int k ; int f(int b); for (k=1 ; k=4 ;k+) f (k); int f(int b) static int a=10; printf (“a= %d ,b=%dn”, a ,

17、b); a+=10 ; 運(yùn)行結(jié)果運(yùn)行結(jié)果: a=10,b=1 a=20,b=2 a=30,b=3 a=40,b=4說明:說明:(1 1)靜態(tài)局部變量在編譯時(shí)賦初值,程序運(yùn)行時(shí),每次調(diào)用函數(shù),)靜態(tài)局部變量在編譯時(shí)賦初值,程序運(yùn)行時(shí),每次調(diào)用函數(shù),該變量保留上一次的值,而非初值。自動變量在執(zhí)行時(shí)賦初值該變量保留上一次的值,而非初值。自動變量在執(zhí)行時(shí)賦初值 。(2 2)若定義時(shí)不賦初值,則局部靜態(tài)變量為)若定義時(shí)不賦初值,則局部靜態(tài)變量為0 0,自動變量值不定。,自動變量值不定。(3 3)函數(shù)調(diào)用結(jié)束后,雖然靜態(tài)局部變量有值,但其他函數(shù)不能)函數(shù)調(diào)用結(jié)束后,雖然靜態(tài)局部變量有值,但其他函數(shù)不能使用

18、它。使用它。在函數(shù)體中定義的局部變量如果使用在函數(shù)體中定義的局部變量如果使用“registerregister”字樣存儲類別關(guān)字樣存儲類別關(guān)鍵字,這種局部變量叫鍵字,這種局部變量叫“寄存器變量寄存器變量”。 如:如:register int a, b; register int a, b; 或或 int a, b;int a, b; 寄存器變量的寄存器變量的生存期:生存期: 函數(shù)被調(diào)用期間函數(shù)被調(diào)用期間 寄存器變量的寄存器變量的值:值: 存放在存放在CPUCPU的寄存器中的寄存器中注意注意: : CPUCPU中寄存器的數(shù)目是有限的,因此只能說明少量的寄存器變中寄存器的數(shù)目是有限的,因此只能說明

19、少量的寄存器變量。量。由于由于 registerregister 變量的值是放在寄存器內(nèi)而不是放在內(nèi)存中,變量的值是放在寄存器內(nèi)而不是放在內(nèi)存中,所以所以 registerregister 變量沒有變量沒有地址地址,也就,也就不能不能對他進(jìn)行求對他進(jìn)行求地址運(yùn)算地址運(yùn)算。register register 變量變量的說明應(yīng)盡量靠近其使用的地方,用完之后的說明應(yīng)盡量靠近其使用的地方,用完之后盡快釋放,以便提高寄存器的利用效率。盡快釋放,以便提高寄存器的利用效率。 全局變量:全局變量:在函數(shù)外部定義的變量稱為全局變量。在函數(shù)外部定義的變量稱為全局變量。全局變量的作用域全局變量的作用域:從定義變量的

20、位置開始到整個(gè)源從定義變量的位置開始到整個(gè)源文件結(jié)束止。文件結(jié)束止。注意:注意:v 在一個(gè)函數(shù)內(nèi)部,既可以使用本函數(shù)定義的局部變量,也可在一個(gè)函數(shù)內(nèi)部,既可以使用本函數(shù)定義的局部變量,也可以使用有效的全局變量以使用有效的全局變量( (在此函數(shù)之前定義的全局變量)。在此函數(shù)之前定義的全局變量)。v 在同一個(gè)文件中,若全局變量與局部變量同名,則在局部變在同一個(gè)文件中,若全局變量與局部變量同名,則在局部變量的作用域內(nèi),全局變量不起作用。量的作用域內(nèi),全局變量不起作用。 int k=10 ; main ( ) int m , j=k ; int k=20 ; m= k; printf (“%d, %d

21、 ,%dn”, k , j , m); 結(jié)果:結(jié)果:20,10,20全局變量的存儲類別有兩種:全局變量的存儲類別有兩種: 外部的外部的(extern)(extern)和和 靜態(tài)的靜態(tài)的(static)(static) (1 1) 外部全局變量外部全局變量在定義全局變量時(shí)缺省其存儲類別,則稱為在定義全局變量時(shí)缺省其存儲類別,則稱為 “外部變量外部變量”。 外部變量的外部變量的生存期:生存期:整個(gè)程序的運(yùn)行期間整個(gè)程序的運(yùn)行期間 外部變量的外部變量的值:值:存放在靜態(tài)存儲區(qū)存放在靜態(tài)存儲區(qū)float sum=0float sum=0,mul=0mul=0,sub=0sub=0; * *定義全局變量

22、定義全局變量* *float Compute(float xfloat Compute(float x,float y)float y) sum=x+y sum=x+y; sub=x-ysub=x-y; mul=xmul=x* *y y; returnreturn(x/yx/y);); main( )main( ) float x,y,z float x,y,z; scanf(scanf(%f%f,%f%f,&x&x,&y)&y); z=Compute(x,y)z=Compute(x,y); printf(printf(%f%f,%f%f,%f%f,%fn%fn

23、,sum,sub,mul,z),sum,sub,mul,z); 例:已知兩個(gè)實(shí)數(shù),編寫一函數(shù)求其和、差、積、商。例:已知兩個(gè)實(shí)數(shù),編寫一函數(shù)求其和、差、積、商。float f1() extern int a; float f2() int afloat f3() /* 文件文件1 */int x;main() /* 文件文件3 */extern int x;f2 ( ) /* 文件文件2 */ extern int x;f1( )注意:注意:如果在外部變量的定義點(diǎn)之前需使用全局變量,如果在外部變量的定義點(diǎn)之前需使用全局變量,應(yīng)在該函數(shù)中進(jìn)行外部變量的說明,格式為:應(yīng)在該函數(shù)中進(jìn)行外部變量的說明,格式為: extern extern 外部變量名表外部變量名表用用externextern對全局變量加以聲明,就可將其作用域擴(kuò)充到對全局變量加以聲明,就可將其作用域擴(kuò)充到整個(gè)源文件或其它源文件中。整個(gè)源文件或其它源文件中。在定義全局變量時(shí)加在定義全局變量時(shí)加“staticstatic”關(guān)鍵字關(guān)鍵字,稱為,稱為“靜態(tài)全局靜態(tài)全局變量變量”。 靜態(tài)全局變量的作用域:靜態(tài)全局變量的作用域:

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論