日本高清不卡中文字幕-一起草草视频在线观看-亚洲精品一区二区三区色-国产亚洲精品免费视频

您好,歡迎進(jìn)入深圳市穎特新科技有限公司官方網(wǎng)站!

您現(xiàn)在的位置:首頁(yè) 新聞資訊 >> 新聞?lì)^條 >> 函數(shù)的定義
新聞資訊
NEWS INFORMATION

函數(shù)的定義

關(guān)鍵字:C語(yǔ)言教程 發(fā)布時(shí)間:2019-05-22

函數(shù)的定義

知識(shí)點(diǎn):函數(shù)的定義法則;

重要程度:★★★

概念題目:

1、C語(yǔ)言的程序設(shè)計(jì)中,基本組成單位就是函數(shù)。一個(gè)特定的函數(shù)是具有獨(dú)立功能的C語(yǔ)言代碼塊,用于完成特定的運(yùn)算任務(wù)。

2、一個(gè)C語(yǔ)言程序,可以由一個(gè)或多個(gè)函數(shù)組成。但是一定要注意:在一個(gè)程序中只能有一個(gè)main函數(shù),無(wú)論其位置如何,總是程序開(kāi)始運(yùn)行的地方。

3、函數(shù)最大的用處是完成某項(xiàng)功能,函數(shù)可以用來(lái)解決相同的問(wèn)題,這樣可以減少重復(fù)編寫(xiě)的工作量,提高整個(gè)程序的可讀性。

4、函數(shù)的返回值默認(rèn)情況下為int。

5、在一個(gè)函數(shù)的函數(shù)體中不允許再定義新的函數(shù)。

6、函數(shù)使用兩種規(guī)則:第一要求先定義,后調(diào)用。第二先聲明,再調(diào)用,后定義。

練習(xí)題:以下敘述中錯(cuò)誤的是(    )。c
A)C語(yǔ)言編寫(xiě)的函數(shù)源程序,其文件名后綴可以是.C
B)C語(yǔ)言編寫(xiě)的函數(shù)都可以作為一個(gè)獨(dú)立的源程序文件
C)C語(yǔ)言編寫(xiě)的每個(gè)函數(shù)都可以進(jìn)行獨(dú)立的編譯并執(zhí)行
D)一個(gè)C語(yǔ)言程序只能有一個(gè)主函數(shù)

1、函數(shù)的定義

我們看到函數(shù)一般形式的定義如下:

函數(shù)返回值的類(lèi)型名  函數(shù)名 (類(lèi)型名1  形式參數(shù)名1,類(lèi)型名2  形式參數(shù)名2,……)

{

說(shuō)明部分

語(yǔ)句部分

}

在定義的形式中,第一行整體稱(chēng)之為函數(shù)的首部,圓括號(hào)中的形式參數(shù)簡(jiǎn)稱(chēng)為形參。函數(shù)體是指一對(duì)花括號(hào)括起來(lái)的部分,函數(shù)體中的主要功能是完成函數(shù)中需要使用的變量的定義說(shuō)明、完成必要的功能的代碼,也就是完成函數(shù)功能。

例1:一個(gè)用來(lái)計(jì)算兩個(gè)整型數(shù)據(jù)相加的函數(shù)。

 int add(int x,int y)

{

  int z ;

    z=x+y ;

    return z ;

}

對(duì)照函數(shù)的一般形式定義,我們可以知道該例中:

函數(shù)返回值的類(lèi)型名:int         函數(shù)名: add

類(lèi)型名1  形式參數(shù)名1:  int  x    類(lèi)型名2  形式參數(shù)名2:  int y

說(shuō)明,語(yǔ)句部分:int z ;

          z=x+y ;

          return z ;

說(shuō)明:

1)函數(shù)的返回值實(shí)際上就是函數(shù)的運(yùn)算結(jié)果。當(dāng)函數(shù)返回值的類(lèi)型名缺省時(shí),返回值類(lèi)型默認(rèn)為int類(lèi)型,而不是無(wú)返回值。如果要函數(shù)只是進(jìn)行運(yùn)算,不要有運(yùn)算結(jié)果,也就是要函數(shù)沒(méi)有返回值,那么類(lèi)型名應(yīng)為void。

2)函數(shù)名實(shí)際上相當(dāng)于人的姓名,是用戶(hù)定義標(biāo)識(shí)符。在同一程序中,函數(shù)的名稱(chēng)必須互不相同。主函數(shù)的函數(shù)名必須為main,且只有一個(gè)。

3)如果函數(shù)沒(méi)有形式參數(shù),也沒(méi)有函數(shù)體具體的實(shí)現(xiàn),那么這個(gè)函數(shù)就叫做空函數(shù)。如下面的函數(shù)wangcheng就是一個(gè)空函數(shù):

wangcheng( )

{

}

對(duì)形參的一點(diǎn)說(shuō)明。

形參與這些變量都是屬于這個(gè)函數(shù)的。是函數(shù)被使用的時(shí)候臨時(shí)分配的,一旦函數(shù)使用完畢,這些空間均被釋放。它們作用的范圍也只是本函數(shù)內(nèi),因此可以與其他函數(shù)的變量、形參同名。例如例1中,變量x、y、z都是屬于函數(shù)add的,那么與其它函數(shù)中出現(xiàn)的x、y、z是不沖突的,同時(shí),當(dāng)add函數(shù)使用完成后,x、y、z使用也就完成,系統(tǒng)會(huì)自動(dòng)把x、y、z釋放掉。

第二節(jié)  函數(shù)的返回值

1、函數(shù)的返回值(考試重點(diǎn))

1、函數(shù)的返回值實(shí)際上就是函數(shù)運(yùn)行的結(jié)果。

2、如果要求函數(shù)沒(méi)有返回值,即返回值類(lèi)型為void。

3、一個(gè)函數(shù)可以有多個(gè)return的語(yǔ)句,但是每次調(diào)用函數(shù),只有一個(gè)return語(yǔ)句被執(zhí)行。程序一旦執(zhí)行return語(yǔ)句就會(huì)結(jié)束當(dāng)前函數(shù)的運(yùn)行,其作用有些類(lèi)似于循環(huán)結(jié)構(gòu)中的break語(yǔ)句。

4、一對(duì)圓括號(hào)可以缺省。以下的返回方式都正確return z; return  x+y;  return (x+y) 直接寫(xiě)上一個(gè)數(shù)值也是對(duì)的,如return 9。所以我們記住:return 是返回函數(shù)計(jì)算得到的結(jié)果。

5、函數(shù)的返回值就是表達(dá)式的值,返回值的類(lèi)型必須與函數(shù)首部中返回值的類(lèi)型一致。否則系統(tǒng)將強(qiáng)制的以首部中的類(lèi)型為準(zhǔn)。(近幾年考得很多)

    int add(float a,  flaot b)

{

  float c;

  c= a+b;

  return c;

}   

這個(gè)地方注意雖然是return c為整型,但是函數(shù)首部中是int,最后是以首部為準(zhǔn),就是返回一個(gè)整型。

例1:定義一個(gè)求矩形面積的函數(shù):

double recarea( double x, double y)

{     double area;

area=x*y;

return area;

}

在這個(gè)函數(shù)中:

1) 函數(shù)的首部是double recarea(double x, doubley)。該函數(shù)的返回值類(lèi)型為double,函數(shù)名為rearea,一共有2個(gè)形參,類(lèi)型都是double,形參名分別為x,y。

2) 函數(shù)體部分中定義了一個(gè)double類(lèi)型的變量area,它是用來(lái)存放矩形的面積。也就是把兩個(gè)形參的乘積賦值給它。

3) 該函數(shù)是要有運(yùn)算結(jié)果的,且結(jié)果是矩形的面積。也就是我們要把變量area中的內(nèi)容作為函數(shù)的運(yùn)算結(jié)果,這個(gè)是通過(guò)return area 語(yǔ)句完成的。

4) 該函數(shù)實(shí)際解決的問(wèn)題是:只要知道了矩形的長(zhǎng)和寬,就可以通過(guò)recarea函數(shù)求得矩形的面積。每次可以傳遞不同的長(zhǎng)和寬的數(shù)值給recarea函數(shù),這個(gè)叫做函數(shù)的調(diào)用,后面會(huì)詳細(xì)介紹。

例2:以下isprime函數(shù)的功能是判斷形參a是否為素?cái)?shù),如果是素?cái)?shù),函數(shù)返回1,否則返回0。請(qǐng)?zhí)羁铡1绢}是2006年4月的考題,考察點(diǎn)return語(yǔ)句的使用,難度適中。

int  isprime(int  a)

{     int  i;

for(i=2;i<=a/2;i++)

if(a%i==0)                   ;

                       ;

}

分析:

從函數(shù)的首部了解函數(shù)名、函數(shù)的返回值類(lèi)型、函數(shù)的形式參數(shù)?芍悍祷刂殿(lèi)型int,函數(shù)名isprime,形參為int類(lèi)型,形參名字為a。在函數(shù)體中,定義一個(gè)int類(lèi)型的變量i,后面語(yǔ)句部分是判定素?cái)?shù)的方法:判斷一個(gè)整數(shù)是不是素?cái)?shù),就要看除了1和它本身外,還有沒(méi)有能被它整除的整數(shù)。

循環(huán)的變量i要從2開(kāi)始一直到a/2,一旦有一個(gè)i能被a整除,那么a就不是素?cái)?shù)。題目要求不是素?cái)?shù),函數(shù)返回0。所以if條件后面a%i==0表示a整除i,所以不是素?cái)?shù),應(yīng)該填寫(xiě)return 0。如果整個(gè)for循環(huán)結(jié)束了if的條件a%i==0都為假,即表示沒(méi)有哪一個(gè)i能被a整除,a必為素?cái)?shù),返回1。因此后面應(yīng)填寫(xiě) return 1 。

注意:執(zhí)行了return語(yǔ)句后就會(huì)退出函數(shù),不會(huì)再執(zhí)行后面的語(yǔ)句,所以該函數(shù)雖然有兩個(gè)return語(yǔ)句,但是每次只會(huì)執(zhí)行一個(gè)return語(yǔ)句。

第三節(jié)  庫(kù)函數(shù)

知識(shí)點(diǎn):庫(kù)函數(shù)的使用;返回類(lèi)型、數(shù)值;形式參數(shù)的類(lèi)型、個(gè)數(shù);

重要程度:★★★★

庫(kù)函數(shù)是不需要用戶(hù)自己去編寫(xiě),對(duì)于這些函數(shù),用戶(hù)不需要定義,就可以直接使用。

需要注意:

1) 不同的庫(kù)函數(shù)放在不同的庫(kù)中。所以使用某一類(lèi)庫(kù)函數(shù)的時(shí)候,首先要打開(kāi)這個(gè)庫(kù)才可以使用里面的庫(kù)函數(shù)。打開(kāi)庫(kù)函數(shù)的方法是:在程序的開(kāi)頭使用include命令包含頭文件。例如:printf函數(shù)是庫(kù)函數(shù),它是屬于庫(kù)“stdio.h”的。所以使用printf函數(shù)要在程序開(kāi)頭加上#include "stdio.h"。再舉一個(gè)例子:在C語(yǔ)言中有一些處理數(shù)學(xué)方面的函數(shù),如求根函數(shù)(sqrt函數(shù))或求絕對(duì)值函數(shù)(abs函數(shù)),這些函數(shù)是放在庫(kù)“math.h”中的。使用這些函數(shù)就必須在程序開(kāi)頭加上如下命令:#include "math.h"。

2) #include "stdio.h",其中的""也可以用一對(duì)< >代替:#include <stdio.h>

 

3) 庫(kù)函數(shù)要掌握的是其使用的方法,返回的數(shù)值參數(shù)的個(gè)數(shù)、參數(shù)的類(lèi)型。

 

4) 打開(kāi)庫(kù)函數(shù)#include "stdio.h"的后面是不要寫(xiě)分號(hào)的。

 

5)?嫉膸(kù)函數(shù):(考試重點(diǎn)

1、sqrt(4)             返回√4的值

2、fabs(x)             返回雙精度參數(shù)x的絕對(duì)值

3、pow( 2,3)         返回23的值(考得是最多的)

4、exp( 3 )            返回指數(shù)函數(shù)e3的值

 

第三節(jié)  調(diào)用函數(shù)

知識(shí)點(diǎn):函數(shù)調(diào)用的規(guī)則;函數(shù)調(diào)用的實(shí)際作用是使用函數(shù);

重要程度:★★★★★

調(diào)用函數(shù)實(shí)際上就是使用函數(shù),調(diào)用一次就是使用一次。每次調(diào)用函數(shù)的時(shí)候,可以給函數(shù)傳遞不同的數(shù)值,得到不同的運(yùn)行結(jié)果。

調(diào)用某些函數(shù),可以求得函數(shù)值或者完成一些流程(如打。┑墓δ。

 

1、函數(shù)的調(diào)用形式

函數(shù)調(diào)用的一般形式為: 函數(shù)名(實(shí)際參數(shù)表)

例1:一個(gè)具體的調(diào)用例子

int add(int x,int y)

{ int z ;

    z=x+y ;

    return z ;

}

main()

{ int sum;

  sum=add(5,6);

  printf(“sum=%d”,sum);

}

例1中:有兩個(gè)函數(shù),一個(gè)是main函數(shù),也就是主函數(shù)。另一個(gè)是add函數(shù),是用來(lái)處理兩個(gè)數(shù)相加的。

說(shuō)明:

1) 在main函數(shù)中,add(5,6);就稱(chēng)為函數(shù)的調(diào)用?梢钥吹胶瘮(shù)調(diào)用時(shí),與定義不同。不用寫(xiě)返回值類(lèi)型和實(shí)際參數(shù)(簡(jiǎn)稱(chēng)“實(shí)參”)類(lèi)型。函數(shù)add括號(hào)中5,6就是實(shí)際參數(shù)(它們有實(shí)際的意義)。    

2)實(shí)參可以是常量、變量、表達(dá)式,甚至是函數(shù)的調(diào)用(函數(shù)值)。所以這個(gè)地方

實(shí)參為常量:  sum=add(5,6);合法調(diào)用。

實(shí)參為變量:  sum=add(x,6);假定x給了一個(gè)初始數(shù)值5,也是合法調(diào)用。

實(shí)參為表達(dá)式: sum=add(x+y,6);只要x+y可得一個(gè)結(jié)果且類(lèi)型為整型,也是合法調(diào)用。

實(shí)參為函數(shù)的返回?cái)?shù)值:sum=add(add(5,6),6);由于add(5,6)可以得到一個(gè)結(jié)果11,所以也是合法調(diào)用。(近幾次考試重點(diǎn))

3)函數(shù)的調(diào)用可以作為一條獨(dú)立的語(yǔ)句。add(5,6)這個(gè)函數(shù)調(diào)用有返回值時(shí),函數(shù)調(diào)用可以作為一個(gè)表達(dá)式出現(xiàn)在任何合法的地方。如果add(5,6)這個(gè)調(diào)用函數(shù)無(wú)返回值(即返回值類(lèi)型為void)時(shí),不能把函數(shù)調(diào)用的結(jié)果通過(guò)賦值號(hào)進(jìn)行賦值:sum=add(5,6)就錯(cuò)了,因?yàn)閍dd(5,6)函數(shù)調(diào)用就沒(méi)有運(yùn)算的結(jié)果,無(wú)法給變量sum賦值。

下面通過(guò)幾個(gè)例子來(lái)具體學(xué)習(xí)函數(shù)的調(diào)用:

例2:與數(shù)學(xué)式子        對(duì)應(yīng)的C語(yǔ)言表達(dá)式是

 

A) 3*x^n(2*x-1)                               B) 3*x**n(2*x-1)

C)3*pow(x,n)*(1/(2*x-1))          D)3*pow(n,x)/(2*x-1)

分析:本題考察點(diǎn):庫(kù)函數(shù)的調(diào)用。^只是按位異或。x^n顯然不是xn ,A顯然是錯(cuò)誤的。C語(yǔ)言中沒(méi)有乘方的符號(hào),xn要通過(guò)C語(yǔ)言的庫(kù)函數(shù)來(lái)完成的。處理乘方的庫(kù)函數(shù)是pow(x,n)。注意參數(shù)的先后次序。D選項(xiàng)錯(cuò)誤地傳遞了參數(shù),返回值為nx。B選項(xiàng)中沒(méi)有“**”這種運(yùn)算符號(hào),錯(cuò)誤。C選項(xiàng)正確的使用了庫(kù)函數(shù)pow(),實(shí)參x和n正確的傳入,返回值為xn。答案為C。

例3: 以下函數(shù)定義:

void fun( int  n, double  x)  { ……}

若以下選項(xiàng)中的變量都已正確定義并賦值,則對(duì)函數(shù)fun的正確調(diào)用語(yǔ)句是

A) fun(int  y,double m);             B) k=fun(10,12.5);

C)fun(x,n);                           D) void fun(n,x);

分析:本題考察點(diǎn):調(diào)用函數(shù)的語(yǔ)法規(guī)則。觀察函數(shù)的首部,注意到fun函數(shù)返回類(lèi)型為void,表示沒(méi)有返回值。第一個(gè)形參類(lèi)型為int,第二個(gè)形參類(lèi)型為double。A項(xiàng)調(diào)用函數(shù)時(shí)寫(xiě)出實(shí)際參數(shù)類(lèi)型,這個(gè)是錯(cuò)誤的。B選項(xiàng)fun(10,12.5)是沒(méi)有運(yùn)算結(jié)果的,是無(wú)返回值。那么調(diào)用時(shí)不能賦值給變量k的。D項(xiàng)調(diào)用函數(shù)時(shí)不需寫(xiě)出返回值類(lèi)型void。C選項(xiàng)形參與實(shí)參的同名不互相影響,是正確的。

例4:本題是2006年9月的考題。以下程序中,函數(shù)fun的功能是計(jì)算x2-2x+6,主函數(shù)中將調(diào)用fun函數(shù)計(jì)算:

y1=(x+8)2-2(x+8)+6

y2=sin2(x)-2sin(x)+6

請(qǐng)?zhí)羁铡?/p>

#include   "math.h"

double  fun(double x) { return(x*x-2*x+6);}

main( )

{     double x,y1,y2;

printf("Enterx: "); scanf("%lf",&x);

y1=fun(              );

y2=fun(              );

printf("y1=%lf,y2=%lf\n",y1,y2);

}

分析:考察點(diǎn):函數(shù)調(diào)用中實(shí)參與形參之間的傳遞。題目要求中有兩個(gè)多項(xiàng)式的計(jì)算,實(shí)際上是多項(xiàng)式x2-2x+6的x取兩次不同的數(shù)值來(lái)運(yùn)算。也就是在C語(yǔ)言中兩次調(diào)用函數(shù),每次調(diào)用傳遞不同實(shí)參的問(wèn)題?芍瘮(shù)fun返回值為double類(lèi)型。變量y1實(shí)際上存放當(dāng)形參x為x+8時(shí)fun函數(shù)的計(jì)算結(jié)果。變量y2實(shí)際上存放形參x為sin(x)時(shí)fun函數(shù)的計(jì)算結(jié)果。因此,只需在兩次調(diào)用fun函數(shù)的時(shí)候?qū)懗稣_的實(shí)參就可以了。整個(gè)程序是實(shí)現(xiàn)了從鍵盤(pán)輸入x的值,即達(dá)到了輸出y1與y2值的功能。第一空填x+8,第二空填sinx

第四節(jié)  函數(shù)的聲明

知識(shí)點(diǎn): 函數(shù)聲明合法的幾種表示方式;

重要程度:★★★★

我們知道,每個(gè)人都是先起名字,才可以稱(chēng)呼其人。函數(shù)也是這樣,一般情況下,函數(shù)應(yīng)遵循“先定義后調(diào)用”的規(guī)則。當(dāng)然,很多時(shí)候都把函數(shù)的定義統(tǒng)統(tǒng)放在主函數(shù)main的后面,即定義在調(diào)用之后。這樣做,也可以。但必須是在調(diào)用之前對(duì)函數(shù)進(jìn)行聲明。聲明是表示有這樣的一個(gè)函數(shù)存在。

1、函數(shù)聲明的一般形式

(函數(shù)聲明必要的是函數(shù)名、參數(shù)個(gè)數(shù)、參數(shù)的類(lèi)型、返回值的類(lèi)型這四樣,其中特別記住,函數(shù)聲明中函數(shù)的參數(shù)的名字是可以變化甚至不寫(xiě)的。。。

一個(gè)簡(jiǎn)單的例子

double recarea( double x,double y);           /*函數(shù)聲明*/

main( )

{     double area;

area=recarea(2.2,3.3);                      /*函數(shù)調(diào)用*/

printf("area=%d",z);

}

double area( double x, doubley)           /*函數(shù)定義*/

{     double area;

area=x*y;

return area;}

針對(duì)該例,我們寫(xiě)出幾種合法的函數(shù)聲明,

寫(xiě)法一:double recarea( double x, double y);  這個(gè)和我們后面函數(shù)定義的第一部分一模一樣。

寫(xiě)法二:double recarea( double , double );  聲明的時(shí)候,可以省略形式參數(shù)。

寫(xiě)法三:double recarea( double a, double y); 聲明的時(shí)候,參數(shù)的名稱(chēng)可以和后面定義時(shí)候不同。

在使用函數(shù)時(shí),可以有三種方式:

(1)先定義后調(diào)用。此時(shí)不需要進(jìn)行函數(shù)聲明。

(2)先聲明,后調(diào)用,最后定義,就是上面例子中采用的方式。

(3)對(duì)于返回類(lèi)型是int類(lèi)型的,可以先調(diào)用,后定義。不需要聲明。

有難度的考題;(含有指針的函數(shù)聲明)

   int *max(int *x , int *y)

{if(*x>*y)return x;

else return y;}

這種函數(shù)的聲明的方法:

1、    int *max(int *x , int *y) 這個(gè)是與定義一樣的聲明。

2、    int *max(int * , int *)   這個(gè)是省略了變量的聲明。

3、    int *max(int *b  , int *a)這個(gè)是改變了變量的聲明。

2、函數(shù)聲明的位置

函數(shù)聲明的位置有兩種方式:

1)在函數(shù)的外部:那么只要出現(xiàn)了函數(shù)的聲明,從聲明之后的任何位置都可以調(diào)用該函數(shù)。

2)在某函數(shù)的內(nèi)部:此時(shí)的函數(shù)聲明就有使用范圍了。函數(shù)的調(diào)用只能在函數(shù)聲明出現(xiàn)的地方。其它函數(shù)中是不能調(diào)用該函數(shù)的。

例1: 若程序中定義了以下函數(shù)

float add(float a, float b)

{ float c;  

c=a+b;

return c;}

并將其放在調(diào)用語(yǔ)句之后,則在調(diào)用之前應(yīng)進(jìn)行函數(shù)聲明,以下選項(xiàng)中錯(cuò)誤的是

A) float  add(float a,b);                   B)float  add(float, float);

C) float  add(float b, floata);       D) float  add(float x, float y);

分析:本題考察點(diǎn):在函數(shù)聲明的三種形式。A選項(xiàng)缺少第二個(gè)參數(shù)的類(lèi)型名。答案選擇A。

例2:本題是2006年4月的考題,若各選項(xiàng)中所用變量已正確定義,函數(shù)fun中通過(guò)return語(yǔ)句返回一個(gè)函數(shù)值, 以下選項(xiàng)中錯(cuò)誤的程序是

A) main( )                                        B) float fun(int  a,int  b){……}

{ …… x=fun(2,10); …… }                       main()

float fun(int a,int  b){ …… }            { …… x=fun(i,j); …… }

C) float fun(int,int);                            D) main( )

main( )                                                        {  float fun(int  i,int   j);

{ …… x=fun(2,10); …… }                   x=fun(i,j);…… }

float fun(int a,int  b){ …… }             float fun(int  a,int  b){ …… }

分析:在函數(shù)的定義、調(diào)用和聲明。A沒(méi)有聲明就調(diào)用函數(shù)了,A選項(xiàng)錯(cuò)誤。D是在函數(shù)體內(nèi)聲明,然后調(diào)用。B和C都是在函數(shù)外面聲明,再在聲明之后調(diào)用。

聯(lián)系方式0755-82591179

傳真:0755-82591176

郵箱:vicky@yingtexin.net

地址:深圳市龍華區(qū)民治街道民治大道973萬(wàn)眾潤(rùn)豐創(chuàng)業(yè)園A棟2樓A08

抚宁县| 玉门市| 贵阳市| 锡林郭勒盟| 青海省| 重庆市| 湖州市| 穆棱市| 长汀县| 三河市| 彭阳县| 大方县| 什邡市| 响水县| 汤原县| 县级市| 焦作市| 阳西县| 万载县| 锦屏县| 和平区| 苏尼特右旗| 长寿区| 英德市| 丹寨县| 奉贤区| 武平县| 远安县| 新邵县| 平昌县| 西峡县| 东乡族自治县| 昭苏县| 永宁县| 关岭| 永宁县| 璧山县| 贵溪市| 砀山县| 大竹县| 托里县|