选择题   有以下程序:
    #include <string.h>
    struct STU
    {      char name [10];
    int num;
    }
    void f(char  * name, int num)
    {    struct STU s[2]={ {' SunDan', 20044}, { ' Penghua', 20045}};
      num=s[0].num;
    strcpy(name, s[0].name);
    }
    main()
  {    struct STU s[2]={{ 'YangSan', 20041}, { ' LiSiGuo', 20042 } }, * p;
  p=&s[1]; f(p->name, p->num);
    printf(' % s % d\n', p-> name, p->num);
    }
    程序运行后的输出结果是
 
【正确答案】 A
【答案解析】本题考查的是结构体。主函数中定义了结构体类型的指针变量p,并使其指向结构体类型的数组s[1],并通过调用函数f改变指针变量p所指向的结构体中成员变量name的值,但并未改变其num的值。这是因为函数f中的形参nam。是一个字符型指针变量,它指向主函数中指针变量p所指向的结构体的成员变量name,所以对函数f中的形参*name。的改变也就是对主函数中p->name的改变,而函数f中对形参num的改变并不会影响主函数中p->num的值,因为此时传递给num的是一个值,而不是地址。