若有以下定义语句: struct student { int num; char name[9]; } stu[2]={1, "zhangsan",2, "lisi"}; 则以下能输出字符串“zhangsan”的语句是( )。 A printf("%s",stu[0].name); B printf("%s",stu[1].name[0]); C printf("%s",stu[1].name); D printf("%s",&stu[2].name[0]);
时间: 2024-03-04 22:53:14 浏览: 240
优选c语言课件lesson2PPT文档.ppt
正确的输出字符串“zhangsan”的语句是 A. `printf("%s",stu[0].name);`
因为 `stu[0].name` 表示结构体数组中第一个元素的 `name` 字符数组,其存储的是字符串 "zhangsan",可以直接使用 `%s` 格式符输出。而其他选项输出的内容均不是字符串 "zhangsan"。
选项 B 中,`stu[1].name[0]` 表示结构体数组中第二个元素的 `name` 字符数组的第一个字符,不是一个完整的字符串。
选项 C 中,`stu[1].name` 表示结构体数组中第二个元素的 `name` 字符数组,存储的是字符串 "lisi"。
选项 D 中,`&stu[2].name[0]` 表示结构体数组中第三个元素的 `name` 字符数组的第一个字符的地址,不是一个完整的字符串。而且题目中定义的结构体数组只有两个元素,不存在 `stu[2]`。
阅读全文