![C語言函數(shù)題庫(kù)及答案_第1頁](http://file4.renrendoc.com/view2/M02/2B/18/wKhkFmYS4nqABKI4AAFh6uzU6-g149.jpg)
![C語言函數(shù)題庫(kù)及答案_第2頁](http://file4.renrendoc.com/view2/M02/2B/18/wKhkFmYS4nqABKI4AAFh6uzU6-g1492.jpg)
![C語言函數(shù)題庫(kù)及答案_第3頁](http://file4.renrendoc.com/view2/M02/2B/18/wKhkFmYS4nqABKI4AAFh6uzU6-g1493.jpg)
![C語言函數(shù)題庫(kù)及答案_第4頁](http://file4.renrendoc.com/view2/M02/2B/18/wKhkFmYS4nqABKI4AAFh6uzU6-g1494.jpg)
![C語言函數(shù)題庫(kù)及答案_第5頁](http://file4.renrendoc.com/view2/M02/2B/18/wKhkFmYS4nqABKI4AAFh6uzU6-g1495.jpg)
版權(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語言中的函數(shù)返回值的類型是由(D)決定
A.return語句中的表達(dá)式B.調(diào)用函數(shù)的主調(diào)函數(shù)
C.調(diào)用函數(shù)時(shí)臨時(shí)D.定義函數(shù)時(shí)所指定的函數(shù)類型
2.下面不正確的描述是(B)。
A.調(diào)用函數(shù)時(shí),實(shí)參可以是表達(dá)式
B.調(diào)用函數(shù)時(shí),實(shí)參和形參可以共用內(nèi)存單元
C.調(diào)用函數(shù)時(shí),將形參分配內(nèi)存單元
D.調(diào)用函數(shù)時(shí),實(shí)參與形參的類型必須一致
3.在C語言中,調(diào)用一個(gè)函數(shù)時(shí),實(shí)參變量和形參變量之間的數(shù)據(jù)傳遞是(D)
A.地址傳遞B.值傳遞
C.由實(shí)參傳遞給形參,并由形參傳回給實(shí)參D.由用戶指定傳遞方式
4.下面的函數(shù)調(diào)用語句中含有(A)個(gè)實(shí)參
inta,b,c;
intsum(intxl,intx2);
total=sum((a,b),c);
A.2B.3C.4D.5
5.在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.在每個(gè)函數(shù)中都必須出現(xiàn)
C.可以在一個(gè)函數(shù)中出現(xiàn)多次
D.只能在除主函數(shù)之外的函數(shù)中出現(xiàn)
7.兩個(gè)形參中,第一個(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語言中,函數(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ù):
funl(a)
{printf("\n%d",a);
}
則該函數(shù)的數(shù)據(jù)類型是(C)
A.與參數(shù)a的類型相同
B.void型
C.整型
D.無法確定
10.定義一個(gè)函數(shù)實(shí)現(xiàn)交換x和y的值,并將結(jié)果正確返回。能夠?qū)崿F(xiàn)此功能的
是⑻
A.swaps(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.求一個(gè)角的正弦函數(shù)值的平方。能夠?qū)崿F(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ù)定義如下:
floatfunl(intx,inty)
{floatz;
z=(float)x/y;
return(z);
}
主調(diào)函數(shù)中有inta=l,b=0;可以正確調(diào)用此函數(shù)的語句是(D)
A.printffunl(a,b));B.printffunl(&a,&b));
C.printffunl(*a,*b));D.調(diào)用時(shí)發(fā)生錯(cuò)誤
13.下面函數(shù)的功能是(B)
a(si,s2)
chars1[],s2[];
{while(s2++=sl++);
}
A.字符串比較
B.字符串復(fù)制
C.字符串連接
D.字符串反向
二、填空題
1.在C語言中,存儲(chǔ)類型為局部和自動(dòng)型的變量,只能在使用它們時(shí)才占用存儲(chǔ)
空間。
2.在一個(gè)源文件中定義的全局變量的作用域?yàn)檎麄€(gè)源程序。
3.下面程序的執(zhí)行結(jié)果是“
intd=1;
fun(intp)
intd=5;
d+=p++;
printf(tt%d,,,d);
)
main()
inta=3;
fun(a);
d+=a++;
printf("%d”,d);
)
4.該fun函數(shù)的功能是求10的階乘。
l)#include
2)longfun(intn)
3){if(—1—)
4)return(n*fun(_2___));
5)elseif(_3___)
6)returnl;}
第一處:n>l
第二處:n-1?
第三處:n==l
解析:從第2、4行看到了函數(shù)名,函數(shù)體中又出現(xiàn)了函數(shù)的調(diào)用,則是遞歸。我們知
道:n!=n*(nT)!這就是一個(gè)遞歸的表達(dá)式,寫成函數(shù)就是fun(n)=n*fun(nT)。因此,4
行處填寫n-1。又:1!=1故3,5行就好填了。因此答案是n>ln-ln=l。還有0!=1故,還
可填寫:n>0n-ln==0
注意:35行的條件是相反的,這也是if與else條件的互斥性。
5.程序的功能是計(jì)算s=1!+2!+3!+……+n!
1)longfun(intn)
2){inti;
3)longs;
4)s=—1—;
5)for(i=l;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=l;k<=n;k++)
15)s=_4___;
16)printf(/z%ld\n,z,s);
17))
第一處:1
第二處:s*i
第三處:0
第四處:s+fun(k)
解析:首先,搞清楚函數(shù)fun、main各自的功能。
Fun是求一個(gè)數(shù)的階乘,我們知道:n!=l*2*3*3*n
同時(shí)要死記?。呵蠓e,積的初值一般等于1。故fun中s是用來存放積的,其初值等于
1;求階乘是連乘,故s=s*i
Main是求和,記?。汉偷某踔狄话愕扔?.
兩個(gè)函數(shù)中的局部變量s的作用是不同的。Main中的s是存放和的。
最后:注意一些變量的類型。
階乘是求積,積的增長(zhǎng)速度是比較快的,為防止溢出,fun的返回值類型是long。輸出
中Id是輸出長(zhǎng)整數(shù)。
6.請(qǐng)?jiān)诤瘮?shù)fun的橫線上填寫若干個(gè)表達(dá)式,使從鍵盤上輸入一個(gè)整數(shù)n,輸出斐波納
契數(shù)列。斐波契數(shù)列是一種整數(shù)數(shù)列,其中每數(shù)等于前兩數(shù)之后,如:011235813……
1)intfun(intn){
2)if(—1—)
3)return0;
4)elseif(___2___)
5)returnl;
6)else
7)return___3___;
8))
第一處:n==0
第二處:n==l
第三處:fun(n-l)+fun(n-2)
解析:求斐波契數(shù)列:一項(xiàng)等于其前兩項(xiàng)的和。
這也是一個(gè)遞歸。
求斐波契數(shù)列的第n項(xiàng)的值,n從0開始。
7.請(qǐng)補(bǔ)全函數(shù)fun,該函數(shù)的功能是求出以下分?jǐn)?shù)序列的前n項(xiàng)之和。和值通過函數(shù)值返
回到main函數(shù)。
l)#include
2)#include
3)__1___fun(intn)
4){inta,b,c,k;
5)doubles;
6)s=0.0;
7)a=2;
8)b=l;
9)for(k=l;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/l;3/24/3
故:s=2/l+3/2+4/3+……和的初值是0。
記?。簝蓚€(gè)整數(shù)進(jìn)行算術(shù)運(yùn)算結(jié)果也是整數(shù),算術(shù)運(yùn)算中只要有一個(gè)操作數(shù)是實(shí)數(shù),運(yùn)
算結(jié)果就是實(shí)數(shù)。
本題希望結(jié)果是實(shí)數(shù),故要進(jìn)行強(qiáng)制類型轉(zhuǎn)換,2,3只要有一個(gè)進(jìn)行強(qiáng)制轉(zhuǎn)換就可以
了。
最后,函數(shù)需要有一個(gè)返回值類型,當(dāng)然也是雙精度浮點(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+l)/n;
9)—2—;
10))
11)printf(/zn=%d\nz,,n);
12)—3—;
13))
第一處:s<=q
第二處:n++
第三處:returns
解析:從第8行,
從數(shù)學(xué)的角度總結(jié)出數(shù)列的表達(dá)式。
(n+l)/nn從2開始,每次增加1,故:SN=2+3/2+4/3+……和的初值是2.0
循環(huán)條件是“SN大于q為止”,while是滿足條件才循環(huán),故填寫s〈二q
最后,函數(shù)需要有一個(gè)返回值。
9.給定程序功能是計(jì)算S=f(-n)+f(-n+l)+-+f(0)+f(l)+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(,z\nBelowtheaveragescoreare:〃);
for(i=0;i<n;i++)printf___3___);
)
第一處:score[i]
第二處:below
第三處:belowti]
解析:求平均值,應(yīng)先求和。此處,和與平均值使用了同一個(gè)變量。
Score□是原來的成績(jī),
Below[]存放低于平均分的分?jǐn)?shù),還有人數(shù)。Below的長(zhǎng)度一定不大于score的長(zhǎng)度。
Below的長(zhǎng)度必須通過計(jì)數(shù)才能得到,且是在比較的過程中得到的。Below數(shù)組的長(zhǎng)度用j
來計(jì)數(shù),其初值當(dāng)然為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;
}
第一處:o
第二處:i=2;i
解析:求和,和的初值s為0。
最小的非負(fù)偶數(shù)是0,偶數(shù)間的大小關(guān)系是
相差2o
13.請(qǐng)補(bǔ)全main函數(shù),該函數(shù)的功能是:計(jì)算并輸出下列多項(xiàng)式的值。
S=l+l/(l+2)+1/(1+2+3)+....+1/(1+2+3+....+50)
#include
___1___fun(intn)
inti,j;
doublesum=0.0,t;
for(i=l;i<=n;i++)
t=0.0;
for(j=l;j<=i;j++)
t+=—2—;
sum+=___3___;
)
returnsum;
}
第一處:double
第二處:j
第三處:1.0/t
解析:S中的每一項(xiàng)的分母是1+2+3+……+i需要用一個(gè)一重循環(huán)實(shí)現(xiàn),
把所有商相加,需要用一個(gè)循環(huán);
組合起來整個(gè)就需要二重循環(huán)。內(nèi)循環(huán)求每個(gè)單項(xiàng)的和,外循環(huán)求商的和。
每單項(xiàng)的分子是1,應(yīng)該用浮點(diǎn)數(shù)L0;
每單項(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(,z\nlnputn,m\n〃);
scanf(〃%d,%d〃,&n,&m);
while(n<=m)
(
―2—;
n++;
)
printf(zzsum=%___3___\n〃,sum);
)
第一處:sum=O
第二處:sum+=n
第三處:Id
解析:求和問題
15.請(qǐng)補(bǔ)全main函數(shù),該函數(shù)的功能是:從鍵盤上輸入3個(gè)整數(shù),然后找出最大的數(shù)并輸
出。
main()
{inta,b,c,max;
clrscr();
printf(^Xnlnputthreenumbers:\n〃);
scanf(zz%d,%d,&a,&b,&c);
printf(Z/Thethreenumbersare:%d,%d,%d\n〃,a,b,c);
if
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 山東省日照市高三下學(xué)期3月模擬考試語文試題(含答案)
- 工程車運(yùn)輸簡(jiǎn)單合同
- 2025合同模板化工產(chǎn)品購(gòu)銷合同范本
- 洗煤廠承包合同
- 商鋪個(gè)人租房合同
- 職稱聘任合同書
- 演講稿格式及范文二十-多篇
- 提升學(xué)習(xí)能力
- 農(nóng)產(chǎn)品產(chǎn)銷對(duì)接合作合同
- 二手房獨(dú)家代理合同
- 《共情的力量》課件
- 2022年中國(guó)電信維護(hù)崗位認(rèn)證動(dòng)力專業(yè)考試題庫(kù)大全-上(單選、多選題)
- 《電氣作業(yè)安全培訓(xùn)》課件
- 水平二(四年級(jí)第一學(xué)期)體育《小足球(18課時(shí))》大單元教學(xué)計(jì)劃
- 《關(guān)于時(shí)間管理》課件
- 醫(yī)藥高等數(shù)學(xué)智慧樹知到課后章節(jié)答案2023年下浙江中醫(yī)藥大學(xué)
- 城市道路智慧路燈項(xiàng)目 投標(biāo)方案(技術(shù)標(biāo))
- 水泥采購(gòu)?fù)稑?biāo)方案(技術(shù)標(biāo))
- 醫(yī)院招標(biāo)采購(gòu)管理辦法及實(shí)施細(xì)則(試行)
- 初中英語-Unit2 My dream job(writing)教學(xué)設(shè)計(jì)學(xué)情分析教材分析課后反思
- 廣州市勞動(dòng)仲裁申請(qǐng)書
評(píng)論
0/150
提交評(píng)論