第九章结构体与共用体习题 11洗择颗 1当说明一个结构体变量时系统分配给它的内存是 A各成员所需内存量的总和 B.结构中第一个成员所需内存量 C成员中占内存量最大者所需的容量 D结构中最后一个成员所需内存量 2.C语言结构体类型变量在程序执行期间( A所有成员 直驻留在内存中 B.只有 个成员驻留在内存中 C部分成员驻留在内存中 D没有成员主流在内存中 3.以下对C语言中共用体类型数据的叙述正确的是() A.可以对共用体变量名直接赋值 B.一个共用体变量中可以同时存放其所有成员 C,一个共用体变量中不能同时存放其所有成员 D.共用体类型定义中不能出现结构体类型的成员 4当说明一个共用体变量时系统分配给它的内存是() A.各成员所需内存量的总和 B结构中第 个成员所需内存量 C成员中占内存量最大者所需的容量 D.结构中最后一个成员所需内存量 2.2编程题 1定义一个结构体变量(包括年、月、日)。计算该日在本年中是第几天?注意闰年 向题。 2将一个链表按逆序排列,即将链头当链尾,链尾当链头。 3.试利用结构体类型编制一程序,实现输入一个学生的数学期中和期末成绩,然后计 算并输出其平均成绩 4.写一个函数days,实现上面的计算。由主函数将年、月、日传递给days函数,计算 后将日子数传回主函数输出 3.3阅读程序,写出程序运行结果 程序一typedefunion long a[2] int b(4]; char cl101 MYTYPE main() (MYTYPEx:
第九章 结构体与共用体习题 1.1 选择题 1.当说明一个结构体变量时系统分配给它的内存是( ) A.各成员所需内存量的总和 B.结构中第一个成员所需内存量 C.成员中占内存量最大者所需的容量 D.结构中最后一个成员所需内存量 2.C 语言结构体类型变量在程序执行期间( ) A.所有成员一直驻留在内存中 B.只有一个成员驻留在内存中 C.部分成员驻留在内存中 D.没有成员主流在内存中 3.以下对 C 语言中共用体类型数据的叙述正确的是( ) A.可以对共用体变量名直接赋值 B.一个共用体变量中可以同时存放其所有成员 C.一个共用体变量中不能同时存放其所有成员 D.共用体类型定义中不能出现结构体类型的成员 4.当说明一个共用体变量时系统分配给它的内存是( ) A.各成员所需内存量的总和 B.结构中第一个成员所需内存量 C.成员中占内存量最大者所需的容量 D.结构中最后一个成员所需内存量 2.2 编程题 1.定义一个结构体变量(包括年、月、日)。计算该日在本年中是第几天?注意闰年 问题。 2.将一个链表按逆序排列,即将链头当链尾,链尾当链头。 3.试利用结构体类型编制一程序,实现输入一个学生的数学期中和期末成绩,然后计 算并输出其平均成绩。 4.写一个函数 days ,实现上面的计算。由主函数将年、月、日传递给 days 函数,计算 后将日子数传回主函数输出。 3.3 阅读程序,写出程序运行结果 程序一 typedef union { long a[2]; int b[4]; char c[10]; } MYTYPE; main( ) {MYTYPE x;
printfsizeof(x)) 执行结果是」 程序二#include"sdio.h main() struct date int year,month,day; today. printf("%dn"sizeof(struct date)): 执行结果是 程序三main) {struct cmplx{int x; inty; cnum[2=1,32,7 printf("%d\n".cnum0].y/cnum[0].x*cnum1].x) 执行结果是」 上机实验 1.目的和要求 )掌握结构体类型和共用体类型变量 (2)掌握结构体类型指针 2.实验内容 ()有一个结构体变量沙土,内含学生学号、姓名和3门课的成绩。要求man函数中赋 以值,在另一函数print中将他们打印出来。 程序如下: #efine FORMAT%dAn%sIn%fn%fn%fn%fn' struct student {int num
printf("%",sizeof(x)); } 执行结果是 。 程序二 #include "stdio.h" main( ) { struct date { int year,month,day; } today; printf("%d\n",sizeof (struct date)); } 执行结果是 。 程序三 main() { struct cmplx { int x; int y; }cnum[2]={1,3,2,7}; printf("%d\n",cnum[0].y/cnum[0].x*cnum[1].x); } 执行结果是 。 上机实验 1.目的和要求 ⑴掌握结构体类型和共用体类型变量 ⑵掌握结构体类型指针 2.实验内容 ⑴有一个结构体变量 沙土,内含学生学号、姓名和 3 门课的成绩。要求 main 函数中赋 以值,在另一函数 print 中将他们打印出来。 程序如下: #efine FORMAT”%d\n%s\n%f\n%f\n%f\n%f\n” struct student { int num;
char name [20]: float score[3] }stu={12345,LiLi”,67.5,89,78.6} main() void print(struc student) print(&stu吵, void print(struct student *p) {printf(FORMATp->num.p-> name.p->score[0].p->score[1].p->score[2]) Printf(An"): 要求: 1.调试运行程序。 2.此程序改用结构体变量做函数参数,编写程序并运行程序。 (2共用体举例 #include"stdio.h" main() Union data char ch float f. )a.b.c; a.i=8 printf("b.i-%d.c.i-%d\n"b.i.c.i). 要求: 运行本程序
char name [20]; float score[3]; }stu={12345,”Li Li”,67.5,89,78.6}; main( ) { void print(struc student *); print(&stu); } void print(struct student *p) {printf(FORMAT,p->num,p->name,p->score[0],p->score[1],p->score[2]); Printf(“\n”); } 要求: 1. 调试运行程序。 2. 此程序改用结构体变量做函数参数,编写程序并运行程序。 ⑵共用体举例 # include “stdio.h” main( ) { Union data { int i; char ch; float f; } a,b,c; a. i=8; b=a; c=b; printf(“b.i=%d,c.i=%d\n”,b.i,c.i); } 要求: 运行本程序