参考答案和解析
正确答案:B
更多“有以下变量说明,下面不正确的赋值语句是() 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 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,从而使这两个指针变量指向同一地址。

  • 第2题:

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

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


    参考答案:正确

  • 第3题:

    分析下面的程序 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。

  • 第4题:

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

    分析下列程序: #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,66,9

    B.6,9 9,6

    C.6,9 6,9

    D.9,69,6


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

  • 第5题:

    分析下面函数 swap(int *p1,*p2) {int *p; *p=*p1;*p1=*p2;*p2=*p; } 则该程序功能为( )

    A.交换*p1和*p2的值

    B.正确,但无法改变*p1和*p2的值

    C.交换*p1和*p2的地址

    D.可能造成系统故障,因为使用了空指针


    正确答案:D

  • 第6题:

    设p1和p2均为指向int型的指针变量,k为int型变量,下列不正确的赋值语句是(C)。

    A.k=*p1+*p2

    B.k=*p1*(*p2)

    C.p2=k

    D.p1=p2


    正确答案:C

  • 第7题:

    若p1、p2都是整型指针,p1已经指向变量x,要使p2也指向x,()是正确的。

    • A、p2=p1;
    • B、p2=**p1;
    • C、p2=&p1;
    • D、p2=*p1;

    正确答案:A

  • 第8题:

    有定义:int a[10], n, *p1=a,*p2=&a[9];,则正确的赋值语句为()。

    • A、n=p2-p1;
    • B、n=p2*p1;
    • C、n=p2+p1;
    • D、n=p1/p2;

    正确答案:A

  • 第9题:

    下列语句定义整型指针p1、p2,()是正确的。

    • A、intp1,p2;
    • B、int*p1,*p2;
    • C、int*p1,p2;
    • D、int**p1,p2;

    正确答案:B

  • 第10题:

    若p1、p2都是指向整型的指针,p1已经指向变量x,要使p2也指向x,正确的是()。

    • A、p2=p1;
    • B、p2=**p1;
    • C、p2=&p1;
    • D、p2=*p1;

    正确答案:A

  • 第11题:

    单选题
    若有说明: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;


    正确答案: C
    解析: 暂无解析

  • 第12题:

    单选题
    有定义:int a[10], n, *p1=a,*p2=&a[9];,则正确的赋值语句为()。
    A

    n=p2-p1;

    B

    n=p2*p1;

    C

    n=p2+p1;

    D

    n=p1/p2;


    正确答案: A
    解析: 暂无解析

  • 第13题:

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

  • 第14题:

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

  • 第15题:

    分析下列程序: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的值并没有发生变化。

  • 第16题:

    若有定义int*p1,*p2;则指针变量p1、p2不能进行运算的是()

    A.<

    B.=

    C.+

    D.-


    参考答案:C

  • 第17题:

    若有如下程序: sub(int * t,int n) {int *p1, *p2; for(p1=t,p2=t;p1-t<n;p1++) if(*p1<*p2) p2=p1; return(*p2);} main() {int a[9]={9,36,19,39,26,5,6,33,15}; printf("%d\n",sub(a,9));} 则程序运行后的输出结果是( )

    A.5

    B.9

    C.15

    D.39


    正确答案:A

  • 第18题:

    若有说明: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;

    正确答案:C

  • 第19题:

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

    • A、a=*p1+*p2;
    • B、p1=a;
    • C、p1=p2;
    • D、a=*p1*(*p2);

    正确答案:B

  • 第20题:

    int*p1,*p2,intk,则不能正确执行的语句是()。

    • A、k=*p1+*p2
    • B、p2=k
    • C、p1=p2
    • D、k=(*p1)*(*p2);

    正确答案:B

  • 第21题:

    若有说明: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

  • 第22题:

    若有定义int*p1,*p2;则指针变量p1、p2不能进行运算的是()

    • A、<
    • B、=
    • C、+
    • D、-

    正确答案:C

  • 第23题:

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

    ?p2=b;

    B

    p1=a;

    C

    p2=p1;

    D

    c=?p1?(?p2)。


    正确答案: C
    解析: 暂无解析