關(guān)于我們
書單推薦
新書推薦
|
C語言程序設(shè)計(jì)
本書主要講述數(shù)據(jù)類型、運(yùn)算符與表達(dá)式、順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、函數(shù)、數(shù)組、指針、結(jié)構(gòu)體和共用體、文件等內(nèi)容。本書作為C語言程序設(shè)計(jì)的入門教材,一方面內(nèi)容由淺入深、通俗易懂,循序漸進(jìn)的將各個(gè)知識(shí)點(diǎn)講解清楚,引導(dǎo)學(xué)生順利學(xué)習(xí)并掌握;另一方面,特別強(qiáng)調(diào)了對(duì)學(xué)生程序設(shè)計(jì)能力的培養(yǎng),主要是通過提供典型和具有一定趣味性的例題以及大量的習(xí)題,提高學(xué)生學(xué)習(xí)興趣,進(jìn)而達(dá)到刻苦專研、自覺學(xué)習(xí)的目的;
C語言是一種結(jié)構(gòu)化程序設(shè)計(jì)語言,具有編程方便、語句簡練、功能強(qiáng)、移植性好等特點(diǎn),是軟件開發(fā)中最常用的計(jì)算機(jī)語言。它既具有高級(jí)語言的特點(diǎn),又具有匯編語言的特點(diǎn);既適用于系統(tǒng)軟件的開發(fā),也適合于應(yīng)用軟件的開發(fā),而且其編寫不依賴于計(jì)算機(jī)硬件。因此,C語言以其自身的特色和優(yōu)勢(shì),在工業(yè)控制、嵌入式系統(tǒng)開發(fā)、單片機(jī)編程、系統(tǒng)底層開發(fā)等領(lǐng)域應(yīng)用非常廣泛。
大多數(shù)院校都將C語言作為入門的程序設(shè)計(jì)教學(xué)語言,同時(shí)將C語言程序設(shè)計(jì)作為計(jì)算機(jī)專業(yè)學(xué)生最重要的專業(yè)基礎(chǔ)課程之一,因此對(duì)教師和學(xué)生都提出了較高的要求,并給予厚望。目前,國內(nèi)已經(jīng)出版的C語言教材非常多。作者在充分吸收這些教材的優(yōu)點(diǎn)的同時(shí),又將豐富的教學(xué)經(jīng)驗(yàn)融入寫作之中,以期達(dá)到教材充實(shí)、完整和便于學(xué)習(xí)的目的。
本書作為C語言程序設(shè)計(jì)入門教材,一方面注意到深入淺出、循序漸進(jìn)地將各個(gè)知識(shí)點(diǎn)講解清楚,引導(dǎo)學(xué)生順利學(xué)習(xí)并掌握;另一方面,特別強(qiáng)調(diào)了對(duì)學(xué)生程序設(shè)計(jì)能力,主要是提供典型和具有提供一定趣味性的例題以及大量的習(xí)題,提高學(xué)生學(xué)習(xí)興趣,進(jìn)而達(dá)到刻苦鉆研、自覺學(xué)習(xí)的目的。
本書中的所有案例程序代碼均在Visual C++ 6.0環(huán)境下調(diào)試通過。語法知識(shí)點(diǎn)均符合C99標(biāo)準(zhǔn)。本書在教學(xué)使用過程中,可根據(jù)專業(yè)特點(diǎn)和課時(shí)安排選取教學(xué)內(nèi)容。每章后面附有習(xí)題,可供學(xué)生課后練習(xí)。為了便于教學(xué),本書有配套教材——《C語言程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)與習(xí)題選解》。
需要特別指出的是:大部分同學(xué)都是第一次接觸到C語言程序設(shè)計(jì),而程序設(shè)計(jì)思想的建立和形成并非一日之功。因此,建議本課程除了理論學(xué)時(shí)之外,應(yīng)該設(shè)置比較充足的實(shí)驗(yàn)學(xué)時(shí),或者提供大量的課外上機(jī)時(shí)間。唯有這樣,才能充分理解、鞏固、強(qiáng)化和掌握課程的主要知識(shí)點(diǎn),進(jìn)而達(dá)到靈活自如地進(jìn)行程序設(shè)計(jì)的目的。如果有條件,最好在學(xué)完本教材后安排一次課程設(shè)計(jì),要求學(xué)生獨(dú)立完成一個(gè)有一定規(guī)模的程序設(shè)計(jì),這是一個(gè)重要的教學(xué)實(shí)踐環(huán)節(jié),能大大提高學(xué)生的獨(dú)立編程能力。
本書由大連工業(yè)大學(xué)王海文、大連工業(yè)大學(xué)藝術(shù)與信息工程學(xué)院林月、林強(qiáng)擔(dān)任主編,大連工業(yè)大學(xué)藝術(shù)與信息工程學(xué)院關(guān)奪、王虹元、尚靖函擔(dān)任副主編。本書內(nèi)容共12章:王海文老師編寫第5、6、7章,林月老師編寫第1、2、3、4章,林強(qiáng)老師編寫第8、9、10章,關(guān)奪老師編寫第11章,王虹元老師編寫第12章,尚靖函老師編寫附錄。黃婷婷、蔡國昱、王藝菲、王中鑫協(xié)助進(jìn)行了資料的整理工作。
在編寫本書的過程中,我們參考了兄弟院校的資料及其他相關(guān)教材,并得到許多同人的關(guān)心和幫助,在此謹(jǐn)致謝意。
為了方便教學(xué),本書還配有電子課件等教學(xué)資源包,任課教師和學(xué)生可以登錄“我們愛讀書”網(wǎng)(www.ibook4us.com)免費(fèi)注冊(cè)并瀏覽,或者發(fā)郵件至hustpeiit@163.com免費(fèi)索取。
限于篇幅及編者的業(yè)務(wù)水平,雖然我們付出了最大努力,但是書中難免存在不足甚至錯(cuò)誤之處,敬請(qǐng)廣大讀者批評(píng)指正。
編者
2016年11月
第1章C語言程序設(shè)計(jì)基礎(chǔ)()
1.1程序與程序設(shè)計(jì)語言()
1.1.1程序與指令()
1.1.2程序設(shè)計(jì)語言()
1.1.3高級(jí)語言程序的開發(fā)過程()
1.2C語言概述()
1.2.1C語言的產(chǎn)生與發(fā)展()
1.2.2C語言的特點(diǎn)()
1.2.3C語言的應(yīng)用()
1.3C語言開發(fā)程序()
1.3.1用C語言開發(fā)程序的過程()
1.3.2算法的概念和特征()
1.3.3結(jié)構(gòu)化程序設(shè)計(jì)方法()
1.3.4算法的表示()
1.3.5C語言程序的結(jié)構(gòu)()
1.4C語言程序的實(shí)現(xiàn)()
1.4.1C語言程序的開發(fā)過程()
1.4.2VC++ 6.0集成開發(fā)環(huán)境()
1.4.3C語言運(yùn)行環(huán)境()
習(xí)題()
第2章數(shù)據(jù)類型、運(yùn)算符和表達(dá)式()
2.1從數(shù)學(xué)上的“數(shù)”過渡到計(jì)算機(jī)中的“數(shù)”()
2.2數(shù)據(jù)類型概述()
2.3常量和變量()
2.3.1常量()
2.3.2變量()
2.3.3變量名規(guī)則()
2.3.4變量的定義()
2.4整數(shù)類型()
2.4.1整型常量()
2.4.2整型變量()
2.5實(shí)數(shù)類型()
2.5.1實(shí)型常量()
2.5.2實(shí)型變量()
2.6字符類型()
2.6.1字符型常量()
2.6.2字符型變量()
2.6.3字符數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式及其使用()
2.7不同數(shù)據(jù)類型之間的轉(zhuǎn)換()
2.7.1自動(dòng)類型轉(zhuǎn)換()
2.7.2強(qiáng)制類型轉(zhuǎn)換()
2.8運(yùn)算符與表達(dá)式()
2.8.1算術(shù)運(yùn)算符與算術(shù)表達(dá)式()
2.8.2賦值運(yùn)算符與賦值表達(dá)式()
2.8.3關(guān)系運(yùn)算符與關(guān)系表達(dá)式()
2.8.4邏輯運(yùn)算符與邏輯表達(dá)式()
2.8.5條件運(yùn)算符與條件表達(dá)式()
2.8.6逗號(hào)運(yùn)算符與逗號(hào)表達(dá)式()
2.9運(yùn)算符與表達(dá)式的綜合練習(xí)()
2.9.1正確的C語言表達(dá)式書寫()
2.9.2復(fù)雜表達(dá)式的分析()
習(xí)題()
第3章順序程序設(shè)計(jì)()
3.1C語句()
3.1.1C語句概述()
3.1.2賦值語句()
3.2字符數(shù)據(jù)的輸入/輸出()
3.2.1數(shù)據(jù)輸入/輸出的概念及在C語言中的實(shí)現(xiàn)()
3.2.2字符的輸出函數(shù)putchar函數(shù)()
3.2.3字符的輸入函數(shù)()
3.3格式化輸入與輸出函數(shù)()
3.3.1格式化的輸出函數(shù)printf函數(shù)()
3.3.2格式化的輸入函數(shù)scanf函數(shù)()
3.4順序結(jié)構(gòu)程序設(shè)計(jì)舉例()
習(xí)題()
第4章選擇結(jié)構(gòu)()
4.1if語句()
4.1.1單選擇結(jié)構(gòu)()
4.1.2ifelse語句()
4.1.3ifelseifelse語句()
4.1.4嵌套if結(jié)構(gòu)()
4.2switch結(jié)構(gòu)()
4.3多重if結(jié)構(gòu)和switch結(jié)構(gòu)的比較()
4.4應(yīng)用舉例()
習(xí)題()
第5章循環(huán)結(jié)構(gòu)()
5.1循環(huán)結(jié)構(gòu)簡介()
5.2while語句()
5.3dowhile語句()
5.4for語句()
5.4.1基本的for語句()
5.4.2各種特殊形式的for語句()
5.5三種循環(huán)語句的比較()
5.6break語句()
5.7continue語句()
5.8嵌套循環(huán)()
5.9應(yīng)用舉例()
習(xí)題()
第6章函數(shù)()
6.1函數(shù)概述()
6.2函數(shù)的定義與調(diào)用()
6.2.1函數(shù)的定義()
6.2.2函數(shù)的調(diào)用、參數(shù)及傳遞方式()
6.2.3函數(shù)的返回值()
6.2.4函數(shù)聲明的作用()
6.2.5main函數(shù)中的參數(shù)()
6.3函數(shù)的嵌套調(diào)用與遞歸調(diào)用()
6.3.1函數(shù)的嵌套調(diào)用()
6.3.2函數(shù)的遞歸調(diào)用()
6.4變量的作用域與存儲(chǔ)類型()
6.4.1變量的作用域()
6.4.2全局變量()
6.4.3變量的存儲(chǔ)類型()
6.5常用系統(tǒng)函數(shù)()
6.5.1數(shù)學(xué)函數(shù)()
6.5.2輸入輸出函數(shù)()
6.5.3時(shí)間函數(shù)()
6.5.4隨機(jī)數(shù)函數(shù)()
習(xí)題()
第7章數(shù)組()
7.1數(shù)組的概念()
7.2數(shù)組的定義()
7.2.1一維數(shù)組()
7.2.2二維數(shù)組()
7.3數(shù)組作為函數(shù)的參數(shù)()
7.3.1用數(shù)組元素作函數(shù)實(shí)參()
7.3.2用數(shù)組名作函數(shù)參數(shù)()
7.3.3用多維數(shù)組名作函數(shù)參數(shù)()
7.4數(shù)組應(yīng)用舉例()
7.5字符串()
7.5.1字符串概念()
7.5.2字符串函數(shù)()
7.5.3字符串應(yīng)用舉例()
習(xí)題()
第8章指針()
8.1指針的概念()
8.2指針變量()
8.2.1指針定義()
8.2.2指針運(yùn)算符(&和*)()
8.2.3指針作為函數(shù)的參數(shù)()
8.2.4多級(jí)指針與指針數(shù)組()
8.3指針運(yùn)算()
8.4指針與數(shù)組()
8.4.1指針與一維數(shù)組()
8.4.2指針與二維數(shù)組()
8.4.3指針與字符數(shù)組()
8.4.4指針與函數(shù)()
8.5動(dòng)態(tài)存儲(chǔ)分配()
習(xí)題()
第9章編譯預(yù)處理()
9.1宏定義()
9.1.1不帶參數(shù)的宏定義()
9.1.2帶參數(shù)的宏定義()
9.2文件包含()
9.3條件編譯()
習(xí)題()
第10章結(jié)構(gòu)體和共用體()
10.1結(jié)構(gòu)體類型定義和結(jié)構(gòu)體變量說明()
10.1.1結(jié)構(gòu)體的定義()
10.1.2結(jié)構(gòu)體類型變量的說明()
10.2結(jié)構(gòu)體變量的引用和初始化()
10.2.1結(jié)構(gòu)體類型變量的引用()
10.2.2結(jié)構(gòu)體變量的初始化()
10.3結(jié)構(gòu)體指針變量()
10.3.1指向結(jié)構(gòu)體變量的指針()
10.3.2指向結(jié)構(gòu)體數(shù)組的指針()
10.3.3結(jié)構(gòu)體指針變量做函數(shù)參數(shù)()
10.4常用的內(nèi)存管理函數(shù)()
10.5鏈表()
10.5.1簡單鏈表的建立()
10.5.2鏈表的查找()
10.5.3鏈表的刪除()
10.5.4鏈表的插入()
10.5.5鏈表的輸出()
10.6共用體()
10.6.1共用體的定義()
10.6.2共用體變量的說明()
10.6.3共用體變量的賦值和使用()
10.7枚舉類型數(shù)據(jù)()
10.8用typedef定義類型()
10.9綜合實(shí)例()
習(xí)題()
第11章位運(yùn)算()
11.1位運(yùn)算概述()
11.1.1計(jì)算機(jī)內(nèi)數(shù)據(jù)的表示方法()
11.1.2位運(yùn)算及其運(yùn)算符()
11.2位運(yùn)算()
11.2.1按位與()
11.2.2按位或()
11.2.3按位異或()
11.2.4按位取反()
11.2.5按位左移()
11.2.6按位右移()
11.2.7位復(fù)合賦值運(yùn)算符()
11.2.8位運(yùn)算符的優(yōu)先級(jí)()
11.2.9不同長度的數(shù)據(jù)進(jìn)行位運(yùn)算()
11.3位段()
11.3.1位段的定義()
11.3.2位段的引用()
11.4綜合案例分析()
習(xí)題()
第12章文件()
12.1文件概述()
12.1.1文件的基本概念()
12.1.2文件系統(tǒng)()
12.1.3文件的編碼方式()
12.1.4文件指針()
12.2文件的打開與關(guān)閉()
12.2.1文件的打開(fopen函數(shù))()
12.2.2文件的使用方式()
12.2.3文件的關(guān)閉(fclose函數(shù))()
12.3文件的順序讀取()
12.3.1字符的讀寫函數(shù)(fgetc和fputc)()
12.3.2字符串的讀寫函數(shù)(fgets和fputs)()
12.3.3格式化的讀寫函數(shù)(fscanf和fprintf)()
12.3.4數(shù)據(jù)塊的讀寫函數(shù)(fread和fwrite)()
12.4文件的定位與隨機(jī)讀寫()
12.4.1文件定位函數(shù)()
12.4.2文件的隨機(jī)讀寫操作()
12.5文件的出錯(cuò)檢測(cè)()
習(xí)題()
附錄A基本控制字符/字符與ASCII值對(duì)照表()
附錄BC語言操作符的優(yōu)先級(jí)()
參考文獻(xiàn)()
第3章 順序程序設(shè)計(jì) 從程序流程的角度來看,程序可以分為三種基本結(jié)構(gòu),即順序結(jié)構(gòu)、分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu)。這三種基本結(jié)構(gòu)可以構(gòu)造任何復(fù)雜的邏輯關(guān)系。C語言提供了多種語句來實(shí)現(xiàn)這些程序結(jié)構(gòu)。順序結(jié)構(gòu)是一種線性結(jié)構(gòu),其特點(diǎn)是:各語句組按照各自出現(xiàn)的先后順序,依次逐一執(zhí)行。順序結(jié)構(gòu)是三種基本結(jié)構(gòu)中最簡單的一種,無專門的控制語句。 3.1C語句 3.1.1C語句概述 C語言程序的結(jié)構(gòu)如圖31所示。 圖31C語言程序的結(jié)構(gòu) C語言程序的執(zhí)行部分是由語句組成的。程序的功能是由執(zhí)行語句實(shí)現(xiàn)的。 C語言程序中的語句可分為表達(dá)式語句、函數(shù)調(diào)用語句、控制語句、復(fù)合語句和空語句五類。 1. 表達(dá)式語句 表達(dá)式語句由表達(dá)式加上分號(hào)“;”組成。其一般形式為 表達(dá)式; 執(zhí)行表達(dá)式語句就是計(jì)算表達(dá)式的值。例如: x= y+ z;/* 賦值語句* / y+ z;/* 加法運(yùn)算語句,但計(jì)算結(jié)果不能保留,無實(shí)際意義* / i+ + ;/* 自增1語句,i值增1* / 2. 函數(shù)調(diào)用語句 函數(shù)調(diào)用語句由函數(shù)名、實(shí)際參數(shù)加上分號(hào)“;”組成。其一般形式為 函數(shù)名(實(shí)際參數(shù)表); 執(zhí)行函數(shù)調(diào)用語句就是調(diào)用函數(shù)體并把實(shí)際參數(shù)賦予函數(shù)定義中的形式參數(shù),然后執(zhí)行被調(diào)函數(shù)體中的語句,求取函數(shù)值 (在后面函數(shù)部分中再詳細(xì)介紹)。例如: printf("C Program"); /* 調(diào)用庫函數(shù),輸出字符串*/ 3. 控制語句 控制語句用于控制程序的流程。它們由特定的語句定義符組成。C語言有九種控制語句,可分成以下三類。 ① 條件判斷語句:if語句、switch語句。 ② 循環(huán)執(zhí)行語句:dowhile語句、while語句、for語句。 ③ 轉(zhuǎn)向語句:break語句、goto語句、continue語句、return語句。 4. 復(fù)合語句 把多個(gè)語句用括號(hào)“{}”括起來組成的一個(gè)語句稱為復(fù)合語句。在程序中應(yīng)把復(fù)合語句看成是單條語句,而不是多條語句。例如: { x=y+z; a=b+c; printf("%d%d",x,a); } 是一條復(fù)合語句。復(fù)合語句內(nèi)的各條語句都必須以分號(hào)“;”結(jié)尾,在括號(hào)“}”外不能加分號(hào)。 5. 空語句 只有分號(hào)“;”組成的語句稱為空語句。空語句是什么也不執(zhí)行的語句。在程序中空語句可用作空循環(huán)體。例如: while(getchar()!='\\n'); 含有一條空語句。該語句的功能是,只要從鍵盤輸入的字符不是回車符,則重新輸入。 3.1.2賦值語句 賦值語句是由賦值表達(dá)式再加上分號(hào)構(gòu)成的表達(dá)式語句。其一般形式為 變量=表達(dá)式; 賦值語句的功能和特點(diǎn)都與賦值表達(dá)式相同。它是程序中使用最多的語句之一。在賦值語句的使用中需要注意以下幾點(diǎn)。 (1) 由于在賦值符“=”右邊的表達(dá)式可以是一個(gè)賦值表達(dá)式,因此,下述形式 變量=(變量=表達(dá)式); 是成立的,從而形成嵌套的情形。其展開之后的一般形式為 變量=變量=…=表達(dá)式; 例如: a=b=c=d=e=5; 按照賦值運(yùn)算符的右結(jié)合性,等效于 e=5; d=e; c=d; b=c; a=b; (2) 注意在變量說明中給變量賦初值和賦值語句的區(qū)別。 給變量賦初值是變量說明的一部分,賦初值后的變量與其后的其他同類變量之間仍必須用逗號(hào)間隔,而賦值語句則必須用分號(hào)結(jié)尾。例如: int a=5,b,c; (3)在變量說明中,不允許連續(xù)給多個(gè)變量賦初值。如下述說明是錯(cuò)誤的: int a=b=c=5 上述式子的正確寫法為 int a=5,b=5,c=5; 而賦值語句允許連續(xù)賦值。 (4) 注意賦值表達(dá)式和賦值語句的區(qū)別。 賦值表達(dá)式是一種表達(dá)式,它可以出現(xiàn)在任何允許表達(dá)式出現(xiàn)的地方,而賦值語句則不能。例如下述語句是合法的。 if((x=y+5)>0)z=x; 該語句的功能是,若表達(dá)式x=y+5大于0,則z=x。 下述語句是非法的。 if((x=y+5;)>0)z=x; 因?yàn)椤皒=y+5;”是語句,不能出現(xiàn)在表達(dá)式中。 3.2字符數(shù)據(jù)的輸入/輸出 3.2.1數(shù)據(jù)輸入/輸出的概念及在C語言中的實(shí)現(xiàn) 所謂輸入/輸出是以計(jì)算機(jī)為主體的。本章介紹的是向標(biāo)準(zhǔn)輸出設(shè)備即顯示器輸出數(shù)據(jù)的語句。在C語言中, #include 將有關(guān)“頭文件”包含到源文件中。 使用標(biāo)準(zhǔn)輸入/輸出庫函數(shù)時(shí)要用到stdio.h文件,因此源文件開頭應(yīng)有以下預(yù)編譯命令: #include 或 #include"stdio.h" 其中stdio是standard input & output的意思。 考慮到printf和scanf函數(shù)使用頻繁,系統(tǒng)允許在使用這兩個(gè)函數(shù)時(shí)可不加 #include 或 #include"stdio.h" 3.2.2字符的輸出函數(shù) putchar函數(shù) putchar 函數(shù)是字符輸出函數(shù),其功能是在顯示器上輸出單個(gè)字符。其一般形式為 putchar(ch); 其中,ch可以是字符型變量,也可以是整型變量,還可以是字符型常量或整型常量。例如: putchar('A');/*輸出大寫字母A*/ putchar(x);/*輸出字符變量x的值*/ putchar('\\101');/*輸出字符A*/ putchar('\\n'); /*換行*/ 對(duì)控制字符則執(zhí)行控制功能,不在屏幕上顯示。 使用putchar函數(shù)前必須要用文件包含命令: #include 或 #include"stdio.h" 【例31】輸出單個(gè)字符。 #include void main() { char a='B',b='o',c='k'; putchar(a);putchar(b);putchar(b);putchar(c);putchar('\\t'); putchar(a);putchar(b); putchar('\\n'); putchar(b);putchar(c); } 3.2.3字符的輸入函數(shù) 1. getchar 函數(shù) (1) 函數(shù)原型:int getchar(void);。 (2) 函數(shù)功能:從輸入設(shè)備(一般指鍵盤)上接收輸入的一個(gè)字符,函數(shù)的返回值是所輸入字符的ASCII碼值。 (3) 使用說明:該函數(shù)每調(diào)用一次,就從標(biāo)準(zhǔn)輸入設(shè)備(鍵盤)上取一個(gè)字符,函數(shù)值可以賦予一個(gè)字符型變量,也可以賦予一個(gè)整型變量。例如: #include void main() { int ch; ch=getchar(); putchar(ch); } 程序運(yùn)行后,輸入字符‘a(chǎn)’,并按回車鍵: a 則變量ch的值為97,程序輸出結(jié)果: a (4) 注意: ① 執(zhí)行g(shù)etchar()函數(shù)從鍵盤輸入字符時(shí),注意所輸入的字符并不是立即賦給字符型變量或整型變量,只有在輸入一個(gè)回車后,字符變量或整型變量才能得到字符。也就是說,輸入字符后需要按回車鍵程序才能繼續(xù)執(zhí)行后續(xù)語句。 ② getchar()函數(shù)從鍵盤讀入字符時(shí),該函數(shù)會(huì)將回車鍵作為一個(gè)字符讀入,因此,在使用getchar()函數(shù)連續(xù)讀入多個(gè)字符時(shí)需特別注意,例如下面程序的功能是“從鍵盤輸入3個(gè)字符并反向輸出這3個(gè)字符”,但運(yùn)行結(jié)果卻事與愿違。 #include void main() { int ch1,ch2,ch3; ch1=getchar(); ch2=getchar(); ch3=getchar();/*依次輸入3個(gè)字符*/ putchar(ch3);/*反向輸出3個(gè)字符*/ putchar(ch2); putchar(ch1); } 請(qǐng)讀者思考怎樣修改程序而完成程序功能?
你還可能感興趣
我要評(píng)論
|