有以下程序: void sum(int a[]) { a[0]=a[-1]+a[1]; } main() {int a[10]={1,2,3,

12 查阅

有以下程序: 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解析:本题将主函数中a[2]的地址传递给了sum函数中的形参a[],使得sum函数中的(a+0)为主函数中a[2]的址,所以 a[-1]即*(a-1)的值为主函数中a[1]的值;a[1]即*(a+1)的值为主函数中a[3]的值,故函数sum中a[0]=2+4,由于此函数中的 a是指向主函数中的a[2],所以主函数中的a[2]的值即为6。

计算机二级