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

admin2009-01-15  23

问题 有以下程序    #define N 20    fun(int  a[],int  n,:Int  m)    {  int i,i;       for(i=m;  i>n;  i--)  a[i+1);a;    }    main()    {  int  i,a[N]={1,2,3,4,5,6,7,8,9,10};       fuu(a,2,9);        for(i=0;  i<5;  i++)  printf("%d",a);    }      程序运行后的输出结果是

选项 A、10234
B、12344
C、12334
D、12234

答案4

解析 数组名可以作为实参传送,由于数组名本身是一个地址值,因此,在函数中对形参数组元素的修改也会相应改变实参数组的元素.在本题中,函数fun()通过一个for循环,将形参数组a中下标为n到m之间的元素向后移动一位,a[n]元素的值不变。所以主函数调用fun(a,2,9);之后,数组a的内容变成{1,2,3,3,4,5,5,6,7,8,9,10},最后通过for循环输出数组前5个元素为12334。选项C符合题意。
转载请注明原文地址:https://kaotiyun.com/show/6dHp777K
0

最新回复(0)