niusouti.com
参考答案和解析
正确答案:D
解析:p指向的a的首地址,由于C语言是行优先存储的,一维数组p就依次存放了a中从第0行到第2行的所有元素,因此a[1][i]就对应了p[3]~p[5]。
更多“有以下程序:main(){int a[3][3],*p,i; p=&amp;a[0][0]; for(i=0;i<9;i++)p[i]=i; for(i=0;i<3;i+ ”相关问题
  • 第1题:

    有以下程序: main() { int a[3][3],*P,i; p=&a[0][0]; for(i=0;i<9;i++)p[i]=i; for(i=0;i<3;i++)printf("%d",a[1][i]); } 程序运行后的输出结果是( )。

    A.0 1 2

    B.1 2 3

    C.2 3 4

    D.3 4 5


    正确答案:D
    解析:本题的考点是C语言的指针。p指向二维数组a的首地址,而二维数组是按行存放的。因此“。for(i=0;i9;i++)p[i]=i;”的结果是等价于a[3][3]={0,1,2,3,4,5,6,7,8},也就是a[3][3]={{0,1,2),{3,4,5),{6,7,8}}。因此a[1][i](i=0,1,2)的结果是3、4、5。输出结果应该是:3 4 5。

  • 第2题:

    有以下程序:includemain() {int a[3][3],*p,i; p=&a[0][0]; for(i=0;i<9;i++) p[i

    有以下程序: #include <stdio.h> main() { int a[3][3],*p,i; p=&a[0][0]; for(i=0;i<9;i++) p[i]=i+1; printf("%d\n",a[1][2]); } 程序运行后的输出结果是( )。

    A.3

    B.6

    C.9

    D.2


    正确答案:B
    解析:本题考查指向数组元素的指针变量。p=&a[0][0]是把该数组的第一个元素a[0][0]的地址赋给指针变量p,a[1][2]是数组中的第6个元素,根据for循环中的赋值可知,输出结果是6。

  • 第3题:

    有以下程序 main() { int a[3][3], *p, i; p = &a[0][0]; for(i = 0;i < 9;i++) p[i] = i; for(i = 0;i<3;i++) printf("%d",a[1][i]); } 程序运行后的输出结果是______。

    A.012

    B.123

    C.234

    D.345


    C

  • 第4题:

    有以下程序: main() { int a[3],[3]*p,i; p=&a[0][0]; for(i=0;i<9;i++)p[i]=i; for(i=0;i<3;i++)printf("%d",a[1][i]); } 程序运行后的输出结果是 ______ 。

    A.12

    B.123

    C.234

    D.345


    正确答案:D
    解析:本题赋值后,a的数组元素的值分别为a[0][0]=0,a[0][1]=1,a[0][2]=2,a[1][0]=3,a[1][1]=4,a[1][2]=5,a[2][0]=6 a[2][1]=7,a[2][2]=8,故本题输出的值为345。

  • 第5题:

    有以下程序 main() { int a[3][3],*p,i; p=&a[0][0]; for(j=0;i<9;i++)p[i]=i; for(i=0;i<3;i++)printf("%d",a[1][i]); } 程序运行后的输出结果是

    A.12

    B.123

    C.234

    D.345


    正确答案:D
    解析:本题考查二维数组和指针,首先使指针p指向二维数组的首地址,通过第一个for循环对一维数组p赋值,其实也就是给二维数组a赋值,a[0][0]~a[2][2]分别赋以0~8,所以a[1][0],a[1][1],a[1][2]分别为3,4,5。