有如下程序:
#include<stdio.h>
struet pair
{
int first,second;
};
struet pair get_min_max(int*array,int len)
{
int i;
struet pair res;
res.first=array[0];
res.second=array[0];
for(i=1;i< len;i++)
{
if(array[i]< res.first)
res.first=array[i];
if(array[i] >res.second)
res.second=array[i]:
}
return res;
}
main()
{
int array[5]={9,1,3,4};
struet pair min_max=get_min_max(array,5)
printf("min=%d,max=%d\n",min_max.first,min_max.second);
}
程序运行后的输出结果是( )。
【正确答案】 B
【答案解析】在对数组进行初始化时,如果在说明数组时给出了长度,但没有给所有的元素赋予初始值,那么C语言将自动对余下的元素赋初值0,则array[5]={9,1,3,4,0}。程序的执行过程为:调用函数get_min_max(array,5),将数组array的首地址传入函数,定义结构体变量res,并为其成员赋值。for循环查找数组array的最小值0,将其赋值给res的成员first,查找数组最大值9,并将其赋值给res的成员second。最后返回结构体变量res,则min_max=res。输出min_max.first=0,min_max.second=9。