若有以下定义和赋值语句,“int s[2][3],(*p)[3]; p=s;”,则对数组s的第i行第j列(假设i,j已正确说明并赋值)元素地址的合法引用为()。A.*(p+i)+jB.*(p[i]+j)C.(p+i)+jD.(*(p+i))[j]

题目

若有以下定义和赋值语句,“int s[2][3],(*p)[3]; p=s;”,则对数组s的第i行第j列(假设i,j已正确说明并赋值)元素地址的合法引用为()。

A.*(p+i)+j

B.*(p[i]+j)

C.(p+i)+j

D.(*(p+i))[j]


相似考题
参考答案和解析
A
更多“若有以下定义和赋值语句,“int s[2][3],(*p)[3]; p=s;”,则对数组s的第i行第j列(假设i,j已正确说明并赋值)元素地址的合法引用为()。”相关问题
  • 第1题:

    若有定义:inta[2][3],则对a数组的第i行j列元素地址的正确引用为()。

    A.*(a[i]+j)

    B.(a+i)

    C.*(a+j)

    D.a[i]+j


    正确答案:A

  • 第2题:

    若有说明int m[3][4]={3,9,7,8.5},(*q)[4];和赋值语句q=m;,则对数组元素m[i][j](其中O<=i<3,0<=j<4)值的正确引用为( )。

    A)(q i)[j]

    B)*q[il][j]

    C)*(*q[i] j)

    D)*(*(q i) j)


    正确答案:D
    (q i)指向第i行首地址, (*(q i) j)代表第i行第i个元素。

  • 第3题:

    若有说明int i,j=2, *P=&i;,则能完成i=j赋值功能的语句是_______。

    A.i=*p;

    B.*P2=*&j;

    C.i=&j;

    D.i=**p;


    正确答案:B
    解析:指针是一种用来存放变量地址的特殊变量。本题中指针变量p用于存放整型变量i的地址,改变*p的值即为改变i的值。又因为“&”和“*”两个运算符的优先级别相同,按自右而左的方向结合,所以*&j先进行&j运算,得j的地址,再进行*运算,取所得地址里面的值,故*&j与j等价。

  • 第4题:

    若有说明int i,j=2,*p=&i;,则能完成i=j赋值功能的语句是______。

    A.i=*p

    B.*P=*&j

    C.i=&j

    D.i=**p;


    正确答案:B
    解析:指针是—种用来存放变量地址的特殊变量。本题中指针变量p用于存放整型变量i的地址,改变*p的值即为改变i的值。又因为“&”和“*”两个运算符的优先级相同,按自右而左的方向结合,所以*&j运算选进行&j运算,得j的地址,再进行*运算,取所得地址里面的值,故*&j与j等价。

  • 第5题:

    若有定义int a[2][3];,则对a数组的第i行第j列(假设i,j已正确说明并赋值.元素值的正确引用为( )。

    A.*(*(a+i.+j.

    B.(a+i.[j]

    C.*(a+i+j.

    D.*(a+i.+j


    正确答案:A
    本题考查了二维数组元素的引用方法。选项A)中a+i指向了数组a的第i+1行。*(a+i)则是第i+1行第0列的地址值,*(a+i)+j指向了数组a第i+1行,j+1列,*(*(a+i)+j)取到的是数组a的a[i][j]元素。

  • 第6题:

    若有说明int m[3][4]={3,9,7,8.5},(*q)[4];和赋值语句q=m;,则对数组元素m[i][j](其中0<=i<3,0<=j<4)值的正确引用为( )。

    A.(q+i)[j]

    B.*q[i][j]

    C.*(*q[i]+j)

    D.*(*(q+i)+j)


    正确答案:D
    解析:*(q+i)指向第i行首地址,*(*(q+i)+j)代表第i行第j个元素。

  • 第7题:

    若有说明int i,j=2,*p&i;,则能完成i=j赋值功能的语句是______。A.i=*p;B.*p=*&j;C.i=&

    若有说明int i,j=2,*p&i;,则能完成i=j赋值功能的语句是______。

    A.i=*p;

    B.*p=*&j;

    C.i=&j;

    D.i=**p;


    正确答案:B
    解析:指针是一种用来存放变量地址的特殊变量。本题中指针变量P用于存放整型变量i的地址,改变*P的值即为改变i的值。又因为“&”和“*”两个运算符的优先级别相同,按自右而左的方向结合,所以*&j先进行&j运算,得j的地址,再进行*运算,取所得地址里面的值,故*&j与j等价。

  • 第8题:

    若有定义int a[2][3];,则对a数组的第i行第j列(假设i,j已正确说明并赋值)元素值的正确引用为

    A.*(*(a+i)+j)

    B.(a+i)[j]

    C.*(a+i+j)

    D.*(a+i)+j


    正确答案:A
    解析: 本题考查了二维数组元素的引用方法。选项A中a+i指向了数组a的第i+1行,*(a+i)则是第i+1行第0列的地址值,*(a+i)+j指向了数组a第i+1行,j+1列,*(*(a+i)+j)取到的是数组a的a[i][j]元素。

  • 第9题:

    有以下程序:struct S{int n;int a[20];};void f(struct S*P){int i,j,t;for(i=0;in-1;i++)fo

    有以下程序: struct S{int n;int a[20];}; void f(struct S*P) { int i,j,t; for(i=0;i<P->n-1;i++) for(j=j+1;j<P->n-1;j++) if(p->a[i]>p->a[j]) {t=P->a[i];p->a[i]=P->a[j];p->a[j]=t} } main() {int i;struct S s{10,{2,3,1,6,8,7,5,4,10,9}}; f(&s); for(i=0;i<s.n;i++)printf("%d",s.a[i]);} 程序运行后的输出结果是( )。

    A.3

    B.4

    C.5

    D.6


    正确答案:A
    解析:在主函数main()中定义了一个整型变量i和一个结构体变量s。f()函数中,定义了一个结构体指针类型的指针p,外层循环变量i表示数组的第i个元素,内层循环j表示数组的第i+1个元素,调用f()函数,通过指针变量p来引用结构体成员,并把它们进行从小到大排序,最后输出。

  • 第10题:

    (28)若有定义语句:char s[3][10],(*k)[3],*p;,则以下赋值语句正确的是

    A)p=s;

    B)p=k;

    C)p=s[0];

    D)k=s;


    正确答案:C

  • 第11题:

    若有以下程序段,其中0<=i<4,0<=j<3,则不能正确访问a数组元素的是() int i,j,(*p)[3]; int a[][3]={1,2,3,4,5,6,7,8,9,10,11,12}; p=a;

    • A、*(*(a+i)+j)
    • B、p[i][j]
    • C、(*(p+i))[j]
    • D、p[i]+j

    正确答案:D

  • 第12题:

    单选题
    若有说明inti,j=2,*p=&i;,则能完成i=j赋值功能的语句是()。
    A

    i=*p

    B

    *p=*&j

    C

    i=&j

    D

    i=**p


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

  • 第13题:

    若有定义char s[3][4];以下对数组元素s[i][j]的各种引用形式中错误的是()。

    A.*s[i]j

    B.*sij

    C.s[i][j]

    D.**sij


    正确答案:B

  • 第14题:

    若有说明int i,j=2,*p=&i;,则能完成i=j赋值功能的语句是 ( )

    A.i=*p;

    B.*p=*&j

    C.i=&j

    D.i=* *p;


    正确答案:B

  • 第15题:

    若有说明int i,j=2,*p=&i;,则能完成i=j赋值功能的语句是______。A.i=*p;B.*p=*&j;C.i=&am

    若有说明int i,j=2,*p=&i;,则能完成i=j赋值功能的语句是______。

    A.i=*p;

    B.*p=*&j;

    C.i=&j;

    D.i=**p;


    正确答案:B
    解析:指针是一种用来存放变量地址的特殊变量。本题中指针变量p用于存放整型变量i的地址,改变*p的值即为改变i的值。又因为“&”和“*”两个运算符的优先级别相同,按自右而左的方向结合,所以*&j先进行&j运算,得j的地址,再进行*迄算,取所得地址里面的值,故*&j与j等价。

  • 第16题:

    若在以下定义和赋值语句,则才s数组的第i行第j列(假设i,j已正确说明并赋值)元素地址的合法引用为 int s[2][3]={0},( *p)[3]; p=s;

    A.*(*(p+i)+j)

    B.*(p[i]+j)

    C.(p+i)+j

    D.(*(p+i))[j]


    正确答案:A
    解析:p+i是数组s的第i+1行的首地址,而*(p+i)则是数组第i+1行第1列的元素的地址,*(p+i)+j则是第i+1行的第j+1列的地址,*(*(p+i)+j)引用的是数组元素s[i][j]的值。注意:通过建立一个指针数组来引用二维数组元素。

  • 第17题:

    若有定义: “inta[2Ⅶ3];”则对a数组的第i行第j列元素的正确引用为( )

    A.**(a+i)+j)

    B.(a+i)[j]

    C.*(a+i+j)

    D.*(a+i)+j


    正确答案:A
    解析:本题考查如何通过地址来引用数组元素。通过地址来引用数组元素的方法有5种:①a[i][j];②*(a[i]+j);⑧*(*(a+i)+j);④*(a[i] [j];⑤*(&a[0][0]+3*i+j)。

  • 第18题:

    若有以下程序段,其中0<=i<4,0<=j<3,则不能正确访问a数组元素的是()int i,j,(*p)[3];int a[][3]={1,2,3,4,5,6,7,8,9,10,11,12};p=a;

    A.*(*(a+i)+j)

    B.p[i][j]

    C.(*(p+i))[j]

    D.p[i]+j


    参考答案:D

  • 第19题:

    若有定义语句:char s[3][10],(*k)[3],*p;,则以下赋值语句正确的是;

    A.p=s;

    B.p=k

    C.p=s[0]

    D.k=s;


    正确答案:C

  • 第20题:

    若有定义:"int a[2][3];"则对a数组的第i行第j列无素的正确引用为( )。

    A.*(*(a+i)+j)

    B.(a+i) [j]

    C.*(a+i+j)

    D.*(a+i)+j


    正确答案:A
    解析:本题考查如何通过地址来引用数组元素。通过地址来引用数组元素的方法有下列5种:①a[i][j]; ②*(a[i]+j); ③*(*(a+i)+j); ④*(a[i])[j]; ⑤*(&a[0][0]+3*i+j)。

  • 第21题:

    若有定义:int a[2][3];则才a数组的第i行第j列(假调i,j已正确说明并赋值)元素值的正确引用为

    A.*(*(a+i)+j)

    B.(a+i)[j]

    C.*(a+i+j)

    D.*(a+i)+j


    正确答案:A
    解析:本题考查了二维数组元素的引用方法。选项A中a引指向了数组a的第i+1行,*(a+i)则是第i+1行第0列的地址值,*(a+i)+j指向了数组a第i+1行,j+1列,*(*(a+i)+j)取到的是数组a的a[i][j]的元素。

  • 第22题:

    若有说明inti,j=2,*p=&i;,则能完成i=j赋值功能的语句是()。

    • A、i=*p
    • B、*p=*&j
    • C、i=&j
    • D、i=**p

    正确答案:B

  • 第23题:

    若有定义:inta[3][4];则对a数组的第i行第j列(假设i,j已正确说明并赋值)元素值的不正确引用为()

    • A、*(*(a+i)+j)
    • B、*(a+i)[j]
    • C、*(a+i+j)
    • D、*(a[i]+j)

    正确答案:C

  • 第24题:

    单选题
    若有以下程序段,其中0<=i<4,0<=j<3,则不能正确访问a数组元素的是() int i,j,(*p)[3]; int a[][3]={1,2,3,4,5,6,7,8,9,10,11,12}; p=a;
    A

    *(*(a+i)+j)

    B

    p[i][j]

    C

    (*(p+i))[j]

    D

    p[i]+j


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