设有定义:int x=0,*p;紧接着的赋值语句正确的是(  )。

题目
单选题
设有定义:int x=0,*p;紧接着的赋值语句正确的是(  )。
A

*p=x;

B

*p=NULL;

C

p=x;

D

p=NULL;

参考答案和解析
正确答案: C
解析:
指针赋值的正确写法:①p=&x,表示p指向x的存储单元;②p=NULL,表示p是空指针。③*p=x,表示将p指向的内容赋值为x,但前提是p已进行了初始化。答案选择D选项。
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

设有定义:int n1=0,n2,*p=&n2,*q=&n1;,以下赋值语句中与n2=n1;语句等价的是()。A)*p=*q; B)p=q;C)*p=&n1; D)p=*q;


正确答案:A
B项是将n1的地址赋给p,使p也指向n1,C项表达式错误,应该p=&n1,和B一样的效果,D项也是表达式错误。

第2题:

设有定义:int n=0,*p=&n,**q=&p;,则以下选项中,正确的赋值语句是( )。

A.p=1;

B.*q=2;

C.q=p;

D.*p=5;


正确答案:D
解析:本题中首先定义了整型变量n,其初值为0,接着定义一个指针变量p并让它指向n,然后定义了一个指向指针的指针变量q,并让它指向p。选项A中将常量1赋给指针p,而p的值应为地址,所以不正确。选项B中*p的值也应为地址,故将常量 2复制给*p不正确。选项C中将p的值赋给q,使q也指向p所指向的存储单元,该存储单元中存放的是常量0,而q被定义为一个指向指针的指针变量,它所指向的存储单元中应该存放的是地址值,故不正确。所以,4个选项中选项D符合题意。

第3题:

设有:int x,*p; 则正确的赋值表达式是( )

A.*p=&x

B.*p=*x

C.p=x

D.p=&x


参考答案:D

第4题:

若已定义x为int类型变量,说明指针变量p的正确语句是______。

A.int p=&x;

B.int*p=x;

C.int *p=&x;

D.*p=*x;


正确答案:C

第5题:

设有如下定义: 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;


正确答案:C
解析:要注意不能将结构体变量作为一个整体进行输入和输出,只能对结构体变量中的各个成员进行输入和输出。引用结构体变量中成员的方式有以下几种:结构体变量名.成员名;指针变量名->成员名;(*指针变量名).成员名。

第6题:

设有定义:int n1=0,n2,*p=&n2,*q=&n1;,下列赋值语句中与n2=n1;语句等价的是 ( )。

A.*p=*q;

B.p=q;

C.*p=&n1;

D.p=*q;


正确答案:A
解析: 在定义指针变量p和q时,分别把变量n2和n1的地址赋给了指针变量p和q,所以*p和*q中内容就分别是变量n2和n1的值,所以语句*p=*q与语句n2=n1等价。因此选项A)正确。

第7题:

设有如下定义:

struck 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;


正确答案:C

第8题:

若有定义语句: int a[4][10],*p,*q[4]; 且 0 ≤ i<4 ,则错误的赋值是

A)p=a

B)q[i]=a[i]

C)p=a[i]

D)p=&a[2][1]


正确答案:A

第9题:

若已有定义int x;下列说明指针变量p指向x的正确语句是( )

A. int p=&x;

B. int *p=&x;

C. int p=x;

D. int *p=x;


正确答案:B

第10题:

设有定义:int n=0,*p=&n,**q=&p;,则以下选项中,正确的赋值语句是 ______。

A.p=1;

B.*q=2

C.q=p

D.*p=5


正确答案:D
解析:本题中n是int型变量,p是指向int型的指针变量,q是指向指针的指针变量,故正确答案为D。

更多相关问题