2021年C語(yǔ)言函數(shù)題庫(kù)及答案_第1頁(yè)
2021年C語(yǔ)言函數(shù)題庫(kù)及答案_第2頁(yè)
2021年C語(yǔ)言函數(shù)題庫(kù)及答案_第3頁(yè)
2021年C語(yǔ)言函數(shù)題庫(kù)及答案_第4頁(yè)
2021年C語(yǔ)言函數(shù)題庫(kù)及答案_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第六某些函數(shù)一、單項(xiàng)選取題1.C語(yǔ)言中函數(shù)返回值類型是由(D)決定A.return語(yǔ)句中表達(dá)式 B.調(diào)用函數(shù)主調(diào)函數(shù) C.調(diào)用函數(shù)時(shí)暫時(shí)D.定義函數(shù)時(shí)所指定函數(shù)類型2.下面不對(duì)的描述是(B)。調(diào)用函數(shù)時(shí),實(shí)參可以是表達(dá)式調(diào)用函數(shù)時(shí),實(shí)參和形參可以共用內(nèi)存單元調(diào)用函數(shù)時(shí),將形參分派內(nèi)存單元調(diào)用函數(shù)時(shí),實(shí)參加形參類型必要一致3.在C語(yǔ)言中,調(diào)用一種函數(shù)時(shí),實(shí)參變量和形參變量之間數(shù)據(jù)傳遞是(D)A.地址傳遞 B.值傳遞 C.由實(shí)參傳遞給形參,并由形參傳回給實(shí)參 D.由顧客指定傳遞方式4.下面函數(shù)調(diào)用語(yǔ)句中具有(A)個(gè)實(shí)參inta,b,c;intsum(intx1,intx2);……total=sum((a,b),c);A.2B.3C.4 D.55.在C語(yǔ)言中(C)函數(shù)定義可以嵌套,但函數(shù)調(diào)用不可以嵌套函數(shù)定義和調(diào)用均不可以嵌套函數(shù)定義不可以嵌套,但是函數(shù)調(diào)用可以嵌套函數(shù)定義和調(diào)用均可以嵌套 6.關(guān)于C語(yǔ)言中return語(yǔ)句對(duì)的是(C)只能在主函數(shù)中浮現(xiàn)在每個(gè)函數(shù)中都必要浮現(xiàn)可以在一種函數(shù)中浮現(xiàn)多次只能在除主函數(shù)之外函數(shù)中浮現(xiàn)7.兩個(gè)形參中,第一種形參為指針類型、第二個(gè)形參為整型,則對(duì)函數(shù)形參闡明有錯(cuò)誤是(D)A.inta(floatx[],intn)B.inta(float*x,intn)C.inta(floatx[10],intn)D.inta(floatx,intn)8.在C語(yǔ)言中,函數(shù)數(shù)據(jù)類型是指(A)A.函數(shù)返回值數(shù)據(jù)類型B.函數(shù)形參數(shù)據(jù)類型C.調(diào)用該函數(shù)時(shí)實(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ù)實(shí)現(xiàn)互換x和y值,并將成果對(duì)的返回??梢詫?shí)現(xiàn)此功能是(D)A.swapa(intx,inty){inttemp;temp=x;x=y;y=temp;}B.swapb(int*x,int*y){inttemp;temp=x;x=y;y=temp;}C.swapc(int*x,int*y){inttemp;temp=*x;*x=*y;*y=temp;}D.swapd(int*x,int*y){int*temp;temp=x;x=y;y=temp;}11.求一種角正弦函數(shù)值平方??梢詫?shí)現(xiàn)此功能函數(shù)是(B)A.sqofsina(x){floatx;return(sin(x)*sin(x));}B.doublesqofsinb(x){floatx;return(sin((double)x)*sin((double)x));}C.doublesqofsinc(x){return(((sin(x)*sin(x));}D.sqofsind(x){floatx;return(double(sin(x)*sin(x)));12.已知函數(shù)定義如下:floatfun1(intx,inty){floatz;z=(float)x/y;return(z);}主調(diào)函數(shù)中有inta=1,b=0;可以對(duì)的調(diào)用此函數(shù)語(yǔ)句是(D)A.printf("%f",fun1(a,b));B.printf("%f",fun1(&a,&b));C.printf("%f",fun1(*a,*b));D.調(diào)用時(shí)發(fā)生錯(cuò)誤13.下面函數(shù)功能是(B)a(s1,s2)chars1[],s2[];{while(s2++=s1++);}A.字符串比較B.字符串復(fù)制C.字符串連接D.字符串反向二、填空題1.在C語(yǔ)言中,存儲(chǔ)類型為局部和自動(dòng)型變量,只能在使用它們時(shí)才占用存儲(chǔ)空間。2.在一種源文獻(xiàn)中定義全局變量作用域?yàn)檎麄€(gè)源程序。3.下面程序執(zhí)行成果是84intd=1;fun(intp){intd=5;d+=p++;printf(“%d”,d);}main(){inta=3;fun(a);d+=a++;printf(“%d”,d);}4.該fun函數(shù)功能是求10階乘。1)#include

2)longfun(intn)

3){if(___1___)

4)return(n*fun(___2___));

5)elseif(___3___)

6)return1;}第一處: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>1n-1n==1。尚有0!=1故,還可填寫:n>0n-1n==0

注意:35行條件是相反,這也是if與else條件互斥性。5.程序功能是計(jì)算s=1!+2!+3!+……+n!1)longfun(intn)

2){inti;

3)longs;

4)s=___1___;

5)for(i=1;i<=n;i++)

6)s=___2___;

7)returns;

8)}

9)main()

10){longs;

11)intk,n;

12)scanf("%d",&n);

13)s=___3___;

14)for(k=1;k<=n;k++)

15)s=___4___;

16)printf("%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是用來存儲(chǔ)積,其初值等于1;求階乘是連乘,故s=s*i

Main是求和,記?。汉统踔灯胀ǖ扔?.

兩個(gè)函數(shù)中局部變量s作用是不同。Main中s是存儲(chǔ)和。

最后:注意某些變量類型。

階乘是求積,積增長(zhǎng)速度是比較快,為防止溢出,fun返回值類型是long。輸出中l(wèi)d是輸出長(zhǎng)整數(shù)。6.請(qǐng)?jiān)诤瘮?shù)fun橫線上填寫若干個(gè)表達(dá)式,使從鍵盤上輸入一種整數(shù)n,輸出斐波納契數(shù)列。斐波契數(shù)列是一種整數(shù)數(shù)列,其中每數(shù)等于前兩數(shù)之后,如:011235813……1)intfun(intn){

2)if(___1___)

3)return0;

4)elseif(___2___)

5)return1;

6)else

7)return___3___;

8)}第一處:n==0

第二處:n==1

第三處:fun(n-1)+fun(n-2)解析:求斐波契數(shù)列:一項(xiàng)等于其前兩項(xiàng)和。

這也是一種遞歸。

求斐波契數(shù)列第n項(xiàng)值,n從0開始。7.請(qǐng)補(bǔ)全函數(shù)fun,該函數(shù)功能是求出如下分?jǐn)?shù)序列前n項(xiàng)之和。和值通過函數(shù)值返回到main函數(shù)。1)#include

2)#include

3)___1___fun(intn)

4){inta,b,c,k;

5)doubles;

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)returns;

17)}第一處:double

第二處:double

第三處:double解析:從第11----14總結(jié)出數(shù)列表達(dá)式。第1項(xiàng)是a/b=2/1;3/24/3

故:s=2/1+3/2+4/3+……和初值是0。

記?。簝蓚€(gè)整數(shù)進(jìn)行算術(shù)運(yùn)算成果也是整數(shù),算術(shù)運(yùn)算中只要有一種操作數(shù)是實(shí)數(shù),運(yùn)算成果就是實(shí)數(shù)。

本題但愿成果是實(shí)數(shù),故要進(jìn)行強(qiáng)制類型轉(zhuǎn)換,2,3只要有一種進(jìn)行強(qiáng)制轉(zhuǎn)換就可以了。

最后,函數(shù)需要有一種返回值類型,固然也是雙精度浮點(diǎn)數(shù)了。8.給定程序功能是計(jì)算并輸出下列級(jí)數(shù)前N項(xiàng)之和SN,直到SN不不大于q為止,q值通過形參傳入。1)doublefun(doubleq)

2){intn;

3)doubles;

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<=q

第二處:n++

第三處:returns解析:從第8行,

從數(shù)學(xué)角度總結(jié)出數(shù)列表達(dá)式。

(n+1)/nn從2開始,每次增長(zhǎng)1,故:SN=2+3/2+4/3+……和初值是2.0

循環(huán)條件是“SN不不大于q為止”,while是滿足條件才循環(huán),故填寫s<=q

最后,函數(shù)需要有一種返回值。9.給定程序功能是計(jì)算S=f(-n)+f(-n+1)+…+f(0)+f(1)+f(2)+…+f(n)值。floatf(doublex)

{

if(x==0.0||x==2.0)

return___1___;

elseif(x<0.0)

return(x-1)/(x-2);

else

return(x+1)/(x-2);

}

doublefun(intn)

{inti;doubles=0.0,y;

for(i=-n;i<=___2___;i++)

{y=f(1.0*i);s+=y;}

return___3___;

}

main()

{

printf("%f\n",fun(5));

}第一處:0.0

第二處:n

第三處:s解析:函數(shù)f(doublex)求每個(gè)單項(xiàng)值。if……else條件是互斥。

fun()是求和。10.給定程序功能是計(jì)算score中m個(gè)人平均成績(jī)aver,將低于aver成績(jī)放在below中,通過函數(shù)名返回人數(shù)。intfun(intscore[],intm,intbelow[])

{inti,j=0;

floataver=0.0;

for(i=0;i<m;i++)aver+=score[i];

aver/=(float)m;

for(i=0;i<m;i++)

if(score[i]<aver)below[j++]=___1___;

returnj;

}

main()

{inti,n,below[9];

intscore[9]={10,20,30,40,50,60,70,80,90};

n=fun(score,9,___2___);

printf("\nBelowtheaveragescoreare:");

for(i=0;i<n;i++)printf("%d",___3___);

}第一處:score[i]

第二處:below

第三處:below[i]解析:求平均值,應(yīng)先求和。此處,和與平均值使用了同一種變量。

Score[]是本來成績(jī),

Below【】存儲(chǔ)低于平均分分?jǐn)?shù),尚有人數(shù)。Below長(zhǎng)度一定不不不大于score長(zhǎng)度。Below長(zhǎng)度必要通過計(jì)數(shù)才干得到,且是在比較過程中得到。Below數(shù)組長(zhǎng)度用j來計(jì)數(shù),其初值固然為0。

Fun函數(shù)中:先求總分,平均分;再比較,比平均分低,存于below,j++。

J是后加,不能錯(cuò)了。

函數(shù)fun返回值賦值給n,n就是below數(shù)組長(zhǎng)度。11.在主函數(shù)中從鍵盤輸入若干個(gè)數(shù)放入數(shù)組x中,用0結(jié)束輸入但不計(jì)入數(shù)組。下列給定程序中,函數(shù)fun功能是:輸出數(shù)組元素中不大于平均值元素。voidfun(___1___,intn){doublesum=0.0;doubleaverage=0.0;inti=0;for(i=0;i<N;I++)<p>___2___;average=___3___;for(i=0;i<N;I++)<p>if(x[i]<AVERAGE)<p>{if(i%5==0)printf("\n");printf("%d,",x[i]);}}第一處:intx[]

第二處:sum+=x[i]

第三處:sum/n解析:算法思想同上題12.請(qǐng)補(bǔ)全fun函數(shù),該函數(shù)功能是求不超過給定自然數(shù)各個(gè)偶數(shù)之和。intfun(intx){inti,s;s=___1___;for(___2___)s+=i;returns;}第一處:0

第二處:i=2;i解析:求和,和初值s為0。

最小非負(fù)偶數(shù)是0,偶數(shù)間大小關(guān)系是

相差2。13.請(qǐng)補(bǔ)全main函數(shù),該函數(shù)功能是:計(jì)算并輸出下列多項(xiàng)式值。S=1+1/(1+2)+1/(1+2+3)+……+1/(1+2+3+……+50)#include___1___fun(intn){inti,j;doublesum=0.0,t;for(i=1;i<=n;i++){t=0.0;for(j=1;j<=i;j++)t+=___2___;sum+=___3___;}returnsum;}第一處:double

第二處:j

第三處:1.0/t解析:S中每一項(xiàng)分母是1+2+3+……+i需要用一種一重循環(huán)實(shí)現(xiàn),

把所有商相加,需要用一種循環(huán);

組合起來整個(gè)就需要二重循環(huán)。內(nèi)循環(huán)求每個(gè)單項(xiàng)和,外循環(huán)求商和。

每單項(xiàng)分子是1,應(yīng)當(dāng)用浮點(diǎn)數(shù)1.0;

每單項(xiàng)分母是求和,和初值為0.0;

函數(shù)返回值是浮點(diǎn)數(shù)。14.請(qǐng)補(bǔ)全main函數(shù),該函數(shù)功能是,計(jì)算兩個(gè)自然數(shù)n和m(m<10000)之間所有數(shù)和。n和m從鍵盤輸入。main(){intn,m;longsum;___1___;clrscr();printf("\nInputn,m\n");scanf("%d,%d",&n,&m);while(n<=m){___2___;n++;}printf("sum=%___3___\n",sum);}第一處:sum=0

第二處:sum+=n

第三處:ld解析:求和問題15.請(qǐng)補(bǔ)全main函數(shù),該函數(shù)功能是:從鍵盤上輸入3個(gè)整數(shù),然后找出最大數(shù)并輸出。main(){inta,b,c,max;clrscr();printf("\nInputthreenumbers:\n");scanf("%d,%d,%d",&a,&b,&c);printf("Thethreenumb

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論