niusouti.com

设有以下定义: 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)+2D.*(*(a+1)+2)

题目

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


相似考题
更多“设有以下定义:int a[3][3]={1,2,3,4,5,6,7,8,9};int(*Ptr)[3]=a,*p=a[0];则下列能够正确表示数组 ”相关问题
  • 第1题:

    以下程序的输出结果是 () include int a [3] [3]={1,2,3,4,5,6,7,8,9},*p; main()

    以下程序的输出结果是 ( ) #include<stdlib.h> int a [3] [3]={1,2,3,4,5,6,7,8,9},*p; main( ) { p=(int *)malloc(sizeof(int)); f(p,a); printf("%d\n",*p); } f(int *s,intp[][3]) { *s=p[1][1]; }

    A.1

    B.4

    C.7

    D.5


    正确答案:D

  • 第2题:

    设有数组的定义int[] a = new int[3],则下面对数组元素的引用错误的是( )。

    A.a[0];

    B.a[A.length-1];

    C.a[3];

    D.int i=1; a[i];


    参考答案:C

  • 第3题:

    以下数组定义中不正确的是______。

    A.int a[2][3];

    B.int b[][3]={0,1,2};

    C.int c[100][100]={0};

    D.int d[3][]={{1,2},{1,2,3},{1,2,3,4}};


    正确答案:D
    解析:一维数组的定义方式为:类型说明符数组名[常量表达式];选项A符合此定义形式,正确;C语言中多维数组赋初值时可以部分赋值,也可以不指定除第一维以外的其他维的大小,故选项C正确;另外,如果对全部数组元素都赋初值,则定义数组时对第一维的长度可以不指定,但第二维的长度不能省,所以选项B正确,而选项D是错误的。

  • 第4题:

    以下数组定义中不正确的是 ______。

    A.int a[2][3];

    B.int b[][3]={0,1,2};

    C.int c[100][100]{0};

    D.int d[3][]={{1,2},{1,2,3},{1,2,3,}};


    正确答案:D
    解析:一维数组的定义方式为:
    类型说明符数组名[常量表达式];
    选项A符合此定义形式,正确;C语言中多维数组赋初值时可以部分赋值,也可以不指定除第一维以外的其他维的大小,故选项C正确;另外,如果对全部数组元素都赋初值,则定义数组时对第一维的长度可以不指定,但第二维的长度不能省,所以选项B正确,而选项D是错误的。

  • 第5题:

    设有以下定义和语句: int a[3] [2]={1,2,3,4,5,6}, * p[3]; p[0] =a[1]; 则.(P[0]+1)所代表的数组元素是( )。

    A.a[0][1]

    B.a[1][0]

    C.s[1][1]

    D.a[1][2]


    正确答案:C
    解析:*p[3]是指针数组,它由3个指向整型数据的指针元素组成,p[0]=a[1]是将a数组第一行的首地址赋给第0个指针元素,p[0]+1表示a[1]+1即a[1][1]的地址,所以*(p[0]+1)表示a[1][1]。

  • 第6题:

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

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

    B.a[2][3]

    C.(*ptr+1)+2

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


    正确答案:D
    解析:指针变量ptr是指向长度为3的整型一维数组,当ptr指向二维数组a时,ptr每移动一个单位将指向数组的下一行,*(*(a+1)+2)表示数组元素a[1][2],*(*(ptr+1)+2)也可以。

  • 第7题:

    以下数组定义中不正确的是 ______。

    A.int a[2][3]

    B.int b[][3]={0};

    C.int c[1][1]={0};

    D.int d[3][]={{1,2},(1,2,3}{1,2,3,4}};


    正确答案:D

  • 第8题:

    以下数组定义中不正确的是().

    • A、int a[2][3];
    • B、int b[][3]={0,1,2,3};
    • C、int c[100][100]={0};
    • D、int d[3][]={{1,2},{1,2,3},{1,2,3,4}};

    正确答案:D

  • 第9题:

    设有以下定义: inta[4][3]={1,2,3,4,5,6,7,8,9,10,11,12}; 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

  • 第10题:

    下列数组定义语句中,不合法的是()

    • A、int a[3]={0,1,2,3};
    • B、int a[]={0,1,2};
    • C、int a[3]={0,1};
    • D、int a[3]={0};

    正确答案:A

  • 第11题:

    单选题
    设有以下定义:int a[4][3]= 11,3,5.9.11,13,15,17,19,21,23,251 ;int( *pr)[3]=a,*p=a[0] ;则下列能够正确表示数组元素a[1][2]的表达式是()
    A

    *((*prt+1)[2])

    B

    *(*(p+5))

    C

    *prt+1)+2

    D

    *(*(a+1)+2)


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

  • 第12题:

    单选题
    若有定义:int a[10],*p=a;则表示数组元素a[3]的错误选项是()。
    A

    *(a+=3)

    B

    *(p+=3)

    C

    *(a+3)

    D

    p[3]


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

  • 第13题:

    若有定义“int*p[3];”,则以下叙述中正确的是( )。

    A.定义了一个基类型为int的指针变量p,该变量具有3个指针

    B.定义了一个指针数组p,该数组含有3个元素,每个元素都是基类型为int的指针

    C.定义了一个名为*p的整型数组,该数组含有3个int类型元素

    D.定义了一个可指向一维数组的指针变量p,所指一维数组应具有3个int类型元素


    正确答案:B
    解析:本题定义了一个指针数组p,每个元素都是基类型为int,它的长度为3即该数组含有3个元素。选项A、C和D都不正确,只有选项B符合题意。

  • 第14题:

    下列程序段的输出结果是______。 static int a[3]={1,2,3}; int**ptr,*p; p=a;ptr=&p; (ptr[0]++)[1]+=3; printf("%d,%d,%d\n",**ptr,*p,a[0]);

    A.5,5,10

    B.1,5,5

    C.5,5,1

    D.输出结果不确定


    正确答案:C
    解析:ptr指向指针变量p,p指向数组a的首地址,(ptr[0]++)[1]+=3;的意思是将p指向数组元素a[1],并将它的值增3变为5,此时,ptr指向p,p指向a[1]。

  • 第15题:

    以下程序的输出结果是includeint a[3][3]={1,2,3,4,5,6,7,8,9,},*p;main(){p=(int*)ma

    以下程序的输出结果是 #include<stdio.h> int a[3][3]={1,2,3,4,5,6,7,8,9,},*p; main() { p=(int*)malloc(sizeof(int)); f(p,a); printf("%d\n",*p); free(p);} f(int *s, int p[][3]) { *s=p[1][1];}

    A.1

    B.4

    C.7

    D.5


    正确答案:D
    解析:本题考查了二维数组元素引用的方法。题中用动态存储分配函数malloc分配了一个int型数据长度大小的内存,然后指针p指向了这段内存,函数f()中对p所指向的数据进行了赋值,p[1][1]为二维数组第二行第二列的元素,对应于实参a的元素5,所以输出结果为5。

  • 第16题:

    有以下定义: int a[4] [3]={1,2,3,4,5,6,7,8,9.10,11,12}; 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)


    正确答案:C
    解析:本题定义了一个二维数组a,一个含有3个元素的指针数组ptr和一个指针变量p,并使指针数组和指针变量p指向数组a。

  • 第17题:

    定义变量和数组如下:int i;int x[3][3]=(1,2,3,4,5,6,7,8,9);则语句for(i=0;i<3;i++)printf(”%d”,x[1][2-i]);的输出结果是 ( )


    正确答案:C

  • 第18题:

    若有以下语句,且0≤K<6,则(36)是对数组元素地址的正确表示。 static int x[]={1,3,5,7,9,11},*ptr,k; ptr=x;

    A.x++;

    B.&ptr

    C.&(x+1)

    D.&ptr[k]


    正确答案:D
    解析:本题考查数组和指针的具体应用。数组是高级程序语言中常用的一种数据结构。数组有上界和下界,数组的元素在上下界内是连续的。数组名一般对应数组在存储器中的起始地址。在题目给出的代码中,我们可以看到,声明了一个名为x的数组和一个指针变量ptr,并把数组的首地址赋给了指针变量ptr。要取数组中的第k个元素可以用x[k]、*(x+k)或*(pb+k);要取数组中第k个元素的地址则用&ptr[k]。

  • 第19题:

    设有数组定义:int a[ ] = { 11 , 22 , 33 , 44 , 55 , 66 , 77 , 88 , 99 }; 则执行以下几个语句后的输出结果是 ()、() 、() 。 for ( int i = 0 ; i < a.length ; i ++ ) if ( a[i]%3==0 ) System.out.println(a[i]);


    正确答案:33;66;99

  • 第20题:

    设有C语句int a[3][4];, 则每次移动过a数组一行元素的指针变量定义形式是()

    • A、int *p;
    • B、int **p;
    • C、int(*p)[4];
    • D、int *p[4];

    正确答案:C

  • 第21题:

    若有定义:int a[10],*p=a;则表示数组元素a[3]的错误选项是()。

    • A、*(a+=3)
    • B、*(p+=3)
    • C、*(a+3)
    • D、p[3]

    正确答案:A

  • 第22题:

    定义如下变量和数组: int i; int x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是()。 for(i=0;i<3;i++) printf("%d",x[i][2-i]);

    • A、159
    • B、147
    • C、357
    • D、369

    正确答案:C

  • 第23题:

    单选题
    设有以下定义: inta[4][3]={1,2,3,4,5,6,7,8,9,10,11,12}; 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)


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