参考答案和解析
&a,&*p,p
更多“若有int *p,a=4;和p=&a;下面()均代表地址。”相关问题
  • 第1题:

    若有定义int a[9],+P=a;,则P+5表示( )。A.数组元素a[5]的值B.数组元素a[5]的地址SXB

    若有定义int a[9],+P=a;,则P+5表示( )。

    A.数组元素a[5]的值

    B.数组元素a[5]的地址

    C.数组元素a[6]的地址

    D.数组元素a[0]的值加上5


    正确答案:B
    本题考查了通过指针来引用一维数组元素的方法。题中*P=a;这一赋值语句是指针P指向了数组a的首地址,P+5是指针P向后移动了5个int类型的存储单元,所以P+5指向了数组元素a[5]。

  • 第2题:

    若有以下定义和语句,则对a数组元素地址的正确引用为 int a[2][3],(*p)[3]; p=a;

    A.*(p+2)

    B.p[2]

    C.p[1]+1

    D.(p+1)+2


    正确答案:C
    解析:本题考查了通过行指针来引用二维数组元素的方法。选项C中p[1]指向了数组a的第二行,p[1]+1则指向了第二行的第二个数据元素,其他几个选项都不正确。

  • 第3题:

    若有以下程序:includeint a[]={2,4,6,8};main(){int i; int *p=a; for(i=0;i<4;i++)a[

    若有以下程序: #include<stdio.h> int a[]={2,4,6,8}; main() { int i; int *p=a; for(i=0;i<4;i++) a[i]=*p; printf("%d\n",a[2]); } 上面程序的输出结果是( )。

    A.6

    B.8

    C.4

    D.2


    正确答案:D
    解析:在C语言中,数组元素的下标是从0开始的。for循环语句中,指针变量p始终指向数组a的首地址,因而执行循环赋值语句后数组各元素的值均变为2。

  • 第4题:

    若有语句int * point,a=4;和point=&a;下面均代表地址的一组选项是()。A.a,point,*&aB.&am

    若有语句int * point,a=4;和point=&a;下面均代表地址的一组选项是( )。

    A.a,point,*&a

    B.&*a,&a,*point

    C.*&point,*point,&a

    D.&a,& * point,point


    正确答案:D
    解析:“&”是求地址运算符,“*”是指针变量说明符,本题只有选项D)中的各项均代表地址,其中&*point等价于point。

  • 第5题:

    若有下列定义,则对a数组元素地址的正确引用是( )。int a[5],*p=a;

    A.p+5

    B.a+1

    C.&a+1

    D.&a[0]


    正确答案:D
    解析:本题考查如何引用数组元素的地址。
      选项A)中,p+5引用的是a[5]的地址,而数组a只有5个元素,即a[0]、a[1],a[2]、a[3]、a[4],所以引用错误;选项B)中,*a+1指的是将数组a的第一个元素加1;选项C)中,这种引用方式错误;选项D)中,&a[0]引用的是数组的首地址。

  • 第6题:

    若有语句int*point,a=4;和point=&a;下面均代表地址的一组选项是

    A.a,point,*&a

    B.&*a,&a,*point

    C.*&point,*point,&a

    D.&a,&*point,point


    正确答案:D
    解析:“&”是求址运算符,“*”是指针变量的说明符,说明该变量只能存放所定义类型变量的地址。本题中选项D)中的第一和第三项所表达的是同样的意思。注意:选项A)中9是一个整型变量。选项B)中&,a等价于a,*point是指针变量所指的内容。选项C)中也是同理。注意:在指针运算中,&和*的作用相互抵消。

  • 第7题:

    若有下列定义,则对a数组元素地址的正确引用是( )。int a[5],*p=a;A.p+5 B.*a+1

    若有下列定义,则对a数组元素地址的正确引用是( )。

    int a[5],*p=a;

    A.p+5

    B.*a+1

    C.&a+1

    D.&a[0]


    正确答案:D
    本题考查数组元素的地址的引用。A中,p+5引用的是a[5]的地址,而数组a只有5个元素,即a[0]、a[1]、a[2]、a[3]、a[4],所以引用错误(注:数组元素下标从0开始);B中,*a+1指的是将数组a的第一个元素加1;选项C中,不存在这种引用方式;D中,&a[0]引用的是数组的首地址。

  • 第8题:

    若有语句int*point,a=4;和point=&a;下面均代表地址的一组选项是 A.a,point,*&

    若有语句int *point,a=4;和 point=&a;下面均代表地址的一组选项是

    A.a,point,*&a

    B.&*a,&a,*point

    C.*&point,*point,&a

    D.&a,&*point,point


    正确答案:D

  • 第9题:

    若有定义:int *p,a=4;p=&a;则以下均代表地址的是()

    • A、a,p
    • B、&a,p
    • C、&a,*p
    • D、a,*p

    正确答案:B

  • 第10题:

    假设堆内存分配均成功,则下面程序段完全正确的是()。

    • A、int*p=newint(3);cout<;<;*p;deletep;
    • B、int*p=newint[5]={1,2,3,4,5};for(inti=0;i<;5;i++)cout<;<;p;delete[]p;
    • C、int*p=newint[5];for(inti=0;i<;5;i++,p++){*p=i;cout<;<;*p;}delete[]p;
    • D、以上程序段均正确

    正确答案:A

  • 第11题:

    若有语句:inti,*p=&i;则均表示变量地址的选项是()

    • A、*&p,*p,&i
    • B、i,p,&*i
    • C、*&i,&i,*p
    • D、&i,p,&*p

    正确答案:D

  • 第12题:

    单选题
    若有以下说明和语句: struct student{          int age;          int num;  }std, *p;  p=&std;  则下面对该结构体变量std中成员age的引用方式错误的是()。
    A

    std.age

    B

    *p.age

    C

    (*p).age

    D

    p->age


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

  • 第13题:

    若有语句:int a=4, *p=&a;,下面均代表地址的一组选项是( )。

    A.a, p, &*a

    B.*&a, &a, *p

    C.&a, p, &*p

    D.*&p, *p, &a"


    参考答案C

  • 第14题:

    若有定义:int x=0,*p=&x;,则语句printf("%d\n",*p);的输出结果是 ______。

    A.随机值

    B.0

    C.x的地址

    D.p的地址


    正确答案:B
    解析:由定义*p=&x,p指向x的地址,*p=x,因此输出的是x的值。

  • 第15题:

    若有语句int *point,a=4;和 point=&a;,下面均代表地址的一组选项是A.a,point,*&a B.&am

    若有语句int *point,a=4;和 point=&a;,下面均代表地址的一组选项是A.a,point,*&a B.&*a,&a,*point C.*&point,*point,&a D.&a,&*point,point


    正确答案:D
    本题主要考查指针变量对数值的引用。在题目中,首先定义了整型指针变量point和一个整型变量a,变量a的初值为4,然后是指针变量指向a,或者说将变量a所在存储单元的地址值赋给指针变量。
    在选项A中,很显然,不全是地址,只有point表示地址,而*&a等价于*(&a),表示取一个数值。
    在选项B中,也不都表示地址,其中*point表示数值,其他两个表示地址。
    在选项C中,与选项B类似,其中的*point表示数值。
    在选项D中,都表示地址,是题目的选择答案。

  • 第16题:

    若有定义:“int*P,x=0,*p,p=&x;”,则语句“printf("%d\n",*p);”的输出结果是( )。

    A.随机值

    B.0

    C.x的地址

    D.P的地址


    正确答案:A
    *P的意思是取其指向地址的内容,P是指向x地址的指针,因此输出*p也就是输出x的内容,即0,故选择B选项。

  • 第17题:

    若有语句:int a[3][4],(。P)[4];P=a;,则以下选项中叙述错误的是( )。

    A.系统将开辟一个名为P的二维数组,“o][o]中的值即为a[o][o]中的值

    B.P+1代表a[1][0]的地址

    C.P中将存放a数组的首地址

    D.P+2代表a数组最后一行的首地址


    正确答案:A
    (+P)[4]定义了一个数组指针。P可以指向类似于arry[][4]的数组,题设中,P不是一个二维数组,只是可以指向这类二维数组,因此选项A错误。P+1代表了第一行第一个元素的地址,P=a指向数组a的首地址,则B、C选项正确,同理可知选项D也正确。故答案为A选项。

  • 第18题:

    若有以下程序 include int a[ ]={2,4,6,8}; main( ) { int i; int *p=a; for(i=0;i<4

    若有以下程序

    #include <stdio.h>

    int a[ ]={2,4,6,8};

    main( )

    { int i;

    int *p=a;

    for(i=0;i<4;i++) a[i]=*p;

    printf("%d\n",a[2]);}

    上面程序的输出结果是

    A.6

    B.8

    C.4

    D.2


    正确答案:D
    解析:在C语言中,数组元素下标是从0开始的;指针变量p指向数组的首地址。for循环语句中,指针变量 p始终指向数组的首地址,因而执行循环赋值语句后数组各元素的值均变为2。

  • 第19题:

    若有下面的程序片段: int[12]={0},*p[3],**pp,i; for(i=0;i<3;i) p[i]=&a[i*4]; pp=p; 则对数组元素的错误引用是


    正确答案:C
    C

  • 第20题:

    若有以下说明和语句: struct student{          int age;          int num;  }std, *p;  p=&std;  则下面对该结构体变量std中成员age的引用方式错误的是()。 

    • A、std.age
    • B、*p.age
    • C、(*p).age
    • D、p->age

    正确答案:B

  • 第21题:

    若有语句int*p,a=4;和p=&a;下面均代表变量值的一组选项是()

    • A、a,p,*&a
    • B、&*a,&a,*p
    • C、*&p,*p,&a
    • D、*&a,*p,a

    正确答案:D

  • 第22题:

    若有定义:int a[10],*p; 则*(p+5)表示()。

    • A、元素a[5]的值
    • B、元素a[5]的地址
    • C、元素a[6]的值
    • D、元素a[6]的地址

    正确答案:A

  • 第23题:

    若有语句:int x=6,*p=&x;则下面正确的表达式是()

    • A、++&x
    • B、(*p)--
    • C、&(x+5)
    • D、p=1000

    正确答案:B

  • 第24题:

    单选题
    若有定义:int *p,a=4;p=&a;则以下均代表地址的是()
    A

    a,p

    B

    &a,p

    C

    &a,*p

    D

    a,*p


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