简答题
👁️ 浏览量:

试题题干

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,即结束循环。