- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验8-1 结构体
【实验目的】
掌握结构体类型的定义
掌握结构体变量的定义。
掌握结构体数据的操作。
【课后练习】
选择题
已知学生记录描述如下,设置变量s中的“生日”应是“1984年11月11日”,下列对“生日”的正确赋值方式是________。
A. year = 1984; month = 11; day = 11;B. birth.year = 1984; birth.month = 11; birth.day = 11;C. s.year = 1984; s.month = 11; s.day = 11;D. s.birth.year = 1984; s.birth.month = 11; s.birth.day = 11;
设有以下说明语句,则下面的叙述不正确的是:________
A. struct是结构体类型的关键字
B. struct stu是用户定义的结构体类型
C. stutype是用户定义的结构体类型名
D. a和b都是结构体成员名
根据下面的定义,能打印出字母M的语句是________。A. printf(“%c\n”, class[3].name);B. printf(“%c\n”, class[3].name[1]);C. printf(“%c\n”, class[2].name[1]);D. printf(“%c\n”, class[2].name[0]);
当说明一个结构体变量时系统分配给它的内存是________。A. 各成员所需内存量的总和。B. 结构中第一个成员所需内存量。C. 成员中占内存量最大者所需的容量。D. 结构中最后一个成员所需内存量。
填空题
定义结构体类型的关键字是__struct______
有这样一个结构体定义和变量声明:
Struct abc
{char x;
int y[2];
char z[20];
}value={‘Y’,10,20,”just a test. ”};
用printf语句输出结构体变量value的各个成员值:
Printf(“%c %d %d %s”,value.y[0],value.y[1],z);
将字符串”hello”存入结构体value的字符数组中
Strcpy(value.z,”hello”);
以下程序的运行结果是___10, x_____。
以下程序的运行结果是__2,3______。
设有三人的姓名和年龄存在结构数组中,以下程序输出三人中年龄居中者的姓名和年龄,请在________中填入正确内容。
3个填空答案分别为:
max=person[i].age;
min=person[i].age;
#include stdio.h
#include string.h
#define N 3
struct man
{char name[20];
int age;
}person[]={li-ming,18,wanghua,19,zhang-ping,20};
void SortByAge(struct man *person,int n);
int main()
{ int i;
SortByAge(person,N);
printf(%12s%12s\n,姓名,年龄);
for(i=0;iN;i++)
{ printf(%12s%12d\n,person[i].name,person[i].age);
}
}
//利用递归函数,实现结构体中的按照年龄排序
void SortByAge(struct man *person,int n)
{ int index=n-1; //保存最大年龄的结构体的序号,先假定为最后一个
struct man t;
if(n==1)return; //递归结束条件:如果只有一个人,无须排序,直接返回
for(int i=n-2;i=0;i--)
if(person[index].ageperson[i].age)index=i;
if(index!=n-1) //如果最大年龄不是最后一个
{ //把最大年龄的结构体,交换到末尾
t=person[index];
person[index]=person[n-1];
person[n-1]=t;
}
SortByAge(person,n-1); // 递归调用,余下的事,留给递归函数去自动完成
}
#include stdio.h
#include string.h
#
文档评论(0)