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

题目

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

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

第1题:

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


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

第2题:

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

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

A.值

B.名

C.地址

D.地址和值


正确答案:A

第3题:

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

A.传值调用

B.引用调用

C.宏调用

D.内部调用


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

第4题:

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

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

答案:C
解析:
函数调用时基本的参数传递方式有传值与传地址两种。传值调用是将实参的值传给被调用函数的形参,因此实参可以是常量、变量、表达式或函数调用;传地址调用(或引用调用)的实质是将实参的地址传给被调用函数的形参,因此实参必须具有地址。在引用调用方式下,可以实现形参和实参间双向传递数据的效果。

第5题:

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

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

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

第6题:

函数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

第7题:

在下面的程序中,若调用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。

第8题:

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

A.变量值和变量

B.地址值和指针

C.地址值和引用

D.变量值和引用


正确答案:D

第9题:

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

A.8
B.7
C.5
D.3

答案:B
解析:
判断一个字符串能否被指定的自动机识别,就是在该自动机的状态图中能否找到从开始状态到达终止状态的路径,且路径上的字符串等于需要识别的字符串。

第10题:

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


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

答案:C
解析:
传值调用:形参取的是实参的值,形参的改变不会导致调用点所传的实参的值发生改变。引用(传址)调用:形参取的是实参的地址,即相当于实参存储单元的地址引用,因此其值的改变同时就改变了实参的值。在本题中,首先在foo()函数中,传入给x的值为2,然后b的值为1,接下来调用g()函数,x的值为2,所以g()函数b的值为2(值传递),b的值为1,所以g()函数x的值为1(地址传递,故x的值变化,会引起foo()函数中b值的变化)。经过g()函数的一系列语句,b=3,x=5。则foo()中b值变成5,最终foo()函数的返回值为5+2=7。

更多相关问题