A-A+
有以下程序 struc t STU{ char name [10] int num; voi
问题详情
有以下程序 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 %dn" ,a.num,b.num); } 执行后输出结果是
A.2041 2044
B.2041 2043
C.2042 2044
D.2042 2043请帮忙给出正确答案和分析,谢谢!
参考答案
正确答案:A
解析:本题考核的知识点是结构体类型的综合应用。本题中首先定义了一个结构体类型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符合题意。