itgle.com

指针做形参的函数不能做到的是____________A.将被调用函数内部的变量地址传递到调用函数。B.将被调用函数内部变量的值通过参数传递到调用函数。C.在被调用函数内部修改调用函数中变量的值。D.将调用函数中变量的值通过参数传递到被调用函数。

题目

指针做形参的函数不能做到的是____________

A.将被调用函数内部的变量地址传递到调用函数。

B.将被调用函数内部变量的值通过参数传递到调用函数。

C.在被调用函数内部修改调用函数中变量的值。

D.将调用函数中变量的值通过参数传递到被调用函数。


相似考题

2.●试题三阅读下列说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】本题给出四个函数,它们的功能分别是:1.int push(PNODE *top,int e)是进栈函数,形参top是栈顶指针的指针,形参e是入栈元素。2.int pop(PNODE *top,int *e)是出栈函数,形参top是栈顶指针的指针,形参e作为返回出栈元素使用。3.int enQueue(PNODE *tail,int e)是入队函数,形参tail是队尾指针的指针,形参e是入队元素。4.int deQueue(PNODE *tail,int *e)是出队函数,形参tail是队尾指针的指针,形参e作为返回出队元素使用。以上四个函数中,返回值为0表示操作成功,返回值为-1表示操作失败。栈是用链表实现的;队是用带有辅助结点(头结点)的单向循环链表实现的。两种链表的结点类型均为:typedef struct node{int value;struct node *next;}NODE,*PNODE;【函数1】int push(PNODE *top,int e){PNODE p=(PNODE)malloc (sizeof(NODE));if (!p) return-1;p-> value =e;(1) ;.*top=p;return 0;}【函数2】int pop (PNODE *top,int *e){PNODE p=*top;if(p==NULL)return-1;*e=p->value;(2) ;free(p);return 0;}【函数3】int enQueue (PNODE *tail,int e){PNODE p,t;t=*tail;p=(PNODE)malloc(sizeof(NODE));if(!p)return-l;p->value=e;p->next=t->next;(3) ;*tail=p;return 0;}【函数4】int deQueue(PNODE *tail,int *e){PNODE p,q;if((*tail)->next==*tail)return -1;p=(*tail)->next;q=p->next;*e=q->value;(4) =q->next;if(*tail==q) (5) ;free(q);return 0;}

参考答案和解析
将被调用函数内部的变量地址传递到调用函数。
更多“指针做形参的函数不能做到的是____________”相关问题
  • 第1题:

    下列对有关带默认形参值的函数的描述中,正确的是()。

    A.只能在函数定义时设置默认形参值

    B.只能在函数声明时设置默认形参值

    C.函数调用时,必须使用默认的形参值,不能给出新的实参值

    D.默认形参值必须严格按照从右至左的顺序进行指定


    正确答案:D

  • 第2题:

    以下正确的叙述是______。

    A.C语言允许main函数带形参,且形参个数和形参名均可由用户指定

    B.C语言允许main函数带形参,形参名只能是argc和argv

    C.当main函数带有形参时,传给形参的值只能从命令行中得到

    D.若有说明:main(int argc,char *argv),则形参argc的值必须大于1


    正确答案:C
    解析:C语言通常允许main()函数带有两个参数,可由用户自己命令,但类型是固定的。第一个参数是整型,第二个参数是一个指向字符型指针数组的指针或一个基本类型为字符型的指针数组,此时传给形参的值只能从命令行中得到。

  • 第3题:

    以下叙述中错误的是( )。

    A.改变函数形参的值,不会改变对应实参的值

    B.函数可以返回地址值

    C.可以给指针变量赋一个整数作为地址值

    D.当在函数的开头包括头文件stdio.h时,可以给指针变量赋NULL


    正确答案:C

  • 第4题:

    若有函数

    Void fun( double a[ ],int *n)

    { …… }

    以下叙述中正确的是

    A)调用fun函数时只有数组执行按值传送,其他实参和形参之间执行按地址传送

    B)形参a和n都是指针变量

    C)形参a是一个数组名,n是指针变量

    D)调用fun函数时将把double型实参数组元素一一对应地传送给形参a数组


    正确答案:C
    【答案】C
    【知识点】函数参数传递
    【解析】a是形参数组的名字,接收从调用函数中传过来的实参数组的首地址,n是指针变量。

  • 第5题:

    已知类A中有如下一函数说明 Void Test(A &a);其中参数A&a的含义是( )。

    A.参数类型为指向A的指针类型

    B.A为指针类型的形参

    C.a为A类型的引用

    D.为A类型的指针


    正确答案:C
    解析:参见引用的语法。

  • 第6题:

    以下叙述中正确的是

    A.基类型不同的指针变量可以相互混用

    B.函数的类型不能是指针类型

    C.函数的形参类型不能是指针类型

    D.设有指针变量为double*p,则P+1将指针P移动8个字节


    正确答案:D
    A选项中,虽然不同基类型的指针变量占用字节数是相同的,但是不能混用。b选项中,所谓函数类型是指函数返回值的类型。在C语言中允许一个函数的返回值是一个指针(即地址),这种返回指针值的函数称为指针型函数;C选项中,函数的参数不仅可以是整型、实型、字符型等数据,还可以是指针类型;因此D选项正确。

  • 第7题:

    下列是函数的引用调用的是()。

    • A、形参是指针,实参是地址值
    • B、 形参是变量,实参是引用
    • C、形参是指针,实参是数组名
    • D、形参是引用,实参是变量

    正确答案:D

  • 第8题:

    荷兰国旗问题,定义交换两个元素的函数,参数为指针,请问当参数为指针类型的函数,其传递属于()。

    • A、值传递
    • B、地址传递
    • C、形参传递
    • D、实参传递

    正确答案:B

  • 第9题:

    若数组名作实参而指针变量作形参,函数调用实参传给形参的是()

    • A、数组的长度
    • B、数组第一个元素的值
    • C、数组所有元素的值
    • D、数组第一个元素的地址

    正确答案:D

  • 第10题:

    voidfun(intn);描述错误的是()

    • A、有参函数,是整型参数
    • B、这个函数是无参函数
    • C、有参函数,是实型参数
    • D、如果调用此函数用fun(形参表)

    正确答案:B,C,D

  • 第11题:

    单选题
    若数组名作实参而指针变量作形参,函数调用实参传给形参的是()
    A

    数组的长度

    B

    数组第一个元素的值

    C

    数组所有元素的值

    D

    数组第一个元素的地址


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

  • 第12题:

    单选题
    下列关于函数参数的叙述中,正确的是(  )。
    A

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

    B

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

    C

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

    D

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


    正确答案: A
    解析:
    A项错误,在函数原型中可以不声明形参名称,但是必须声明形参类型;B项错误,函数的实参与形参是两个不同的变量,有各自的存储空间;C项错误,函数形参的生命周期是从函数开始到函数结束;D项正确,函数形参是函数的局部变量,在函数调用时获得初始值。

  • 第13题:

    阅读下列说明和C代码,将应填入(n)处的字句写在对应栏内。

    【说明】

    本题给出四个函数,它们的功能分别是:

    1.int push(PNODE*top,int e)是进栈函数,形参top是栈顶指针的指针,形参e是入栈元素。

    2.int pop(PNODE*top,int*e)是出栈函数,形参top是栈顶指针的指针,形参e作为返回出栈元素使用。

    3.int enQueue(PNODE*tail,int e)是入队函数,形参tail是队尾指针的指针,形参e是入队元素。

    4.int deQueue(PNODE*tail,int*e)是出队函数,形参tail是队尾指针的指针,形参e作为返回出队元素使用。

    以上四个函数中,返回值为。表示操作成功,返回值为-1表示操作失败。

    栈是用链表实现的;队是用带有辅助结点(头结点)的单向循环链表实现的。两种链表的结点类型均为:

    typedef struct node {

    int value;

    struct node * next;

    } NODE, * PNODE;

    【函数1】

    int push(PNOOE * top,int e)

    {

    PNODE p = (PNODE) malloc (sizeof (NODE));

    if (! p) return-1;

    p->value=e;

    (1);

    *top=p;

    return 0;

    }

    【函数2】

    int pop (PNODE * top,int * e)

    {

    PNODE p = * top;

    if(p == NULL) return-1;

    * e = p->value;

    (2);

    free(p);

    return 0;

    }

    【函数3】

    int enQueue (PNODE * tail,int e)

    { PNODE p,t;

    t= *tail;

    p = (PNODE) malloc(sizeof(NODE));

    if(!p) return-1;

    p->value=e;

    p->next=t->next;

    (3);

    * tail = p;

    return 0;

    }

    【函数4】

    int deQueue(PNODE * tail,int * e)

    { PNODE p,q;

    if(( * tail)->next == * tail) return-1;

    p= (* tail)->next;

    q = p ->next;

    * e =q ->value;

    (4)=q->next;

    if(,tail==q) (5);

    free(q);

    return 0;

    }


    正确答案:(1)p->next=*top  (2)*top=p->next或* top=(*top)->next (3)t->next=p或(*tail)->next=p (4)p->next或(*tail)->next->next (5)*tail=p或*tail=(*tail)->next
    (1)p->next=*top  (2)*top=p->next或* top=(*top)->next (3)t->next=p或(*tail)->next=p (4)p->next或(*tail)->next->next (5)*tail=p或*tail=(*tail)->next 解析:(1)插入结点p后,p应当指向插入前头结点,所以填入p ->next=*top。(2)出栈后,头指针应指向它的下一结点,所以填入 *top=p->next或*top=(*top)->next。(3)入队时,需要将结点插入队尾,所以应当填入(*tail)->next=p或t->next=p(t也指向尾结点)。(4)出队时,需要删除队头结点,通过(*tail)->next可以得到对队头结点的引用。(4)处是正常删除队头结点的情况,空格处应填入头结点指向下一结点的指针,即p->next或(*tail)->next->next。(5)处是需要考虑的特殊情况,即队列中最后一个元素出队后,要更新队尾指针,即填入*tail=p或*tail=(*tail)->next。

  • 第14题:

    若有如下调用函数: int sub(int *t) { return (t); } 该函数的返回值是( )

    A.形参t中存放实参变量的地址值

    B.形参t自身的地址值

    C.指针变量t所指的实参变量的值

    D.随机的值


    正确答案:A

  • 第15题:

    若有函数 void fun(double a[]。int*n) {…} 以下叙述中正确的是( )。

    A.调用fun函数时只有数组执行按值传送,其他实参和形参之间执行按地址传送

    B.形参a和n都是指针变量

    C.形参a是一个数组名,n是指针变量

    D.调用fun函数时将把double型参数组元素一一对应地传送给形参a数组


    正确答案:B
    本题考查函数中数组和指针的传值,数组a[]在参数传递时,是传递的数组a的首地址,所以形参a和n都是指针变量。。

  • 第16题:

    设有定义语句 则以下叙述正确的是( ).A.f是指向函数的指针变量,该函数具有_个int类型的形参SX

    设有定义语句

    则以下叙述正确的是( ).

    A.f是指向函数的指针变量,该函数具有_个int类型的形参

    B.f是基类型为int的指针变量

    C.f是指向int类型一维数组的指针变量

    D.f是函数名,该函数的返回值是基类型为int类型的地址


    正确答案:A

  • 第17题:

    设有某函数的说明为

    int*func(int a[10],int n);

    则下列叙述中,正确的是

    A.形参a对应的实参只能是数组名

    B.说明中的a[10]写成a[]或*a效果完全一样

    C.func的函数体中不能对a进行移动指针(如a++)的操作

    D.只有指向10个整数内存单元的指针,才能作为实参传给a


    正确答案:B
    本题重点考查返回指针值的函数相关知识,返回指针值的函数,一般定义形式为:类型名*函数名(参数列表)。func函数被定义为指针型函数,它的形参inta[10]和intn.分别指一维数组a[0]和整型变量n。

  • 第18题:

    程序语言提供的传值调用机制是将( )。

    A. 实参的值传递给被调用函数的形参B. 实参的地址传递给被调用函数的形参C. 形参的值传递给被调用函数的实参D. 形参的地址传递给被调用函数的实参


    正确答案:A

  • 第19题:

    函数形参的作用域是该函数的函数体。


    正确答案:正确

  • 第20题:

    关于函数参数传递方向下列说法错误的是()

    • A、形参传给实参
    • B、实参传给形参
    • C、双向传递
    • D、不能传递

    正确答案:A,C,D

  • 第21题:

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

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

    正确答案:C

  • 第22题:

    下面描述项中正确的是哪些()

    • A、指针变量不可以作为函数的参数
    • B、定义函数时可以有一个或多个形参,也可以没有形参
    • C、函数是由函数首部与函数体构成的
    • D、main()函数可以调用任何其它函数

    正确答案:B,C,D

  • 第23题:

    单选题
    下列是函数的引用调用的是()。
    A

    形参是指针,实参是地址值

    B

     形参是变量,实参是引用

    C

    形参是指针,实参是数组名

    D

    形参是引用,实参是变量


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

  • 第24题:

    单选题
    荷兰国旗问题,定义交换两个元素的函数,参数为指针,请问当参数为指针类型的函数,其传递属于()。
    A

    值传递

    B

    地址传递

    C

    形参传递

    D

    实参传递


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