《结构体和共用体习题计算机C资料_计算机-C++资料.pdf》由会员分享,可在线阅读,更多相关《结构体和共用体习题计算机C资料_计算机-C++资料.pdf(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、习 题 六 1.从下列四个选项中选择一个正确的填入括号中。(1)在说明一个结构体变量时系统分配给它的存储空间是(D)。A该结构体中第一个成员所需存储空间 B该结构体中最后一个成员所需存储空间 C该结构体中占用最大存储空间的成员所需存储空间 D该结构体中所有成员所需存储空间的总和(2)在说明一个共用体变量时系统分配给它的存储空间是(D)。A该共用体中第一个成员所需存储空间 B该共用体中最后一个成员所需存储空间 C该共用体中占用最大存储空间的成员所需存储空间 D该共用体中所有成员所需存储空间的总和(3)共用体类型在任何给定时刻,(B)。A所有成员一直驻留在内存中 B只有一个成员驻留在内存中 C部分
2、成员驻留在内存中 D没有成员驻留在内存中(4)以下定义结构体类型的变量 st1,其中不正确的是(A)A typedef stuct student int num;int age;STD;STD st1;B struct student int num,age;st1;C struct int num;float age;st1;D struct student int num;int age;struct student st1;(5)已知职工记录描述为:struct workers int no;char name20;char sex;struct int day;int month;i
3、nt year;birth;struct workers w;设变量 w中的”生日”应是”1993 年 10 月 25 日”,下列对”生日”的正确赋值方式是(C)。A day=25;month=10;year=1993;B=10;=1993;C =25;=10;=1993;(6)设有如下定义:struct sk int a;float b;data,*p;若有 p=&data;则对 data 中的 a 成员的正确引用是(B)。A(*p).B(*p).a C p-D 填空(1)若有以下说明和定义且数组 w和变量 k 已正确赋值,则对 w数组中第 k 个元素中各成员的正确引用形式是 wk-1.b、
4、wk-1.c 、wk-1.d 。struct aa int b;char c;double d;struct aa w10;int k=3;(2)若有以下说明和定义,则对成员的另外两种引用形式是 x-b-和 .。struct st int a;struct st *b;*p,x;p=&x;3.阅读下面程序,写出运行结果。体中第一个成员所需存储空间该结构体中最后一个成员所需存储空间该结构体中占用最大存储空间的成员所需存储空间该结构体中所有成员所需存储空间的总和在说明一个共用体变量时系统分配给它的存储空间是该共用体中第一个用体中所有成员所需存储空间的总和共用体类型在任何给定时刻所有成员一直驻留在内
5、存中只有一个成员驻留在内存中部分成员驻留在内存中没有成员驻留在内存中以下定义结构体类型的变量其中不正确的是已知职工记录描述为设下说明和定义且数组和变量已正确赋值则对数组中第个元素中各成员的正确引用形式是若有以下说明和定义则对成员的另外两种引用形式是和阅读下面程序写出运行结果结果结果编写程序输入一个学生记录记录包含学号姓名性别和(1),ffffffcc#include main()struct byte int x;char y;union int i2;long j;char m2;struct byte d;r,*s=&r;s-j=0 x;printf(%x,%xn,s-,s-;(2)结果:
6、1,minicomputer#include struct tree int x;char*s;t;func(struct tree t)=10;=computer;return(0);main()=1;=minicomputer;func(t);printf(%d,%sn,;#include.结果:.0,struct tree 体中第一个成员所需存储空间该结构体中最后一个成员所需存储空间该结构体中占用最大存储空间的成员所需存储空间该结构体中所有成员所需存储空间的总和在说明一个共用体变量时系统分配给它的存储空间是该共用体中第一个用体中所有成员所需存储空间的总和共用体类型在任何给定时刻所有成员一
7、直驻留在内存中只有一个成员驻留在内存中部分成员驻留在内存中没有成员驻留在内存中以下定义结构体类型的变量其中不正确的是已知职工记录描述为设下说明和定义且数组和变量已正确赋值则对数组中第个元素中各成员的正确引用形式是若有以下说明和定义则对成员的另外两种引用形式是和阅读下面程序写出运行结果结果结果编写程序输入一个学生记录记录包含学号姓名性别和int x;char*s;t;func(struct tree t)=10;=computer;return(0);main()编写程序输入一个学生记录,记录包含学号、姓名、性别和成绩信息,从键盘输入这 些数据,并且显示出来。#include struct st
8、udent int no;char name20;char sex2;float score;stu1;main()printf(*请输入该学生的学号、姓名、性别和成绩:n);scanf(%d%s%s%f,&,&;printf(学号:%dn 姓名:%sn 性别:%sn 成绩:%fn,;/*5.有若干运动员,每个运动员包括编号、姓名、性别、年龄、身高、体重。如果性别为男,参赛项目为长跑和登山;如果性别为女,参赛项目为短跑、跳绳。用一个函数输入运动员信息,用另一个函数输出运动员的信息,再建立一个函数求所有参赛运动员每个项目的平均成绩。*/#include#include char items12=
9、长跑,登山;char items22=短跑,跳绳;void InputAthInfo();void outputAthInfo();void items_Avg();体中第一个成员所需存储空间该结构体中最后一个成员所需存储空间该结构体中占用最大存储空间的成员所需存储空间该结构体中所有成员所需存储空间的总和在说明一个共用体变量时系统分配给它的存储空间是该共用体中第一个用体中所有成员所需存储空间的总和共用体类型在任何给定时刻所有成员一直驻留在内存中只有一个成员驻留在内存中部分成员驻留在内存中没有成员驻留在内存中以下定义结构体类型的变量其中不正确的是已知职工记录描述为设下说明和定义且数组和变量已正确
10、赋值则对数组中第个元素中各成员的正确引用形式是若有以下说明和定义则对成员的另外两种引用形式是和阅读下面程序写出运行结果结果结果编写程序输入一个学生记录记录包含学号姓名性别和struct athlete int num;char name10;char sex;int age;float height;float weight;char items2;ath2;void InputAthInfo()int i;for(i=0;i2;i+)printf(请输入第%d个运动员的信息:,i);scanf(编号:%dn 姓名:%sn 性别:%cn 年龄:%dn 身高:%fn 体重:%fn ,&athi.
11、num,athi.name,athi.sex,&athi.age,&athi.height,&athi.weight);void outputAthInfo()int j;printf(编号t 姓名t 性别t 年龄t 身高t 体重t 项目n);for(j=0;j2;j+)if(athj.sex=m|athj.sex=M)strcpy(athj.items,items1);else strcpy(athj.items,items2);um,athj.name,athj.sex,athj.age,athj.height,athj.weight,athj.items0,athj.items1);体中
12、第一个成员所需存储空间该结构体中最后一个成员所需存储空间该结构体中占用最大存储空间的成员所需存储空间该结构体中所有成员所需存储空间的总和在说明一个共用体变量时系统分配给它的存储空间是该共用体中第一个用体中所有成员所需存储空间的总和共用体类型在任何给定时刻所有成员一直驻留在内存中只有一个成员驻留在内存中部分成员驻留在内存中没有成员驻留在内存中以下定义结构体类型的变量其中不正确的是已知职工记录描述为设下说明和定义且数组和变量已正确赋值则对数组中第个元素中各成员的正确引用形式是若有以下说明和定义则对成员的另外两种引用形式是和阅读下面程序写出运行结果结果结果编写程序输入一个学生记录记录包含学号姓名性别
13、和 void items_Avg()int i;float sum1=0,sum2=0,avg1,avg2;for(i=0;i2;i+)sum1+=athi.items0;avg1=sum1/2;sum2+=athi.items1;avg2=sum2/2;printf(%-3f%-3f,avg1,avg2);void main()void InputAthInfo();void outputAthInfo();void items_Avg();6.一个班有 30 名学生,每个学生的数据包括学号、姓名、性别、及 2 门课的成绩,现从 键盘上输入这些数据,并且要求:(1)输出每个学生 2 门课的平
14、均分。(2)输出每门课的全班平均分。(3)输出姓名为”zhangliang”的学生的 2 门课的成绩。/*6.一个班有 30 名学生,每个学生的数据包括学号、姓名、性别、及 2 门课的成绩,现从 键盘上输入这些数据,并且要求:(1)输出每个学生 2 门课的平均分。(2)输出每门课的全班平均分。(3)输出姓名为”zhangliang”的学生的 2 门课的成绩。*/#include#include 体中第一个成员所需存储空间该结构体中最后一个成员所需存储空间该结构体中占用最大存储空间的成员所需存储空间该结构体中所有成员所需存储空间的总和在说明一个共用体变量时系统分配给它的存储空间是该共用体中第一个
15、用体中所有成员所需存储空间的总和共用体类型在任何给定时刻所有成员一直驻留在内存中只有一个成员驻留在内存中部分成员驻留在内存中没有成员驻留在内存中以下定义结构体类型的变量其中不正确的是已知职工记录描述为设下说明和定义且数组和变量已正确赋值则对数组中第个元素中各成员的正确引用形式是若有以下说明和定义则对成员的另外两种引用形式是和阅读下面程序写出运行结果结果结果编写程序输入一个学生记录记录包含学号姓名性别和#define N 2 void Input_Info();void score_avg();void everyStu_avgScore();void score_zhangliang();vo
16、id main()Input_Info();score_avg();everyStu_avgScore();score_zhangliang();struct student int no;char name20;char sex2;float score1;float score2;stuN;void Input_Info()int i;printf(*输入该班所有人的信息:(学号、姓名、性别、数学成绩、英语成绩,并用空格隔开)n);o,stui.name,stui.sex,&stui.score1,&stui.score2);void everyStu_avgScore()core1+st
17、ui.score2)/2;for(i=0;iN;i+)printf(第%d个学生的两门课平均分为%n,i,oneself_avgi);void score_avg()core1;体中第一个成员所需存储空间该结构体中最后一个成员所需存储空间该结构体中占用最大存储空间的成员所需存储空间该结构体中所有成员所需存储空间的总和在说明一个共用体变量时系统分配给它的存储空间是该共用体中第一个用体中所有成员所需存储空间的总和共用体类型在任何给定时刻所有成员一直驻留在内存中只有一个成员驻留在内存中部分成员驻留在内存中没有成员驻留在内存中以下定义结构体类型的变量其中不正确的是已知职工记录描述为设下说明和定义且数组
18、和变量已正确赋值则对数组中第个元素中各成员的正确引用形式是若有以下说明和定义则对成员的另外两种引用形式是和阅读下面程序写出运行结果结果结果编写程序输入一个学生记录记录包含学号姓名性别和 sum2+=stui.score2;avg1=(sum1)/2;avg2=(sum2)/2;printf(该班的数学平均成绩为%,英语平均分为%n,avg1,avg2);void score_zhangliang()ame=zhangliang)core1,stui.score2);7.定义枚举类型 money,用枚举元素代表人民币的面值。包括 1,2,5 分;1,2,5 角,1,2,5,10,50,100 元
19、。enum money fen1,fen2,fen5,jiao1,jiao2,jiao5,yuan1,yuan2,yuan5,yuan10,yuan20,yuan50,yuan100 体中第一个成员所需存储空间该结构体中最后一个成员所需存储空间该结构体中占用最大存储空间的成员所需存储空间该结构体中所有成员所需存储空间的总和在说明一个共用体变量时系统分配给它的存储空间是该共用体中第一个用体中所有成员所需存储空间的总和共用体类型在任何给定时刻所有成员一直驻留在内存中只有一个成员驻留在内存中部分成员驻留在内存中没有成员驻留在内存中以下定义结构体类型的变量其中不正确的是已知职工记录描述为设下说明和定义且数组和变量已正确赋值则对数组中第个元素中各成员的正确引用形式是若有以下说明和定义则对成员的另外两种引用形式是和阅读下面程序写出运行结果结果结果编写程序输入一个学生记录记录包含学号姓名性别和