有以下程序 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[

admin2009-04-15  19

问题 有以下程序     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);      printf("%d\n",aa[0]);    }    执行后的输出结果是

选项 A、4
B、3
C、2
D、1

答案1

解析 本题中函数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。
转载请注明原文地址:https://kaotiyun.com/show/VoWp777K
0

最新回复(0)