C語言簡明教程 第04章最簡單的C程序設計_第1頁
C語言簡明教程 第04章最簡單的C程序設計_第2頁
C語言簡明教程 第04章最簡單的C程序設計_第3頁
C語言簡明教程 第04章最簡單的C程序設計_第4頁
C語言簡明教程 第04章最簡單的C程序設計_第5頁
已閱讀5頁,還剩28頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、CH4 最簡單的C程序設計 順序結構程序設計THE C PROGRAMMING LANGUAGEC語言程序設計 第四章 順序程序設計(2) 一個c程序由若干個源程序文件組成,每個源程序文件又由預編譯命令和若干個函數組成,每個函數包括說明部分和執行部分(語句),由此介紹幾種語句。 通過示例介紹函數scanf(),printf(),getchar(),putchar()的應用場合及其格式參數的使用方法。 本章主要內容C語言程序設計 第四章 順序程序設計(3)4.1 C語句概述v在C語言中只有“可執行語句”,沒有“非執行語句”v一個C程序可以由若干個源程序文件(分別編譯的文件模塊)組成;v一個源文件

2、可以由若干個函數和預編譯命令以及全局變量聲明部分組成;v一個函數由數據定義部分和執行語句組成。v程序應該包括數據描述(由數據定義部分來實現)和數據操作(由語句來實現)。數據描述主要定義數據結構(用數據類型型表示)和數據初值。數據操作的任務是對已提供的數據進行加工。C程序源文件1 源文件i 源文件n 預編譯命令 全局變量聲明 函數1 函數n 局部變量聲明 執行部分(語句) 函數首部 函數體C程序結構C語言程序設計 第四章 順序程序設計(4)C語句可以分為以下五類v1控制語句,完成一定的控制功能,C只有9種控制語句,它們是: if( )else 條件語句 for ( ) while( ) 循環語句

3、 dowhile ( ) continue 結束本次循環語句 break 中止執行switch或循環語句 switch 多分支選擇語句 goto 轉向語句(可用做循環語句) return 從函數返回語句 上面9種語句中的括號()表示其中是一個條件,表示內嵌的語句。例如:“if( )else”的具體語句可以寫成: “if(xy)z=x;else z=y;”C語言程序設計 第四章 順序程序設計(5)v2函數調用語句。由一次函數調用加一個分號構成一個語句,例如: printf (”this is a C statement”); c=max(a,b);v3表達式語句。表達式的最后加一個分號就成了一個

4、語句。 最典型的是:由賦值表達式構成一個賦值語句。 a=3 是一個賦值表達式,而 a=3; 是一個賦值語句。 一個語句必須在最后出現分號,分號是語句中不可缺少的一部分。 表達式能構成語句是C語言的一個特色。其實“函數調用語句”也是屬于表達式語句,因為函數調用也屬于表達式的一種,只是為了便于理解和使用,我們把“函數調用語句”和“表達式語句”分開來說明。由于C程序中大多數語句是表達式語句(包括函數調用語句),所以有人把C語言稱作“表達式語言”。C語言程序設計 第四章 順序程序設計(6)v4空語句。下面是一個空語句: ; 即只有一個分號的語句,它什么也不做。有時用來作被轉向點,或循環語句中的循環體(

5、循環體是空語句,表示循環體什么也不做)。v5可以用 把一些語句括起來成為復合語句,如下面是一個復合語句。 z=x+y; tZ100; printf(”%f”,t); 注意:復合語句中最后一個語句中最后的分號不能忽略不寫。C語言程序設計 第四章 順序程序設計(7)4.2 賦值語句賦值語句由賦值表達式和一個分號構成。賦值表達式可以包括在其他表達式之中。如:if(a=b)0)t=a;其作用是先將b的值賦給a,再判斷a是否大于零。注意:a=b是表達式而不是語句,下列寫法錯誤:if(a=b;)0)t=a;vC語言的賦值語句具有其它高級語言中賦值語句的一切特點和功能。但也應當注意到它們的不同: C語言中的

6、“=”是賦值運算符; 關于賦值表達式與賦值語句的概念。C語言程序設計 第四章 順序程序設計(8)4.3 數據的輸入、輸出nC C語言不提供輸入輸出語句,所有輸入輸出操作都是由語言不提供輸入輸出語句,所有輸入輸出操作都是由函數函數來實現的。來實現的。注意:不同的計算機系統提供的函數注意:不同的計算機系統提供的函數數量、名字和功能不完全相同。數量、名字和功能不完全相同。使用除使用除printf 和和scanf 函數以外的任何標準函數以外的任何標準I/O庫函庫函數,都應在程序前加上數,都應在程序前加上預編譯命令預編譯命令include。C語言程序設計 第四章 順序程序設計(9)4.4 輸入/輸出函數

7、的使用 在在C C的標準函數庫中提供了多種輸入的標準函數庫中提供了多種輸入/ /輸出函數。例如:輸出函數。例如:printfprintf函數和函數和scanfscanf函數。這些函數定義在頭文件函數。這些函數定義在頭文件stdio.hstdio.h中。中。 在調用標準輸入/輸出庫函數時,在程序的開始處應有預編譯命令: #include 或 #include “stdio.h” standard input standard input & output& output#include#include命令都是放命令都是放在程序開始,因此稱在程序開始,因此稱這類文件為頭文件。這類文

8、件為頭文件。 最常見的輸入最常見的輸入/ /輸出函數是:輸出函數是:C C語言的輸入是語言的輸入是指從鍵盤接受用指從鍵盤接受用戶輸入數據。戶輸入數據。C C語言的輸出是語言的輸出是指在屏幕上顯指在屏幕上顯示結果數據。示結果數據。 getchar/getsgetchar/gets函數和函數和scanfscanf函數(輸入)函數(輸入)putchar/putsputchar/puts函數和函數和printfprintf函數(輸出)函數(輸出)C語言程序設計 第四章 順序程序設計(10)功能:將指定表達式的值所對應的字符輸出到標功能:將指定表達式的值所對應的字符輸出到標 準設備(終端準設備(終端/

9、/顯示器)顯示器), ,每次只能輸出一每次只能輸出一 個字符。個字符。 可以是字符型或整型的變量或常量可以是字符型或整型的變量或常量例例: : #include#include“stdio.hstdio.h” main main()() char o= char o=O O,k=k=K K,g=g=!; putcharputchar(o o);); putcharputchar(k k);); putcharputchar(g g);); putchar()必須帶輸出項,輸出項可以是字符型常量、變量、表達式,但只能是單個字符而不能是字符串。 執行結果為執行結果為:也可以輸出其它轉義字符,如:

10、putchar(101) (輸出字符A) putchar( ) (輸出單引號字符) putchar(015) (使輸出回車,不換行)OK!C語言程序設計 第四章 順序程序設計(11)功能:從標準輸入設備上(鍵盤)輸入一個且只能是一個字符,并將該字符返回為函數的值。例例: :#include #include mainmain()() int i; int i; i=getchar i=getchar();(); printf(printf(“%c%c:%dn%dn”,i,i);,i,i); 執行本程序時執行本程序時,按鍵,按鍵A A時時顯示結果如下:顯示結果如下:A A:6565(1)(1)只

11、有在按只有在按“回車回車”鍵之后輸入的字鍵之后輸入的字 符才有效符才有效. .(2)(2)此函數只接受一個字符,而非一此函數只接受一個字符,而非一 串字符。例中若輸入串字符。例中若輸入 abcdeabcde,該,該 函數也只接受第一個字符函數也只接受第一個字符 a a。(3) getchar(3) getchar函數得到的字符可以賦函數得到的字符可以賦 給一個字符變量或整型變量,也給一個字符變量或整型變量,也 可以不賦給任何變量而是作為表可以不賦給任何變量而是作為表 達式的一部分。達式的一部分。v例:1) putchar(getchar(); 2) If (ch=getchar()!=#) 3

12、) While( ch=getchar()!=#) 不是“#”就執行指定的操作C語言程序設計 第四章 順序程序設計(12)功能:是按控制字符串規定的格式,向缺省輸出設備 (一般為顯示器)輸出在輸出項列表中列出的 各個輸出項。可以是常量、變量和表達式。其類型和個數必須與格式控制字符符串中格式字符的類型及個數一致。輸出項之間以,分隔【例例】 printf printf(“%d%f%c%d%f%c” ,a a, ,b b, ,c c);); 必須由“ ”括起來:當系統遇到輸出的格式說明符后,會自動用后面對應的輸出項的值代替它的位置,然后輸出。格式字符應與待輸出項之間一一對應(且數據類型必須與格式符相

13、匹配) C語言程序設計 第四章 順序程序設計(13)例例1:4+4=?1:4+4=? #include #include main( ) main( ) int total; int total; total=4+4; total=4+4; printf( printf(“The total is %dnThe total is %dn”); ); CH4-3 該語句告訴程序顯示一個十進制該語句告訴程序顯示一個十進制數數,但是沒有指定變量但是沒有指定變量.C不會檢查不會檢查 并確認并確認 printf 函數被賦予了正確函數被賦予了正確的常量。由于沒有值的常量。由于沒有值,所以所以C生成生成了一

14、個值。正確的語句應該是:了一個值。正確的語句應該是: printf(“The total is %dn”,total ); 例例2: #include #include main( ) main( ) float answer; float answer; answer=7.0/20.0; answer=7.0/20.0; printf( printf(“The answer is %dnThe answer is %dn”,answer);,answer); CH4-4使用使用%d指定要顯示的整數指定要顯示的整數,但要但要轉化的是一個實數轉化的是一個實數,printf函數無函數無法檢查參數類

15、型法檢查參數類型,所以將實數賦予所以將實數賦予函數函數,而指定格式為整數而指定格式為整數,函數將這函數將這個數當作整數看待個數當作整數看待.C語言程序設計 第四章 順序程序設計(14) 格式:格式:% % (1 1)格式字符:規定了對應輸出項的輸出格式。見書)格式字符:規定了對應輸出項的輸出格式。見書P77P77。d 十進制整數,帶符號o 八進制整數,無符號x 16進制整數,無符號u 無符號十進制整數c 字符,只輸出一個字符s 字符串f 實數(小數),隱含6位小數e 指數形式,6位小數g 實數、自動選f或e格式(占寬較小一種)% 輸出%本身說 明C語言程序設計 第四章 順序程序設計(15)附加

16、格式說明符(見書P78)用在%和格式字符之間。格式字符說 明 l 用于長整型,可加在格式符d、o、x、u前面 %lf將修正為double型 h 將整型格式d、o、x、u修正為short型m(正整數) 數據最小寬度n(正整數) 對實數表示輸出n位小數;對字串表示截取的字符個數- 輸出的數字或字符在域內向左靠0 用“0”來填充數字前面的空位(2)修飾符:用于確定數據輸出的寬度、精度、小數位數、對齊 方式等,用于產生更加規范整齊的輸出,當沒有輸 出修飾符時,按系統缺省設定顯示。 長度修飾符:長度修飾符:l l(長),(長),h h(短),放在(短),放在(1 1)格式字符前面。)格式字符前面。 域寬

17、和精度描述符:域寬和精度描述符:m(域寬)(域寬)n(精度),放在(精度),放在長度修飾符長度修飾符的前面。的前面。C語言程序設計 第四章 順序程序設計(16) 當指定的域寬當指定的域寬小于小于數據的實際寬度時。數據的實際寬度時。對整數對整數:按該數的實際域:按該數的實際域寬輸出。寬輸出。對浮點數對浮點數:若指定的域寬大于浮點數的整數部分,相應的小:若指定的域寬大于浮點數的整數部分,相應的小數位按精度的位數四舍五入。若域寬小于等于浮點數整數部分的寬度,數位按精度的位數四舍五入。若域寬小于等于浮點數整數部分的寬度,則該浮點數按實際位數輸出,但小數位數仍遵守精度的規定。則該浮點數按實際位數輸出,但

18、小數位數仍遵守精度的規定。在實際應用中,更為靈活的域寬控制方法是:在實際應用中,更為靈活的域寬控制方法是:用常量作為輸出域寬,方法是以一個用常量作為輸出域寬,方法是以一個“* *”作為域寬放在作為域寬放在% %的后面。的后面。例如:例如: int a=123int a=123; printfprintf(“% %* *d d”,5 5,a a););Ch4-5Ch4-55 5為輸出域寬,輸出為為輸出域寬,輸出為 123 123 (1 1)%md%md:以寬度:以寬度m m輸出整型數,不足輸出整型數,不足m m時,左補空格,大于時,左補空格,大于m m時按時按實際位數輸出。實際位數輸出。 (2

19、2)%0md%0md:以寬度:以寬度m m輸出整型數,不足輸出整型數,不足m m時,左補時,左補0 0。 (3 3)%m.nf%m.nf:以寬度:以寬度m m輸出實型小數,小數位為輸出實型小數,小數位為n n位。位。C語言程序設計 第四章 順序程序設計(17) 對齊方式描述符:一般所有輸出數據對齊方式描述符:一般所有輸出數據缺省為右對齊格式缺省為右對齊格式,若加一,若加一 個個“- -”號,則變為號,則變為“左對齊左對齊”方式。放在方式。放在域寬描述域寬描述 符的前面符的前面。例如:例如: int i=123int i=123;float a=12.34567float a=12.34567;

20、 printfprintf(“%4d%10.4f%4d%10.4f”,i,ai,a);); printfprintf(“%-4d%10.4f%-4d%10.4f”,i,ai,a);); printfprintf(“%4d%-10.4f%4d%-10.4f”,i,ai,a););輸出為:輸出為: 123123 12.345712.3457輸出為:輸出為:123123 12.345712.3457輸出為:輸出為: 12312.345712312.3457 (1)書寫格式:除X,E,G格式符外,其余格式符必須小寫。(2)普通字符:在格式說明符中可以有可打印字符和轉義字符,可 打印字符主要是一些說明字

21、符,這些字符按原樣顯示在屏幕上 ,如果有漢字系統支持,也可以輸出漢字。轉義字符是不可打 印字符,他們其實是一些控制字符,控制產生特殊的輸出效果。 CH46C語言程序設計 第四章 順序程序設計(18)功能:該函數從標準輸入設備(鍵盤)上將數據讀功能:該函數從標準輸入設備(鍵盤)上將數據讀到參數所指定的位置上。每個參數必須是指向某種到參數所指定的位置上。每個參數必須是指向某種數據類型的指針,并且與數據類型的指針,并且與 format format 參數中的類型說參數中的類型說明相一致。明相一致。格式控制符:規定格式控制符:規定數據的輸入格式,數據的輸入格式,必須由必須由“ ”括起來括起來,其內容包

22、括,其內容包括格式格式說明(修飾符)說明(修飾符)和和格式符格式符兩部分。兩部分。地址列表地址列表:由一個或多個:由一個或多個變量的地址組成,變量地變量的地址組成,變量地址之間以址之間以“,”分隔。也分隔。也可以是字符串的首地址。可以是字符串的首地址。在在C C語言中一個變量的地址語言中一個變量的地址可以通過可以通過& &地址運算符得到。地址運算符得到。例如:例如:int a,b;int a,b; 則則a,ba,b的地址為的地址為&a,&b&a,&b。scanf函數可用來輸入任何類型的多個數據。C語言程序設計 第四章 順序程序設計(19)【例例】

23、 int aint a; scanfscanf(“%d%d”,&a&a););含義:含義: 按變量按變量a a在內存的地址將從外界在內存的地址將從外界 獲取的值存入變量獲取的值存入變量a a所描述的存所描述的存 儲單元,變量儲單元,變量a a的地址在編譯階的地址在編譯階 段分配。段分配。說明格式說明格式輸入變量地址輸入變量地址 scanf()scanf()中各個中各個變量變量要加地要加地 址操作符,就是變量名前加址操作符,就是變量名前加“& &” 地址操作符地址操作符, ,這是容易忽視的一這是容易忽視的一 個問題。個問題。由由“ ”括起括起 的字符串。的字符串。

24、(1 1)格式轉換說明符:)格式轉換說明符: 格式說明規定了輸入項中的變量將以何種類型的數據格式被格式說明規定了輸入項中的變量將以何種類型的數據格式被 輸入。輸入。可以是下列三種形式之一或它們的組合:可以是下列三種形式之一或它們的組合: C語言程序設計 第四章 順序程序設計(20)可以可以指定輸入數據的域寬指定輸入數據的域寬,系統自動按域寬截取輸入數據。,系統自動按域寬截取輸入數據。例如:例如: scanfscanf(“% %3 3d d”,&a&a);按寬度);按寬度3 3輸入一個整輸入一個整數給變量數給變量a a。字符字符* *:* *表示按規定格式輸入但不賦予相應的變量,

25、表示按規定格式輸入但不賦予相應的變量,作用是跳過相應的數據。作用是跳過相應的數據。 l l和和h h:可以和:可以和d d、o o、x x、一起使用,、一起使用,例如:例如:scanfscanf(“%ld%hd%ld%hd”,&a,&b,&a,&b); ;C語言程序設計 第四章 順序程序設計(21)(2 2)普通字符:)普通字符:要求在輸入時按原樣輸入字符。例如例如 : scanfscanf(“a=%da=%d;b=%cb=%c;”,&a,&b,&a,&b););例如:例如: scanfscanf(“%d%d, ,%d%d, ,%

26、c%c”,&a,&b,&c,&a,&b,&c););輸入應為:輸入應為:a=3a=3;b=ab=a; 正確的輸入為:正確的輸入為:1 1,2 2,q q結果為:結果為:a=1,b=2,ch=qa=1,b=2,ch=q若輸入若輸入1 1 2 2 q q只有只有a=1a=1,對,對b b和和c c的的賦值失敗。賦值失敗。這些這些“,”應是輸入數據的分應是輸入數據的分隔符,隔符,scanfscanf在讀入時自動去在讀入時自動去除與除與“,”分隔符相同的字符分隔符相同的字符后,順序讀入數據。因此空格后,順序讀入數據。因此空格符作為字符型數據被讀入。符作為

27、字符型數據被讀入。為什么?為什么?C語言程序設計 第四章 順序程序設計(22)(1)(1)如果格式說明符之間包含其他字符,則輸入時,必須在相應位置輸如果格式說明符之間包含其他字符,則輸入時,必須在相應位置輸 入這些字符入這些字符;如果格式說明符之間不包含其他字符,則輸入數據時如果格式說明符之間不包含其他字符,則輸入數據時, , 兩個數據之間可以使用空格、兩個數據之間可以使用空格、tabtab鍵或回車鍵作為間隔鍵或回車鍵作為間隔。(2)(2)輸入字符數據時,由于空格和轉義字符都是有效字符,所以不能以輸入字符數據時,由于空格和轉義字符都是有效字符,所以不能以 空格作為間隔符。(可能產生非預期的結果

28、)空格作為間隔符。(可能產生非預期的結果)例如:例如:scanfscanf(“%d%c%d%c”,&a,&c&a,&c);輸入);輸入3232 a a(3)scanf(3)scanf函數函數不允許不允許有精度輸入。有精度輸入。 語句語句 scanfscanf(“%7.2f”%7.2f”,&a&a);是錯誤的。);是錯誤的。例如:例如:scanfscanf(“%d%d%d%d”,&a,&b&a,&b);輸入:);輸入:3 3 5 5可以使用如下語句:可以使用如下語句:scanfscanf(“%d%d %c%c”,&a

29、mp;a,&ch&a,&ch););c c_ _空格符作為輸入空格符作為輸入數據被賦值給字數據被賦值給字符型變量符型變量c c此處的空格,可以跳過后面字符此處的空格,可以跳過后面字符a a前所有的空格,前所有的空格,從而保證非空格數據的正確錄入。從而保證非空格數據的正確錄入。C語言程序設計 第四章 順序程序設計(23)使用自己指定的非格式字符來分隔數據,如“,”,或者給出將要輸入數據的格式。main() int a; float b,c; printf(%s,a=%d,b=%f,c=%f n); scanf(%d,%f,%f,&a,&b,&c);

30、 printf(a=%d,b=%f,c=%f n,a,b,c); CH4-7輸入12345,678,976.38 則輸出: a=12345,b=678.000000,c=976.380005main() int a; float b,c; printf(%s,a=%d,b=%f,c=%f n); scanf(a=%d,b=%f,c=%f,&a,&b,&c); printf(a=%d,b=%f,c=%f n,a,b,c); CH4-8輸入a=12345,b=678,c=976.38 則輸出:a=12345,b=678.000000,c=976.380005輸入多個數據時,

31、兩個數據之間可以用下列方法分隔:C語言程序設計 第四章 順序程序設計(24)抑制字符* 虛讀,即按格式說明讀入的數據不送給任何變量。main() int a; float b; scanf(%3d%*4d%f,&a,&b); printf(a=%d,b=%f n,a,b); CH4-9則:a=123 b=8765.43 4567不送任何變量輸入:12345678765.43C語言程序設計 第四章 順序程序設計(25)scanf 函數的結束: 正常結束:格式項用完。 非正常結束:輸入數據流與格式項不匹配。scanf 函數的返回值: 輸入數據流與格式項成功匹配的項數。main()

32、int a,b,c; printf(%dn,scanf(%3d-%2d-%4d,&a,&b,&c); printf(a=%d,b=%d,c=%d n,a,b,c); CH4-10輸出:3 a=123,b=45,c=6789輸入:123-45-6789C語言程序設計 第四章 順序程序設計(26)【例1】若a1,a2,a3,a4均為char類型變量,則執行以下程序段后的輸 出結果是: a1=1;a2=2; a3=3;a4=4; printf(“%1cn”,a1); printf(“%2cn”,a2); printf(“%3cn”,a3); printf(“%4cn”,a4)

33、;a)1a)1 2 2 3 3 4 4b) 1b) 1 2 2 3 3 4 4c)1c)1 02 02 003 003 0004 0004d)輸出格式 的描述符 不正確 【例2】若執行程序時的輸入是:1234567,則程序的輸出結果是: #include main() int x,y; scanf(“%2d%*2d%1d”,&x,&y); printf(“x+y=%d;n”,x+y); x+y=17 x+y=17;例題C語言程序設計 第四章 順序程序設計(27)【例4】讀程序: #include main( ) int a; float b,c; scanf(“%2d%3f%4

34、f”,a,b,c); printf(“na=%d,b=%f,c=%f”,a,b,c); 若運行時從鍵盤輸入9876543210,則上面程序的輸出結果是:A)a=98,b=765,c=4321B)a=10,b=432,c=8765C)a=98,b=765.000000,c=4321.000000D)a=98,b=765.0,c=4321.0 【例3】讀程序,寫出運行結果。 #include main() int a,b,c; a=(b=(c=3)*5)*2-3; printf(“a=%d,b=%d,c=%dn”,a,b,c); a=27 a=27,b=15b=15,c=3c=3C語言程序設計 第

35、四章 順序程序設計(28) 從執行方式看,順序結構是一組按書寫順序執行的語句。是從執行方式看,順序結構是一組按書寫順序執行的語句。是C C語言中最簡單、最基本的一種結構,是進行復雜程序設計的基礎。語言中最簡單、最基本的一種結構,是進行復雜程序設計的基礎。C C語言組成順序結構的語句有賦值語句、輸入語言組成順序結構的語句有賦值語句、輸入/ /輸出函數。輸出函數。 【例例5 5】 main main()() float a=123.456 float a=123.456; double b=8765.4567double b=8765.4567; printfprintf(“(1 1)%fn%fn”,a,a); ; printf printf(“(2 2)%14.3fn%14.3fn”,a,a); ; printf printf(“(3 3)%6.4fn%6.4fn”,a,a); ; printf printf(“(4 4)%lfn%lfn”,b,b); ; printf printf(“(5 5)%14.3lfn%14.3lfn”,b,b); ; printf printf(“(6 6)%8.4lfn%8.4lfn”,b,b); ; prin

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論