参考答案和解析
正确答案:当数组名作为参数时,传递的实际上是地址。而其他类型如int作为参数时,由于函数参数值实质上是实参的一份拷贝,被调函数内部对形参的改变并不影响实参的值。
更多“为什么数组名作为参数,会改变数组的内容,而其它类型如int却不会改变变量的值?”相关问题
  • 第1题:

    在下列叙述中,错误的一条是 ( )

    A.scanf( )函数可以用来输入任何类型的多个数据

    B.数组名作函数参数时,也采用“值传送”方式

    C.如果形参发生改变,不会改变主调函数的实参值

    D.函数的实参与形参的类型应一致


    正确答案:B

  • 第2题:

    数组名也可作为函数参数使用,此时数组名代表数组的起始地址。()

    此题为判断题(对,错)。


    正确答案:正确

  • 第3题:

    有关数组名作为函数参数说法错误的是()。

    • A、用数组名作为函数参数时,要求形参和实参类型相同
    • B、用数组名作为函数参数时,实参传给形参的是数组的首地址
    • C、用数组名作为函数参数时,实参将数组各元素的值传给形参
    • D、用数组名作为函数参数时,实参和形参共享同一数组

    正确答案:C

  • 第4题:

    函数调用时,若形参是数组类型,则调用时只写()

    • A、数组名
    • B、数组名加[]
    • C、数组的长度值
    • D、数组名[长度]

    正确答案:A

  • 第5题:

    若以数组名作为函数的实参,则实参向形参传送的是()

    • A、数组第一个元素的值
    • B、数组元素的值
    • C、数组的首地址
    • D、数组名

    正确答案:C

  • 第6题:

    函数viodfun(doublea[],int*n){………}叙述中正确的是()。()

    • A、调用fun函数时只有数组执行按值传送,其他实参和形参之间执行按地址传送
    • B、形参a和n都是指针变量
    • C、形参a是一个数组名,n是指针变量
    • D、调用fun函数时将把double型实参数组元素一一对应地传送给形参a数组

    正确答案:C

  • 第7题:

    关于二维数组定义格式正确的是()

    • A、类型说明符数组名[常量表达式];
    • B、类型说明符变量名[常量表达式];
    • C、类型说明符数组名[常量表达式1][常量表达式2];
    • D、类型说明符数组名[变量表达式1][变量表达式2];

    正确答案:C

  • 第8题:

    若使用一维数组名作函数实参,则以下正确的说法是()

    • A、须在主调函数中说明此数组的大小
    • B、参数组类型与形参数组类型可以不匹配
    • C、在被调用函数中,不需要考虑形参数组的大小
    • D、实参数组名与形参数组名必须一致

    正确答案:A

  • 第9题:

    填空题
    C语言程序中,数组名作为函数参数时,不进行值传送而进行()传送。

    正确答案: 地址
    解析: 暂无解析

  • 第10题:

    单选题
    函数调用时,若形参是数组类型,则调用时只写()
    A

    数组名

    B

    数组名加[]

    C

    数组的长度值

    D

    数组名[长度]


    正确答案: A
    解析: 暂无解析

  • 第11题:

    多选题
    数据结构中,以下说法正确的是()。
    A

    数组做参数属于地址传递,传递的是数组的首地址,或数组第一个元素的地址。

    B

    数组名表示数组的首地址(因此调用时候只写数组名)。

    C

    函数的地址传递是指参数是:数组或指针类型时,传递的是地址,而不是值。

    D

    值传递时,函数的实参和形参分别占有存储单元。


    正确答案: A,D
    解析: 暂无解析

  • 第12题:

    单选题
    对数组名作函数的参数,下面描述正确的是(  )。
    A

    数组名作函数的参数,调用时将实参数组复制给形参数组

    B

    数组名作函数的参数,主调函数和被调函数共用一段存储单元

    C

    数组名作参数时,形参定义的数组长度不能省略

    D

    数组名作参数,不能改变主调函数中的数据


    正确答案: B
    解析:
    数组名作为函数参数,传递的是数组的首地址,主调函数和被调函数共用一段存储单元,如果被调函数中对数组进行操作,会改变主调函数中的数据。

  • 第13题:

    在下列叙述中,错误的一条是______。

    A.定义char*string="China"中的string是一个字符串变量,其值为China

    B.若有一个多维数组a,则*(a+i)与a[i]等价

    C.int(*p)[4]表示p为指针变量,它指向包含4个元素的一维数组

    D.数组名代表数组的首地址,固定不变。指针变量可通过指向数组首地址来代表对应的数组,但其值可以改变


    正确答案:A

  • 第14题:

    C语言程序中,数组名作为函数参数时,不进行值传送而进行()传送。


    正确答案:地址

  • 第15题:

    数据结构中,以下说法正确的是()。

    • A、数组做参数属于地址传递,传递的是数组的首地址,或数组第一个元素的地址。
    • B、数组名表示数组的首地址(因此调用时候只写数组名)。
    • C、函数的地址传递是指参数是:数组或指针类型时,传递的是地址,而不是值。
    • D、值传递时,函数的实参和形参分别占有存储单元。

    正确答案:A,B,C,D

  • 第16题:

    数组名作为参数传递给函数,此时作为实在参数的数组名被处理为()。

    • A、该数组的长度
    • B、该数组的元素个数
    • C、该数组中各元素的值
    • D、该数组的首地址

    正确答案:D

  • 第17题:

    数组名可以作为函数的参数传递,此时传递的是数组的首地址


    正确答案:正确

  • 第18题:

    若用数组名作为函数调用时的参数,则实际上传递给形参的是()

    • A、数组第一个元素的值
    • B、数组元素的值
    • C、数组的首地址
    • D、数组名

    正确答案:C

  • 第19题:

    下列叙述中,错误的一条是()

    • A、scanf()函数可以用来输入任何类型的多个数据
    • B、数组名作函数参数时,也采用“值传递”方式
    • C、如果行参发生改变,不会改变主调函数的实参值
    • D、函数实参与行参的类型应一致

    正确答案:B

  • 第20题:

    数组名作为实参数传递给函数时,数组名被处理为()

    • A、该数组的长度
    • B、该数组的元素个数
    • C、该数组的首地址
    • D、该数组中各元素的值

    正确答案:C

  • 第21题:

    问答题
    为什么数组名作为参数,会改变数组的内容,而其它类型如int却不会改变变量的值?

    正确答案: 当数组名作为参数时,传递的实际上是地址。而其他类型如int作为参数时,由于函数参数值实质上是实参的一份拷贝,被调函数内部对形参的改变并不影响实参的值。
    解析: 暂无解析

  • 第22题:

    单选题
    数组名作为实参数传递给函数时,数组名被处理为()
    A

    该数组的长度

    B

    该数组的元素个数

    C

    该数组的首地址

    D

    该数组中各元素的值


    正确答案: A
    解析: 暂无解析

  • 第23题:

    单选题
    数组名作为参数传递给函数,此时作为实在参数的数组名被处理为()。
    A

    该数组的长度

    B

    该数组的元素个数

    C

    该数组中各元素的值

    D

    该数组的首地址


    正确答案: D
    解析: 暂无解析