C语言学习知识函数汇总题库及其规范标准答案.doc
《C语言学习知识函数汇总题库及其规范标准答案.doc》由会员分享,可在线阅读,更多相关《C语言学习知识函数汇总题库及其规范标准答案.doc(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、/*第六部分 函数一、单项选择题1C语言中的函数返回值的类型是由(D)决定Areturn语句中的表达式 B调用函数的主调函数C调用函数时临时 D定义函数时所指定的函数类型2.下面不正确的描述是( B )。A 调用函数时,实参可以是表达式B 调用函数时,实参和形参可以共用内存单元C 调用函数时,将形参分配内存单元D 调用函数时,实参与形参的类型必须一致3.在C语言中,调用一个函数时,实参变量和形参变量之间的数据传递是( D )A地址传递 B值传递C由实参传递给形参,并由形参传回给实参 D由用户指定传递方式4.下面的函数调用语句中含有( A )个实参int a,b,c;int sum(int x1
2、,int x2);total=sum(a,b),c);A2 B3 C4 D5 5.在C语言中( C )A 函数的定义可以嵌套,但函数的调用不可以嵌套B 函数的定义和调用均不可以嵌套C 函数的定义不可以嵌套,但是函数的调用可以嵌套D 函数的定义和调用均可以嵌套6.关于语言中的return语句正确的是(C )A 只能在主函数中出现B 在每个函数中都必须出现C 可以在一个函数中出现多次D 只能在除主函数之外的函数中出现7.两个形参中,第一个形参为指针类型、第二个形参为整型,则对函数形参的说明有错误的是( D) A. int a(float x,int n) B. int a(float *x,int
3、 n) C. int a(float x10,int n) D.int a(float x,int n) 8.在C语言中,函数的数据类型是指( A ) A.函数返回值的数据类型 B. 函数形参的数据类型 C.调用该函数时的实参的数据类型 D. 任意指定的数据类型 9.已知如下定义的函数: fun1(a) printf(n%d,a); 则该函数的数据类型是( C ) A与参数a的类型相同 Bvoid型 C 整型 D 无法确定 10.定义一个函数实现交换x和y的值,并将结果正确返回。能够实现此功能的是( D ) A. swapa(int x,int y) int temp; temp=x;x=y;
4、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; 11.求一个角的正弦函数值的平方。能够实现此功能的函数是(B) A. sqofsina(x) float x; return(sin(x)*sin(x); B. double sqofsinb(x) float x; return(sin(double)x)
5、*sin(double)x); C.double sqofsinc(x) return(sin(x)*sin(x); D. sqofsind(x) float x; return(double(sin(x)*sin(x); 12.已知函数定义如下: float fun1(int x,int y) float z; z=(float)x/y; return(z); 主调函数中有int a=1,b=0;可以正确调用此函数的语句是(D ) A.printf(%f,fun1(a,b); B. printf(%f,fun1(&a,&b); C. printf(%f,fun1(*a,*b); D.调用时发
6、生错误 13.下面函数的功能是( B ) a(s1,s2) char s1,s2; while(s2+=s1+) ; A.字符串比较 B.字符串复制 C. 字符串连接 D. 字符串反向 二、填空题1.在C语言中,存储类型为 局部和自动型的变量,只能在使用它们时才占用存储空间。2.在一个源文件中定义的全局变量的作用域为整个源程序。3.下面程序的执行结果是84 int d=1;fun(int p)int d=5;d+=p+;printf(“%d”,d);main() int a=3;fun(a); d+=a+;printf(“%d”,d); 4.该fun函数的功能是求10的阶乘。1) #inclu
7、de 2) long fun ( int n)3) if (_1_)4) return (n*fun(_2_);5) else if ( _3_)6) return 1;第一处:n1第二处:n-1第三处:n=1解析:从第2、4行看到了函数名,函数体中又出现了函数的调用,则是递归。我们知道:n!=n*(n-1)! 这就是一个递归的表达式,写成函数就是fun(n)=n*fun(n-1)。因此,4行处填写n-1。又:1!=1 故3,5行就好填了。因此答案是 n1 n-1 n=1。还有 0!=1 故,还可填写:n0 n-1 n=0注意:3 5行的条件是相反的,这也是if与else条件的互斥性。5. 程
8、序的功能是计算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(%ldn, s);17) 第一处:1第二处:s*i第三处:0第四处:s+fun(k)解析:首先,搞清楚函数fun、 main各自的功能。Fun是求一个数的阶乘,我们知道: n
9、!=1*2*3*n同时要死记住:求积,积的初值一般等于1。故fun中s是用来存放积的,其初值等于1;求阶乘是连乘,故s=s*iMain是求和,记住:和的初值一般等于0.两个函数中的局部变量s的作用是不同的。Main中的s是存放和的。最后:注意一些变量的类型。阶乘是求积,积的增长速度是比较快的,为防止溢出,fun的返回值类型是long。 输出中 ld 是输出长整数。6. 请在函数fun的横线上填写若干个表达式,使从键盘上输入一个整数n,输出斐波纳契数列。斐波契数列是一种整数数列,其中每数等于前两数之后,如: 0 1 1 2 3 5 8 131) int fun(int n)2) if(_1_)3
10、) return 0;4) else if(_2_)5) return 1;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(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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 学习 知识 函数 汇总 题库 及其 规范 标准答案
限制150内