有如下定义: struct person {char name[9];int age;}; struct person class[10]={"John",17,"paul",19,"Mary",18,"Adam",16}; 根据上述定义

admin2013-02-23  30

问题 有如下定义:    struct person {char name[9];int age;};    struct person class[10]={"John",17,"paul",19,"Mary",18,"Adam",16};    根据上述定义,能输出字母M的语句是(    )。

选项 A、printf("%c\n",class[3].name);
B、printf("%c\n",class[3].name[1]);
C、printf("%c\n",class[2].name[1]);
D、printf("%c\n",class[2].name[0]);

答案8

解析 本题的关键是弄清楚给结构体数组赋初值的问题。初始值将按数组的各个元素在内存中的存放次序逐个地赋给各元素。结构体数组的各个元素在内存中的存放次序是: class[0].name,class[0].age,class[1].name,class[1].age,…,由此可知,包含字符“M”的字符串“Mary”赋值给了元素class[2].name,则与字符“M”相对应的表达式是class[2].name[0]。
转载请注明原文地址:https://jikaoti.com/ti/0Jn0FFFM
0

最新回复(0)