有以下程序: #include<stdio.h> voidfun(int a[],int n) { int i,t; for(i=0;i<n/2;i++) { t=a[i]; a[il=a[n-1-i]; a[n-1-i]=t; } } main( ) {

admin2022-06-24  58

问题 有以下程序:
#include<stdio.h>
voidfun(int a[],int n)
{
int i,t;
for(i=0;i<n/2;i++)
{
t=a
a[il=a[n-1-i];
a[n-1-i]=t;
}
}
main( )
{
int k[10]={1,2,3,4,5,6,7,8,9,10},i;
fun(k,5);
for(i=2;i<8;i++)
printf("%d",k);
printf("\n");
}
程序运行的结果是(          )。

选项 A、3456787
B、876543
C、1098765
D、321678

答案D

解析 由于数组名本身是一个地址,所以在用数组名作为实参传递时,对应的形参相当于一个指针变量,在函数中可以通过指针变量来引用数组元素,从而改变元素的值。本题中函数fun的作用是将数组a的前n个元素进行逆转,fun(k,5)的结果是数组k的前五个元素1、2、3、4、5变为5、4、3、2、1。逆转后,输出数组中第3个至第8个元素。
转载请注明原文地址:https://kaotiyun.com/show/BGkp777K
0

最新回复(0)