问题 填空题

有以下程序:
#define N 20
fun(int a[],int n,int m)
inf i,j;
for(i=m;i>n;i--)a[i+1]=a[i];

main()
int i,a[N]=(1,2,3,4,5,6,7,8,9,10);
fun(a,2,9);
for(i=0;i<5;i++)printf(“%d”,a[i]);

程序运行后的输出结果是______。

答案

参考答案:12344

解析: 本题考查的是数组名作函数的实参。数组名可以作为实参传送,由于数组名本身是一个地址值,因此,在函数中对形参数组元素的修改也会相应改变实参数组的元素。在本题中,函数fun()通过一个for循环,将形参数组a中下标为n到m之间的元素向后移动一位,a[n]元素的值不变。所以主函数调用fun(a,2,9);之后,数组a的内容变成(1,2,3,4,4,5,6,7,8,9,10),最后通过for循环输出数组前5个元素为12344。

单项选择题
名词解释