1、一、判断题(16分)1. 结构体类型的数据是由不同类型的数据组合而成的。2分 2. 一旦定义了某个结构体类型后,系统将为此类型的各个成员项分配内存单元。2分 3. 被定义为指向某结构体类型数据的指针变量,即可以指向具有该类型的变量,又可以指向它其中的一个成员。2分 4. 在程序中定义了一个结构体类型后,可以多次用它来定义具有该类型的变量。2分 5. 在内存中存储结构体类型的变量要占连续一段的存储单元。2分 6. 对结构体变量不能进行整体输入输出。2分 7. 结构体类型数据在内存中所占字节数不固定。2分 8. 结构体类型只有一种。2分 二、选择题(4分)1.设有以下说明语句struct stui
2、nt a;float b; stutype;则下面的叙述不正确的是( )。C 2分 A. struct是结构体类型的关键字B. struct stu是用户定义的结构体类型C. stutype是用户定义的结构体类型名D. a和b都是结构体成员名2.C语言结构体类型变量在程序运行期间( )。B 2分 A. TC环境在内存中仅仅开辟一个存放结构体变量地址的单元B. 所有的成员一直驻留在内存中C. 只有最开始的成员驻留在内存中D. 部分成员驻留在内存中三、程序填空题(10分)1. 编写程序,输入一个日期的数组,大小为N,调用函数比较这个数组中的日期,返回最大的日期,并输出这个日期 10分 #inclu
3、de #define N 4struct dateint year;int month;int day;struct date dateMax(_(1)_)struct date max = _(2)_;int i; for( i = 1; i max.year)max = dateArrayi;else if(dateArrayi.year = max.year) if(_(3)_)max = dateArrayi;else if(dateArrayi.month = max.month) if(dateArrayi.day = max.day)_(4)_;return max;int ma
4、in() struct date dateArrayN,s; int i;for( i = 0; i max.month (4)答案 2分 max = dateArrayi (5)答案 2分 dateMax(dateArray) 四、程序设计题(20分)1. 编写程序,输入某一时刻的时间,加一秒后输出新的时间,时间以时、分、秒表示(利用结构类型) 10分 题目描述编写程序,输入某一时刻的时间,加一秒后输出新的时间,时间以时、分、秒表示(利用结构类型) 输入描述输入某一个时刻的时间 输出描述输出这个时刻下一秒的时间,数字小于10的前面加个0输出 样例输入19 3 12 样例输出19:03:13
5、#includestruct time int h,m,s;void main()struct time t1,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:%02dn,t2.h,t2.m,t2.s); 2. 有5个学生,每个学生的数据包括学号、姓名、三门课的成绩。数据从键盘输入,要求打印出每个学生的总分、三门课的总平均
6、成绩、以及总分最高的学生数据 10分 题目描述有5个学生,每个学生的数据包括学号、姓名、三门课的成绩。数据从键盘输入,要求打印出每个学生的总分、三门课的总平均成绩、以及总分最高的学生数据 输入描述输入5个学生的数据,每个学生的数据包括学号、姓名、三门课的成绩 输出描述输出每个学生的总分、三门课的总平均成绩、以及总分最高的学生数据(保留一位小数) 样例输入201090101 张三 89 88 73201090102 李四 77 55 91201090103 王五 81 94 84201090104 周六 97 71 61201090105 徐七 76 80 90 样例输出姓名 总分 平均成绩 张
7、三 250 83.3李四 223 74.3王五 259 86.3周六 229 76.3徐七 246 82.0总分数最高的学生信息如下:201090103 王五 81 94 84 #include#define N 5struct student int no;char name10;float score3,sum,ave; ;void main()struct student stuN;float max;int i,j,maxi;scanf(%d%s,&stu0.no,stu0.name);stu0.sum=0;stu0.ave=0;for(j=0;j3;j+)scanf(%f,&stu0
8、.scorej);stu0.sum+=stu0.scorej;stu0.ave+=stu0.scorej/3;max=stu0.sum;maxi=0;for(i=1;iN;i+)scanf(%d%s,&stui.no,stui.name);stui.sum=0;stui.ave=0;for(j=0;jmax)max=stui.sum;maxi=i;printf(姓名 总分 平均成绩n);for(i=0;iN;i+)printf(%s %.0f %.1fn,stui.name,stui.sum,stui.ave);printf(总分数最高的学生信息如下:n);printf(%d %s ,stumaxi.no,stumaxi.name);for(j=0;j3;j+)printf(%.0f ,stumaxi.scorej);