数据结构里,假设指针变量为p指向某块内存区域,则回收这块区域所用的语句,不正确的是()。A、malloc(p);B、free(p);C、relloc(p);D、empty(p);

题目

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

  • A、malloc(p);
  • B、free(p);
  • C、relloc(p);
  • D、empty(p);
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

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

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

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

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

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


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

第2题:

若指针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为所选。

第3题:

有以下程序段

typedef struct node { int data; struct node *next; } *NODE;

NODE p;

以下叙述正确的是

A)p 是指向 struct node 结构变量的指针的指针

B)NODE p ;语句出错

C)p 是指向 struct node 结构变量的指针

D)p 是 struct node 结构变量


正确答案:C

第4题:

若已定义: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

第5题:

若指针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*)表示强制类型转换。

第6题:

设有语句:“int a=1,b=2,*p1=&a,*p2=&b;”,则使指针p1指向变量b的赋值语句是______。

A.p1=*p2

B.*p1=p2

C.p1=p2

D.*p1=*p2


正确答案:D
解析:对于定义int*p,*q;,可以通过赋值语句p=q;,把指针变量q中的地址值赋给指针变量p,从而使这两个指针变量指向同一地址。

第7题:

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

第8题:

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

a. free(p);

b. free p;

c. free(*p);

d. free[p];


正确答案是:C

第9题:

若有定义“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指针所指向地址的内容。“&”是取变量地址。

第10题:

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

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

更多相关问题