首页/ 题库 / [单选题]已知函数f1()、f2()的定义如下图所的答案

已知函数f1()、f2()的定义如下图所示,如果调用函数f1时传递给形参x的值是2,若a和y以引用调用(call by reference)的方式传递信息,则函数f1的返回值为(47);若a和y以值调用(call by value)的方式传递信息,则函数f1的返回值为(48)。

单选题
2022-06-02 04:12
A、6
B、10
C、14
D、随机数
查看答案

正确答案
C

试题解析
解析:引用调用和值调用是进行过程(函数)调用时实在参数与形式参数间传递信息的两种基本方式。在过程(或函数)首部声明的参数称为形式参数,简称形参;过程(或函数)调用时的参数称为实在参数,简称实参。调用语句实现了对过程(或函数)语句的执行,调用时首先要进行实参与形参间的参数传递。简单地说,以值调用方式进行参数传递时,需要先计算出实参的值并将其传递给对应的形参,然后执行所调用的过程(或函数),在过程(或函数)执行时对形参的修改不影响实参的值。而引用调用时首先计算实际参数的地址,并将此地址传递给被调用的过程,然后执行被调用的过程(或函数)。因此在被调用的过程(函数)中,既得到了实参的值又得到了实参的地址。引用调用方式下,被调用过程(函数)执行时针对形式参数的修改将反映在对应的实在参数变量中。在引用调用方式下,题目中过程f2的执行语句对y的修改结果就是a的值,即a的值在f2中被改为7(即y=2*3+1),在f1中没有修改x的值,所以f1的返回值为14(7*2)。在值调用方式下,在f2中修改y的值不会影响实参a,所以f1的返回值为6(3*2)。

标签:
感兴趣题目
已知f1(int)是类A的公有成员函数,p是指向成员函数f1()的指针,采用赋值,( )是正确的。
若程序中定义了三个函数f1,f2,f3,并且函数f1执行时会调用f2、函数f2执行时会调用f3,那么正常情况下,()。
● 若程序中定义了三个函数f1、f2和f3,并且函数f1调用f2、f2调用f3,那么程序运行时不出现异常的情况下,函数的返回方式为(32) 。(32)
若程序中定义了三个函数f1、f2和f3,并且函数f1调用f2、f2调用f3,那么,在程序运行时不出现异常的情况下,函数的返回方式为(32)。
若程序中定义了三个函数f1、f2和f3,并且函数f1执行时会调用f2、函数f2执行时会调用f3,那么正常情况下,()。
已知函数f1()、f2()的定义如下图所示,如果调用函数f1时传递给形参x的值是2,若a和y以引用调用(call by reference)的方式传递信息,则函数f1的返回值为(47);若a和y以值调用(call by value)的方式传递信息,则函数f1的返回值为(48)。
程序中若有如下说明和定义语句:char fun(char *);main(){ char *s="one",a[5]={0},(*f1)()=fun,ch; ...}以下选项中对函数fun的正确调用语句是( )。A.(*f1)(a) B.*f1(*s) C.fun(&a) D.ch=*f1(s)
函数f和g的定义如下图所示。执行函数f时需要调用函数g(a),若采用值调用方式(call by value)调用g(a),则函数f的返回值为(7);若采用引用(call by reference)方式调用g(a),则函数f的返回值为(8)。
有以下程序: int f1(doubleA){return a*a;} int f2(int x,int y) {double a,b; a=f1(x); b=f1(y); return a+b; } main() {double w; w=f2(2.1,4.0); } 程序执行后,变量w的值是( )。
函数t、f的定义如下所示,其中,a是整型全局变量。设调用函数t前a的值为5,则在函数中以传值调用(callbyvalue)方式调用函数f时,输出为(1);在函数t中以引用调用(callbyreference)方式调用函数时,输出为(2)()。 空白(2)处应选择
有如下函数定义;void func(int a,int & b){a++;b++;}若执行代码段:int x=0,y=1;func(x,y);则变量x和y的值分别是
函数定义如下: void fun(int x,int& y){x++;y++;} 如果执行代码段: int a=0,b=1; fun(a,b); 则变量a和b的值分别是( )。
相关题目
在调用函数时,如果形参是简单的变量,它与对应形参之间的数据传递方式是( )。
设X1与X2是两个相互独立的连续型随机变量,它们的概率密度分别为f1(x)与f2(x),分布函数分别为F1(x)与F2(x),则()
已知f1 f2同一类两个成员函数,但f1不能调用f2,说明( )
已知f1(int)是类A的公有成员函数,p是指向成员函数f1的指针,采用赋值,( ) 是正确的。
已知f1 f2同一类两个成员函数,但f1不能调用f2,错误的是( )
已有如下数组定义和f函数调用语句,则在f函数的说明中,对形参数组array的正确定义方式为int a[3][4];f(a);
有如下函数定义: void funC(int a,int&B. {a++;b++;} 若执行代码段: int x=0,Y = 1; funC(X,Y); 则变量x和y的值分别是( )。
在C语言中,若函数调用时实参是数组名,则传递给对应形参的是______。
函数调用时若实参是数组名,则是将( )传递给对应的形参。
在C语言中,若数组名做实参,则函数调用传递给对应形参的是(251)。
●在C语言中,若函数调用时实参是某个数组元素,则传递给对应形参的是 (40) 。
在C语言中,若函数调用时实参是某个数组元素,则传递给对应形参的是(55)。
●在C语言中,若函数调用时实参是某个数组元素,则传递给对应形参的是 (40) 。
●在C语言中,若函数调用时实参是数组名,则传递给对应形参的是(51)。(51)
若用数组名作为函数调用的实参,传递给形参的()。
若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是( )。A.函数调用可以嵌套和递归B.函数调用可以作为一个函数的实参C.函数调用可以出现在表达式中D.函数调用可以作为一个函数的形参
X1和X2是任意两个相互独立的连续型随机变量,它们的概率密度分别为f1(x)和f2(x),分布函数分别为F1(x)和F2(x),则(  ).
下面对C语言的描述中,正确的是A.函数一定有返回值,否则无法使用函数B.C语言函数既可以嵌套定义,又可以递归调用C.在C语言中,调用函数时,只能将实参的值传递给形参D.C语言程序中有调用关系的所有函数都必须放在同一源程序文件中
下列程序的输出结果是( )。 int f1(int x,int y){return x>y?x:y;} int f2(int x,int y){return x>y?y:x;} main( ) { int a=4,b=3,c=5,d=2,e,f,g; e=f2(f1 (a,b),f1 (c,d)); f=f1 (f2(a,b),f2(c,d)); g=a+b+c+d-e-f; printf("%d,%d,%d ,e, f,g); }
下列程序的输出结果是( )。 int f1(int x,int y){return x>y?x:y;} int f2(int x,int y){return x>y?y:x;} main() {int a=4,b=3,c=5,d=2,e,f,g; e=f2(f1(a,b),f1(c,d)); f=f1(f2(a,b),f2(c,d)); g=a+b+c+d-e-f printf("%d,%d,%d ",e,f,g); }
广告位招租WX:84302438

免费的网站请分享给朋友吧