【文章內(nèi)容簡介】
i=7。i++) { s=0。 //去掉該語句 t=t*i。 s=s+t。 } printf(sum=d\n,s)。 //printf(“sum=%ld”,s)。 } 第6章 函數(shù)習(xí)題1. 單項(xiàng)選擇題 (1)C 語言總是從 A 函數(shù)開始執(zhí)行。 A. main B. 處于最前的 D. 隨機(jī)選一個 (2)函數(shù)在定義時,省略函數(shù)類型說明符,則該函數(shù)值的類型為 A 。 A. int B. float C. long D. double (2)以下 B 函數(shù),真正地沒有返回值。 A. int a(){int a=2。return (a)。} B. void b(){printf(c)。} C. int a(){int a=2。return a。} D. 以上都是 (3)在 C 語言中,有關(guān)函數(shù)的說法,以下正確的是 C 。 A. 函數(shù)可嵌套定義,也可嵌套調(diào)用 B. 函數(shù)可嵌套定義,但不可嵌套調(diào)用 C. 函數(shù)不可嵌套定義,但可嵌套調(diào)用 D. 函數(shù)不可嵌套定義,也不可嵌套調(diào)用 (4)以下函數(shù)調(diào)用語句中,含有實(shí)參的個數(shù)為 B 。 7fun((2,3),(4,5+6,7))。 A. 1 B. 2 C. 5 D. 6(5)函數(shù)調(diào)用可以在 D 。 A. 函數(shù)表達(dá)式中 B. 函數(shù)語句中 C. 函數(shù)參數(shù)中 D. 以上都是 (6)被調(diào)函數(shù)返回給主調(diào)函數(shù)的值稱為 C 。 A. 形參 B. 實(shí)參 C. 返回值 D. 參數(shù) (7) D ,可以不進(jìn)行函數(shù)類型說明。 A. 被調(diào)函數(shù)的返回值是整型或字符型時 B. 被調(diào)函數(shù)的定義在主調(diào)函數(shù)定義之前時 C. 在所有函數(shù)定義前,已在函數(shù)外預(yù)先說明了被調(diào)函數(shù)類型 D. 以上都是 (8)被調(diào)函數(shù)通過 D 語句,將值返回給主調(diào)函數(shù)。 A. if B. for C. while D. return (9)被調(diào)函數(shù)調(diào)用結(jié)束后,返回到 B 。 (10)以下對 C語言函數(shù)的有關(guān)描述中,正確的是 A 。 A. 在 C 中,調(diào)用函數(shù)時,只能把實(shí)參的值傳送給形參,形參的值不能傳送給實(shí)參 B. C函數(shù)既可以嵌套定義又可遞歸調(diào)用 C. 函數(shù)必須有返回值,否則不能使用函數(shù) D. C程序中有調(diào)用關(guān)系的所有函數(shù)必須放在同一個源程序文件中 (11)C 語言中函數(shù)的隱含存儲類型是 A 。 A. auto B. static C. extern D. 無存儲類型 (12)能把函數(shù)處理結(jié)果的兩個數(shù)據(jù)返回給主調(diào)函數(shù),在下面的方法中不正確的是 A 。A. return 這兩個數(shù) B. 形參用兩個元素的數(shù)組 C. 形參用兩個這種數(shù)據(jù)類型的指針 D. 用兩個全局變量 2. 填空題 (1) 變量的作用域主要取決于變量 定義的位子 ,變量的生存期既取決于變量 存儲類型 ,又取決于變量 存儲方式 。 (2) 說明變量時,若省略存儲類型符,系統(tǒng)默認(rèn)其為 整形 存儲類別,該存儲類別的類型符為: int 。 (3) 靜態(tài)型局部變量的作用域是 靜態(tài)局部變量定義的復(fù)合語句或函數(shù)體內(nèi) ,生存期是 整個程序運(yùn)行期內(nèi) 。 (4) 函數(shù)中的形參和調(diào)用時的實(shí)參都是數(shù)組名時,傳遞方式為 地址傳遞 ,都是變量時,傳遞方式為 值傳遞 。 (5) 函數(shù)的形式參數(shù)的作用域?yàn)? 整個函數(shù)體內(nèi) ,全局的外部變量和函數(shù)體內(nèi)定義的局部變量重名時, 函數(shù)體內(nèi)定義的局部 變量優(yōu)先。 (6) 若自定義函數(shù)要求返回一個值,則應(yīng)在該函數(shù)體中有一條 return 語句,若自定義函數(shù)要求不返回一個值,則應(yīng)在該函數(shù)說明時加一個類型說明符 void 。 (7) 若函數(shù)的形式參數(shù)是指針類型,則實(shí)參可以是 數(shù)組名 、 地址 或 指針變量 。 (8) 函數(shù)的參數(shù)為 char *類型時,形參與實(shí)參結(jié)合的傳遞方式為 地址傳遞 。 (9) 函數(shù)的實(shí)參為常量時,形參與實(shí)參結(jié)合的傳遞方式為 值傳遞 。 (10) 對數(shù)組按值從大到小的順序排序后輸出,請?zhí)羁铡? include void main() { float a[7]={2,6,3,8,3,12,9}。 int i void sort(float*,int)。 sort(a,7) 。 for(i=0。i7。i++) printf(%f ,a[i])。 printf(\n)。 } void sort( float *p, int n ) { int i,j,k。 float t。 for(i=0。in1。i++) { k=i。 for(j=i+1。jn。j++) if( p[k]p[j] ) k=j。 if(k != i) { t=*(p+i)。 *(p+i)=*(p+k)。 *(p+k)=t。 } } } (11) 下列函數(shù)在 n 個元素的一維數(shù)組中,找出最大值、最小值并傳送到調(diào)用函數(shù),請?zhí)羁铡? include void find(float *p, float *max, float *min, int n) { int k。 float t。 *max=*p。 *min = *p。 for(k=1。kn。k++) { t=*(p+k)。 if( t*max ) *max=t。 if(t*min) *min=t。 } }3. 寫出下列程序運(yùn)行結(jié)果: (1) main() { int i=1,p。 p=fun(i,i+1)。 printf(%d\n,p)。 } int fun(int a,int b) { int f。 if(ab) f=1。 else if(a==b) f=0。 else f=1。 return f。 }輸出:1(2)鍵盤輸入 abcdefCR include void fun( ) { char c 。 if((c=getchar( ))!=39。\n39。) fun( ) 。 putchar(c)。 } void main( ) { fun( )。 } 輸出:fedcba(3) include define C 5 int x=1,y=C。 void main( ) { int x。 x=y++。 printf(%d %d\n, x,y)。 if(x4){ int x 。 x=++y。 printf(%d %d\n,x,y) 。 } x+=y。 printf(%d %d\n,x,y)。 } (4) include int c , a=4 。 func(int a , int b) { c=a*b 。 a=b1 。 b++ 。 return (a+b+1) 。 } void main( ) { int b=2 , p=0 。 c=1 。 p=func(b , a) 。 printf(%d,%d,%d,%d\n, a,b,c,p) 。 } 輸出:4,2,8,9 (5) unsigned fun6(unsigned num) { unsigned k=1。 do { k*=num%10。 num/=10。 } while(num)。 return k。 } void main( ) { unsigned n=26。 printf(%d\n, fun6(n))。 } 輸出:12輸出:5 67 712 64) fdsa) i++。 d\n,a)。