itgle.com
参考答案和解析
C
更多“若已定义:int a[9] ,*p=a;并在以后的语句中未改变p 的值,不能表示a[1] 地 址的表达式是 。”相关问题
  • 第1题:

    有如下定义: int a[5]={1,3,5,7,9}, * p=a; 下列表达式中不能得到数值5的是

    A.a[2]

    B.a[3]

    C.*(p+2)

    D.*p+4


    正确答案:B

  • 第2题:

    对于下述说明,不能使变量p->b的值增1的表达式是______。 struct exm { int a; int b; float c }*p;

    A.++p->b

    B.++(p++)->b

    C.p->b++

    D.(++p)->b++


    正确答案:D
    解析:p->b应作为一个整体看待,++p->b和p->b++都使变量b增1, ++(p++)->b先使b增1,再使p后移,D中表达式的含义是使p+1所指结构体变量中的成员 b的值增1。

  • 第3题:

    若有定义语句:int a[2][3],*p[3];,则以下语句中正确的是( )。A.p=a; B.p[0]=a;

    若有定义语句:int a[2][3],*p[3];,则以下语句中正确的是( )。

    A.p=a;

    B.p[0]=a;

    C.p[o]=&a[1][2];

    D.p[1]=&a;


    正确答案:B
    选项B表示把整型数组a[o]的指针赋给p[0]。

  • 第4题:

    若有以下定义: int a[ ]={1,2,3,4,5,6,7,8,9,10},* p=a; 则值为3的表达式是 ( )

    A.p+=2,* (pd+ +)

    B.p+=2,* + +p

    C.p+=3,* p+ +

    D.p +=2,+ + * p


    正确答案:A

  • 第5题:

    已知定义“int x = 1, *p”,则合法的赋值表达式是( )。

    A、p = &x

    B、p = x

    C、*p = &x

    D、*p = *x


    参考答案A

  • 第6题:

    有如下定义语句:int a[]={1,2,3,4,5};,则对语句int*p=9;正确的描述是( )。

    A.语句int*p=a;定义不正确

    B.语句int*p=a;初始化变量p,使其指向数组对象a的第一个元素

    C.语句int*p=a;是把a[0]的值赋给变量p

    D.语句int*p=a;是把a[1]的值赋给变量p


    正确答案:B

  • 第7题:

    有如下定义: int a[5]={1,3,5,7,9},* P=a; 下列表达式中不能得到数值5的是( )。 A.a[2]SXB

    有如下定义: int a[5]={1,3,5,7,9},* P=a; 下列表达式中不能得到数值5的是( )。

    A.a[2]

    B.a[3]

    C.*(P+2)

    D.+P+4


    正确答案:B
    本题考查指向数组的指针,本题中指针变量P指向数组a,直接使用数组下标即可取值,数组F标是从0开始标号的,所以a[2]能取到5,而a[3]取不到5,(:选项中使用指针后移方法能够取到5,D选项中*P为1,所以*P+4为5。

  • 第8题:

    若有以下的定义, int a[ ]={1,2,3,4,5,6,7,8,9,10},*p=a;则值为3的表达式是 ______。

    A.p+=2,*(p++)

    B.p+=2,*++p

    C.p+=3,*p++

    D.p+=2,++*p


    正确答案:A

  • 第9题:

    设有以下定义: int a[3][3]={1,2,3,4,5,6,7,8,9}; int(*Ptr)[3]=a,*p=a[0]; 则下列能够正确表示数组元素a[1][2]的表达式是_______。

    A.*((*ptr+1)[2])

    B.*(*(p+5))

    C.(*ptr+1)+2

    D.*(*(a+1)+2)


    正确答案:D
    解析:*(p+5)所指向的数组元素是a[1][2],所以B不对;ptr所指向的是—个含有三个元素的一维数组,所以A和C是错误的。

  • 第10题:

    若有定义int a[2][3],*p=a;则以下不能表示数组元素a[1][2]的是()

    • A、*(a[1]+2)
    • B、*(p[1]+2)
    • C、p[5]
    • D、*(p+5)

    正确答案:B

  • 第11题:

    若有以下定义      int a〔 〕={1,2,3,4,5,6,7,8,9,10),*p=a;    则值为3的表达式是()   

    • A、p+=2,*(p++)
    • B、p+=2,*++p
    • C、p+=3,*p++
    • D、p+=2,++*P

    正确答案:A

  • 第12题:

    问答题
    若已定义   struct num{    int a;    int b;   float f;  } n={1,3,5.0};  struct num *p=&n;  则表达式p->b/n.a*++p->b的值是  ①  ,表达式(*p).a+p->f的值是  ②  。

    正确答案: ①12
    ②6.0
    解析: 暂无解析

  • 第13题:

    若有以下定义和语句: int a[]={1,2,3,4,5,6,7,8,9,10},*p=a; 则值为3的表达式是______。

    A.p+=2,*(p++)

    B.p+=2,*++p

    C.p+=3,*p++

    D.p+=2,++*p


    正确答案:A
    解析:引用一个数组元素,可以用:(1)下标法,如a[i]形式:(2)指针法,如*(a+i)或*(p+i)。数组的下标从0开始,值为3的数组元素是a[2]。B、C的内容为a[3],D将a[2]前自加,结果为4。

  • 第14题:

    若已定义:int a[9], *p=a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式为( )。

    A.p+1

    B.a+1

    C.a++

    D.++p


    正确答案:C

  • 第15题:

    若有以下定义和语句:int a[10]={1,2,3,4,5,6,7,8,9,10},* p=a则不能表示a数组元素的表达式是 ( )

    A.* p

    B.a[10]

    C.* a

    D.a[p-a]


    正确答案:B

  • 第16题:

    若已定义:int a[9],*p=a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式是 _______。

    A.p+1

    B.a+1

    C.a++

    D.++p


    正确答案:C
    解析:数组名是指针常量,是个固定的指针,不能对数组名赋予一个新的地址值,也不能使这个指针常驻量“移动”,指向数组的其他元素。

  • 第17题:

    设有定义语句“int x=10, *p=&x”,则表达式的值为10的有( )。

    A、p

    B、*p

    C、*&x

    D、*p=x

    E、x=*p


    参考答案BCDE

  • 第18题:

    若已定义:int a[9],*p=a;并在以后的语句中未改变p的值,下列选项中不能表示 a[1]地址的表达式是( )。

    A.p+1

    B.a+1

    C.a++

    D.#NAME?


    正确答案:C
    解析:本题考查数组地址的表示。选项C)中,数组名所表示的数组地址不能被重新赋值。

  • 第19题:

    若有定义和语句: int a[10]={1,2,3,4,5,6,?,8,9,10},* p=a; 则不能表示a数组元素的表达式是 ( )

    A.* p

    B.a[10]

    C.* a

    D.a[p-a)


    正确答案:B

  • 第20题:

    下列程序的功能是输出数组中的最大值,其中用指针q指向该元素,在if语句中判断表达式应该是 ______。 #include<iostream.h> void main(){ int a[10]={6,7,2,9,1,10,5,8,4,3); int *p=a,*q=a; while(p-a<10){ if(_____)q=p; { p++; } cout<<”max=”<<*q; }

    A.ap>Aq

    B.*p>*q

    C.p>q

    D.p-a>p-q


    正确答案:B

  • 第21题:

    若有定义:int a[2][3],*p[3]; ,则以下语句中,正确的是()。

    • A、p[0]=&a[1][2];
    • B、p=a;
    • C、p[0]=a;
    • D、p[1]=&a;

    正确答案:A

  • 第22题:

    若已定义   struct num{    int a;    int b;   float f;  } n={1,3,5.0};  struct num *p=&n;  则表达式p->b/n.a*++p->b的值是  ①  ,表达式(*p).a+p->f的值是  ②  。


    正确答案: ①12
    ②6.0

  • 第23题:

    下面关于指针变量int*p;描述不正确的是()

    • A、*p表示的是指针变量p的地址
    • B、int*p表示定义了一个指针类型变量
    • C、*p表示的是指针变量p的值
    • D、p=&a将a的值赋值给变量p

    正确答案:A,C,D

  • 第24题:

    单选题
    若有以下定义      int a〔 〕={1,2,3,4,5,6,7,8,9,10),*p=a;    则值为3的表达式是()
    A

    p+=2,*(p++)

    B

    p+=2,*++p

    C

    p+=3,*p++

    D

    p+=2,++*P


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