有以下程序 struc t STU{ char name [10] int num; void f1(struct STU c) { struct STU b={"LiSiGuo",2042};

admin2009-01-15  23

问题 有以下程序    struc t STU{         char name [10]         int num;    void f1(struct STU c)    {   struct STU  b={"LiSiGuo",2042};        c=b;    }    void f2(struct STU *c)    {   struct STU  b={"SunDan",2044);        *c=b;    }    main ( )    { struct  STU   a={"YangSan",2041},b={"WangYin",2043};        f1 (a); f2 (&b);        printf ( "%d %d\n" ,a.num,b.num);     }    执行后输出结果是

选项 A、2041 2044
B、2041 2043
C、2042 2044
D、2042 2043

答案1

解析 本题考核的知识点是结构体类型的综合应用。本题中首先定义了一个结构体类型STU,它由一个字符数组和一个整形变量 num组成。然后定义两个函数n和n。其中n是值传递的,n是地址传递的。主函数中定义两个结构体变量a和b并分别赋初值,接着调用函数f1(a),由于函数f1是值传递,故执行该函数后并没有改变 a的值,在接着调用函数f2(&b),由于该函数是地址传递,执行该函数后将使变量b的值为{“SunDan”, 2044},故函数最后输出的a.num和b.num的值为 2041和2044。所以,4个选项中选项A符合题意。
转载请注明原文地址:https://kaotiyun.com/show/QIXp777K
0

最新回复(0)