A-A+

若有以下程序 typedefstructstu{charname[10] gender;in

2022-08-12 19:05:41 问答库 阅读 197 次

问题详情

若有以下程序 typedefstructstu{charname[10],gender;intscore;)STU; voidf(char*P){strcpy(P,Qian);} main(){ STUa={Zhao,m,290},b; b=a;f(b.name); b.gender=f;b.score=350; printf(%s,%c,%d,,a.name,a.gender,a.score); printf(%s,%c,%dn,b.name,b.gender,b.score);} 则程序的输出结果是
A.Zhao,m,290,Zhao,m,290
B.Qian,f,350,Qian,f’350
C.Zhao,m,290,Qian,f,350
D.Zhao,m,290,Zhao,C350

请帮忙给出正确答案和分析,谢谢!

参考答案

正确答案:C
主函数中结构体变量定义同时赋初值。执行b=a;语句后,b的数据和a的数据相同,调用函数f(b-name),形参指针p接收实参b.name的地址,此时p和b.name指向同一个存储空间,流程转到f执行,p指向的存储空间存放字符串""oian"",流程结束返回主函数。主函数中变量b的其他成员存放数据。因此a的数据{""zhao"","m",290},b的数据为{""QJan"",’f’,350}。注意本题结构体STU类型变量a和b中的name成员为数组,不是指针,它具有白己的存储空间。

考点:程序