c++二级试题

来源:百度知道 编辑:UC知道 时间:2024/05/02 18:22:06
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)9

需要详细的解释,又追加

程序的输出结果为6,所以选择A答案。
解释如下:
语句sum(&a[2]); 的意思是说把字符串a的以下标为2开始传到函数sum()中去,即从3开始的数到最后传到函数sum()中去使用。
语句a[0]=a[-1]+a[1]; ,由于传过来后,3所对应的下标就变为了0,所以-1的下标指到了2,1的下标对应4,他们之和即为6.
由于数组经过了运算,所以主函数中下标为2的地方的数字以函数sum中的下标为0的数代替变为6,所以主函数中输出a[2]即输出数字6.