有以下程序: void sum(int a[]) {a[0]=a[-1]+a[1];} main() {int a[10]={1,2,3,4,5,6,7,8,9,10}; sum(&a[2]); printf("%d\n",a[2]); } 程序运行后的输出结果是( )。A.6B.7C.5D.8

题目

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

A.6

B.7

C.5

D.8


相似考题
更多“有以下程序:void sum(int a[]){a[0]=a[-1]+a[1];}main(){int a[10]={1,2,3,4,5,6,7,8,9,10};sum( ”相关问题
  • 第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=1;i>0;i--)sum(&aa[i]); printf("%d\n",aa[0]); } 程序运行后的输出结果是______。

    A.4

    B.3

    C.2

    D.1


    正确答案:D
    解析:C语言规定,实参变量对形参变量的数据传递是“值传递”,只由实参传给形参,而不能由形参传回来给实参。函数调用结束后,形参单元被释放,实参单元仍保留并维持原值。本题要求输出aa[0]的值,结果应为1。

  • 第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=1;i>0;i--)sum(&aa[i]); print("%d\n",aa[0]); } 程序运行后的输出结果是 ______。

    A.4

    B.3

    C.2

    D.1


    正确答案:D
    解析:C语言觌定,实参变量对形参变量的数据传递是“值传递”,只由实参传给形参,而不能由形参传回来给实参。函数调用结束后,形参单元被释放,实参单元仍保留并维持原值。本题要求输出aa[0]的值,结果应为1。

  • 第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
    解析:本题中函数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。

  • 第4题:

    有以下程序的输出结果是( ) 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

  • 第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,所以此时形参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符合题意。

  • 第6题:

    有以下程序: 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符合题意。