ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:248.38KB ,
文档编号:5541611      下载积分:19 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-5541611.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(2023DOC)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(C语言函数题库及答案.docx)为本站会员(2023DOC)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

C语言函数题库及答案.docx

1、 Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998C语言函数题库及答案第六部分函数一、单项选择题1C语言中的函数返回值的类型是由(D)决定Areturn语句中的表达式B调用函数的主调函数C调用函数时临时D定义函数时所指定的函数类型2.下面不正确的描述是(B)。A 调用函数时,实参可以是表达式B 调用函数时,实参和形参可以共用内存单元C 调用函数时,将形参分配内存单元D 调用函数时,实参与形参的类型必须一致3.在C语言中,调用一个函数时,实参变量和形参变量之间的数据传递是(D)A地址传递B值传递C由实参传递给形参,并由形参传回给实参D由用

2、户指定传递方式4.下面的函数调用语句中含有(A)个实参inta,b,c;intsum(intx1,intx2);total=sum(a,b),c);A2B3C4D55.在C语言中(C)A 函数的定义可以嵌套,但函数的调用不可以嵌套B 函数的定义和调用均不可以嵌套C 函数的定义不可以嵌套,但是函数的调用可以嵌套D 函数的定义和调用均可以嵌套6.关于语言中的return语句正确的是(C)A 只能在主函数中出现B 在每个函数中都必须出现C 可以在一个函数中出现多次D 只能在除主函数之外的函数中出现7.两个形参中,第一个形参为指针类型、第二个形参为整型,则对函数形参的说明有错误的是(D)(floatx

3、,intn)(float*x,intn)(floatx10,intn)(floatx,intn)8.在C语言中,函数的数据类型是指(A)A.函数返回值的数据类型B.函数形参的数据类型C.调用该函数时的实参的数据类型D.任意指定的数据类型9.已知如下定义的函数:fun1(a)printf(n%d,a);则该函数的数据类型是(C)A与参数a的类型相同Bvoid型C整型D无法确定10.定义一个函数实现交换x和y的值,并将结果正确返回。能够实现此功能的是(D)(intx,inty)inttemp;temp=x;x=y;y=temp;(int*x,int*y)inttemp;temp=x;x=y;y=t

4、emp;(int*x,int*y)inttemp;temp=*x;*x=*y;*y=temp;(int*x,int*y)int*temp;temp=x;x=y;y=temp;11.求一个角的正弦函数值的平方。能够实现此功能的函数是(B)A.sqofsina(x)floatx;return(sin(x)*sin(x);(x)floatx;return(sin(double)x)*sin(double)x);(x)return(sin(x)*sin(x);(x)floatx;return(double(sin(x)*sin(x);12.已知函数定义如下:floatfun1(intx,inty)fl

5、oatz;z=(float)x/y;return(z);主调函数中有inta=1,b=0;可以正确调用此函数的语句是(D)(%f,fun1(a,b);(%f,fun1(&a,&b);(%f,fun1(*a,*b);D.调用时发生错误13.下面函数的功能是(B)a(s1,s2)chars1,s2;while(s2+=s1+);A.字符串比较B.字符串复制C.字符串连接D.字符串反向二、填空题1.在C语言中,存储类型为局部和自动型的变量,只能在使用它们时才占用存储空间。2.在一个源文件中定义的全局变量的作用域为整个源程序。3.下面程序的执行结果是84intd=1;fun(intp)intd=5;d

6、+=p+;printf(“%d”,d);main()inta=3;fun(a);d+=a+;printf(“%d”,d);4.该fun函数的功能是求10的阶乘。1)#include2)longfun(intn)3)if(_1_)4)return(n*fun(_2_);5)elseif(_3_)6)return1;第一处:n1第二处:n-1第三处:n=1解析:从第2、4行看到了函数名,函数体中又出现了函数的调用,则是递归。我们知道:n!=n*(n-1)!这就是一个递归的表达式,写成函数就是fun(n)=n*fun(n-1)。因此,4行处填写n-1。又:1!=1故3,5行就好填了。因此答案是n1n

7、-1n=1。还有0!=1故,还可填写:n0n-1n=0注意:35行的条件是相反的,这也是if与else条件的互斥性。5.程序的功能是计算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(%ldn,s);17)第一处:1第二处:s*i第三处:0第四处:s+fun(k)解析:首先,搞清楚函数fun、

8、main各自的功能。Fun是求一个数的阶乘,我们知道:n!=1*2*3*n同时要死记住:求积,积的初值一般等于1。故fun中s是用来存放积的,其初值等于1;求阶乘是连乘,故s=s*iMain是求和,记住:和的初值一般等于0.两个函数中的局部变量s的作用是不同的。Main中的s是存放和的。最后:注意一些变量的类型。阶乘是求积,积的增长速度是比较快的,为防止溢出,fun的返回值类型是long。输出中ld是输出长整数。6.请在函数fun的横线上填写若干个表达式,使从键盘上输入一个整数n,输出斐波纳契数列。斐波契数列是一种整数数列,其中每数等于前两数之后,如:01)intfun(intn)2)if(_

9、1_)3)return0;4)elseif(_2_)5)return1;6)else7)return_3_;8)第一处:n=0第二处:n=1第三处:fun(n-1)+fun(n-2)解析:求斐波契数列:一项等于其前两项的和。这也是一个递归。求斐波契数列的第n项的值,n从0开始。7.请补全函数fun,该函数的功能是求出以下分数序列的前n项之和。和值通过函数值返回到main函数。1)#include2)#include3)_1_fun(intn)4)inta,b,c,k;5)doubles;6)s=;7)a=2;8)b=1;9)for(k=1;k=n;k+)10)11)s=s+(_2_)a/(_3

10、_)b;12)c=a;13)a=a+b;14)b=c;15)16)returns;17)第一处:double第二处:double第三处:double解析:从第11-14总结出数列的表达式。第1项是a/b=2/1;3/24/3故:s=2/1+3/2+4/3+和的初值是0。记住:两个整数进行算术运算结果也是整数,算术运算中只要有一个操作数是实数,运算结果就是实数。本题希望结果是实数,故要进行强制类型转换,2,3只要有一个进行强制转换就可以了。最后,函数需要有一个返回值类型,当然也是双精度浮点数了。8.给定程序的功能是计算并输出下列级数的前N项之和SN,直到SN大于q为止,q的值通过形参传入。1)d

11、oublefun(doubleq)2)intn;3)doubles;4)n=2;5)s=;6)while(s_1_q)7)8)s=s+(double)(n+1)/n;9)_2_;10)11)printf(n=%dn,n);12)_3_;13)第一处:s=q第二处:n+第三处:returns解析:从第8行,从数学的角度总结出数列的表达式。(n+1)/nn从2开始,每次增加1,故:SN=2+3/2+4/3+和的初值是循环条件是“SN大于q为止”,while是满足条件才循环,故填写s=q最后,函数需要有一个返回值。9.给定程序功能是计算S=f(-n)+f(-n+1)+f(0)+f(1)+f(2)+f

12、(n)的值。floatf(doublex)if(x=|x=return_1_;elseif(xreturn(x-1)/(x-2);elsereturn(x+1)/(x-2);doublefun(intn)inti;doubles=,y;for(i=-n;i=_2_;i+)y=f*i);s+=y;return_3_;main()printf(%fn,fun(5);第一处:第二处:n第三处:s解析:函数f(doublex)求每个单项的值。ifelse的条件是互斥的。fun()是求和。10.给定程序的功能是计算score中m个人的平均成绩aver,将低于aver的成绩放在below中,通过函数名返回

13、人数。intfun(intscore,intm,intbelow)inti,j=0;floataver=;for(i=0;im;i+)aver+=scorei;aver/=(float)m;for(i=0;im;i+)if(scoreiaver)belowj+=_1_;returnj;main()inti,n,below9;intscore9=10,20,30,40,50,60,70,80,90;n=fun(score,9,_2_);printf(nBelowtheaveragescoreare:);for(i=0;in;i+)printf(%d,_3_);第一处:scorei第二处:belo

14、w第三处:belowi解析:求平均值,应先求和。此处,和与平均值使用了同一个变量。Score是原来的成绩,Below【】存放低于平均分的分数,还有人数。Below的长度一定不大于score的长度。Below的长度必须通过计数才能得到,且是在比较的过程中得到的。Below数组的长度用j来计数,其初值当然为0。Fun函数中:先求总分,平均分;再比较,比平均分低,存于below,j+。J是后加,不能错了。函数fun的返回值赋值给n,n就是below数组的长度。11.在主函数中从键盘输入若干个数放入数组x中,用0结束输入但不计入数组。下列给定程序中,函数fun功能是:输出数组元素中小于平均值的元素。v

15、oidfun(_1_,intn)doublesum=;doubleaverage=;inti=0;for(i=0;iN;I+)_2_;average=_3_;for(i=0;iN;I+)if(xiAVERAGE)if(i%5=0)printf(n);printf(%d,xi);第一处:intx第二处:sum+=xi第三处:sum/n解析:算法思想同上题12.请补全fun函数,该函数的功能是求不超过给定自然数的各个偶数之和。intfun(intx)inti,s;s=_1_;for(_2_)s+=i;returns;第一处:0第二处:i=2;i解析:求和,和的初值s为0。最小的非负偶数是0,偶数间

16、的大小关系是相差2。13.请补全main函数,该函数的功能是:计算并输出下列多项式的值。S=1+1/(1+2)+1/(1+2+3)+1/(1+2+3+50)#include_1_fun(intn)inti,j;doublesum=,t;for(i=1;i=n;i+)t=;for(j=1;j=i;j+)t+=_2_;sum+=_3_;returnsum;第一处:double第二处:j第三处:t解析:S中的每一项的分母是1+2+3+i需要用一个一重循环实现,把所有商相加,需要用一个循环;组合起来整个就需要二重循环。内循环求每个单项的和,外循环求商的和。每单项的分子是1,应该用浮点数;每单项的分母是

17、求和,和的初值为;函数的返回值是浮点数。14.请补全main函数,该函数的功能是,计算两个自然数n和m(m10000)之间所有数的和。n和m从键盘输入。main()intn,m;longsum;_1_;clrscr();printf(nInputn,mn);scanf(%d,%d,&n,&m);while(nb)_1_;else_2_;if(maxC)_3_;printf(max=%dn,max);第一处:max=a第二处:max=b第三处:max=c解析:若ab则a较大,将其放入max中;否则将b存于max。此时,max中存放的就是前两个数中较大的,再将max与c比较。16.函数fun的功能

18、是:从三个形参a,b,c中找出中间的那个数,作为函数值返回。intfun(inta,intb,intc)intt;t=(ab)(bcb:(acc:_1_):(ac)_2_:(bc)c:_3_);returnt;第一处:a第二处:a第三处:b解析:条件表达式的理解。17.请补全fun函数,该函数的功能是把从键盘输入的3个整数按从小到大输出。main()intx,y,z,t;clrscr();printf(Inputx,y,zn);scanf(%d%d%d,&x,&y,&z);if(_1_)t=x;x=y;y=t;/*交换x,y的值*/if(_2_)t=z;z=x;x=t;/*交换x,z的值*/if(_3_)t=y;y=z;z=t;/*交换z,y的值*/第一处:xy第二处:xz第三处:yz解析:3个数排序,两两比较,小的放前,大者放后。交换。

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|