若指针p已正确定义,要使P指向两个连续的整型动态存储单元,不正确的语句是( )。
A.p=2*(int*)malloc(sizeof(int));
B.p=(int*)malloc(2*sizeof(int));
C.p=(int*)malloc(2*2);
D.p=(int*)calloc(2,sizeof(int));
A.p=2*(int*)malloc(sizeof(int));
B.p=(int*)malloc(2*sizeof(int));
C.p=(int*)malloc(2*2);
D.p=(int*)calloc(2,sizeof(int));
若要使指针p指向一个double类型的动态存储单元,请填空。
p=______malloc(sizeof(double));
A.p=&a;
B.p=data.a;
C.p=&data.a;
D.*p=data.a;
为建立如下图所示的存储结构(即每个结点两个域,p是指向结点的指针域,data用以存放整型数),请将定义补充完整。
p data a struct list { 【 】; int data;}a;
下面的语句要使指针p指向一个double类型的动态存储单元,请填空。 p =【 】malloc(sizeof(double));
若已定义a为int型变量,则( )是对指针变量P的正确定义和初始化。
(A)int*p=a; (B)int*P=*a;
(C)int p=&a; (D)int*p=&a;
若已建立以下链表结构,指针P、S分别指向如图所示结点
则不能将S所指节点插入到链表末尾的语句组是
A.S->next="\0";p:P->next;P->next=s;
B.p=p->next;S->next=p;p->next=s;
C.p=P->next;S->next=p->next;P->next=s;
D.p:(*p).next;(*S).next=(*p).next;(*p).next=s;
struc node {int data; struct node*next; }*P,*q,*r; 现要将q和r所指结点的先后位置交换,同时要保持链表的连续,以下错误的程序段是()。
A.r一>next=q;q一>next=r->next;p一>next=r;
B.q->next=r->next;p->next=r;r->next=q;
C.p->next=r;q->next=r->next;r->next=P;
D.q->next=r->next;r->next=q;p->next=r;
A.int **p;
B.int (*p)[4];
C.int (*p)[3];
D.int *p[4];