定义结构体数组:struct stu{int num;charname[20];}x[5]={1,"LI",2,"ZHAO",3,"WANG",4,"ZHANG",5,"LIU"};for(i=1;i<5;i++)printf("%d%C",x[i].num,x[i]name[2]);以上程序段的输出结果为()。
A.2A3N4A5U
B.112A3H41
C.1A2N3A4U
D.2H3A4H51
A.2A3N4A5U
B.112A3H41
C.1A2N3A4U
D.2H3A4H51
定义结构体数组: struct stu { int num; char name[20]; }x[5];{1,"L1",2,"ZHAO",3,"WANG",4,"ZHANG",5,"LIU"}; for(i=1;i<5;i++) printf("%d%c",x[i].num,x[i].name[2]); 以上程序段的输出结果为()。
A.2A3N4A5U
B.1I2A3H4I
C.1A2N3A4U
D.2H3A4H5I
定义结构体数组 struct stu { int num; char name[20]; }x[5]={1,"ZHAO",2,"QIAN",3,"SUN",4,"LEE",5,"ZHOU"}; for(i=1;i<5;i++) printf("%d%c",x[i].num,x[i].name[2]); 程序执行后的输出结果是()。
A.2A3N4E5O
B.1H2I3U4E
C.1A2N3E4O
D.1A2N3E4O
A.2A3N4A5U
B.1I2a3h4I
C.1A2N3A4U
D.2H3A4H5I
A.2A3N4A5U
B.112A3H4I
C.1A2N3A4U
D.2H3A4H5I
学生成绩管理:有5个学生,每个学生的数据包括学号、班级、姓名、三门课成绩。从键盘输入5个学生数据,要求打印出每个学生三门课的平均成绩,以及每门课程平均分、最高分学生数据(包括学号、班级、姓名、三门课成绩,平均分)。 【实验要求】 (1) 定义学生结构体。 (2) 用一个函数实现5个学生数据的输入,用另一个函数负责求每个学生三门课程的平均成绩,再用一个函数求出平均分最高的学生并输出该学生的数据。要求平均分和平均分最高的学生数据都在主函数种输出。 【实验提示】 (1) 结构体定义 struct Student { int num; //学号 char name[20]; //班级注意字节长度 char classname[20]; //班级 float score[3]; //三门课程成绩 float aver_score; //平均分 } (2) 数据组织提示: 在主函数中定义一个结构体数组。 Student stu[20] //定义有20个变量的元素的结构体数组(根据需要确定数组的大小)。 (3) 结构体数组使用 ①循环输入学生信息: ②平均分计算函数 ,以数组名作参数 void averagescore(student stu[], int number) { int i; for(i = 0; i<= number; i++) { stu[i]="(stu[i].score[0]+" stu[i].score[1]+stu[i].score[2]) 3.0 } ③求平均分最高的学生 int averagescore(student stu[], number) k="0;" 查找最高平均分并记录在数组中的下标值 for(i="0;" ……… return k; 返回最高平均分数组元素的下标>
A、struct student stu[2]={1, "zhangsan",2,"li si"};
B、struct student stu[2]={{1,"zhangsan"},{2,"li si"}};
C、struct student stu[]={{1,"zhangsan"},{2,"li si"}};
D、struct stu[]={{1,"zhangsan"},{2,"li si"}};
请定义一个描述学生基本信息的结构,包括姓名,学号,籍贯,身份证号,年龄,家庭 住址,性别,联系方式等。并定义一个结构体数组。编程: a) 编写函数 input() , 输入基本信息(3~5 条记录); b) 编写函数 print(),输出全体记录信息; c) 编写函数 search(), 检索一个指定的学生信息并返回, 由主函数打印到屏幕上; d) 说明,访问结构的时候,什么时候应该用运算符“.”,什么时候应该用运算符“->”。 (运算符前是结构体变量时用“.”,是指向结构体变量的指针时用“->”) 参考代码: #include #include #define N 3 //增加程序的可扩展性 void input(struct student stu[]); void print(struct student stu[]) ; void search(struct student stu[], char name[]); _________________{ char name[20]; char num[15]; char place[20]; char id[20]; int age; char address[100]; char sex; char phone[15]; }__________; void main() { char name[20]; input(stu); print(stu); printf("\n请输入想要查找的学生姓名: "); scanf("%s", name); search(stu, name); } void input(struct student stu[]) { int i; for(i=0; i { printf("请输入第%d个学生的信息:\n", i+1); printf("姓名: "); scanf("%s", stu[i].name); printf("学号: "); scanf("%s", stu[i].num); printf("籍贯: "); scanf("%s", stu[i].place); printf("身份证号: "); scanf("%s", stu[i].id); printf("年龄: "); scanf("%d", &stu[i].age); printf("家庭住址: "); scanf("%s", stu[i].address); fflush(stdin); printf("性别(M/F): "); scanf("%c", &stu[i].sex); printf("电话: "); scanf("%s", stu[i].phone); printf("\n"); } } void print(struct student stu[]) { int i; printf("姓名学号 籍贯 身份证号 年龄地址 性别电话 \n"); for(i=0; i printf("%-8s%-12s%-10s%-20s%-4d%-10s%-3c%-10s\n", stu[i].name, stu[i].num, stu[i].place, stu[i].id, stu[i].age, stu[i].address, stu[i].sex, stu[i].phone); } void search(struct student stu[], char name[]) { int flag=0; int i; for(i=0; i if(strcmp(stu[i].name, name)==0) { printf("%-8s%-12s%-10s%-20s%-4d%-10s%-3c%-10s\n", stu[i].name, stu[i].num, stu[i].place, stu[i].id, stu[i].age, stu[i].address, stu[i].sex, stu[i].phone); flag = 1; } if(flag==0)printf("没有"); else printf("有"); }
实验十二 C程序的结构体 一、实验目的 1. 掌握结构体的概念和特点。 2. 熟练定义结构体数据类型,掌握结构体变量的定义及使用方法。 3. 了解结构体数组的特点,能使用结构体数组解决简单问题。 4. 掌握结构体指针的特点,能使用结构体指针作函数的参数。 二、实验内容及实验步骤 1. 用结构体类型实现“日期问题”。日期问题:已知一个日期(包括年、月、日),编写程序,计算这一天是这一年的第几天。 参考程序 /* 用结构体类型实现的日期问题程序 */ #include "stdio.h" struct date /* 定义结构体数据类型 */ { int year; int month; int day; }; main() { struct date d; int sum=0; printf("请输入日期(年、月、日之间用空格分隔):\n"); scanf("%d%d%d",&d.year,&d.month,&d.day); switch(d.month) { case 1:sum=0;break; case 2:sum=31;break; case 3:sum=31+28;break; case 4:sum=31+28+31;break; case 5:sum=31+28+31+30;break; case 6:sum=31+28+31+30+31;break; case 7:sum=31+28+31+30+31+30;break; case 8:sum=31+28+31+30+31+30+31;break; case 9:sum=31+28+31+30+31+30+31+31;break; case 10:sum=31+28+31+30+31+30+31+31+30;break; case 11:sum=31+28+31+30+31+30+31+31+30+31;break; case 12:sum=31+28+31+30+31+30+31+31+30+31+30;break; } sum+=d.day; /* 天数累加 */ if(d.month>2) /* 闰年处理 */ if(d.year%400==0||d.year%100!=0&&d.year%4==0) sum+=1; printf("Total: %d\n",sum); } 程序调试: ① 运行程序,输入一个合法日期数据,察看并分析程序结果。 ② 运行程序,输入一个月份非法的日期数据,察看并分析程序结果。 ③ 运行程序,输入一个日子非法的日期数据,察看并分析程序结果。 ④ 完善程序,使得在任何情况下,都能输出一个合理的结果。 ⑤ 用结构体指针改写上面的程序。 2. 学生成绩问题。有10个学生,每个学生的数据包括学号、姓名、3门课的成绩。从键盘输入10个学生数据,要求打印出每门课的总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课的成绩、平均分数)。 参考程序 /* 学生成绩问题程序 */ #include "stdio.h" #define N 10 struct student /* 定义结构体数据类型 */ { char num[5]; /* 学号(不超过4位) */ char name[10]; /* 姓名(不超过9位) */ int score1; /* 成绩1 */ int score2; /* 成绩2 */ int score3; /* 成绩3 */ }; main() { struct student stu[N]; /* 定义结构体数组 */ int max=0,sum1=0,sum2=0,sum3=0; int i,k=0,total,ave1,ave2,ave3,average; for(i=0;i<n;i++) * 输入学生数据,并进行成绩统计 { printf("no.%d: \n",i+1); printf("enter num:"); gets(stu[i].num); name:"); gets(stu[i].name); score1,score2,score3:"); scanf("%d,%d,%d",&stu[i].score1,&stu[i].score2, &stu[i].score3); getchar(); total="stu[i].score1+stu[i].score2+stu[i].score3;" sum1+="stu[i].score1;" sum2+="stu[i].score2;" sum3+="stu[i].score3;" if(total>max) { max=total; k=i; } /* 第k个结构体元素为最高分学生数据 */ } ave1=sum1/N; ave2=sum2/N; ave3=sum3/N; average=(stu[k].score1+stu[k].score2+stu[k].score3)/3; printf("The average score of this class are:\n"); printf("score1=%d, score2=%d, score3=%d\n",ave1,ave2,ave3); printf("The student of maxscore is:\n"); printf("num:%s,name:%s,score1:%d,score2:%d,score3:%d,average:%d\n", stu[k].num,stu[k].name,stu[k].score1,stu[k].score2,stu[k].score3,average); } 程序调试: 先用三个学生的数据调试程序(将程序中符号常量N定义为3): ① 运行程序,输入三个学生的数据:学号不超过4字符,以回车键结束;姓名不超过9字符,以回车键结束;成绩数据之间用逗号分隔,以回车键结束。察看并分析程序结果。 ② 运行程序,输入的学号或姓名信息超过规定长度,察看并分析程序结果。用三个学生的数据调试通过后,再用10个学生数据进行测试。 三、实验报告要求 写明: 1. 实验目的 2. 实验内容与步骤 3. 编写的程序(题目,经调试、运行后正确的程序) 4. 思考题的解决方法。 5. 总结讨论本次实验的结果和收获。
A.结构体类型变量作函数参数
B.结构体类型数组作函数参数
C.结构体类型作函数参数
D.变量作函数参数
为了保护您的账号安全,请在“简答题”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!