- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验二__有关结构体和共用体的程序设计参考答案.doc
实验2:有关结构与共同体的程序设计
一、实验目的
掌握结构体类型和结构体变量的定义、引用方法;
掌握结构体类型数组和结构体类型指针的概念和应用;
掌握共用体的概念和使用;
能用结构体类型解决实际问题。
二、实验要求
了解结构体类型和简单数据类型、结构体类型和共用体类型的区别;
复习结构体变量、结构体指针与结构体数组的相关理论课程;
完成各项实验任务及问题讨论。
三、实验内容
1.输入和运行下面的程序,并分析输出结果。
①#include stdio.h
main()
{ union EXAMPLE
{ struct
{ int x,y;
}in;
int a,b;
}e;
e.a=1;e.b=2;
e.in.x=e.a*e.b;
e.in.y=e.a+e.b;
printf(“%d,%d\n”,e.in.x,e.in.y);
}
输出结果:4,8
解答:对于共用体e,有三个成员in,a,b,它们在内存中的覆盖关系如下图:
即e.a,e.b,e.in.x占相同的内存单元,
执行e.a=1;e.b=2;后e.a,e.b,e.in.x的值为2,
执行e.in.x=e.a*e.b;后e.a,e.b,e.in.x的值为2*2=4,
执行e.in.y=e.a+e.b;e.in.y=4+4=8。
②#include stdio.h
main()
{ union
{ int i[2];
long k;
char c[4];
}r,*s=r;
s-i[0]=0x39;
s-i[1]=0x38;
printf(“%c\n”,s-c[0]);
}
输出结果:9
解答:对于共用体r,有三个成员i,k,c,它们在内存中的覆盖关系如下图:
i[0]
k
i[1]
执行s-i[0]=0x39;s-i[1]=0x38;赋值语句后,内存中存储的数据值如上图所示。
2.完善程序
①下面程序的功能是输入学生的姓名和成绩,然后输出。
#include stdio.h
struct studinf
{ char name[20]; /* 学生姓名 */
int score; /* 学生成绩 */
} stu, *p;
void main ( )
{ p=stu;
printf(Enter name:);
gets( p-name );
printf(Enter score: );
scanf(%d, (*p).score );
printf(Output: %s, %d\n, stu.name , stu.score );
}
目标:掌握结构体成员引用的三种等价表达方式。
②输入N个整数,储存输入的数及对应的序号,并将输入的数按从小到大的顺序进行排列。要求:当两个整数相等时,整数的排列顺序由输入的先后次序决定。例如:输入的第3个整数为5,第7个整数也为5,则将先输入的整数5排在后输入的整数5的前面。程序如下:
#include stdio.h
#define N 10
struct
{ int no; //储存对应的序号
int num;//储存输入的数
} array[N];
main( )
{ int i,j,num;
for( i=0;iN;i++ )
{ printf(enter No. %d:,i);
scanf(%d,num);//输入待储存的数
for( j=i-1 ;j=0array[j].num num; j-- ) array[j+1]=array[j];
//查找待插入的位置
array[ j+1 ].num=num;
array[ j+1 ].no=i;
}
for( i=0;iN;i++ )
printf(%d=%d,%d\n,i,array[i].num,array[i].no);
}
3. 利用结构体编写程序,求任意两复数的和。具体实验步骤与要求如下:
定义表示复数的结构体类型;
定义函数Add,求两复数的和。
任意两复数及其和在主函数中输入、输出。
#include stdio.h
struct complex
{
float a; //实部
float b; //虚部
};
struct complex Add(struct complex x,struct complex y)
{ struct complex temp;
temp.a=x.a+y.a; //实部相加
temp.b=x.b+y.b; //虚部相加
return temp;
}
您可能关注的文档
- 如何使用远程控制进别人电脑.doc
- 如何做需求分析.ppt
- 如何写教学叙事(含实例).doc
- 如何制定个性化的在职研学习计划.ppt
- 如何制定技术人员绩效考核的指标.pdf
- 如何增进护患之间沟通的技巧.pdf
- 如何建立有效的货币资金内控制度.doc
- 如何提升你的职业化素养(七)良好的人际沟通技巧.pdf
- 如何提高你的沟通技巧.doc
- 如何简要分析经济学问题(以星巴克定价分析为例).doc
- 2025AACR十大热门靶点推荐和解读报告52页.docx
- 财务部管理报表.xlsx
- 高中物理新人教版选修3-1课件第二章恒定电流第7节闭合电路欧姆定律.ppt
- 第三单元知识梳理(课件)-三年级语文下册单元复习(部编版).pptx
- 俄罗斯知识点训练课件-七年级地理下学期人教版(2024).pptx
- 课外古诗词诵读龟虽寿-八年级语文上学期课内课件(统编版).pptx
- 高三语文二轮复习课件第七部分实用类文本阅读7.2.1.ppt
- 高考物理人教版一轮复习课件第4章第3讲圆周运动.ppt
- 高考英语一轮复习课件53Lifeinthefuture.ppt
- 2025-2030衣柜行业风险投资发展分析及投资融资策略研究报告.docx
最近下载
- 福建省厦门市2024-2025学年高二下学期期末质量检测生物试卷.docx
- 西南18J515室内装修.docx VIP
- 2024年湖北省恩施州宣恩县晓关乡招聘社区工作者真题参考答案详解.docx VIP
- 2024年湖北省恩施州鹤峰县太平乡招聘社区工作者真题含答案详解.docx VIP
- 永州冷水滩区招聘城市社区专职工作人员笔试真题2024.docx VIP
- 危险化学品安全有关法律法规解读.pptx VIP
- 2024年湖北省恩施州恩施市三岔乡招聘社区工作者真题含答案详解.docx VIP
- 货物运输突发事件处理预案.docx VIP
- 2025年_永州冷水滩区招聘城市社区专职工作人员考试试卷[附答案].docx VIP
- 妊娠合并系统性红斑狼疮护理查房.pptx VIP
文档评论(0)