问题 单项选择题

有以下程序:
#include <stdio.h>
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

解析: 本题考查的是数组和函数。sum()函数接收一个int型数组作参数,也可以把它看做是一个int型指针,语句a[0]=a[-1]+a[1]; 的意思是将参数指针指向内容的前一个元素和后一个元素的值相加放到指针所指的位置。因此,主函数中调用sum(&a[2]);的意思就是让a[2]=a[1]+a[3]; ,所以最后输出的结果是6。应该选择A)。

选择题
判断题