工学

问答题简述值调用和引用调用的相同点与不同点。

题目
问答题
简述值调用和引用调用的相同点与不同点。
参考答案和解析
正确答案: 值调用是指当发生函数调用时,给形参分配内存空间,并用实参来初始化形参(直接将实参的值传递给形参)。这一过程是参数值的单向传递过程,一旦形参获得了值便与实参脱离关系,此后无论形参发生了怎样的改变,都不会影响到实参。
引用调用将引用作为形参,在执行主调函数中的调用语句时,系统自动用实参来初始化形参。这样形参就成为实参的一个别名,对形参的任何操作也就直接作用于实参。
解析: 暂无解析
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

下列()的调用方式是引用调用。

A、形参和实参都是变量

B、形参是指针,实参是地址值

C、形参是引用,实参是变量

D、形参是变量,实参是地址值


参考答案:C

第2题:

函数调用参数的传递方式有三种,值传递、【 】和引用传递。


正确答案:指针传递
指针传递

第3题:

以下关于传值调用与引用调用的叙述中,正确的是( )。 ①在传值调用方式下,可以实现形参和实参间双向传递数据的效果 ②在传值调用方式下,实参可以是变量,也可以是常量和表达式 ③在引用调用方式下,可以实现形参和实参间双向传递数据的效果 ④在引用调用方式下,实参可以是变量,也可以是常量和表达式

A.①③ B.①④ C.②③ D.②④


正确答案:C

第4题:

在函数调用中,值调用方式将(请作答此空),下面所定义的函数foo为值调用方式,函数g的第一个参数采用值调用,第二个参数采用引用调用方式传递数据。若有表达式y=foo(2),则foo调用执行之后,y被赋值为()。

A.实参的值传给形参。
B.形参的值传给实参。
C.实参的地址传给形参。
D.形参的地址传给实参。

答案:A
解析:
传值调用:形参取的是实参的值,形参的改变不会导致实参的值发生改变。引用(传址)调用:形参取的是实参的地址,即相当于实参存储单元的地址引用,因此其值的改变同时就改变了实参的值。函数g中的b最终值为3,X为5,因此返回的结果是7。

第5题:

在高级程序设计语言中,使用参数是函数(过程、子程序)之间传递信息的一种手段。传值调用是指把实际参数的(1)传递给相应的形式参数,函数通过这种传值形参(2);引用调用是指把实际参数的(3)传递给相应的形式参数,在函数中对形参的引用和赋值被处理成是对实际参数间接的访问。C语言中采用(4)调用方式进行参数传递。

在下面的主程序中,实参a与形参x以引用调用(Call by reference)的方式传递信息,实参b与形参y以传值调用(Call by value)的方式传递信息,那么,从过程"compute"

A.值

B.名

C.地址

D.地址和值


正确答案:A

第6题:

在函数的引用调用时,实参和形参应该是使用:()。

A.变量值和变量

B.地址值和指针

C.地址值和引用

D.变量值和引用


正确答案:D

第7题:

函数f和g的定义如下图所示。执行函数f时需要调用函数g(a),若采用值调用方式(call by value)调用g(a),则函数f的返回值为(7);若采用引用(call by reference)方式调用g(a),则函数f的返回值为(8)。

A.6

B.13

C.25

D.28


正确答案:D

第8题:

函数调用采用“(32)”方式时,系统将实参的地址传递给形式参数。

A.传值调用

B.引用调用

C.宏调用

D.内部调用


正确答案:B
解析:本题考查程序语言的基础知识。在过程(或函数)首部声明的参数称为形式参数,简称形参;过程(或函数)调用时的参数称为实际参数,简称实参。调用语句实现了对过程(或函数)模块的执行,调用时首先要进行实参与形参间的参数传递。简单地说,以值调用方式进行参数传递时,需要先计算出实参的值并传递给对应的形参,然后执行所调用的过程(或函数),在过程(或函数)执行时对形参的修改不影响实参的值。对于引用调用,调用时首先计算实际参数的地址,并将此地址传递给被调用的过程,因此被调用既得到了实参的值又得到了实参的地址,然后执行被调用的过程(或函数)。在过程(或函数)的执行过程中,针对形式参数的修改将反映在对应的实际参数变量中。

第9题:

在下面的程序中,若调用f1(x)时,参数传递采用传值方式,调用f2(y)时,参数传递采用引用方式,则输出结果为(47);若调用f1(x)时,参数传递采用引用方式,调用f2(y)时,参数传递采用传值方式,则输出结果为(48)。

A.2

B.4

C.6

D.8


正确答案:A
解析:在过程(或函数)首部声明的参数称为形式参数,简称形参;过程(或函数)调用时的参数称为实际参数,简称实参。调用语句实现了对过程(或函数)体的执行,调用时首先要进行实参与形参间的参数传递。简单地说,以传值方式进行参数传递时,需要先计算出实参的值并将其传递给对应的形参,然后执行所调用的过程(或函数),在过程(或函数)执行时对形参的修改不影响实参的值。若参数传递采用引用方式,则调用时首先计算实际参数的地址,并将此地址传递给被调用的过程,因此对应的形参既得到了实参的值又得到了实参的地址,然后执行被调用的过程(或函数)。在过程(或函数)的执行过程中,针对形式参数的修改将反映在对应的实际参数变量中。题目中若调用f1(x)时,参数传递采用传值方式,则主过程中实际参数a的值不会被改变,所以输出结果为2。若调用f1(x)时,参数传递采用引用方式,调用翅f2(y)时,参数传递采用传值方式,则在函数f1中调用f2不会改变f1中x的值,而在f1中对x的修改就会反映在主过程main的实参a中,因此输出结果为4。

第10题:

已知函数f1()、f2()的定义如下,调用f1时为传值调用,调用f2时为引用调用。设有函数调用t=f1(5),那么调用执行后t的值为( )。

A.1
B.5
C.6
D.7

答案:A
解析:
首先a=f2(x)=f2(1),代入到f2中进行运算,x的值为0,返回值为1。这里x是引用调用,所以x的终值为0,然后返回值赋给了a。所以a=1。最终t的值为a+x=1。

更多相关问题