问题 单项选择题

有以下程序:
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] );
print f ("%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[1]=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符合题意。

名词解释
单项选择题