全部科目 > 软件设计师 >
2022年上半年 上午试卷 综合知识
第 21 题
知识点 程序设计语言的分类   函数调用  
关键词 编译   函数调用   函数  
章/节 计算机软件知识  
 
 
在某C程序中函数foo的声明如下,则编译阶段会报告错误的函数调用为_(21)。
vo'd foo(double pll,int n);double area[5];
 
  A.  foo(&area[5],5)
 
  B.  foo(area,5)
 
  C.  foo(area+5,5)
 
  D.  foo(area[5],5)




 
 
相关试题     计算机软件知识 

  第45题    2025年上半年  
假设事务程序A中的表达式x/y,若y取值为0,则计算该表达式时,会产生故障。该故障属于()。

  第59题    2009年下半年  
邻接矩阵和邻接表是图(网)的两种基本存储结构,对于具有n个顶点、e条边的图,(59)。

  第33题    2017年下半年  
以下关于管道过滤器体系结构的优点的叙述中,不正确的是( )。

 
知识点讲解
· 程序设计语言的分类
· 函数调用
 
        程序设计语言的分类
        1)命令式程序设计语言
        命令式程序设计语言是基于动作的语言,在这种语言中,计算被看作动作的序列。命令式语言族开始于FORTRAN、PASCAL和C语言,体现了命令式程序设计的关键思想。
        2)面向对象的程序设计语言
        (1)对象。对象是指人们要进行研究的任何事物,它具有状态和操作。面向对象的语言把状态和操作封装于对象实体之中,并提供一种访问机制。用户只能通过向允许公开的操作提出要求,才能查询和修改对象的状态。
        (2)类。类是面向对象语言必须提供的、由用户定义的数据类型,它将具有相同状态、操作和访问机制的多个对象抽象成一个对象类。在定义类以后,属于这种类的一个对象被称为类实例或类对象。
        (3)继承。继承是面向对象语言的另一个基本要素。继承实现了一般与特殊的关系,解决了软件的可重用性和可扩充性的问题。
        3)函数式程序设计语言
        函数式程序设计语言是一类以λ-演算为基础的语言。该语言的代表是LISP语言,其中大量使用了递归。
        函数是一种对应规则(映射),它是定义域中的每个元素和值域中唯一的元素相对应。函数可以看成一种程序,其输入就是定义在左边括号中的变量,可以将输入组合起来产生一个规则,组合过程中也可以使用其他函数或函数本身。这种用函数和表达式建立程序的方法就是函数式程序设计。函数型程序设计语言的优点之一就是表达式中出现的任何函数都可以用其他函数来代替,只要这些函数调用产生相同的值。
        4)逻辑型程序设计语言
        逻辑型程序设计语言是一类以形式逻辑为基础的语言。该语言的代表是建立在关系理论和一阶谓词理论基础上的Prolog语言。Prolog语言具有很强的推理功能,适用于书写自动定理证明、专家系统以及自然语言理解等问题的程序。
 
        函数调用
        当在一个函数(称为调用函数)中需要使用另一个函数(称为被调用函数)实现的功能时,便以名字进行调用,称为函数调用。在使用一个函数时,只要知道如何调用即可,并不需要关心被调用函数的内部实现。因此,程序员需要知道被调函数的名字、返回值和需要向被调函数传递的参数(个数、类型、顺序)等信息。
        函数调用的一般形式为:
        
        在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-2026 All Rights Reserved
软考在线版权所有