版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第六部分 函數(shù)一、單項選擇題1 . C語言中的函數(shù)返回值的類型是由(D)決定A. return語句中的表達(dá)式B.調(diào)用函數(shù)的主調(diào)函數(shù)C.調(diào)用函數(shù)時臨時D .定義函數(shù)時所指定的函數(shù)類型2 .下面不正確的描述是( B ) 。A.調(diào)用函數(shù)時,實參可以是表達(dá)式B.調(diào)用函數(shù)時,實參和形參可以共用內(nèi)存單元C.調(diào)用函數(shù)時,將形參分配內(nèi)存單元D.調(diào)用函數(shù)時,實參與形參的類型必須一致3 .在 C 語言中,調(diào)用一個函數(shù)時,實參變量和形參變量之間的數(shù)據(jù)傳遞是(D )A.地址傳遞B .值傳遞C.由實參傳遞給形參,并由形參傳回給實參D.由用戶指定傳遞方式4 . 下面的函數(shù)調(diào)用語句中含有( A )個實參int a,b,c;
2、int sum(int x1,int x2);total=sum(a,b),c);A 2 B 3 C 4D 55 .在C語言中(C )A.函數(shù)的定義可以嵌套,但函數(shù)的調(diào)用不可以嵌套B.函數(shù)的定義和調(diào)用均不可以嵌套C.函數(shù)的定義不可以嵌套,但是函數(shù)的調(diào)用可以嵌套D.函數(shù)的定義和調(diào)用均可以嵌套6 .關(guān)于C語言中的return語句正確的是(C )A.只能在主函數(shù)中出現(xiàn)B.在每個函數(shù)中都必須出現(xiàn)C.可以在一個函數(shù)中出現(xiàn)多次D.只能在除主函數(shù)之外的函數(shù)中出現(xiàn)7. 兩個形參中,第一個形參為指針類型、第二個形參為整型, 則對函數(shù)形參的說明有錯誤的是( D )A. int a(float x,int n)8.
3、 int a(float *x,int n)9. int a(float x10,int n)D.int a(float x,int n)8. 在C語言中,函數(shù)的數(shù)據(jù)類型是指(A )A. 函數(shù)返回值的數(shù)據(jù)類型B. 函數(shù)形參的數(shù)據(jù)類型C. 調(diào)用該函數(shù)時的實參的數(shù)據(jù)類型D. 任意指定的數(shù)據(jù)類型9. 已知如下定義的函數(shù):fun1(a) printf("n%d",a) ;則該函數(shù)的數(shù)據(jù)類型是( C )A.與參數(shù)a的類型相同B void 型C整型D無法確定10. 定義一個函數(shù)實現(xiàn)交換x 和 y 的值,并將結(jié)果正確返回。能夠?qū)崿F(xiàn)此功能的是( D )A. swapa(int x,int
4、y) int temp ;temp=x; x=y ; y=temp;B. swapb(int *x,int *y) int temp ;temp=x; x=y ; y=temp;C.swapc(int *x,int *y) int temp ;temp=*x ; *x=*y ; *y=temp ;D. swapd(int *x,int *y) int *temp ;temp=x; x=y ; y=temp;(B)11. 求一個角的正弦函數(shù)值的平方。能夠?qū)崿F(xiàn)此功能的函數(shù)是A.sqofsina(x) float x ;return(sin(x)*sin(x) ;B. double sqofsinb
5、(x) float x ;return(sin(double)x)*sin(double)x)C.double sqofsinc(x) return(sin(x)*sin(x)D. sqofsind(x) float x ;return(double(sin(x)*sin(x)12. 已知函數(shù)定義如下:float fun1(int x,int y) float z ;z=(float)x/y ;return(z);主調(diào)函數(shù)中有int a=1,b=0 ;可以正確調(diào)用此函數(shù)的語句是(D )A.printf("%f",fun1(a,b) ; B. printf("%f&
6、quot;,fun1(&a,&b) ;C. printf("%f",fun1(*a,*b) ; D.調(diào)用時發(fā)生錯誤13. 下面函數(shù)的功能是(B )a(s1,s2)char s1,s2口 ; while(s2+=s1+);A.字符串比較B.字符串復(fù)制C.字符串連接D.字符串反向二、填空題1 .在C語言中,存儲類型為 局部和自動型的變量、只能在使用它們時才占用存 儲空間。2 .在一個源文件中定義的全局變量的作用域為整個源程序。3 .下面程序的執(zhí)行結(jié)果是84int d=1;fun(int p)int d=5;d+=p+;printf( %d”,d);main()i
7、nt a=3;fun(a);d+=a+;printf( %d”,d);4 .該fun函數(shù)的功能是求10的階乘。1) #include2) long fun ( int n)3) if (1)4) return (n*fun(2);5) else if ( 3)6) return 1;第一處:n>1第二處:n-1 第三處:n=1解析:從第2、4行看到了函數(shù)名,函數(shù)體中又出現(xiàn)了函數(shù)的調(diào)用,則是遞歸。我們知道:n!=n*(n-1)!這就是一個遞歸的表達(dá)式,寫成函數(shù)就是 fun(n)=n*fun(n-1)。因此,4行處 填寫n-1。又:1!=1故3, 5行就好填了。因此答案是 n>1 n-
8、1 n=1。還有0!=1故,還可 填寫:n>0 n-1 n=0注意:3 5行的條件是相反的,這也是 if與else條件的互斥性。5 .程序的功能是計算 s=1!+2!+3!+n!1) long fun(int n)2) int i;3) long s;4) s=1;5) for (i=1; i<=n; i+)6) s=2;7) return s;8) 9) main()10) long s;11) int k,n;12) scanf("%d",&n);13) s=3;14) for (k=1; k<=n; k+)15) s=4;16) printf
9、("%ld'n", s);17) 第一處:1第二處:s*i第三處:0第四處:s+fun(k)解析:首先,搞清楚函數(shù)fun、 main各自的功能。Fun是求一個數(shù)的階乘,我們知道:n!=1*2*3*n同時要死記?。呵蠓e,積的初值一般等于1。故fun中s是用來存放積的,其初值等于1;求階乘是連乘,故 s=s*iMain是求和,記?。汉偷某踔狄话愕扔?.兩個函數(shù)中的局部變量s的作用是不同的。 Main中的s是存放和的。最后:注意一些變量的類型。階乘是求積,積的增長速度是比較快的,為防止溢出,fun的返回值類型是long。輸出中l(wèi)d是輸出長整數(shù)。6 .請在函數(shù)fun的橫線上
10、填寫若干個表達(dá)式,使從鍵盤上輸入一個整數(shù)n,輸出斐波納契數(shù)列。斐波契數(shù)列是一種整數(shù)數(shù)列,其中每數(shù)等于前兩數(shù)之后,如:0 1 1 2 3 5 8 131) int fun(int n)2) if(-1)3) return 0;4) else if(2)5) return 1;6) else7) return 3;8) 第一處:n=0第二處:n=1第三處:fun(n-1)+fun(n-2)解析:求斐波契數(shù)列:一項等于其前兩項的和。這也是一個遞歸。求斐波契數(shù)列的第n項的值,n從0開始。7 .請補全函數(shù)fun,該函數(shù)的功能是求出以下分?jǐn)?shù)序列的前n項之和。和值通過函數(shù)值返回到main函數(shù)。1) #inc
11、lude2) #include3)1 fun(int n)4) int a,b,c,k;5) double s;6) s=0.0;7) a=2;8) b=1;9) for(k=1;k<=n;k+)10) 11) s=s+( 2)a/(3)b;12) c=a;13) a=a+b;14) b=c;15) 16) return s;17) 第一處:double第二處:double第三處:double解析:從第11-14總結(jié)出數(shù)列的表達(dá)式。第 1項是a/b=2/1;3/2 4/3故:s=2/1+3/2+4/3+ 和的初值是 0。記?。簝蓚€整數(shù)進(jìn)行算術(shù)運算結(jié)果也是整數(shù),算術(shù)運算中只要有一個操作數(shù)是
12、實數(shù),運算結(jié)果就是實數(shù)。本題希望結(jié)果是實數(shù),故要進(jìn)行強制類型轉(zhuǎn)換,2, 3只要有一個進(jìn)行強制轉(zhuǎn)換就可以了。最后,函數(shù)需要有一個返回值類型,當(dāng)然也是雙精度浮點數(shù)了。8 .給定程序的功能是計算并輸出下列級數(shù)的前N項之和SN,直到SN大于q為止,q的值通過形參傳入。1) double fun( double q )2) int n;3) double s;4) n = 2;5) s = 2.0;6) while (s 1 q)7) 8) s=s+(double)(n+1)/n;9) 2;10) 11) printf("n=%d'n",n);12) 3;13) 第一處:s
13、<= q第二處:n+第三處:return s解析:從第8行,從數(shù)學(xué)的角度總結(jié)出數(shù)列的表達(dá)式。(n+1)/n n從2開始,每次增加 1,故:SN=2+3/2+4/3+ 和的初值是 2.0 循環(huán)條件是“ SN大于q為止” ,while是滿足條件才循環(huán),故填寫 s <= q 最后,函數(shù)需要有一個返回值。9 .給定程序功能是計算S=f(-n)+f(-n+1)+ +f(0)+f(1)+f(2)+ +f(n)的值。float f( double x)if (x = 0.0 | x = 2.0)return 1;else if (x < 0.0)return (x -1)/(x-2);el
14、sereturn (x +1)/(x-2);double fun( int n )int i; double s=0.0, y;for (i= -n; i<=2; i+) y=f(1.0*i); s+= y; return 3;main ()printf("%fn", fun(5);第一處:0.0第二處:n第三處:s解析:函數(shù)f ( double x)求每個單項的值。ifelse的條件是互斥的。fun()是求和。10 .給定程序的功能是計算score中m個人的平均成績 aver,將低于aver的成績放在below中,通過函數(shù)名返回人數(shù)。int fun(int scor
15、e, int m, int below)int i, j = 0 ;float aver = 0.0 ;for(i = 0 ; i < m ; i+) aver += scorei;aver /= (float) m ;for(i = 0 ; i < m ; i+)if(scorei < aver) belowj+ =1;return j ;main()int i, n, below9;int score9 = 10, 20, 30, 40, 50, 60, 70, 80, 90;n = fun(score, 9,2);printf( "nBelow the ave
16、rage score are:");for (i = 0 ; i < n ; i+) printf("%d ",3);第一處:scorei第二處:below第三處:belowi解析:求平均值,應(yīng)先求和。此處,和與平均值使用了同一個變量。Score是原來的成績,Below【存放低于平均分的分?jǐn)?shù), 還有人數(shù)。Below的長度一定不大于 score的長度。 Below的長度必須通過計數(shù)才能得到,且是在比較的過程中得到的。Below數(shù)組的長度用j來計數(shù),其初值當(dāng)然為 0。Fun函數(shù)中:先求總分,平均分;再比較,比平均分低,存于 below , j+。J是后加,不能錯
17、了。函數(shù)fun的返回值賦值給 n, n就是below數(shù)組的長度。11 .在主函數(shù)中從鍵盤輸入若干個數(shù)放入數(shù)組x中,用0結(jié)束輸入但不計入數(shù)組。下列給定程序中,函數(shù)fun功能是:輸出數(shù)組元素中小于平均值的元素。void fun(1,int n)double sum=0.0;double average=0.0;int i=0;for(i=0;i<N;I+)< p>2;average=3;for (i=0;i<N;I+)< p>if(xi<AVERAGE)< p>if(i%5=0)printf("n");printf(&quo
18、t;%d, ",xi);第一處:int x第二處:sum+=xi第三處:sum/n解析:算法思想同上題12 .請補全fun函數(shù),該函數(shù)的功能是求不超過給定自然數(shù)的各個偶數(shù)之和。int fun(int x)int i,s;s=1;for(2)s+=i;return s;)第一處:0第二處:i=2; i解析:求和,和的初值s為0。最小的非負(fù)偶數(shù)是 0,偶數(shù)間的大小關(guān)系是相差2。13 .請補全main函數(shù),該函數(shù)的功能是:計算并輸出下列多項式的值。S=1+1/(1+2)+1/(1+2+3)+ +1/(1+2+3+ +50)#include1 fun(int n)int i,j;double
19、 sum=0.0,t;for(i=1;i<=n;i+)t=0.0;for(j=1;j<=i;j+)t+= 2;sum+= 3;return sum;第一處:double第二處:j第三處:1.0/t解析:S中的每一項的分母是1+2+3+i需要用一個一重循環(huán)實現(xiàn),把所有商相加,需要用一個循環(huán);組合起來整個就需要二重循環(huán)。內(nèi)循環(huán)求每個單項的和,外循環(huán)求商的和。每單項的分子是1,應(yīng)該用浮點數(shù)1.0;每單項的分母是求和,和的初值為 0.0;函數(shù)的返回值是浮點數(shù)。14 .請補全main函數(shù),該函數(shù)的功能是,計算兩個自然數(shù)n和m(m<10000)之間所有數(shù)的和。n和m從鍵盤輸入。main(
20、)int n,m;long sum;1;clrscr();printf("nInput n,mn");scanf("%d,%d",&n,&m);while( n<=m )2;n+;printf("sum=%3n",sum);第一處:sum=0第二處:sum += n第三處:ld解析:求和問題15 .請補全main函數(shù),該函數(shù)的功能是:從鍵盤上輸入3個整數(shù),然后找出最大的數(shù)并輸出。main()int a,b,c,max;clrscr();printf("nInput three numbers:n");scanf("%d,%d,%d",&a,&b,&c);printf("Thethree n
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國智慧養(yǎng)老服務(wù)行業(yè)商業(yè)模式創(chuàng)新戰(zhàn)略制定與實施研究報告
- 2025-2030年中國汽車后市場行業(yè)開拓第二增長曲線戰(zhàn)略制定與實施研究報告
- 2025-2030年中國控制線纜組件行業(yè)資本規(guī)劃與股權(quán)融資戰(zhàn)略制定與實施研究報告
- 收看《反腐為人民》心得體會:弘揚清風(fēng)正氣筑牢廉潔根基
- 年產(chǎn)xxx新型建材新型墻體材料項目可研報告模板
- 廣西河池市環(huán)江縣2021-2022學(xué)年五年級上學(xué)期英語期末試卷
- 商品加工知識培訓(xùn)課件
- 學(xué)校消防安全知識培訓(xùn)
- 債券價格的敏感性第五章
- 二零二五年度外墻內(nèi)保溫工程進(jìn)度匯報與審批合同3篇
- 中國郵政儲蓄銀行員工違規(guī)行為處理辦法
- 2023年長沙市中考數(shù)學(xué)真題試卷及答案
- 《電力設(shè)備消防典型準(zhǔn)則》(DL5027-2022)
- 米吳科學(xué)漫畫奇妙萬象篇
- 河南省鄭州市金水區(qū)2022-2023學(xué)年三年級上學(xué)期期末數(shù)學(xué)試卷
- XXX酒店開辦費POB預(yù)算
- Z矩陣、Y矩陣、A矩陣、S矩陣、T矩陣定義、推導(dǎo)及轉(zhuǎn)換公式
- 中美歐規(guī)范樁基承載力計算設(shè)計對比
- 外科洗手操作考核評分表
- 復(fù)旦大學(xué)外國留學(xué)生入學(xué)申請表
- 長安汽車發(fā)動機水溫高故障案例分析處置
評論
0/150
提交評論