问题
单项选择题
根据下面的定义,能打印出字母M的语句是( )。
struct person
char name[9];
int age;
;
struct person class[10]="John",17,"Paul",19,"Mary",18,"Adam",16;
A.printf("%c\n",class[3].name;
B.printf("%c\n",class[2].name[0]);
C.printf("%c\n",class[3].name[1]);
D.printf("%c\n",class[2].name[1]);
答案
参考答案:B
解析: 在结构体数组class[10]的初始化列表中只有第5个初始值中包含大写字母M,而该结构体只有两个成员变量,所以每两个初始值初始化一个数组元素,故第5个初始值是属于第3个数组元素class[2]的前一个成员变量的,选项A和C不正确。又因为‘M’是“Mary”的第一个元素,所以应该输出class[2]的name[0],B是正确答案。