全部科目 > 程序员 >
2019年上半年 上午试卷 综合知识
第 32 题
知识点 函数调用  
关键词 表达式   函数调用   数据   函数  
章/节 软件基础知识  
 
 
函数调用中,值调用方式将(32)。下面所定义的函数foo为值调用方式,函数g的第一个参数采用值调用、第二个参数采用引用调用方式传递数据。若有表达式y=foo(2),则foo调用执行之后,y被赋值为(33)。

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




 
 
相关试题     程序设计语言的基本成分:数据、运算、控制和传输 

  第28题    2012年下半年  
(28)不属于程序的基本控制结构。

  第32题    2009年上半年  
程序中常采用变量表示数据,变量具有名、地址、值、作用域、生存期等属性。关于变量的叙述,(32)是错误的。

  第33题    2014年下半年  
已知函数f()、g()的定义如下所示,执行表达式"x=f(5)"的运算时,若函数调用g(a)是引用调用(call by reference)方式,则执行"x= f(5)"后x的值为(33):若函数用g(a)是传值调用(..

 
知识点讲解
· 函数调用
 
        函数调用
        当在一个函数(称为调用函数)中需要使用另一个函数(称为被调用函数)实现的功能时,便以名字进行调用,称为函数调用。在使用一个函数时,只要知道如何调用即可,并不需要关心被调用函数的内部实现。因此,程序员需要知道被调函数的名字、返回值和需要向被调函数传递的参数(个数、类型、顺序)等信息。
        函数调用的一般形式为:
        
        在C程序的执行过程中,通过函数调用使得被调用函数得以执行。函数体中若调用自己,则称为递归调用。
        C语言采用传值方式将实参传递给形参。调用函数和被调用函数之间交换信息的方法主要有两种:一种是由被调用函数把返回值返回给调用函数,另一种是通过参数带回信息。函数调用时,实参与形参间交换信息的主要有传值调用和引用调用两种方法。
        (1)传值调用(Call by value)。若实现函数调用时实参向形参传递相应类型的值,则称为是传值调用。这种方式下形参不能向实参传递信息。
        例如,下面给出函数swap定义,其功能是交换两个整型变量值。
        
        函数调用为:swap(a,b);
        因为是传值调用,swap函数运行后只能交换x和y的值,而实参a和b的值并没有交换。
        在C语言中,要实现被调用函数对实参的修改,必须用指针作形参,调用时需要先对实参进行取地址运算,然后将实参的地址传递给指针形参。本质上仍属于传值调用。
        下面给出函数swap的定义,其功能是交换两个整型变量值。
        
        函数调用为:swap(&a,&b);
        由于形参px、py分别得到了实参变量a、b的地址,所以px指向的对象*px即为a,py指向的对象*py就是b,因此在函数中交换*px和*py的值实际上就是交换实参a和b的值,从而实现了调用函数中两个整型变量值的交换。这种方式是通过数据的间接访问来完成运算要求的。
        (2)引用调用。引用是C++中增加的数据类型,当形参为引用类型时,函数中对形参的访问和修改实际上就是针对相应实参所作的访问和改变。例如:
        
        函数调用为:swap(a,b);
        引用调用方式下调用swap(a,b)时,x、y就是a、b的别名,因此,函数调用完成后,交换了实参a和b的值。



更多复习资料
请登录电脑版软考在线 www.rkpass.cn

京B2-20210865 | 京ICP备2020040059号-5
京公网安备 11010502032051号 | 营业执照
 Copyright ©2000-2023 All Rights Reserved
软考在线版权所有