版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第五章 函 數(shù)1本章主要內(nèi)容 5.1 函數(shù)概述 5.2 函數(shù)原型 5.3 全局變量與局部變量 函數(shù)的調(diào)用 5.4 函數(shù)調(diào)用機制 5.5 靜態(tài)局部變量 函數(shù)的參數(shù)傳遞機制 5.6 遞歸函數(shù) 5.7 內(nèi)聯(lián)函數(shù) 5.8 重載函數(shù) 5.9 默認參數(shù)的函數(shù) 作業(yè)2理解什么是函數(shù):過程模塊區(qū)分函數(shù)聲明與定義了解數(shù)學(xué)函數(shù):數(shù)學(xué)庫函數(shù)掌握全局和局部變量的用法了解遞歸函數(shù)學(xué)習(xí)目標(biāo):35.1 函數(shù)概述程序功能模塊程序子程序C+ 語言: 程序函數(shù)程序結(jié)構(gòu): 4例: 編寫一個對某個正整數(shù)有關(guān)的處理程序 主函數(shù)輸入一個數(shù)逆序輸出求該數(shù)范圍內(nèi)的水仙花數(shù)求該數(shù)范圍內(nèi)的素數(shù)求該數(shù)范圍內(nèi)的完數(shù)輸出結(jié)果繼續(xù)?結(jié)束55.1 函數(shù)概
2、述說明:1.源程序文件:一個源文件是一個編譯單位,不是以函數(shù)為單位進行編譯的2.C+程序由一個或多個源文件組成;分多個文件可以提高編譯和調(diào)試的效率3.主程序只能有一個,程序執(zhí)行自主程序開始,由主程序結(jié)束而結(jié)束 65.1 函數(shù)概述4.函數(shù)必須定義,定義時各函數(shù)相互獨立,不能嵌套定義;除主函數(shù)外,函數(shù)間可以相互調(diào)用5.函數(shù)分類:從用戶角度:庫函數(shù)、自定義函數(shù)從 形 式:無參函數(shù)、有參函數(shù)7C+實用教程8返回類型 func ( 參數(shù)列表 ) ;返回類型 func ( ) ;void func ( 參數(shù)列表 ) ;void func ( ) ;int func1( int x ) return x *
3、 x ;int func2() return sizeof(int) ;void print( int x ) cout x endl ;void printCrLf() cout endl ;5.1 函數(shù)概述-函數(shù)的四種類型85.2 函數(shù)原型函數(shù)是面向?qū)ο蟪绦蛟O(shè)計中的基本抽象單元,是對功能的抽象函數(shù)聲明的語法形式類型標(biāo)識符 函數(shù)名 (形式參數(shù)表); 若無參數(shù),寫void是被初始化的內(nèi)部變量,壽命和可見性僅限于函數(shù)內(nèi)部若無返回值,寫void9形式參數(shù)表type1 name1, type2 name2, ., typen namen函數(shù)的返回值由 return 語句給出,返回值的類型在聲明時約定
4、。 例如 :return 0; return x+y ;無返回值的函數(shù)(void類型),不必寫return語句。還可利用return語句改變執(zhí)行順序。5.2 函數(shù)原型105.2 函數(shù)原型在C+中,函數(shù)聲明就是函數(shù)原型。函數(shù)原型不必包含參數(shù)的名字,只要包含參數(shù)的類型。例如: void funcA(int,float);函數(shù)定義 類型標(biāo)識符 函數(shù)名(形式參數(shù)表) 語句序列; 115.2 函數(shù)原型函數(shù)的聲明和函數(shù)的定義,在返回類型、函數(shù)名、參數(shù)個數(shù)、參數(shù)類型及參數(shù)順序上必須完全一致,否則編譯時出錯。例如: int main() int a; float b; funcA(a,b); void fun
5、cA(int x,int y) / link error / 125.3 全局變量與局部變量 程序的內(nèi)存區(qū)域代碼區(qū),存放程序的代碼,即程序中的各個函數(shù)代碼塊。全局數(shù)據(jù)區(qū),存放程序的全局數(shù)據(jù)和靜態(tài)數(shù)據(jù)。堆區(qū),存放程序的動態(tài)數(shù)據(jù)。棧區(qū),存放程序的局部數(shù)據(jù),即各個函數(shù)的數(shù)據(jù)。 135.3 全局變量與局部變量全局變量在函數(shù)外部定義的變量稱全局變量作用域:從被定義的位置起,至文件結(jié)束處止說明:全局變量在程序執(zhí)行的整個過程中,占用固定的內(nèi)存單元(位于全局數(shù)據(jù)區(qū))具有初始值(為0)可以被在其定義后的所有函數(shù)共同使用(解決“一個函數(shù)只能返回一個值”的問題)在同一源文件中,如果外部變量與局部變量同名,則:在局部
6、變量的作用域內(nèi),同名的全局變量不起作用145.3 全局變量與局部變量#include using namespace std; void f( int n);/ 函數(shù)原型聲明int a = 8;/ 定義全局變量int main()coutaendl;f(10);coutaendl;return 0;void f(int n )/ 函數(shù)定義a = n;/ 將n的值賦給全局變量155.3 全局變量與局部變量局部變量只在某一函數(shù)內(nèi)部定義的變量稱局部變量,局部變量存放在棧區(qū)作用域:只局限于本函數(shù)內(nèi) 說明不同函數(shù)的局部 變量可以同名形參是局部變量除本函數(shù)外,其它函數(shù)一概不能使用 復(fù)合語句中的局部變量 復(fù)
7、合語句可以看成是“程序塊”,在其內(nèi)部可另行定義變量分程序局部變量165.3 全局變量與局部變量#include using namespace std; void f( int n);/ 函數(shù)原型聲明int a = 8;/ 定義全局變量int main()coutaendl;f(10);coutaendl;return 0;void f(int n )/ 函數(shù)定義int a; a = n;/ 將n的值賦給局部變量 coutaendl;17函數(shù)的調(diào)用調(diào)用前先說明函數(shù)原型或進行函數(shù)定義 例如: double power(double,int);調(diào)用形式 函數(shù)名(實參列表) 實際參數(shù)要和形式參數(shù)在個
8、數(shù)、類型及順序上 保持一致 函數(shù)調(diào)用可出現(xiàn)在表達式中(有返回值的),也可作為一條單獨的語句 例如: m=power(2.3,4); func();18函數(shù)的調(diào)用嵌套調(diào)用函數(shù)不允許嵌套定義,但可以嵌套調(diào)用。 例如: void funcA(int aa,int bb) int n=5; / funcB(n); 遞歸調(diào)用函數(shù)直接或間接調(diào)用自身。19例: 編寫一個求x的n次方的函數(shù)#include double power (double, int); /函數(shù)聲明int main( ) cout “5 to the power 2 is ” power(5,2) endl; /函數(shù)調(diào)用 double
9、power (double x, int n) /函數(shù)定義double val = 1.0;while (n-)val = val*x;return val; 運行結(jié)果:5 to the power 2 is 2520函數(shù)的調(diào)用函數(shù)調(diào)用的執(zhí)行過程main( )調(diào)fun( )結(jié)束fun( )返回保存:返回地址當(dāng)前現(xiàn)場恢復(fù):主調(diào)程序現(xiàn)場返回地址21函數(shù)的調(diào)用嵌套調(diào)用main ( )調(diào)fun1 ( )結(jié)束fun1 ( )調(diào)fun2 ( )返回fun2 ( )返回int main( ) / fun1(a,b); / int fun1(int x,int y) / fun2(x); / int fun2
10、(int m) return (m*m); 22例:輸入兩個整數(shù),求平方和。#include int main( ) int a,b; int fun1(int,int); /函數(shù)聲明 cinab; cout“a、b的平方和:” fun1(a,b)endl; int fun1(int x,int y) int fun2(int); return (fun2(x)+fun2(y); int fun2(int m) return (m*m); 運行結(jié)果:3 4a、b的平方和:25home23函數(shù)的參數(shù)傳遞機制傳遞參數(shù)值在函數(shù)被調(diào)用時才分配形參的存儲單元。實參可以是常量、變量或表達式。實參類型必須與
11、形參相符。24函數(shù)的參數(shù)傳遞機制傳遞參數(shù)值XN被調(diào)函數(shù):主調(diào)函數(shù):3 2.5AD = power(A,3) 2.53double power(double X, int N)home255.4 函數(shù)調(diào)用機制保護調(diào)用函數(shù)的運行狀態(tài)和返回地址入棧建立被調(diào)用函數(shù)的??臻g傳遞參數(shù)將控制轉(zhuǎn)給被調(diào)用函數(shù) 例如,下面的代碼在主函數(shù)中調(diào)用一個函數(shù),該函數(shù)又調(diào)用了另一個函數(shù),它得到圖5-3種所示的內(nèi)存布局: 26void funcA(int,int);void funcB(int);int main( ) int a=6,b=12; funcA(a,b); void funcA(int aa,int bb) i
12、nt n=5; / funcB(n); void funcB(int s) int x; / 27圖5-4是funcB( )返回到funcA( ), funcA( )又回到main( )時的棧內(nèi)容??梢钥闯觯祷氐街骱瘮?shù)后, funcA( ) 和funcB( )的局部變量和形參都消失,但對應(yīng)內(nèi)存中的內(nèi)容還是存在的。285.5 靜態(tài)局部變量靜態(tài)局部變量:局部變量定義時,前面冠以 static 注意:位于全局數(shù)據(jù)區(qū),系統(tǒng)默認初始化為0 靜態(tài)局部變量只在函數(shù)第一次被調(diào)用時進行初始化 可見性:本函數(shù)內(nèi) 295.5 靜態(tài)局部變量存儲類型:auto自動(動態(tài)、局部變量)static靜態(tài)(可以全局,也可局部
13、變量)register寄存器(形參,局部變量)extern外部的全局變量C+規(guī)定:每個變量和函數(shù)有兩個屬性:存儲類型和數(shù)據(jù)類型,并必須加以定義: 存儲類型 數(shù)據(jù)類型 變量名列表;局部變量的存儲類型缺省,默認為auto外部變量:指本文件外的全局變量,只定義一次,且在函數(shù)外定義 30/* ch5_2.cpp *#include void func();int n=1; /全局變量int main() static int a; / 靜態(tài)局部變量 int b= -10; / 局部變量 cout a: a b: b n: n endl; b+=4; func(); cout a: a b: b n:
14、n endl; n+=10; func();void func() static int a=2; /靜態(tài)局部變量 int b=5; / 局部變量 a+=2; n+=12; b+=5; cout a: a b: b n: n endl;運行結(jié)果為: a:0 b:-10 n:1 a:4 b:10 n:13 a:0 b:-6 n:13 a:6 b:10 n:3531include using namespace std;void count()int i = 0;static int j = 0; / 靜態(tài)類型i+;j+;couti = i, j = jn;int main()count();co
15、unt();return 0;325.6 遞歸函數(shù)遞歸調(diào)用:直接或間接地調(diào)用自己直接遞歸調(diào)用:在函數(shù)f 中調(diào)用函數(shù)f 例如: void f() / f(); 間接遞歸調(diào)用:函數(shù)f 調(diào)用函數(shù)ff,而函數(shù)ff 調(diào)用函數(shù)f注意:要有終止遞歸調(diào)用的條件! 335.6 遞歸函數(shù)例:求n!分析:計算n!的公式如下:這是一個遞歸形式的公式,可用遞歸函數(shù)實現(xiàn)。345.6 遞歸函數(shù)遞歸過程的兩個階段:遞推: 4!=43! 3!=32! 2!=21! 1!=10! 0!=1未知 已知回歸:4!=43!=243!=32!=62!=21!=21!=10!=10!=1未知 已知35源程序:#include long f
16、ac(int n) long f; if (n0) coutn0,data error!endl; else if (n=0) f=1; else f=fac(n-1)*n; return f;36int main( ) long fac(int n); int n; long y; coutn; y=fac(n); coutn!=yendl;運行結(jié)果:Enter a positive integer:88!=4032037例:遞歸的執(zhí)行情況分析 void print(int w) int i; if ( w!=0) print(w-1); for(i=1;i=w;+i) cout setw(
17、2) w ,; cout endl; 調(diào)用print(3)運行結(jié)果: 1, 2, 2, 3, 3, 3,38遞歸調(diào)用執(zhí)行情況如下:主程序(1)print(w) w=3; 3print(2);(1)w=3 top(2) 壓棧w=3w2print(1);(2)w=2 (1)w=3 top(3)壓棧w=2w1print(0);(3)w=1 (2)w=2 (1)w=3 top(4)壓棧w=1w0(4)w=0 (3)w=1 (2)w=2 (1)w=3 topw(3) 輸出:2, 2(2) 2(1) 3top(4)輸出:1(3) 1(2) 2(1) 3top(2) 輸出:3, 3, 3 (1 ) 3top
18、返回(3) 1(2) 2(1) 3top(4) 0結(jié)束(1)void print(int w) int i; if ( w!=0) print(w-1); for(i=1;i=w;+i) cout setw(2) w ,; cout endl; 395.6 遞歸函數(shù)例:漢諾塔問題。有三根柱A、B、C。A柱上有N個盤子,大的在下,小的在上,要求把這N個盤子從A柱移到C柱,在移動過程中可以借助B柱,每次只允許移動一個盤,且在移動過程中在三根柱上都保持大盤在下,小盤在上。ABC40C+實用教程41演示:移動1個盤子的分解在A柱上只有一只盤子,假定盤號為 1,這時只需將該盤從 A 搬至 C,一次完成。
19、記為 move 1# from A to C ABC141C+實用教程42演示:移動2個盤子的分解第(1)步將1號盤從A移至B,這是為了讓 2號盤能動;第(2)步將 2 號盤從A 移至 C;第(3)步再將 1 號盤從 B 移至 C;ABC21move 1# from A to B;move 2# from A to C;move 1# form B to C;42C+實用教程43演示:移動3個盤子的分解move (3, A, B, C)move (2, A, C, B)move (1, A, B, C)move (2, B, A, C)ABC21343C+實用教程44move (3, A, B
20、, C)move (2, A, C, B)move (1, A, B, C)move (1, A, C, B)move (1, C, A, B)move (1, A, B, C)move (2, B, A, C)move (1, B, C, A)move (1, B, A, C)move (1, A, B, C)ABC21344分析:將n 個盤子從A柱移到C柱可以分解為下面三個步驟:將A 上n-1個盤子移到 B柱上(借助C柱);把A柱上剩下的一個盤子移到C柱上;將n-1個盤子從B柱移到C柱上(借助A柱);事實上,上面三個步驟包含兩種操作:將多個盤子從一個柱移到另一個柱上,這是一個遞歸的過程。
21、hanoi函數(shù)實現(xiàn)。將1個盤子從一個柱上移到另一柱上。用move函數(shù)實現(xiàn)。45#include void move( int n, char s, char d)coutn, sdendl;void hanoi( int n, char A , char B , char C )if (1 = n) move(n, A, C);else hanoi( n-1, A, C, B); move(n, A, C); hanoi( n-1, B, A, C);46int main( ) int m; coutm; coutthe steps to moving m diskes:C2, A-B1, C
22、-B3, A-C1, B-A2, B-C1, A-C475.6 遞歸函數(shù)遞歸的評價簡化程序設(shè)計,使程序易讀增加了系統(tǒng)開銷(包括時間和空間)使用遞歸函數(shù)需要注意要有完成函數(shù)任務(wù)的語句遞歸的實現(xiàn)遞歸的運行過程遞歸的條件485.7 內(nèi)聯(lián)函數(shù)inline:也稱內(nèi)置函數(shù)、內(nèi)嵌函數(shù)目的:減少開銷、提高效率在編譯時,象對待“宏”一樣進行替換,程序運行時沒有函數(shù)調(diào)用過程和函數(shù)返回定義、聲明時:在前面冠以“inline”即可 491.內(nèi)聯(lián)函數(shù)的需要性例如,下面的代碼中,頻繁地調(diào)用一個小函數(shù):/* ch5_3.cpp *#include int isnumber(char); /函數(shù)聲明int main() ch
23、ar c; while(c=cin.get()!=n) if( isnumber(c) ) /調(diào)用一個小函數(shù) cout you entered a digitn; else cout =0 & ch=9)? 1:0;5.7 內(nèi)聯(lián)函數(shù)50 程序中不斷到設(shè)備中讀取數(shù)據(jù),頻繁調(diào)用isnumber()函數(shù)。為了提高效率,可將程序改為:#include int main() char c; while(c=cin.get()!=n) if(c=0 & c=9)? 1:0) /修改處:直接計算表達式 cout you entered a digitn; else cout =0 & ch=9)? 1:0;
24、編譯器看到inline后,為該函數(shù)創(chuàng)建一段代碼,以便在后面每次碰到該函數(shù)的調(diào)用都用相應(yīng)的一段代碼來替換。523.先聲明后調(diào)用#include int isnumber(char); /此處無inlineint main() char c; while(c=cin.get()!=n) if( isnumber(c) ) /調(diào)用一個小函數(shù) cout you entered a digitn; else cout =0 & ch=9)? 1:0;535.7 內(nèi)聯(lián)函數(shù)4.內(nèi)聯(lián)函數(shù)的函數(shù)體限制如果被調(diào)用函數(shù)定義在被調(diào)用之前,且定義時冠以inline,則以后每次被調(diào)用均作內(nèi)聯(lián)函數(shù)處理。內(nèi)聯(lián)函數(shù)內(nèi)不能出現(xiàn)s
25、witch、循環(huán)語句內(nèi)聯(lián)函數(shù)中不能有數(shù)組定義,也不能有任何靜態(tài)類型的定義遞歸函數(shù)不能被定義成“內(nèi)聯(lián)”函數(shù)對常被調(diào)用的小而簡單的函數(shù)進行“內(nèi)聯(lián)” 545.8 重載函數(shù)1. 重載的需要性 面向?qū)ο笙到y(tǒng)的3大特性之一的多態(tài)性就是通過重載實現(xiàn)的重載:即同名不同義,在不同的情況下可表現(xiàn)出不同的“行為”重載包括函數(shù)重載:多個函數(shù)同名,但執(zhí)行的操作和操作對象不同操作符重載:一個運算符,可進行多種不同含義的解釋,進行不同的操作 555.8 重載函數(shù)問題的提出:比較大?。?個整數(shù)比較、2個浮點數(shù)比較、.在C+中必須逐個定義不同名的多個函數(shù)希望:由系統(tǒng)自動判斷,用戶只要記住函數(shù)名即可重載:寫多個同名函數(shù),由系統(tǒng)根
26、據(jù)操作數(shù)自動判斷究竟調(diào)用哪個函數(shù) 565.8 重載函數(shù)2.匹配重載函數(shù)的順序 按如下先后順序: (1) 尋找一個完全匹配,找到就調(diào)用 (2) 通過內(nèi)部轉(zhuǎn)換、然后尋找一個匹配,只要找到就調(diào)用 (3) 通過用戶自己定義的轉(zhuǎn)換尋找一個匹配,找到就調(diào)用 575.8 重載函數(shù)例如,重載函數(shù)print( )的匹配: void print(double); void print(int); void func() print(1); /匹配void print(int); print(1.0); /匹配void print(double); print(a); /匹配void print(int); pri
27、nt(3.1415f); /匹配void print(double); 585.8 重載函數(shù)C+允許int 到long,int到double 的轉(zhuǎn)換。當(dāng)實參是整數(shù),而重載函數(shù)一個是long型參數(shù),一個為double型參數(shù)時,應(yīng)該給以一個顯式轉(zhuǎn)換。例如,對于重載函數(shù)print( )聲明,其下面的函數(shù)調(diào)用將引起錯誤: void print(long); void print(double); void func(int a) print (a); /error:因為二義性 (double)a);595.8 重載函數(shù)3.使用說明 重載函數(shù)至少在參數(shù)個數(shù)、參數(shù)類型或參數(shù)順序上有所不同,僅返回類型不同不
28、行不能用typedef定義的類型名來區(qū)別重載函數(shù)中的參數(shù)類型,因為“編譯”時不區(qū)分其差別同名函數(shù)應(yīng)具有相同的功能 605.9 默認參數(shù)的函數(shù)1.默認參數(shù)的目的函數(shù)在聲明時可以預(yù)先給出默認的形參值,調(diào)用時如給出實參,則采用實參值,否則采用預(yù)先給出的默認形參值。例如:int add(int x=5,int y=6) return x+y;int main( ) add(10,20); /10+20 add(10); /10+6 add( ); /5+661C+規(guī)定:實參與形參的個數(shù)必須相同,且類型相對應(yīng)允許調(diào)用時不傳遞或部分不傳遞實參值,而采用缺省值例1:帶缺省形參值的函數(shù)舉例 #include
29、#include int get_volume(int length, int width=2, int height=3) coutsetw(5)length setw(5)width setw(5)height ; return length*width*height; 5.9 默認參數(shù)的函數(shù)62運行結(jié)果:Some box data is 10 12 15 1800Some box data is 10 12 3 360Some box data is 10 2 3 60Some box data is 10 7 3 210Some box data is 5 5 5 125int mai
30、n() int x = 10, y = 12, z = 15; cout Some box data is ; cout get_volume(x, y, z) endl; cout Some box data is ; cout get_volume(x, y) endl; cout Some box data is ; cout get_volume(x) endl; cout Some box data is ; cout get_volume(x, 7) endl; cout Some box data is ; cout get_volume(5, 5, 5) endl;635.9 默認參數(shù)的函數(shù)例2: #
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 16 太陽 教案 統(tǒng)編版五年級語文上冊
- 2024年九年級道德與法治下冊 第一單元 我們共同的世界 第一課 同住地球村 第2框 復(fù)雜多變的關(guān)系說課稿 新人教版
- 2 學(xué)會寬容 第一課時 說課稿-2023-2024學(xué)年道德與法治六年級下冊統(tǒng)編版
- 2025如何寫農(nóng)村土地承包合同范文
- 2025服裝代理商合同協(xié)議書范本
- 2《花的學(xué)校》說課稿-2024-2025學(xué)年統(tǒng)編版語文三年級上冊
- 隧道拆除專項施工方案
- 2024年五年級數(shù)學(xué)上冊 二 小數(shù)乘法 2小數(shù)的乘法第2課時 小數(shù)乘小數(shù)說課稿 冀教版
- 軍訓(xùn)訓(xùn)合同范例
- 黔江辦公室鋁扣板施工方案
- 2025年浙江省交通投資集團財務(wù)共享服務(wù)中心招聘2名高頻重點提升(共500題)附帶答案詳解
- 做投標(biāo)文件培訓(xùn)
- 9.4+跨學(xué)科實踐:制作簡易活塞式抽水機課件+-2024-2025學(xué)年人教版物理八年級下冊
- 建筑工程工作計劃
- 2025年中國國際投資促進中心限責(zé)任公司招聘管理單位筆試遴選500模擬題附帶答案詳解
- 瓶裝液化氣送氣工培訓(xùn)
- 外科護理課程思政課程標(biāo)準(zhǔn)
- 船舶航行安全
- 道德經(jīng)全文完整版本
- 9.2溶解度(第1課時飽和溶液不飽和溶液)+教學(xué)設(shè)計-2024-2025學(xué)年九年級化學(xué)人教版(2024)下冊
- 2024年審計局公務(wù)員招錄事業(yè)單位招聘考試招錄139人完整版附答案【研優(yōu)卷】
評論
0/150
提交評論