问题 单项选择题

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

答案

参考答案:A

解析: 在主函数main()中,语句“sum(&a[2]);”把数组元素a[0]的地址传递给了sun函数的形参a[],使得sum函数中的“(a+0)”为主函数中a[2]的地址,所以a[-1]的值为主函数中a[1]的值;a[1]的值为主函数中a[3]的值,故函数sum中a[0]=2+4=6,由于此函数中的a是指向主函数中的a[2],所以a[2]的值为6。

单项选择题
判断题