参考答案和解析
a++
更多“若已定义: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指向的地址可更改,但*p不能够更改的是

    A.const int * p;

    B.int * const p;

    C.const int * const p;

    D.int *p;


    正确答案:A
    解析:constint*p;是只能改变指针地址,int*constp;是只能改变*p的内容,constint*constp;是指针的地址和*p的内容都不能改变,int*p;是两者都能改变。

  • 第3题:

    若有定义“int b[8],*p=b;”,则p+6表示( )。A.数组元素b[6]的值B.数组元素b[6]的地址SX

    若有定义“int b[8],*p=b;”,则p+6表示( )。

    A.数组元素b[6]的值

    B.数组元素b[6]的地址

    C.数组元素b[7]的地址

    D.数组元素b[o]的值加上6


    正确答案:B
    指针中存放的是变量的地址,指针也可以进行增减运算,这时指针移动的最小单位是一个存储单元,而不是一个字节。所以题中p+6指的是将指针向后移动了6个存储单元,即指向b[6],存放的是b[6]的地址。

  • 第4题:

    若有定义语句: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]。

  • 第5题:

    若有以下定义: 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

  • 第6题:

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

    A.p+1

    B.a+1

    C.a++

    D.++p


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

  • 第7题:

    有如下定义语句: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

  • 第8题:

    有如下定义: 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。

  • 第9题:

    若有以下的定义, 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

  • 第10题:

    若已定义   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

  • 第11题:

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

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

    正确答案:A,C,D

  • 第12题:

    单选题
    若有以下定义      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
    解析: 暂无解析

  • 第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题:

    对于下述说明,不能使变量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。

  • 第15题:

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

    A.p+1

    B.a+1

    C.a++

    D.++p


    正确答案:C

  • 第16题:

    若有以下定义和语句: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

  • 第17题:

    在int a=10,* p=&a;语句中,p的值是( )。

    A.10

    B.变量p的地址

    C.变量a的地址

    D.随机数


    正确答案:C

  • 第18题:

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

    A、p = &x

    B、p = x

    C、*p = &x

    D、*p = *x


    参考答案A

  • 第19题:

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

    A.p+1

    B.a+1

    C.a++

    D.#NAME?


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

  • 第20题:

    若有定义和语句: 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

  • 第21题:

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

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

    正确答案:A

  • 第22题:

    若有以下定义      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

  • 第23题:

    问答题
    若已定义   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
    解析: 暂无解析

  • 第24题:

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

    元素a[5]的值

    B

    元素a[5]的地址

    C

    元素a[6]的值

    D

    元素a[6]的地址


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