电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

实验五 结构与联合实验

29页
  • 卖家[上传人]:油条
  • 文档编号:20475037
  • 上传时间:2017-11-22
  • 文档格式:DOC
  • 文档大小:348KB
  • / 29 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、C 语言程序设计 实验报告专业 信息安全 班级 1103 日期 成绩 实验组别 第 1 次实验 指导教师 学生姓名 严志颖 学号 U201114113 同组人姓名 实验名称: 结构与联合实验1、实验目的1熟悉和掌握结构的说明和引用、结构的指针、结构数组、以及函数中使用结构的方法。2掌握动态储存分配函数的用法,掌握自引用结构,单向链表的创建、遍历、结点的增删、查找等操作。3了解字段结构和联合的用法。2、实验内容及要求1表达式求值的程序验证题设有说明:char u=UVWXYZ;char v=xyz;struct Tint x;char c;char *t;a=11,A,u,100, B,v,*p=a;请先自己计算下面表达式的值,然后通过编程计算来加以验证。(各表达式相互无关)序号 表达式 计算值 验证值1 (+p)-x2 p+,p-c3 *p+-t,*p-t4 *(+p)-t5 *+p-t6 +*p-t2源程序修改、替换下面所给源程序的功能是:给定一批整数,以 0 作为结束标志且不作为结点,将其建成一个先进先出的链表,先进先出链表的指头指针始终指向最先创建的结点(链头) ,先建结点指向后

      2、建结点,后建结点始终是尾结点。请完成以下工作:(1) 源程序中存在什么样的错误(先观察执行结果)?对程序进行修改、调试,使之能够正确完成指定任务。(2) 修改替换 create_list 函数,将其建成一个后进先出的链表。后进先出链表的头指针始终指向最后创建的结点(链头) ,后建结点指向先建结点,先建结点始终是尾结点。源程序:#include stdio.h#include stdlib.hstruct s_list int data; /* 数据域 */struct s_list *next; /* 指针域 */ ;void create_list (struct s_list *headp,int *p);void main(void)struct s_list *head=NULL,*p;int s=1,2,3,4,5,6,7,8,0; /* 0 为结束标记 */create_list(head,s); /* 创建新链表 */p=head; /*遍历指针 p 指向链头 */while(p)printf(%dt,p-data); /* 输出数据域的值 */p=p-next; /*遍

      3、历指针 p 指向下一结点 */printf(n);void create_list(struct s_list *headp,int *p)struct s_list * loc_head=NULL,*tail;if(p0=0) /* 相当于*p=0 */;else /* loc_head 指向动态分配的第一个结点 */loc_head=(struct s_list *)malloc(sizeof(struct s_list);loc_head-data=*p+; /* 对数据域赋值 */tail=loc_head; /* tail 指向第一个结点 */while(*p) /* tail 所指结点的指针域指向动态创建的结点 */tail-next=(struct s_list *)malloc(sizeof(struct s_list);tail=tail-next; /* tail 指向新创建的结点 */tail-data=*p+; /* 向新创建的结点的数据域赋值 */tail-next=NULL; /* 对指针域赋 NULL 值 */headp=loc_head; /* 使头指针

      4、 headp 指向新创建的链表 */3.程序设计编写并上机调试运行能实现以下功能的程序或函数:(1)编写一个程序,实现以下功能:设计一个字段结构 struct bits,它将一个 8 位无符号字节从最低位向最高位声明为 8 个字段,各字段依次为 bit0, bit1, , bit7,且 bit0的优先级最高。同时设计 8 个函数,第 i 个函数以 biti(i=0,1,2,7)为参数,并且在函数体内输出 biti 的值。将 8 个函数的名字存入一个函数指针数组 p_fun。如果 bit0 为 1,调用 p_fun0指向的函数。如果 struct bits 中有多位为 1,则根据优先级从高到低依次调用函数指针数组 p_fun 中相应元素指向的函数。8 个函数中的第 0 个函数可以设计为:void f0(struct bits b)Printf(“the function %d is called!n”,b); (2)假设用单向链表建立一张班级成绩单,包括每个学生的学号、姓名、英语、高等数学、普通物理、C 语言程序设计四门课程的成绩。用函数编程实现下列功能:(1) 输入每个学生的各项信息。

      5、 (2) 输出每个学生的各项信息。(3) 修改指定学生的指定数据项的内容。(4) 统计每个同学的平均成绩(保留 2 位小数) 。(5) 输出各位同学的学号、姓名、四门课程的总成绩和平均成绩。4.选做题(1)对上述程序设计题中第(2)题的程序,增加按照平均成绩进行升序排序的函数,试写出用交换节点数据域的方法升序排序的函数,排序可选择用选择法或冒泡法。(2)对选做题第(1)题,进一步写出用交换 1 节点指针域的方法升序排序的函数。(3)采用双向链表重做编程设计题中的第(2)题。三、实验步骤及结果1.表达式求值的程序验证序号 表达式 计算值 验证值1 (+p)-x 100 1002 p+,p-c B B3 *p+-t,*p-t x x4 *(+p)-t x x5 *+p-t V V6 +*p-t V V验证程序:#includeint main(void)char *m;char *n;char *e;char *f;char u=UVWXYZ;char v=xyz;m=u,n=v;struct Tint x;char c;char *t;a=11,A,u,100,B,v,*p=a;e=a0

      6、.t;f=a1.t; printf(1.(+p)-xt%dn,(+p)-x);p=a;*u=*m;*v=*n;a0.t=e;a1.t=f;printf(2.p+,p-ct%cn,(p+,p-c);p=a;*u=*m;*v=*n;a0.t=e;a1.t=f;printf(3.*p+-t,*p-tt%cn,(*p+-t,*p-t);p=a;*u=*m;*v=*n;a0.t=e;a1.t=f;printf(4.*(+p)-tt%cn,(*(+p)-t);p=a;*u=*m;*v=*n;a0.t=e;a1.t=f;printf(5.*+p-tt%cn,(*+p-t);p=a;*u=*m;*v=*n;a0.t=e;a1.t=f;printf(6.+*p-tt%cn,(+*p-t);return 0;2.源程序修改、替换(1)#include #include struct s_listint data;struct s_list *next;void creat_list(struct s_list *headp,int *p);int main()struct s_list *head=NUL

      7、L,*p; int s=1,2,3.4,5,6,7,8,0;creat_list(&head,s);p=head;while(p)printf(%dt,p-data);p=p-next;printf(n);return 0;void creat_list(struct s_list *headp,int *p)struct s_list *loc_head=NULL,*tail;if(p0=0);elseloc_head=(struct s_list *)malloc(sizeof(struct s_list);loc_head-data=*p+;tail=loc_head;while(*p)tail-next=(struct s_list *)malloc(sizeof(struct s_list);tail=tail-next;tail-data=*p+;tail-next=NULL;*headp=loc_head;(2)#include #include struct s_listint data;struct s_list *next;void creat_list(struc

      8、t s_list *headp,int *p);int main()struct s_list *head=NULL,*p;int s=1,2,3.4,5,6,7,8,0;creat_list(&head,s);p=head;while(p)printf(%dt,p-data);p=p-next;printf(n);return 0;void creat_list(struct s_list *headp,int *p)struct s_list *loc_head=NULL,*tail;if(p0=0);elseloc_head=(struct s_list *)malloc(sizeof(struct s_list); tail=loc_head;loc_head-data=*p+;while(*p)loc_head=(struct s_list *)malloc(sizeof(struct s_list);loc_head-data=*p+;loc_head-next=tail;tail=loc_head;*headp=loc_head;3.程序设计(1)#includestru

      9、ct bitsunsigned char bit0:1;unsigned char bit1:1;unsigned char bit2:1;unsigned char bit3:1;unsigned char bit4:1;unsigned char bit5:1;unsigned char bit6:1;unsigned char bit7:1;t;void f0(struct bits b)printf(the 1 function %d is called!n,b.bit0);void f1(struct bits b)printf(the 2 function %d is called!n,b.bit1);void f2(struct bits b)printf(the 3 function %d is called!n,b.bit2);void f3(struct bits b)printf(the 4 function %d is called!n,b.bit3);void f4(struct bits b)printf(the 5 function %d is called!n,b.bi

      《实验五 结构与联合实验》由会员油条分享,可在线阅读,更多相关《实验五 结构与联合实验》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.