一、判断题(16分)1.结构体类型的数据是由不同类型的数据组合而成的。2分2.一旦定义了某个结构体类型后,系统将为此类型的各个成员项分配内存单元。2分3.被定义为指向某结构体类型数据的指针变量,即可以指向具有该类型的变量,又可以指向它其中的一个成员。2分4.在程序中定义了一个结构体类型后,可以多次用它来定义具有该类型的变量。2分5.在内存中存储结构体类型的变量要占连续一段的存储单元。2分6.对结构体变量不能进行整体输入输出。2分7.结构体类型数据在内存中所占字节数不固定。2分8.结构体类型只有一种。2分二、选择题(4分)1.设有以下说明语句structstu{inta;floatb;}stutype;则下面的叙述不正确的是()。[C]2分A.struct是结构体类型的关键字B.structstu是用户定义的结构体类型C.stutype是用户定义的结构体类型名D.a和b都是结构体成员名2.C语言结构体类型变量在程序运行期间()。[B]2分A.TC环境在内存中仅仅开辟一个存放结构体变量地址的单元B.所有的成员一直驻留在内存中C.只有最开始的成员驻留在内存中D.部分成员驻留在内存中三、程序填空题(10分)1.编写程序,输入一个日期的数组,大小为N,调用函数比较这个数组中的日期,返回最大的日期,并输出这个日期10分#include#defineN4structdate{intyear;intmonth;intday;};structdatedateMax(__(1)__){structdatemax=__(2)__;inti;for(i=1;imax.year){max=dateArray[i];}elseif(dateArray[i].year==max.year){if(__(3)__){max=dateArray[i];}elseif(dateArray[i].month==max.month){if(dateArray[i].day>=max.day){__(4)__;}}}}returnmax;}intmain(){structdatedateArray[N],s;inti;for(i=0;imax.month(4)答案2分max=dateArray[i](5)答案2分dateMax(dateArray)四、程序设计题(20分)1.编写程序,输入某一时刻的时间,加一秒后输出新的时间,时间以时、分、秒表示(利用结构类型)10分题目描述编写程序,输入某一时刻的时间,加一秒后输出新的时间,时间以时、分、秒表示(利用结构类型)输入描述输入某一个时刻的时间输出描述输出这个时刻下一秒的时间,数字小于10的前面加个0输出样例输入19312样例输出19:03:13#includestructtime{inth,m,s;};voidmain(){structtimet1,t2;scanf("%d%d%d",&t1.h,&t1.m,&t1.s);t2.s=t1.s+1;t2.m=t1.m;t2.h=t1.h;if(t2.s==60){t2.m=t1.m+1;t2.s=0;}if(t2.m==60){t2.h=t1.h+1;t2.m=0;}if(t2.h==24){t2.h=0;}printf("%02d:%02d:%02d\n",t2.h,t2.m,t2.s);}2.有5个学生,每个学生的数据包括学号、姓名、三门课的成绩。数据从键盘输入,要求打印出每个学生的总分、三门课的总平均成绩、以及总分最高的学生数据10分题目描述有5个学生,每个学生的数据包括学号、姓名、三门课的成绩。数据从键盘输入,要求打印出每个学生的总分、三门课的总平均成绩、以及总分最高的学生数据输入描述输入5个学生的数据,每个学生的数据包括学号、姓名、三门课的成绩输出描述输出每个学生的总分、三门课的总平均成绩、以及总分最高的学生数据(保留一位小数)样例输入201090101张三898873201090102李四775591201090103王五819484201090104周六977161201090105徐七768090样例输出姓名总分平均成绩张三25083.3李四22374.3王五25986.3周六22976.3徐七24682.0总分数最高的学生信息如下:201090103王五819484#include#defineN5structstudent{intno;charname[10];floatscore[3],sum,ave;};voidmain(){structstudentstu[N];floatmax;inti,j,maxi;scanf("%d%s",&stu[0].no,stu[0].name);stu[0].sum=0;stu[0].ave=0;for(j=0;j<3;j++){scanf("%f",&stu[0].score[j]);stu[0].sum+=stu[0].score[j];stu[0].ave+=stu[0].score[j]/3;}max=stu[0].sum;maxi=0;for(i=1;imax){max=stu[i].sum;maxi=i;}}printf("姓名总分平均成绩\n");for(i=0;i