考点11 函数

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

考点11 函数

(1)【答案】A)【解析】B)选项中函数pow(x,e)错误,应该直接使用exp(x)函数。C)选项中函数abs(n^x+e^x)错误,应该使用fabs()返回浮点数的绝对值。D)选项中pow(x,n)参数顺序错误。本题正确答案为A)。

(2)【答案】A)【解析】C语言主要通过函数的功能来实现程序模块化,答案选择A)。

(3)【答案】A)【解析】本题考查的是函数的声明。函数声明的一般形式为:

函数类型函数名(参数类型1 [,参数名1] ,参数类型2[,参数名2]……);

其中,参数名可以省略。本题中的fun函数有两个参数,一个类型是double型的一维数组,另一个是int 型的指针。而在C语言中,一维数组用作函数参数和该数组元素的指针类型是等价的。所以本题的正确答案是选项A)。

(4)【答案】A)【解析】本题考查的知识点是:函数的形参和实参。在定义函数时函数名后面括弧中的变量名称为“形式参数”(简称形参),在主调函数中调用一个函数时,函数名后面括弧中的参数(可以是一个表达式)称为“实际参数”(简称实参)。C语言规定,实参变量对形参变量的数据传递是“值传递”,即单向传递,只由实参传给形参,而不能由形参传回来给实参。在内存中,实参单元与形参单元是不同的单元。故本题应该选择A)。

(5)【答案】A)【解析】函数参数传递是个不可逆的过程,形参不会把值传回实参,所以A)选项错误。

(6)【答案】A)【解析】C语言组成单位为函数,所以A)选项正确。

(7)【答案】A)【解析】本题中第一次调用为fun(8,fun(5,6)),因为fun(5,6)返回值为5,所以第二次调用为fun(8,5)=6,因此选择A)。

(8)【答案】A)【解析】for循环进入循环体的i分别为0 10 20,调用f函数返回分别为1 101 401,累加为503,所以选择A)。

(9)【答案】A)【解析】在函数调用前,需要定义或有声明,A)选项错误。

(10)【答案】A)【解析】fun(x,y)值为13,z--表达式的值为8,fun(13,8)的值为21答案选择A)。

(11)【答案】A)【解析】第一次循环,b为1,输出为B,第二次循环b为3,输出为D,第三次循环b为8,输出为I,所以选择A)。

(12)【答案】A)【解析】A)选项中*f(a,b)表示调用后返回一个指向整型数据的地址指针,即该函数的返回值为指针类型,因此不能将其赋值给整型变量k。

(13)【答案】A)【解析】第一次调用m=f(f(f(1))),第二次为m=f(f(2)),第三次为m=f(4),即返回值为8,选项A)正确。

(14)【答案】A)【解析】函数直接或间接调用自己,称为递归调用,所以选择A)。

(15)【答案】A)【解析】首先n=fun(3),3被当作参数传递进去,进行了第一次调用,3被当作参数传进去后,程序会执行语句else return fun(k-1)+1,进行了第二次调用,而参数是3-1也就是2。2被当作参数传进去后,程序会执行语句else return fun(k-1)+1,进行了第三次调用,而参数是2-1也就是1。1被当作参数传进去后,程序会执行语句else if(k==1) return 1;不再递归调用,因此最终结果为3次,选项A)正确。

(16)【答案】A)【解析】本题考查的是递归算法的分析。一个直接或间接地调用自身的算法称为递归算法。在一个递归算法中,至少要包含一个初始值和一个递归关系。本题的fun()函数在x等于0或1时返回3,而在其余情况下返回x-fun(x-2),所以本题的递归算法可以这样表示:

fun(x)=3 (x=0或x=1)(初始值)

fun(x)=x-fun(x-2)(x≠0且x≠1)(递归关系)

在主函数中输出的结果是fun(7),而fun(7) = 7-fun(5) = 7-(5-fun(3)) = 7-(5-(3-fun(1)))。

(17)【答案】A)【解析】f函数为递归调用,返回的为数组a的最大值。所以选择A)。

(18)【答案】A)【解析】fun函数是递归函数,调用到n为0时*s=1+1为2,返回主函数,x为2。

(19)【答案】A)【解析】函数调用中发生的数据传递是单向的,即只能把实参的值传递给形参,而不能把形参的值反向地传递给实参。因此在函数调用过程中,形参的值发生改变,而实参中的值不会变化,所以数组c中的元素的值并没有变化,故选择A)。

(20)【答案】A)【解析】本题中函数fun()的功能是将数组k中前5个元素倒序,因此返回后数组k 中的元素排列是5,4,3,2,1,6,7,8,9,10。程序打印输出k[2]到k[7]元素的值,即321678,所以选择A)。

(21)【答案】A)【解析】本题中由fun函数可知,b[0]=a[0][0]-a[0][3]=1-4=-3,b[1]=a[1][1]-a[1][2]=6-7=-1,b[2]=a[2][2]-a[2][1]=11-10=1,b[3]=a[3][3]-a[3][0]=16-13=3。因此主函数中输出y数组元素的值为A)选项。

(22)【答案】A)【解析】f函数将a[0]自增5次,所以答案选择A)。

(23)【答案】A)【解析】本题考查的是二维数组的定义、赋初值和对二维数组元素的引用。在fun()函数中,首先将s[0][k]的值赋给m,然后通过for循环,遍历s[1][k]~s[n-1][k]之中的数,将遇到的比m大的数保存到m中。很显然,这是搜索最大值的算法,搜索的是s[0][k]~s[n-1][k]之间的最大值。所以,主函数中fun(a,4,0)的功能就是搜索a[0][0]~a[3][0]之间的最大值,这4个值分别是1、11、21、31,所以最终输出结果是31,应该选择A)。

(24)【答案】A)【解析】flag为1求出每行的最小值,flag为0求出每行的最大值,所以选择A)。

(25)【答案】A)【解析】fun函数功能为,把下标为奇数的元素按值的从小到大排列,所以答案选择A)。

(26)【答案】A)【解析】第一次循环返回12,第二次循环返回12,累加结果为24。

(27)【答案】A)【解析】变量,函数等都有它的作用范围,都有一个有效的作用域,所以选择A)。

(28)【答案】A)【解析】全局变量的存储类别可以是静态类或其他类型的,所以选择A)。

(29)【答案】A)【解析】auto和register只有在使用时才开辟空间,占用内存单元,所以选择A)。

(30)【答案】A)【解析】静态变量只赋值一次,下一次调用,还是使用上次遗留的值。答案选择A)。

相关文档
最新文档