【单选题】若定义了以下函数: void f (…) { ... *p= (double*)malloc (10*sizeof(double)); ... } p是该函数的形参,要求通过p把动态分配存储单元的地址传回主调函数,则形参p的正确定义应当是 。A.double *pB.float **pC.double **pD.float *p
【单选题】若定义了以下函数: void f (…) { ... *p= (double*)malloc (10*sizeof(double)); ... } p是该函数的形参,要求通过p把动态分配存储单元的地址传回主调函数,则形参p的正确定义应当是 。
A.double *p
B.float **p
C.double **p
D.float *p
参考答案和解析
double **p ;
相关考题:
●试题三阅读下列说明和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;}
设在主函数中有以下定义和函数调用语句,且fun函数为void类型;请写出fun函数的首部【13】。要求形参名为b。main(){double s[10][22];int n; ┆┆fun(s);┆}
若定义了以下函数: void f(……) { …… *p=(double *)malloc(10 * sizeof(double)); …… } p是该函数的形参,要求通过p把动态分配存储单元的地址传回主调函数,则形参p的正确定义应当是( )A.double *pB.float **pC.double **pD.float *p
阅读下列说明和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;}
若定义了以下函数: void f(…) { … *p=(double*)malloc (10 * sizeof (double)); … } p是该函数的形参,要求通过p把动态分配存储单位的地址传回主调函数,则形参p的正确定义应当是 ( )A.double*pB.float* *pC.double* *pD.float*p
有以下函数 char *fun(char*p) { return p; } 该函数的返回值是_____。A.无确切的值B.形参p中存放的地址值C.一个临时存储单元的地址D.形参p自身的地址值
若指针p已正确定义,要使p指向两个连续的整型动态存储单元,则正确语句是( )A.p=2 *(int *)malloc(sizeof(int));B.p=(int*)calloc(2*sizeof(int));C.p=(int*)malloc(2* sizeof(int));D.p=2 *(int*)calloc(sizeof(int));
若有函数Void fun( double a[ ],int *n){ …… }以下叙述中正确的是A)调用fun函数时只有数组执行按值传送,其他实参和形参之间执行按地址传送B)形参a和n都是指针变量C)形参a是一个数组名,n是指针变量D)调用fun函数时将把double型实参数组元素一一对应地传送给形参a数组
设在主函数中有以下定义和函数调用语句,且fun函数为void类型。请写出函数fun的头部,要求函数的形参为变量b。main(){ double s[10][22]; int n; …… fun(s); ……}
若定义了以下函数; void sub(……) {…… *t=(int *)malloc(10*sizeof(int)); …… } 其中t是该函数的形参,要求通过t把动态分配存储单元的地址传回主调函数,则形参t的正确定义应该是( )A.int *tB.int **tC.long **tD.long *t
若有函数 char*func(char *p) { … return p; } 则该函数的返回值是 ______。A.无确切的值B.形参p中存放的地址C.一个临时存储单元的地址D.形参p自身的地址
单选题已定义以下函数intfun(int*p){ return*p;}fun函数返回值是( )。A一个整数B不确定的值C形参p中存放的值D形参p的地址值