若有说明:int*p1,*p2,m=5,n=9;以下均是正确赋值

题目

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

  • A、p1=&m;p2=&p1;
  • B、p1=&m;p2=&n;*p1=*p2;
  • C、p1=&m;p2=p1
  • D、p1=&m;*p2=*p1;
参考答案和解析
正确答案:B
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

若有说明: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)中指针间的赋值是正确的。

第2题:

若有说明:int *p,m=5,n;,以下正确的程序段是

A.p=&n;scanf("%d",&p);

B.p=&n;scanf("%d",*p)

C.scanf("%d",&n);*p=n;

D.p=&n;*p=m;


正确答案:D
解析:&是求址运算符,"*"是指变量说明符。选项A)、B)应改为scanf("%d",p);选项C)中指针变量p未指向一确定的内存单元,不能为其赋值,并且这样做很危险,建议不使用。

第3题:

有以下程序

main()

{ int a=1,b=3,c=5;

int *p1=&a, *p2=&b, *p=&c;

*p =*p1*(*p2);

printf("%d\n",c);

}

执行后的输出结果是

A)1

B)2

C)3

D)4


正确答案:C
答案 C
解析:程序使指针 p1,p2,p3 指向 a,b,c 值所存放的地址空间,然后再将指针变量 *p1 、 *p 2运算所得的值放入指针变量 *p , 即放入了 c 值的存放地址 。 则最后输出 c 的时候得到的值就是 c 地址里面的值。即 1*3=3 。

第4题:

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

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


参考答案:正确

第5题:

执行以下程序后,a,b的值分别为

main()

{ int a,b,k=4,m=6,*p1=&k,*p2=&m;

a=p1==&m;

b=(*p1)/(*p2)+7;

printf("a=%d\n",A.;

printf("b=%d\n",B.;

}

A.-1,5

B.1,6

C.0,7

D.4,10


正确答案:C

第6题:

若有说明:int * p,m=51; n;,以下正确的程序段是()

A.p=&m; scanf("%d",&p)

B.p=&n; scanf("%d",&P)

C.scanf("%d",&p) p=&n;

D.p=&n; p=&m;


正确答案: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 n=2,*p=&n,*q=p;,则以下非法的赋值语句是( )。A.p=q B.*p=*q C.n=*q D.p=*n


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

第9题:

下列程序的输出结果是______。 main() {int a=2,b=4,c=6; int*p1=&a,*p2=&b,*p; *(p=&

下列程序的输出结果是______。

main()

{ int a=2,b=4,c=6;

int*p1=&a,*p2=&b,*p;

*(p=&C) =*p1*(*p2);

printf("%d\n",c);

}


正确答案:8
8 解析:本程序定义了3个指针变量p1、p2、p,并且将a、b的地址分别赋给p1、p2,则*p1=a=2,*p2=b=4,所以表达式*p1*(*p2)的值是8。在赋值语句的左边是 *(p=&c),即使指针p指向了变量c,因而*(p)代表了c的存储单元,赋值语句“*(p=&c)=*p1*(*p2);”是把整数 8赋给了变量c。

第10题:

设有以下程序: include using namespace std; int main() {inta,b,k:4,m=6,*p1=&k

设有以下程序:

include<iostream>

using namespace std;

int main()

{

int a,b,k:4,m=6,*p1=&k,*p2=&m;

a=p1==&m;

b=(*p1)/(*p2)+7;

cout<<a<<b<<end1;

return 0;

}

执行该程序后,a的值为【 】,b的值为【 】。


正确答案:0 7
0 7 解析:本题考核的知识点是有关指针的运算。程序中定义了两个指针变量p1和p2,并通过赋初值让它们分别指向了变量k和m。语句“a=p1==&m;”中先执行关系运算符“p1==&m”,显然是0(假),然后把0赋值给a。接着执行语句“b=(*p1)/(*p2)+7”,此处*p1的值就是k的值4,*p2的值就是m的值6,即把“4/6+7”的结果赋给b,b的值为7。

更多相关问题