若有说明:int *p1,*p2,m=5,n; 以下都是正确的赋值语句的选项是()。

题目
单选题
若有说明:int *p1,*p2,m=5,n; 以下都是正确的赋值语句的选项是()。
A

p1=&m; p2=&p1;

B

p1=&m; p2=&n; *p1=*p2;

C

p1=&m; p2=p1;

D

p1=&m; *p2=*p1;

参考答案和解析
正确答案: D
解析: 暂无解析
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

若有说明:int n=2,*p=&n,*q=p;,则以下非法的赋值语句是( )。A.p=q B.*p=*q C.n=*q D.p=*n


正确答案:D
n是一个整型变量,而非一个整型指针变量。

第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 a=2, *p=&a, *q=p,则以下非法的赋值语句是()。

A.p=q

B.*p=*q

C.a=*q

D.q=a


答案:D

第4题:

有以下函数定义: void fun(int n, double x) {……} 若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是( )。

A.fun(int y,double m);

B.k=fun(10,12.5);

C.fun(x,n);

D.void fun(n,x);


正确答案:C
解析:本题考查函数调用。函数调用时,实参前不需加类型说明,选项A)错误;题目中的函数没有返回值,所以选项B)错误;函数调用前不需要加类型说明,选项D)错误。

第5题:

设有语句:“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,从而使这两个指针变量指向同一地址。

第6题:

若有说明:int*p1,*p2,n=8,m;下列均是正确赋值语句的选项是( )。

A.p1=&n;p2=&p1;

B.p1=n;

C.p1=&n;*p2=p1;

D.p1=&n;p2=p1;


正确答案:D
解析:本题考查指针变量的赋值。选项A)中,p1、p2本身都是地址变量,不能再将p1取地址赋给 p2;选项B)中,不能将整型数据直接赋值给指针型数据;选项C)中,*p2代表了一个整型变量,而*p2=p1这个语句试图把一个地址值放入一个整型变量中是错误的;选项D)中指针间的赋值是正确的。

第7题:

若有说明:int*p1,*p2,n=8,m;下列均是正确赋值语句的选项是( )。

A.p1:&n;p2=&pl;

B.p1=n;

C.p1=&n;*p2=p1;

D.p1=&n;p2=p1;


正确答案:D
解析:本题考查指针变量的赋值。选项A)中,p1、p2本身都是地址变量,不能再将 p1取地址赋给p2;选项B)中,不能将整型数据直接赋值给指针型数据;选项C)中,*p2代表了一个整型变量,而*p2=p1这个语句试图把一个地址值放入一个整型变量中是错误的;选项D)中指针间的赋值是正确的。

第8题:

已有定义 int a=2, *p1=&a, *p2=&a 下面不能正确执行的赋值语句是()。

A.a=*p1+*p2

B.p1=a

C.p1=p2

D.a=*p1*(*p2)


答案:B

第9题:

若有说明:int*p1,*p2,m=3,n;则p1=&m;p2=p1;是正确的赋值语。()

此题为判断题(对,错)。


参考答案:正确

第10题:

若有说明int i,j=2, *P=&i;,则能完成i=j赋值功能的语句是_______。

A.i=*p;

B.*P2=*&j;

C.i=&j;

D.i=**p;


正确答案:B
解析:指针是一种用来存放变量地址的特殊变量。本题中指针变量p用于存放整型变量i的地址,改变*p的值即为改变i的值。又因为“&”和“*”两个运算符的优先级别相同,按自右而左的方向结合,所以*&j先进行&j运算,得j的地址,再进行*运算,取所得地址里面的值,故*&j与j等价。

更多相关问题