C语言,求解答,谢谢
3个回答
展开全部
答案应该是:Zhao,m,85,90,Qian,f,95,92
解析:
1、子函数f()的功能是:将结构体变量b的各个域的值依次赋值给结构体变量形参a,使得a的各个域值与b的完全一样。
2、主函数功能:先计算结构体变量d的值,再依次输出d和c的各个域值。其中,d得到的是f()函数的返回值;而这个返回值是子函数中a的值(因为子函数f()中return的是a)。
需要注意的是,在二级考试题目中,有时这个样子的题目会有变动。例如,主函数中的语句"d=f(c);"更改为"f(c);"。这时,答案就会变成:?????,?,??,??,Qian,f,95,92。
其中??为不确定值。
解析:
1、子函数f()的功能是:将结构体变量b的各个域的值依次赋值给结构体变量形参a,使得a的各个域值与b的完全一样。
2、主函数功能:先计算结构体变量d的值,再依次输出d和c的各个域值。其中,d得到的是f()函数的返回值;而这个返回值是子函数中a的值(因为子函数f()中return的是a)。
需要注意的是,在二级考试题目中,有时这个样子的题目会有变动。例如,主函数中的语句"d=f(c);"更改为"f(c);"。这时,答案就会变成:?????,?,??,??,Qian,f,95,92。
其中??为不确定值。
更多追问追答
追问
其实,我之前的答案也是那个错误的,但我觉得,只是值的传递,两次输出的结果应该都是主函数里那个呀,是因为子函数那里return a;而主函数的变量d接收它的缘故才导致第一次输出的结果是子函数里返回的那个值么?
追答
在二级考试里面,题目可能会像下面这么出(两种情况,但不要变量d):
第一种(子函数与你的原题都一样,我不写出来了,只写主函数):
main()
{
STU c={"Qian",'f',95,92};
c=f(c); //c的值被改变
printf("%s,%c,%d,%d\n",c.name,c.sex,c.score[0],c.score[1]);
}
第二种:
main()
{
STU c={"Qian",'f',95,92};
f(c); //这句不同,c的值未改变
printf("%s,%c,%d,%d\n",c.name,c.sex,c.score[0],c.score[1]);
}
两种题目结果就不一样。因此,考试要看仔细。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询