更多“数据结构里,假设指针变量为p指向某块内存区域,则回收这块区域所用的语句,不正确的是()。A、malloc(p);B、free(p);C、relloc(p);D、empty(p);”相关问题
  • 第1题:

    若指针p已正确定义,要使p指向两个连续的整型动态存储单元,不正确的语句是

    A.p=2*(int*)malloc(sizeof(int));

    B.p=(int*)mall0c(2*sizeof(int));

    C.p=(int*)malloc(2*2);

    D.p=(int*)calloc(2,sizeof(int));


    正确答案:A
    解析:本题考核的知识点是manoc()函数的应用。该函数的调用格式是“malloc(n)”,作用是申请n个字符的存储单元并把该存储区的首地址作为返回值,实际调用的时候可在前面加上“(类型说明符*)”,以转换成需要的类型的地址。选项D多了一个参数,不符合malloc()函数的调用格式;整型变量在有的计算机系统里占4个字节,并不一定在所有的计算机系统里都是两个字节,所以选项C不正确;选项A中是申请一个整型的存储空间并把该存储空间的首地址乘以2,这样的做法是不正确的,其存储空间为没乘以2之前的存储空间的2倍的连续存储空间的地址,选项A不正确。所以,4个选项中B为所选。

  • 第2题:

    若指针p已正确定义,要使p指向两个连续的整型动态存储单元,不正确的语句是______。

    A.p=2*(int*)malloc(sizeof(int));

    B.p=(int*)mallet(2*sizeof(int));

    C.p=(int*)malloc(2*2);

    D.p=(int*)calloc(2, sizeof(int));


    正确答案:A
    解析:本题考查malloc函数和calloc函数的应用。C语言中库函数malloc和calloc的功能都是向系统申请分配内存空间。其中函数malloc的调用为:malloc(size),其中size是一个无符号整数,表示向系统申请多大的存储空间;calloc(n,size)表示向系统申请n个大小为size的存储空间。新标准C提供的malloc和calloc函数的类型规定为void*类型,使用时根据需要进行强制类型转换。选项B、C、D都能满足p指向两个连续的整型存储单元的要求,其中(int*)表示强制类型转换。

  • 第3题:

    若已定义:int x=12;对①int *p=&x;和②*p=x;这两条语句的正确理解是()

    A.语句①是在对指针变量p定义时初始化,使p指向x;而语句②是将变量x的值赋给指针变量p所指向的变量

    B.语句①和②中的*p含义相同,都表示给指针变量赋值

    C.语句①是在对指针变量p定义时初始化,使p指向x;而语句②是将变量x的值赋给指针变量p

    D.语句①和②的执行结果都是把变量x的地址赋给指针变量p


    参考答案:A

  • 第4题:

    语句Char(*P)说明了( )。

    A.P是指向函数的指针,该函数返回一个Char型数据

    B.P是指向Char型数据的指针变量

    C.P是指向数组的指针变量

    D.P是一个函数名,该函数的返回值是指向Char型数据的指针


    正确答案:A
    P是指向函数的指针,该函数返回一个char型数据。

  • 第5题:

    设指针变量p指向单链表中的结点A,则删去结点A的语句序列为 Q=p->next;p->data = p->data: p->next=(); :feee(q);


    正确答案:q->next

  • 第6题:

    假定指针变量p定义为“int *p=malloc(sizeof(int));”,要释放p所指向的动态存储空间,应调用的函数为()。

    Afree(p)

    Bdelete(p)

    Cfree(*p)

    Dfree(&p)


    A

  • 第7题:

    设有定义:int x,*p;,能使指针变量p指向变量x的语句是()

    • A、*p=&x;
    • B、p=&x;
    • C、*p=x;
    • D、p=*&x;

    正确答案:B

  • 第8题:

    定义指针变量int*p;则下列说法正确的是()

    • A、*p是指针常量
    • B、*p是一个地址
    • C、*p是指针变量
    • D、指针指向int型数据

    正确答案:C,D

  • 第9题:

    已知:int**p;则变量p是()

    • A、指向int型变量的指针、
    • B、指向指针的指针
    • C、int型变量
    • D、以上三种说法均不正确

    正确答案:B

  • 第10题:

    单选题
    已知单链表上一结点的指针为p,则删除该结点后继的正确操作语句是:()
    A

     s= p->next; p=p->next;  free(s);

    B

     p=p->next;  free(p);

    C

     s= p->next; p->next=s->next;  free(s);

    D

     p=p->next;  free(p->next);


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

  • 第11题:

    单选题
    假定指针变量p定义为“int *p=malloc(sizeof(int));”,要释放p所指向的动态存储空间,应调用的函数为()。
    A

    free(p)

    B

    delete(p)

    C

    free(*p)

    D

    free(&p)


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

  • 第12题:

    多选题
    数据结构里,假设指针变量为p指向某块内存区域,则回收这块区域所用的语句,不正确的是()。
    A

    malloc(p);

    B

    free(p);

    C

    relloc(p);

    D

    empty(p);


    正确答案: A,C,D
    解析: 暂无解析

  • 第13题:

    若指针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));


    正确答案:C

  • 第14题:

    若有定义“floata=25,b,*p=&b;”,则下列对赋值语句“*p=a;”和“p=&a;”的正确解释为( )。

    A.两个语句都是将变量a的值赋予变量p

    B.*p=a是使P指向变量a,而P=&a是将变量的值赋予变量指针p

    C.*p=a是将变量a的值赋予变量b,而&;a是使P指向变量a

    D.两个语句都是使p指向变量a


    正确答案:C
    “p”是指针变量,指向一个地址:“*p”为p指针所指向地址的内容。“&”是取变量地址。

  • 第15题:

    在下列叙述中,错误的一条是______。

    A.有下列语句组,则c=(*p)(a,b)与c=max(a,b)等价 int max();int(*p)();int c;p=max;

    B.执行下列语句后,则*p的值为1 int a=1,*p;*p=&a;

    C.已知指针变量p1指向数组元素a[1],p2指向数组元素a[4],则p2-p1=4-1=3

    D.2个指针变量指向同一数组时可以进行比较,其值为1或0


    正确答案:B

  • 第16题:

    若指针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))


    正确答案:C
    解析:malloc函数的调用形式:malloc(size)。malloc函数用来分配size个字节的存储区,返回一个指向存储区首地址基类型为void的地址,可以利用强制类型转换将其换成所需的类型,这里需转换为整型(int*)。若不能确定数据类型所占的字节数,可使用sizeof运算符来求得,这里要求两个连续的整型动态存储单元即2*sizeof(int)。4个选项中只有C符合题意。

  • 第17题:

    设p1和p2均为指向int型的指针变量,k为int型变量,下列不正确的赋值语句是(C)。

    A.k=*p1+*p2

    B.k=*p1*(*p2)

    C.p2=k

    D.p1=p2


    正确答案:C

  • 第18题:

    已知“int *p=malloc(100);”,要释放p所指向的动态内存,正确的语句为()。

    Afree(p);

    Bfree p;

    Cfree(*p);

    Dfree[p];


    A

  • 第19题:

    已知单链表上一结点的指针为p,则删除该结点后继的正确操作语句是:()

    • A、 s= p->next; p=p->next;  free(s);
    • B、 p=p->next;  free(p);
    • C、 s= p->next; p->next=s->next;  free(s);
    • D、 p=p->next;  free(p->next);

    正确答案:C

  • 第20题:

    设链表中的结点是NODE类型的结构体变量,且有NODE*p;为了申请一个新结点,并由p指向该结点,可用以下语句()。

    • A、p=(NODE*)malloc(sizeof(p));
    • B、p=(*NODE)malloc(sizeof(NODE));
    • C、p=(NODE)malloc(sizeof(p));
    • D、p=(NODE*)malloc(sizeof(NODE));

    正确答案:D

  • 第21题:

    若指针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

  • 第22题:

    单选题
    已知“int *p=malloc(100);”,要释放p所指向的动态内存,正确的语句为()。
    A

    free(p);

    B

    free p;

    C

    free(*p);

    D

    free[p];


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

  • 第23题:

    单选题
    假定指针变量p定义为“int*p=newint(100);”,要释放p所指向的动态内存,应使用语句()。
    A

    deletep;

    B

    delete*p;

    C

    delete&p;

    D

    delete[]p;


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