更多“以下程序int aa[3][3]={{2},{4},{6}};main(){int i,*p=&amp;aa[0][0];for(i=0;i<2;i++){ if(i==0 ”相关问题
  • 第1题:

    有以下程序的输出结果是( ) void sum(int *a) { a[0]=a[1];} main( ) { int aa[10]={1,2,3,4,5,6,7,8,9,10},i; for(i=2;i>=0;i--) sp; sum(&aa[i]); printf(“%d\n”,aa[0]); }

    A.4

    B.3

    C.2

    D.1


    正确答案:A
    解析:在本题中,由于函数中的参数为指针,因此在main函数中的变量可能会发生改变。程序执行过程为
      i  sum(&aa[i])
      2  aa[2]=4
      1  aa[1]=4
      0  aa[0]=4

  • 第2题:

    有以下程序:void sum(int *a){ a[0]=a[1]; }main(){ int aa[10]={1,2,3,4,5,6,7,8,9,10}, i; for(i=2;i>=0;i--) sum(&aa[i]); printf("%d\n", aa[0]);}执行后的输出结果是( )。

    A.4

    B.3

    C.2

    D.1


    正确答案:A
    解析:本题中函数sum(int*a)的作用是:将形参a所指的数组中的第二个元素的值a[1]赋给第一个元素a[0]主函数中定义一个长度为10的整型数组并赋初值,接着执行一个for循环,该循环共执行了3次。当i=2时,调用函数sum(&aa[2],主函数小将&aa[2]作为实参传给行参a,所以此时形参a所指的数组的第一个元素和第二个元素分别为aa[2]和aa[3],故执行完该函数后将aa[3]的值赋给aa[2],即aa[2]=aa[3]=4,当i=1时,调用函数sum(&aa[1]),主函数中将&aa[1]作为实参传给行参a,所以此时形参a所指的数组的第一个元素和第二个元素分别为aa[1]和aa[2],故执行完该函数后将aa[2]的值赋给aa[1],即aa[1]=aa[2]=4:当i=0时:调用函数sum(&aa[0]),主函数中将&aa[0]作为实参传给行参a,所以此时形参a所指的数组的第一个元素和第二个元素分别为aa[0]和aa[1],故执行完该函数后将aa[1]的值赋给aa[0],即aa[0]=aa[1]=4:故最后输出的aa[0]的值为4,所以,4个选项中选项A符合题意。

  • 第3题:

    有以下程序: void sum(int *a) { a[0]=a[1]; ) main() { int aa[10]={1,2,3,4,5,6,7,8,9,10}, i; for(i=2;i>=0;i--) sum(&aa[i]); printf("%d\n",aa[0]); } 执行后的输出结果是( )。

    A.4

    B.3

    C.2

    D.1


    正确答案:A
    解析:主函数中定义一个长度为10的整型数组并赋初值,接着执行一个for循环,该循环共执行了3次。当i=2时,调用函数sum(&aa[2]),主函数中将&aa[2]作为实参传给行参a,所以此时形参a所指的数组第一个元素和第二个元素分别为aa[2]和aa[3],故执行完该函数后将aa[3]的值赋给aa[2],即aa[2]=aa[3]=4,当i=1时,调用函数sam(&aa[1]),主函数中将&aa[1]作为实参传给行参a,所以此时形参a所指的数组第一个元素和第二个元素分别为aa[1]和aa[2],故执行完该函数后将aa[2]的值赋给aa[1],即aa[1]=aa[2]=4:当i=0时:调用函数sum(&aa[0]),主函数中将&aa[0]作为实参传给行参a,所以此时形参a所指的数组第一个元素和第二个元素分别为aa[0]和aa[1],故执行完该函数后将aa[1]的值赋给aa[0],即“aa[0]=aa[1]=4;”最后输出的aa[0]的值为4,所以,4个选项中选项A符合题意。

  • 第4题:

    以下程序 int aa[3][3]={{2},{4},{6}}; main() { int i,*p=&aa[0][0]; for(i=0;i<2;i++){ if(i==0)aa[i][i+1]=*p+1; else ++p; printf("%d",*p); } } 的输出是______。

    A.23

    B.26

    C.33

    D.36


    正确答案:A
    解析:观察题目,可以发现,*p=&aa[0][0]语句实际是将数组aa的首地址赋给了指针变量p,将i的值带入for循环中,i=0时,aa[0][1]=3,*p=2;*p输出的是指针所指向的数组值,此时p所指向的是aa[O][0],输出2,而i=1时执行了++p操作使指针向后移动指向了aa[0][1],所以在输出*p时应为3。

  • 第5题:

    有以下程序 void sum(int *a) { a[0]=a[1];} main() { int aa[10]={1,2,3,4,5,6,7,8,9,10},i; for(i=2;i>=0;i--)sum(&aa[i]); printf("%d\n",aa[0]); } 执行后的输出结果是

    A.4

    B.3

    C.2

    D.1


    正确答案:A
    解析:本题中函数sum(int *A) 的作用是:将形参a所指的数组中的第二个元素的值a[1]赋给第一个元素a[0]。主函数中定义一个长度为10的整型数组并赋初值,接着执行一个for循环,该循环共执行了3次。当i=2时,调用函数sum(&aa[2]),主函数中将&aa[2]作为实参传给形参a,所以此时形参a所指的数组的第一个元素和第二个元素分别为aa[2]和aa[3],故执行完该函数后将aa[3]的值赋给aa[2],即aa[2]=aa [3]=4,当i=1时,调用函数sum(&aa(1)),主函数中将&aa[1]作为实参传给形参a,所以此时形参。所指的数组的第一个元素和第二个元素分别为aa[1]和aa[2],故执行完该函数后将aa[2]的值赋给aa[1],即aa[1]=aa[2]=4;当i=0时:调用函数sum(&aa [0]),主函数中将&aa[0]作为实参传给形参a,所以此时形参a所指的数组的第一个元素和第二个元素分别为aa[0]和aa[1],故执行完该函数后将aa[1]的值赋给aa[0],即aa [0]=aa[1]=4;故最后输出的aa[0]的值为4。