问题
单项选择题
有如下定义:
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]);
答案
参考答案:D
解析: 本题的关键是弄清楚给结构体数组赋初值的问题。初始值将按数组的各个元素在内存中的存放次序逐个地赋给各元素。结构体数组的各个元素在内存中的存放次序是: class[0].name,class[0].age,class[1].name,class[1].age,…,由此可知,包含字符“M”的字符串“Mary”赋值给了元素class[2].name,则与字符“M”相对应的表达式是class[2].name[0]。