关于C语言的函数参数,下列叙述中正确的是(60)。A.只有在发生函数调用时,函数中的形参才被分配内存单元B.实参对形参的数据传递是单向的“值传递”,因此,在被调用的函数当中,没有办法去修改主调函数中任何变量的值C.形参变量所占用的内存单元位于堆中D.如果形参是数组名,则传递的是每个数组元素的值

题目

关于C语言的函数参数,下列叙述中正确的是(60)。

A.只有在发生函数调用时,函数中的形参才被分配内存单元

B.实参对形参的数据传递是单向的“值传递”,因此,在被调用的函数当中,没有办法去修改主调函数中任何变量的值

C.形参变量所占用的内存单元位于堆中

D.如果形参是数组名,则传递的是每个数组元素的值


相似考题
参考答案和解析
正确答案:A
解析:只有在发生函数调用时,函数中的形参才会在栈中被分配内存单元。参数的传递是单向的“值传递”,但是在被调用的函数中,可以通过指针的方法去修改主调函数中的变量的值。如果行参是数组名,则传递的是数组的起始地址,而不是每个数组元素的值。
更多“关于C语言的函数参数,下列叙述中正确的是(60)。A.只有在发生函数调用时,函数中的形参才被分配内存 ”相关问题
  • 第1题:

    以下关于C语言的函数参数叙述中,说法正确的是(28)。

    A.只有在发生函数调用时,函数中的形参才被分配内存单元

    B.如果形参是数组名,则传递的是每个数组元素的值

    C.形参变量所占用的内存单元位于堆中

    D.实参对形参的数据传递是单向的“值传递”,因此,在被调用的函数之中,无法去修改主调函数中任何变量的值


    正确答案:A
    解析:定义函数时函数名后括号中的变量名称为形式参数。调用函数时函数名后括号中的表达式称为实际参数。形参在未出现函数调用时,并不占内存中的存储单元。只有在发生函数调用时,函数中的形参才被分配内存单元。在调用结束后,形参所占的内存单元也被释放。因此选项A说法正确。通常认为数组名是一个地址常量,当数组名作为形参时,则传递的是数组的起始地址,而不是每个数组元素的值。由此可见选项B说法错误。操作系统内存的栈空间用于保存运行的上下文、函数调用时的局部变量和形参。因此选项C说法错误。C语言规定,实参对形参的数据传递是“值传递”,即单向传递(实参的值可以传给形参,形参的值不能传给实参)。在内存中,实参单元与形参单元是不同的单元。在被调用的函数当中,函数返回值将影响主调函数中相关变量的值。由此可见,选项D说法错误。

  • 第2题:

    下列关于形参和实参的说法正确的是()。

    A.函数定义中参数列表里面的参数是实际参数,简称实参

    B.参数列表中给出要传入函数内部的参数,这类参数成为形式参数,简称形参

    C.程序在调用时,将实参复制给函数的形参

    D.程序在调用时,将形参复制给函数的实参


    程序在调用时,将实参复制给函数的形参

  • 第3题:

    函数定义中指定的形参,在未发生函数调用时不占内存,只有调用时,函数中的形参才会分配内存。


    B

  • 第4题:

    9、下列关于形参和实参的说法正确的是()。

    A.函数定义中参数列表里面的参数是实际参数,简称实参

    B.参数列表中给出要传入函数内部的参数,这类参数称为形式参数,简称形参

    C.程序在调用时,将实参复制给函数的形参

    D.程序在调用时,将形参复制给函数的实参


    B

  • 第5题:

    4、下列关于函数参数的叙述中,正确的是________。

    A.在函数原型中不必声明形参类型

    B.在调用一个函数时,若函数中修改了形参变量的值,则对应的实参变量的值也被修改

    C.函数形参的生存期与整个程序的运行期相同

    D.函数的形参在函数被调用时获得初始值


    函数的形参在函数被调用时获得初始值