软考中级

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

题目

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

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

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

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

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

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

第1题:

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


B

第2题:

15、关于形参和实参的描述,以下选项中正确的是()

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

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

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

D.函数调用时,实参只能按照位置顺序的方式传递给函数;


C

第3题:

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

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

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

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

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


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

第4题:

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

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

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

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

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


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

第5题:

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

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

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

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

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


B

第6题:

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

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

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

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

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


正确答案:A
解析:只有在发生函数调用时,函数中的形参才会在栈中被分配内存单元。参数的传递是单向的“值传递”,但是在被调用的函数中,可以通过指针的方法去修改主调函数中的变量的值。如果行参是数组名,则传递的是数组的起始地址,而不是每个数组元素的值。

第7题:

下列关于函数参数的叙述中,正确的是

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

B.函数的实参和形参共享内存空间

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

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


正确答案:D

第8题:

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

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

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

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

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


参考答案:A

第9题:

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

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

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

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

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


正确答案:A