问题 单项选择题

根据下面的定义,能打印出字母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是正确答案。

单项选择题 B型题
填空题