给出具体例子的输入什么完成以下程序:#include<stdio.h>#include<string.h>struct Student{ char str[10]; int marks;};int main(){ int values[5] = {5, 10, 15, 20, 22}; char str[10], *p; int n = 0, i; struct Student stu[20], *ps; strcpy(str, "UVWXYZ"); p = str; // print the third element in the array values using three different expressions. printf("%d %d %d\n", values[2], *(values + 2), *(2 + values)); printf("%c %c\n", str[2], *(p + 2)); //print third char in str through str and p respectively printf("%s, %s\n", str, p); //print str string through str and p respectively for (i = 0; i < 20; i++) { scanf("%s %d", stu[i].str, &stu[i].marks); // read student's name and marks if (stu[i].marks == -1) break; } n = i -1; ps = stu; // set ps to the beginning of the array printf("first student's name:%s, marks:%d\n", ps->str, ps->marks); // with the following two statements, print out the name and marks throught ps return 0;}Output:15 15 15W WUVWXYZ, UVWXYZ(first student's name: [input name], marks: [input marks])
时间: 2023-06-25 21:04:34 浏览: 80
输入:
- 5 6
- 10 8
- 15 7
- 20 9
- 22 10
- [input name] [input marks]
- [input name] [input marks]
- [input name] [input marks]
- -1
输出:
- 15 15 15
- W W
- UVWXYZ, UVWXYZ
- first student's name: [input name], marks: [input marks]
解释:
程序首先定义了一个结构体 `Student`,包含一个字符串 `str` 和一个整数 `marks`,然后定义了一个整型数组 `values` 和一个字符型数组 `str`。
接下来,程序使用三种不同的方式打印出数组 `values` 的第三个元素,分别是 `values[2]`、`*(values+2)` 和 `*(2+values)`,输出结果为 `15 15 15`。
然后程序使用 `str` 和指针 `p` 分别打印出字符串中的第三个字符,输出结果为 `W W`,然后又使用 `str` 和指针 `p` 分别打印出整个字符串,输出结果为 `UVWXYZ, UVWXYZ`。
接下来程序使用循环读入学生的姓名和成绩,直到输入 -1 时结束。循环读入后,程序将输入的数据存储在结构体数组 `stu` 中,并记录有效的数据个数为 `n`。
最后程序将结构体数组的起始地址赋值给指针 `ps`,然后使用指针 `ps` 打印出第一个学生的姓名和成绩,输出结果为 `first student's name: [input name], marks: [input marks]`。
阅读全文