当前位置:文档之家› C语言 第七章 函数

C语言 第七章 函数

第七章函数
一、选择题
1.【B】
分析:函数返回值的隐含类型是整型。

2.【B】
分析:main函数可以在任何地方出现。

它是程序的入口。

3.【D】
分析:函数的调用有一个返回值或者实现一定的功能,因此可以作为独立的语句存在,也可以出现在表达式中,可以作为一个函数的实参(返回值是一个实际的值)。

4.【B】
分析:实参与形参之间的数据传递,只能是实参传给形参,单向传递。

5.【B】
分析:任何函数(除了main函数)的使用通过调用实现。

普能的函数都能被单独编译(一定要能过调用才能运行),不能在一个函数中嵌套定义另一个函数。

6.【CD】
分析:C选项程序就是由若干个函数组成,无论是否有其他函数,主函数一定得存在。

每个程序都必须有且仅有一个主函数,但不是每个程序文件都必须有main()函数。

因为一个程序可能包含多个程序文件。

函数不能嵌套定义。

7.【D】
分析:函数调用时实参必须与形参在个数,类型,顺序上相同。

A选项中的"abc"是字符串,所以错误。

C选项中'65'本身就是错误的。

函数的返回值为空,不能用于赋值运算,所以B选项错误。

D选项的第二个32在传给形参时可以转换为实型,正确。

8.【A】
分析:实参都是用逗号隔开,第二个实参是个加法表达式,第三个实参是个逗号表达式。

9.【C】
分析:fl函数功能返回较大的值,f2函数的功能返回较小的值。

f1(a,b)返回为4,f2(a,b)返回为3。

10.【C】
分析:void *fun();的含义是fun函数的返回值是无值型的指针类型。

11.【C】
分析:函数在调用时不会出现类型说明符,所以A,D错误。

函数的返回值为空,不能用于赋值运算,所以B选项错误。

12.【D】
分析:fun函数的功能选择两个数中较大的一个作为返回值。

x为3,y为8,z为6以实参传到形参中,所以fun(fun(x,y), 2*z)等价于fun(fun(3,8), 2*6)等价于fun(8, 12),最后r被赋12。

答案选D。

13.【B】
分析:fun函数功能返回两个数之和。

此题就是函数调用作为函数实参。

a为2,b为5,c 为8传到fun((int)fun(a+c,b),a-c))中那么它等价于fun(15,-6)。

所以答案选B。

14.【C】
分析:此题关键的一点就是实参与形参数据是单向传递的,a为31以实参传到函数中或者说传到形参z中,而函数体z=x*x+y*y会使z发生改变,形参改变了,但是实参是不
会改变的。

所以请大家记好实参是永远不会改变的。

所以a还是31。

15.【D】
分析:同12,13题。

16.【C】
分析:此题是复杂的函数调用,fun2中调用了fun1。

fun1的功能是求一个数的平方。

将实参1.1和2.0传到fun2的形参,然后进行计算。

注意返回值被强制转换为整型了,所以答案选C。

17.【D】
分析:A选项f的初值不能为0。

B,C选项for循环有误,死循环。

18.【A】
分析:函数声明时形参的类型说明符一定不能省。

形参名可以省,也可以和定义的不同。

19.【C】
分析:声明既可以在主函数内也可以在主函数外,同时声明不会出错。

20.【D】
分析:a,b,c是实参传给形参的,是不会改变的。

21.【A】
分析:函数的返回值如果缺省默认为整型。

22.【A】
分析:函数一定要先定义后调用,如B选项,或者先声明再调用最后定义,如C,D选项。

23.【C】
分析:同20题。

24.【C】
分析:函数定义时,形参类型一定不能省。

25.【C】
分析:此题涉及到后面的知识,请学有余力的同学自己完成。

26.【B】
分析:同25题。

二、填空题
1.4334
分析:同选择题14,20题。

2.i<10 j%3 !=0
分析:j=i*10+6;从这条语句可以看出i从1变化到9可以选出100以内个位数为6的所有整数。

所以第一空填入i<10。

第二空填入j%3 !=0,用来判断是否能被3整除。

3.return 0 return 1
分析:从函数的首部看,返回值类型int,函数名isprime,形参为int类型,形参名字为a。

接下来定义一个int类型的变量i,后面语句部分是判定素数。

我们知道,判断一个整数是不是素数,就看除了1和它本身外,还有没有能被它整除的整数。

当i从2开始一直到a/2,一旦有一个i能被a整除,那么a就不是素数,返回0。

所以if条件后面应该填写return 0。

如果整个for循环结束了if的条件都为假,即表示没有哪一个i能被a 整除,a必为素数,需要返回1。

因此后面的空应该填写return 1 。

注意,执行了return 语句后就会退出函数,不会再执行后面的语句。

4.t*10
分析:从1+12+123+1234+12345可以看出个位数,刚好是i的各个值。

后一个数都是都是前一个数乘10然后加个数。

5.a=1.0,b=1.0,s=1.0;
分析:此题给a,b,s赋初值,思路同上题。

注意a,b,s是实型的。

6.m=fun(a,4)+fun(b,4)-fun(a+b,3);
分析:对fun(x,n)函数的分析可以看出其功能是求x n,所以fun(a,4)就是a4,fun(b,4)就是b4,fun(a+b,3)就是(a+b)3。

7.x x*x+1
分析:题目要求求f(x)的累加和,s+=F( );这条语句就是完成累加功能,所以是调用函数。

填入x。

然后f(x)=x2+1,所以返回值填x*x+1。

8.-f fun(10)
分析:从1-2+3-4+ … +9-10可以看出是正负号交替出现的。

f就是1和-1交替。

所以第一空填-f。

然后是从1运算到10,所以函数调用时,实参传入10,填入fun(10)。

9.9
分析:函数返回为(y-x)*x,所以f(3,4)为3,f(3,5)为6,f(f(3,4),f(3,5))等价于f(3,6)为9。

相关主题