C++编程:找出打印'M'的关键语句

需积分: 2 9 下载量 47 浏览量 更新于2024-08-19 收藏 8.81MB PPT 举报
在C++编程中,题目要求找到能打印出字母"M"的语句。首先,我们看到一个名为`person`的结构体,它有两个成员变量:`char name[9]`用于存储姓名,`int age`用于存储年龄。接着,定义了一个`class`数组,包含10个`person`对象,每个对象都初始化了姓名和年龄。 提供的代码段中,有四个cout语句分别尝试访问这些结构体对象的成员: 1. `cout<<class[3].name<<endl;`:这行会输出`class`数组中的第三个元素(索引从0开始)的姓名。由于索引3对应的是"Mary",所以这将打印"M"。 2. `cout<<class[3].name[1]<<endl;`:这行试图访问`name`数组的第二个字符,但在C++中,数组下标是从0开始的,所以`name[1]`实际上是"M"的第二个字符,即'y'。 3. `cout<<class[2].name[1]<<endl;`:此行同样试图访问`name`数组的第二个字符,`class[2]`对应的是"Paul",因此输出的是'u'。 4. `cout<<class[2].name[0]<<endl;`:此行试图访问`name`数组的第一个字符,即"Paul"的首字母,输出的是'P'。 题目描述中提到的输出结果依次为:"Adam", "d", "a", "M",这表明第一个和第三个cout语句并没有达到预期,因为它们分别输出了"Adam"和"a",只有第二个语句`cout<<class[2].name[1]<<endl;`输出了"M"的第二个字符'y',而实际上我们需要的是"M"的首字母。 总结知识点: 1. C++结构体(struct)的使用:理解如何定义和访问结构体成员,如`person`结构体的`name`数组。 2. 数组索引:了解C++数组的索引从0开始,如`class[3]`代表数组的第四个元素。 3. 访问数组元素:学习如何通过索引来访问结构体成员,例如`class[2].name[1]`访问`Paul`的第二个字符。 4. 结构化编程:C++支持结构化编程,如循环和条件语句,可以帮助解决类似问题。 5. 代码调试:理解为何某些输出与预期不符,需要分析语句执行的逻辑和结构体成员的访问方式。 要打印出完整的字母"M",需要修改第一个cout语句为`cout<<class[3].name<<endl;`,这样就能正确输出"Mary",从而达到题目要求。