全部科目 > 软件设计师 >
2021年上半年 上午试卷 综合知识
第 66 题
知识点 函数   函数调用  
关键词 函数调用   函数  
章/节 计算机软件知识  
 
 
函数foo、hoo的含义如下所示,函数调用hoo(a,x)的两个参数分别采用引用调用(call by reference)和值调用(call by value)方式传递,则函数调用foo(5)的输出结果为( )。
 
  A.  2,5
 
  B.  2,15
 
  C.  13,5
 
  D.  13,15




 
 
相关试题     计算机软件知识 

  第7题    2009年下半年  
网络安全体系设计可从物理线路安全、网络安全、系统安全、应用安全等方面来进行,其中,数据库容灾属于(7) 。

  第64题    2019年下半年  
已知某文档包含5个字符,每个字符出现的频率如下表所示。采用霍夫曼编码对该文档压缩存储,则单词“cade”的编码为(64),文档的压缩比为(65)。

  第52题    2022年下半年  
某高校人力资源管理系统的数据库中,教师关系模式为T(教师号,姓名,部门号,岗位,联系地址,薪资),函数依赖集F={教师号→(姓名,部门号,岗位,联系地址),岗..

 
知识点讲解
· 函数
· 函数调用
 
        函数
        函数是程序模块的主要成分,它是一段具有独立功能的程序。函数的使用涉及3个概念,即函数定义、函数声明和函数调用。
        (1)函数定义。包括函数首部和函数体两个部分。函数的定义描述了函数做什么和怎么做。
        (2)函数声明。函数应该先声明后引用。函数声明定义了函数原型。声明函数原型的目的在于告诉编译器传递给函数的参数个数、类型以及函数返回值的类型,参数表中仅需要依次列出函数定义中的参数类型。函数原型可以使编译器检查源程序中对函数的调用是否正确。
        (3)函数调用。当需要在一个函数(称为主调函数)中使用另一个函数(称为被调函数)实现的功能时,便以函数名字进行调用,称为函数调用。调用函数和被调用函数之间交换信息的方法主要有两种:一种是由被调用函数把返回值返回给主调函数;另一种是通过参数带回信息。函数调用时实参和形参间交换信息的方法有传值调用和引用调用两种。
        ①传值调用(Call by Value)。若实现函数调用时实参向形式参数传递相应类型的值(副本),则称为传值调用。这种方式下形式参数不能向实际参数传递信息。在C语言中,要实现被调用函数对实际参数的修改,必须用指针作形参。即调用时需要先对实参进行取地址运算,然后将实参的地址传递给指针形参,本质上仍属于传值调用。这种方式实现了间接内存访问。
        ②引用调用(Call by Reference)。引用是C++中增加的数据类型,当形式参数为引用类型时,形参名实际上是实参的别名,函数中对形参的访问和修改实际上就是针对相应实际参数所作的访问和改变。
 
        函数调用
        当在一个函数(称为调用函数)中需要使用另一个函数(称为被调用函数)实现的功能时,便以名字进行调用,称为函数调用。在使用一个函数时,只要知道如何调用即可,并不需要关心被调用函数的内部实现。因此,程序员需要知道被调函数的名字、返回值和需要向被调函数传递的参数(个数、类型、顺序)等信息。
        函数调用的一般形式为:
        
        在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-2025 All Rights Reserved
软考在线版权所有