软件水平考试

易错题:struct stu { int num;char name[1

2017年10月20日来源:软件水平考试 所有评论

根据网考网考试中心的统计分析,以下试题在2017/10/19日软件水平考试程序员习题练习中,答错率较高,为:59%
【分析解答题】struct stu
{ int num;char name[10];int age};
void py(struct stu *p)
{ printf("%s\n",(*p).name);}
main()
{ struct stu student[3]={{1001,"Sun",25},
{1002,"Ling",23},
{1003,"Shen",22};
py(student+2);

,答错率:59%
试题解析:

【解析】本程序是由3段组成的。第1段是结构型stn的定义;第2段是函数py()的定义;第3段是主函数。 我们先分析主函数。首先定义了结构型stu的数组student[3],并且给3个元素的所有成员都赋了初值。接着调用了函数py,对应的实参是结构型数组元素student[2]的地址。注意,“数组名+k”是数组元素“数组名[k]”的地址。 再来分析函数调用"py(student+2);"。调用时,首先把实参传递给形参,即把结构型stu的数组元素student[2」的地址"student+2"传递给形式参数“结构型stu的指针变量p”。 然后执行函数体,输出表达式是"(*p).name",这是结构型stu的指针变量p指向的结构型stu数据(即结构型stu的数组元素student[2〕)的成员name,其值是字符串"Shen"。这就是本题的答案。 【参考答案】Shen 查看试题解析出处>>

发布评论 查看全部评论

相关推荐