已定义以下函数      Int fun(int *p)      {return *p;}  则fun函数返回值是()A、不确定的值B、一个整数C、形参P中存放的值D、形参P的地址值

题目

已定义以下函数      Int fun(int *p)      {return *p;}  则fun函数返回值是()

  • A、不确定的值
  • B、一个整数
  • C、形参P中存放的值
  • D、形参P的地址值
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

● 函数fun1()、fun2()的定义如下所示,已知调用fun1 时传递给形参x的值是-5,若以引用调用(call by reference)的方式调用fun2,则函数fun1的返回值为 (33) ;若以值调用(call by value)的方式调用fun2,则函数fun1的返回值为 (34) 。

fun1(int x) fun2(int x) int a=x-1;

x = fun2(a);

return a-x; x=x+10;

return 3*x;

(33)A. -18 B. -11 C. -8 D. 0

(34)A. -18 B. -11 C. -8 D. 0


答案:A、C

值调用时,原传递参数值不会被修改!

如果是值传递:那么对于fun1中:a=x-1=-6;x=fun2(a)=fun2(-6);那么在fun2中,x=x+10=-6+10=4,返回3*x=12;这时原参数a=-6并不会被修改,也就是说a的值还是-6;这时,a-x=-6-12=-18;

对于引用调用,在fun2中执行语句x=x+10=-6+10=4时,这时a的值也被修改,变为4,所以返回到fun1中执行a-x时应该为a-x=4-12=-8。

 

第2题:

有以下函数:

fun(char *p)

{return p;}

该函数的返回值是

A.无确切值

B.形参p中存放的地址值

C.一个临时存储单元的地址

D.形参p自身的地址值


正确答案:B

第3题:

已定义以下函数

int fun(int *p)

{ return *p;)

fun 函数返回值是

A) 不确定的值

B) 一个整数

C) 形参 P 中存放的值

D) 形参 P 的地址值


正确答案:B
(23)B) 解析 : 返回值为指针变量指向的数据 , 该数据已被定义为整型。

第4题:

已知“int*p;fun(p);”,其中,函数fun没有返回值,且其形参定义为引用调用方式,则下列给出的fun函数原型中正确的是()。

A.voidfun(inta[]);

B.voidfun(int*&a);

C.voidfun(int&a[]);

D.voidfun(int&*a);


正确答案:B

第5题:

已定义下列函数:

int fun(int*p)

{return*p;)

fun函数返回值是( )。

A.不确定的值

B.一个整数

C.形参p中存放的值

D.形参p的地址值


正确答案:B
解析:由函数int fun(int *p){return *p;}的定义可知,返回值为整型指针变量p所指向的数据。

第6题:

已定义以下函数:fun(int *p){ return &p; }该函数的返回值是( )。A.不确定的值B.形参p中存放的值C.形参p所指存储单元中的值D.形参p的地址值


正确答案:D
&p是p自己的地址值,p所代表的存储单元里的值为p所指的存储单元的地址。

第7题:

已定义以下函数: int fun(int*p) {return*P;) fun函数返回值是( )。

A.不确定的值

B.一个整数

C.形参P中存放的值

D.形参P的地址值


正确答案:B
解析:p中存放的是地址值,但是*p间接引用了p指向的整数值。因此返回一个整数。

第8题:

●试题三

阅读下列说明和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)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=pt->next=p(t也指向尾结点)(4)出队时,需要删除队头结点,通过(*tail)->next可以得到对队头结点的引用。(4)处是正常删除队头结点的情况,空格处应填入头结点指向下一结点的指针,即p->next(*tail)->next->next(5)处是需要考虑的特殊情况,即队列中最后一个元素出队后,要更新队尾指针,即填入*tail=p*tail=(*tail)->next

 

第9题:

以下程序中,能够通过调用函数fun,使main函数中的指针变量p指向一个合法的整型单元的是

A.main( ) { int *p; fun(p); ┆ } int fun(int *p) { int s; p=&s;}

B.main( ) { int *p; fun(&p); ┆ } int fun(int **p) { int s; *p=&s;}

C.#include<stdlib.h> main( ) { int *p; fun(&p); ┆ } int fun(int **p) { *p=(int*)malloc(2);}

D.#include<stdlib.h> main( ) { int *p; fun(p); ┆ } int fun(int *p) { p=(int*)malloc(sizeof(int));}


正确答案:D

第10题:

阅读以下函数说明和C语言函数,将应填入(n)的字句写在答题纸的对应栏内。

[说明1]

函数int fun1(int m, int n)的功能是:计算并返回正整数m和n的最大公约数。

[函数1]

int fun1(int m, int n)

{

while ((1)) {

if (m>n) m=m-n;

else n=n-m;

}

(2);

}

[说明2]

函数long fun2(char*str)的功能是:自左至右顺序取出非空字符串str中的数字字符形成一个十进制整数(最多8位)。

例如,若字符串str的值为“f3g8d5.ji2e3p12fkp”,则函数返回值为3852312。

[函数2]

long fun2(char *str)

{

int i=0;

long k=0;

char *p=str;

while (*p!='\0' &&(3)) {

if (*p>='0' && *p<='9') {

k=(4)+ *p - '0';

++i;

}

(5);

}

return k;

}


正确答案:(1)m!=n;(2)return n或return m;(3)i8;(4)k*10;(5)p++
(1)m!=n;(2)return n或return m;(3)i8;(4)k*10;(5)p++

更多相关问题