若指针p已正确定义,要使p指向两个连续的整型动态存储单元,则正确的语句是()。
A.p=2*(int*)malloc (sixeof(int))
B.p=(int*)calloc (2*sixeof(int))
C.p=(int*)malloc (2*sizeof(int))
D.p=2*(int*)calloc (sizeof(int))
A.p=2*(int*)malloc (sixeof(int))
B.p=(int*)calloc (2*sixeof(int))
C.p=(int*)malloc (2*sizeof(int))
D.p=2*(int*)calloc (sizeof(int))
若指针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 *)malloc(2,sizeof(int));
设有如下定义, struct sk { int a; float b; }data; int*p; 若要使P指向data中的a域,正确的赋值语句是()。
A.p=&a;
B.p=data.a;
C.p=&data.a;
D.*p=data.a;
设有如下定义: struct sk { int a;float b; } data; int *p; 若要使p指向data中的a域,正确的赋值语句是()。
A.p=&a;
B.p=data.a;
C.p=&data.a;
D.p=a;
A.p=&a;
B.p=data.a;
C.p=&data.a;
D.*p=data.a;
有以下结构体说明和变量定义,如图所示,指针p、q、r分别指向此链表中的3个连续结点。
struct node
{ int data;struct node *next; }*p,*q,*r;
现要将这个链表构成一个环,以下()操作是正确的。
A.p->next=q->next
B.r->next=p
C.p->next=r
D.r->next=q->next->next
若已定义x为int类型变量,说明指针变量p的正确语句是______。
A.int p=&x;
B.int*p=x;
C.int *p=&x;
D.*p=*x;
若已建立如下图所示的单向链表结构:在该链表结构中,指针p、s分别指向图中所示结点,则不能将s所指的结点插入到链表末尾仍构成单向链表的语句组是______。
A.p=p->next; s->next=p; p->next=s;
B.p=p->next; s->next=p->next; p->next=s;
C.s->next=NULL; p=p->next; p->next=s;
D.p=(*p).next; (*s).next=(*p).next; (*p).next=s;
下列说法正确的是()。
A.int(*p)[n); 是把p定义为整型变量,它指向不知数据类型的一维数组
B.int(*p)(); 是把p定义为整型指针
C.int *p[n); 定义指针数组p,每个指针指向一个整型变量
D.int *p(); p为指向函数的指针,函数返回值为整型
已知f1(int)是类A的公有成员函数,并将指针p定义为可以指向函数f1的指针类型,则可以实现让p是指向成员函数f1()的指针的语句为【 】。
A.q->next=r->next;p->next=r;r->next=q;
B.p->next=r;q->next=r->next;r->next=q;
C.q->next=r->next;r->next=q;p->next=r;
D.r->next=q;p->next=r;q->next=r->next;