有以下程序 main( ) { int a[ ][3]={{1,2,3},{4,5,0}},(*pa)[3],i; pa=a; for(i=0;i<3;i++) if(i<2) pa[1][i]=pa[1][i]-1; else pa[1][i]=1; printf("%d\n",a[0][1]+a[1][1]+a[1][2]); } 执行后输出结果是A.7B.6C.8D.无确定值

题目

有以下程序 main( ) { int a[ ][3]={{1,2,3},{4,5,0}},(*pa)[3],i; pa=a; for(i=0;i<3;i++) if(i<2) pa[1][i]=pa[1][i]-1; else pa[1][i]=1; printf("%d\n",a[0][1]+a[1][1]+a[1][2]); } 执行后输出结果是

A.7

B.6

C.8

D.无确定值


相似考题
更多“有以下程序 main( ) { int a[ ][3]={{1,2,3},{4,5,0}},(*pa)[3],i; pa=a; for(i=0;i&lt;3; ”相关问题
  • 第1题:

    有以下程序,程序执行后,输出结果是【】include void fun(int*A) {a[0]=a[1];} main() {i

    有以下程序,程序执行后,输出结果是【 】

    include<stdio.h>

    void fun(int*A)

    { a[0]=a[1];}

    main()

    { int a[10]={10,9,8,7,6,5,4,3,2,1,},i;

    for(i=2;i>1=0;i-) fun(&a[i]);

    for(i=0;i<10;i++) printf("%d,a[i]);

    printf("\n");

    }


    正确答案:7777654321
    7777654321 解析:本题主要考查函数的调用,第—次调用把数组元素a[2]的地址赋给a,此时a[1]即是原数组的a[3]等于7,再执行赋值语句a[0]=a[1],则a[0]和a[1]中的值都是7,然后再把这个值返回给a[2]同样地第二次调用的时候函数返回值也是7,第三次调用返回值也是7,因此数组的前4个元素,即对a[0]、a[1]、a[2]和a[3]的值都为7,当执行第二个for循环时输出数组中所有元素的值7777654321。

  • 第2题:

    有以下程序: main() { int a[][3]={{1,2,3},{4,5,0}},(*pa)[3],i; pa=a; for(i=0;i<3;i++) if(i<2) pa[1][i]=pa[1][i]-1; else pa[1][i]=1; printf("%d\n",a[0][1]+a[1][1]+a[1][2]); } 执行后输出结果是( )。

    A.7

    B.6

    C.8

    D.无确定值


    正确答案:A
    解析:本题定义了一个指向由3个元素组成的一维数组的指针变量pa,通过赋值让它指向具有2行3列的数组a,此时用指针变量pa,表示数组元素a[i][j]的形式是pa[im][j])。for循环执行了3次;第一次i值为0,执行pa[1][0]=pa[1][0]-1,执行后a[1][0]的值变为3;第二次i值为1,执行pa=[1][1]=pa[1][1]-1,执行后a[1][1]的值为4;第三次i值为2,执行pa[1][2]=1,执行后a[1][2]的值变为1。故prinff语句输入的值为2+4+1=7。所以,A选项为所选。

  • 第3题:

    有以下程序 main() { int a[][3]={{1,2,3},{4,5,0}},(*pA) [3],i; pa=a; for(i=0;i<3;i++) if(i<2)Pa[1][i]=pa[1][i]-1; else pa[1][i]=1; printf("%d\n",a[0][1]+a[1][1]+a[1][2]); } 执行后输出结果是

    A.7

    B.6

    C.8

    D.无确定值


    正确答案:A
    解析:本题定义了一个指向由3个元素组成的一维数组的指针变量pa,通过赋值让它指向具有2行3列的数组a;此时用指针变量pa,表示数组元素a[i][j]的形式是Pa[i][j]。for循环执行了3次:第一次i值为0,执行pa[1][0]=pa[1][0]-1,执行后a[1][0]的值变为3;第二次i值为1,执行Pa[1][1]=Pa[1][1]-1,执行后a[1][1]的值为4;第三次i值为2,执行pa[1][2]=1,执行后a[1][2]的值变为1。故printf语句输入的值为2+4+1=7。

  • 第4题:

    有以下程序: main() { int a[][3]={{1,2,3),{4,5,0)),(*pa)[3],i; pa=a; for(i=0;i<3;i++) if(i<2) pa[1][i]=pa[1][i]-1; else pa[1][i]=1; printf("%d\n",a[0][1]+a[1] [1]+a[1] [2]); } 执行后输出结果是( )。

    A.7

    B.6

    C.8

    D.无确定值


    正确答案:A
    解析:本题定义了一个指向由3个元素组成的一维数组的指针变量pa,通过赋值让它指向具有2行3列的数组a,此时用指针变量pa,表示数组元素a[i][j]的形式是pa[i][j]。for循环执行了3次;第一次i值为0,执行pa[1][0]=pa[1][0]-1,执行后a[1][0]的值变为3;第二次i值为1,执行pa[1][1]=pa[1)[1]-1,执行后a[1][1]的值为4;第三次i值为2,执行pa[1][2]=1,执行后a[1][2]的值变为1。故printf语句输入的值为2+4+1=7。所以,A选项为所选。

  • 第5题:

    有以下程序

    main( )

    { int a[][3]={{1,2,3},{4,5,0)},(*pa)[3],i;

    pa=a;

    for(i=0;i<3;i++)

    if(i<2)pa[1][i]=pa[1][i]-1;

    else pa[1][i]=1;

    cout<<a[1][1]+a[1][1]+a[1][2]<<endl;

    }

    执行后输出结果是

    A.7

    B.6

    C.8

    D.无确定值


    正确答案:A
    解析:本题考察对二维数组的使用。按照要求分析各个数组元素的位置,即可以正确的得到答案为A。