全部科目 > 嵌入式系统设计师 >
2011年下半年 上午试卷 综合知识
第 51 题
知识点 函数调用   数组  
关键词 函数调用   实参   数组   形参   语言   函数  
章/节 嵌入式系统程序设计  
 
 
在C语言中,若函数调用时实参是数组名,则传递给对应形参的是(51)。
 
  A.  数组空间的首地址
 
  B.  数组的第一个元素值
 
  C.  数组中元素的个数
 
  D.  数组中所有的元素
 
 




 
 
相关试题     函数 

  第61题    2016年下半年  
一个C语言程序的执行是从(61)。

  第36题    2017年下半年  
在C程序中,语句“char*func(intx,inty);”表示的含义是(36)。

相关试题     数组、字符数组与字符串 

  第21题    2011年下半年  
若二维数组arr[l1..M,1..N]的首地址为base,数组元素按列存储且每个元素占用K个存储单元,则元素arrn[i,j]该数组空间的地址为(21)。

  第39题    2015年下半年  
某同步总线的时钟频率为100MHz,宽度为32位,地址/数据线复用,每传输一个地址或者数据占有一个时钟周期。若该总线支持burst(猝发)传输方式,则一次“主存写”总线事务传输一个数组in..

  第46题    2010年下半年  
对于数组floatarray[5][4],若数组元素array[0][0]的地址为2400,每个数组元素长度为32位(4B),且假定其采用行序为主的存储模式,那么array[3][2]的内存地址为(46)。

 
知识点讲解
· 函数调用
· 数组
 
        函数调用
        当在一个函数(称为调用函数)中需要使用另一个函数(称为被调用函数)实现的功能时,便以名字进行调用,称为函数调用。在使用一个函数时,只要知道如何调用即可,并不需要关心被调用函数的内部实现。因此,程序员需要知道被调函数的名字、返回值和需要向被调函数传递的参数(个数、类型、顺序)等信息。
        函数调用的一般形式为:
        
        在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的值。
 
        数组
        数组是一种集合数据类型,它由多个元素组成,每个元素都有相同的数据类型,占有相同大小的存储单元,且在内存中连续存放。每个数组有一个名字,数组中的每个元素有一个序号(称为下标),表示元素在数组中的位序(位置),数组的维数和大小在定义数组时确定,程序运行时不能改变。
        一维数组的定义形式为:
        
        其中,“类型说明符”指定数组元素的类型;“数组名”的命名规则与变量相同;“常量表达式”的值表示数组元素的个数,必须是一个正整数。例如:
        
        在C程序中,数组元素的下标总是从0开始的,如果一个数组有n个元素,则第一个元素的下标是0,最后一个元素的下标是n-1。例如,在上面定义的temp数组中,第一个元素是temp[0],第二个元素是temp[1],以此类推,最后一个元素是temp[99]。访问数组元素的方法是通过数组名及数组名后的方括号中的下标。例如:
        
        程序员需确保访问数组元素时下标的有效性,访问一个不存在的数组元素(例如temp[100]),可能会导致严重的错误。
        定义数组时就给出数组元素的初值,称之为初始化,数组的初始化与简单变量的初始化类似。初值放在一对花括号中,各初值之间用逗号隔开,称为初始化表。例如:
        
        对于没有给出数组元素个数而给出了初始化表的数组定义,编译器会根据初值的个数和类型,为数组分配相应大小的内存空间。初始化表中值的个数必须小于或等于数组元素的个数。
        对于“int primes[10]={1,2,3,5,7};”,前5个数组元素的初值分别为1,2,3,5,7,后5个元素的初值都为0。
        二维数组可视为是一个矩阵,定义形式为:
        
        其中,“类型说明符”指定数组元素的类型,“常量表达式1”指定行数,“常量表达式2”指定列数。例如,可以定义一个二维数组:
        
        这个数组在内存中占用能存放12个double型数据且地址连续的存储单元。
        C语言中二维数组在内存中按行顺序存放。
        可以用sizeof计算数组空间的大小,即字节数。例如,
        
        二维数组可以看作元素是一维数组的一维数组,三维数组可看作元素是二维数组的一维数组,以此类推。



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

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