有以下变量说明,下面不正确的赋值语句是() int a=5, b=10,c; int ?p1=a,?p2=b;A、?p2=b;B、p1=a;C、p2=p1;D、c=?p1?(?p2)。

题目

有以下变量说明,下面不正确的赋值语句是() int a=5, b=10,c; int ?p1=&a,?p2=&b;

  • A、?p2=b;
  • B、p1=a;
  • C、p2=p1;
  • D、c=?p1?(?p2)。
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第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 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,从而使这两个指针变量指向同一地址。

第3题:

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

A.a=*p1+*p2

B.p1=a

C.p1=p2

D.a=*p1*(*p2)


答案:B

第4题:

分析下面的程序 main() { int*p1,*p2,*p; int x=4,y=6; p1=&x;p2=&y; if(x<y) {p=p1;p1=p2;p2=p; } printf("%d,%d,",*p1,*p2); printf("%d,%d\n",x,y); } 程序的输出结果为_______。

A.6,4,4,6

B.4,6,6,4

C.4,6,4,6

D.6,4,6,4


正确答案:A
解析:if语句执行前,指针变量p1指向变量x,指针变量p2指向变量y。由于xy成立,p1、p2分别指向变量y和变量x,因此,程序输出结果是6,4,4,6。

第5题:

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

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


参考答案:正确

第6题:

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

第7题:

下列程序的输出结果是______。 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。

第8题:

写出下列程序的执行结果。 swap(p1,p2) int*p1,*p2; {int p; p=*p1;*p1=*p2;*p2=p; } main() {int a,b,*p1,*p2; scanf("%d%d",&a,&B); p1=&a;p2=&b; if(a<B)swap(p1,p2); printf("\na=%d,b=%d\n",a,B); } 若a=7,b=8,则程序的运行结果为( )。


正确答案:a=8b=7
a=8,b=7

第9题:

下列程序的输出结果是______。main(){ static int num[5]=}1,3,5,7,9};int*p1,**p2;p1=num;p2=&am

下列程序的输出结果是______。 main() { static int num[5]=}1,3,5,7,9}; int*p1,**p2; p1=num; p2=&p1; printf("%d,",*(++p1)); printf("%d\n",**p2); }

A.3,1

B.3,3

C.1,1

D.1,3


正确答案:B
解析:指针p1指向数组num的首地址(同第一个元素的地址),二级指针变量p2指向p1。第一个输出语句中p1先移动一个单位,指向第二个数组元素,再输出元素的值(3),p1的移动不改变p2的指向。因此,第二个输出语句输出的也是3。

第10题:

分析下列程序:includemain(){int*p1,*p2,*p;int a=6,b=9;p1=&a;p2=&b;if(a

分析下列程序: #include<stdio.h> main() { int*p1,*p2,*p; int a=6,b=9; p1=&a;p2=&b; if(a<b){p=p1;p1=p2;p2=p;} printf("%d,%d",*p1,*p2); printf("%d,%d",a,b); } 程序的输出结果为( )。

A.9,6 6,9

B.6,9 9,6

C.6,9 6,9

D.9,6 9,6


正确答案:A
解析: 通过p1=&a,p2=&b分别将a、b的地址赋给指针p1、p2,接着执行if语句,发现ab成立,则通过交换p1、p2的值,即交换a、b所在存储单元的地址,但是a、b的值并没有发生变化。

更多相关问题