试题题干
struct porb
{ Char *name;
int age;
} s[]={″LiHua″, 18, ″WangXin″, 25, ″LiuGuo″, 21};
#Define N (sizeof(s)/sizeof (s[0]))
Void f (struct porb A[], int n);
main( )
{
f (s, N);
}
Void f (struct porb A[], int n)
{
int i;
for (i=0;i<n;i++)
printf (″%s:%d\n″, A[i]. name, A[i].age);
}
参考答案
试题解析
sizeof(s)/sizeof (s[0])中的sizeof(s)是整个数组的大小,sizeof (s[0])是一个元素的大小,即sizeof(s)/sizeof (s[0])是数组长度,即数组长度为3;
在主函数中,f (s, N)需要调用函数f(),在函数f()中,当i=0时,输出的A[0]. name, A[0].age为LiHua,18,即输出的结果为LiHua:18;
当i=1时,输出的A[1]. name, A[1].age为WangXin,25,即输出的结果为WangXin:25;
当i=2时,输出的A[2]. name, A[2].age为LiuGuo,21,即输出的结果为LiuGuo:21;
当i=3时,因为n为3,所以不符合i<3,即结束循环。