请用c语言定义一个描述学生基本信息的结构,包括姓名,学号,籍贯,身份证号,年龄,家庭 住址,性别,联系方式等,并定义一个结构体数组编程: a)编写函数input().输入基本信息(3~5条记录); b)编写函数 print(),输出全体记录信息; c)编写函数search().检索一个指定的学生信息并返回,由主函数打印到屏幕上; d)说明,访问结构的时候,什么时候应该用运算符“.”,什么时候应该用运算符“.>”(运算符前是结构体变量时用“.”,是指向结构体变量的指针时用“.>”)
时间: 2023-04-09 13:04:04 浏览: 353
可以回答这个问题。以下是用C语言定义一个描述学生基本信息的结构的代码:
```c
struct student {
char name[20];
char id[20];
char hometown[20];
char id_card[20];
int age;
char address[50];
char gender[10];
char phone[20];
};
int main() {
struct student s[5];
input(s, 5);
print(s, 5);
search(s, 5);
return 0;
}
void input(struct student s[], int n) {
int i;
for (i = 0; i < n; i++) {
printf("请输入第%d个学生的信息:\n", i+1);
printf("姓名:");
scanf("%s", s[i].name);
printf("学号:");
scanf("%s", s[i].id);
printf("籍贯:");
scanf("%s", s[i].hometown);
printf("身份证号:");
scanf("%s", s[i].id_card);
printf("年龄:");
scanf("%d", &s[i].age);
printf("家庭住址:");
scanf("%s", s[i].address);
printf("性别:");
scanf("%s", s[i].gender);
printf("联系方式:");
scanf("%s", s[i].phone);
}
}
void print(struct student s[], int n) {
int i;
for (i = 0; i < n; i++) {
printf("第%d个学生的信息:\n", i+1);
printf("姓名:%s\n", s[i].name);
printf("学号:%s\n", s[i].id);
printf("籍贯:%s\n", s[i].hometown);
printf("身份证号:%s\n", s[i].id_card);
printf("年龄:%d\n", s[i].age);
printf("家庭住址:%s\n", s[i].address);
printf("性别:%s\n", s[i].gender);
printf("联系方式:%s\n", s[i].phone);
}
}
void search(struct student s[], int n) {
char id[20];
int i, flag = 0;
printf("请输入要查找的学生的学号:");
scanf("%s", id);
for (i = 0; i < n; i++) {
if (strcmp(s[i].id, id) == 0) {
printf("找到了该学生的信息:\n");
printf("姓名:%s\n", s[i].name);
printf("学号:%s\n", s[i].id);
printf("籍贯:%s\n", s[i].hometown);
printf("身份证号:%s\n", s[i].id_card);
printf("年龄:%d\n", s[i].age);
printf("家庭住址:%s\n", s[i].address);
printf("性别:%s\n", s[i].gender);
printf("联系方式:%s\n", s[i].phone);
flag = 1;
break;
}
}
if (flag == 0) {
printf("没有找到该学生的信息!\n");
}
}
```
在访问结构体变量的成员时,应该用运算符“.”,例如:s[i].name。而在访问指向结构体变量的指针的成员时,应该用运算符“->”,例如:p->name,其中p是指向结构体变量的指针。
阅读全文