c语言程序设计第5次上机yoki

c语言程序设计第5次上机yoki

ID:35751053

大小:177.50 KB

页数:18页

时间:2019-04-16

c语言程序设计第5次上机yoki_第1页
c语言程序设计第5次上机yoki_第2页
c语言程序设计第5次上机yoki_第3页
c语言程序设计第5次上机yoki_第4页
c语言程序设计第5次上机yoki_第5页
资源描述:

《c语言程序设计第5次上机yoki》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、C语言程序设计实验报告班级CS1109日期2012,5,31学生姓名雷霞学号U201114439第5次上机实验结构与联合(一)实验目的(1)熟悉和掌握结构的说明和引用、结构的指针、结构数组、以及函数中使用结构的方法。(2)掌握动态储存分配函数的用法,掌握自引用结构,单向链表的创建、遍历、结点的增删、查找等操作。(3)了解字段结构和联合的用法。(二)实验内容及要求1.表达式求值的程序验证设有说明:charu[]="UVWXYZ";charv[]="xyz";structT{intx;charc;char*t;}a[]={{11,ˊAˊ,u},{100,ˊBˊ,v}},*p=a;请先自

2、己计算表2.1中表达式的值,然后编写程序并运行来加以验证。(各表达式相互无关)表2.1表达式值的计算序号表达式计算值验证值1(++p)->x1001002p++,p->cBB3*p++->t,*p->txx4*(++p)->txX5*++p->tVV6++*p->tVV源程序:#include#includecharu[]="UVWXYZ";charv[]="xyz";structT{intx;18charc;char*t;}a[]={{11,'A',u},{100,'B',v}},*p=a;voidmain(void){printf("%d

3、t",(++p)->x);p=a;/*开始时错误地写作*p=a*/printf("%ct",(p++,p->c));p=a;printf("%ct",(*p++->t,*p->t));p=a;printf("%ct",*(++p)->t);p=a;printf("%ct",++*p->t);p=a;printf("%ct",*++p->t);/*该表达式会改变t的指向,所以将其写在后面*/system("pause");}运行结果:2.源程序修改、替换下面所给源程序的功能是:给定一批整数,以0作为结束标志且不作为结点,将其建成一个先进先出的链表。先进先出链表的头指针始终指

4、向最先创建的结点(链头),先建结点指向后建结点,后建结点始终是尾结点。请完成以下工作:(1)源程序中存在什么样的错误(先观察执行结果)?对程序进行修改、调试,使之能够正确完成指定任务。(2)修改替换create_list函数,将其建成一个后进先出的链表,后进先出链表的头指针始终指向最后创建的结点(链头),后建结点指向先建结点,先建结点始终是尾结点。源程序:#include"stdio.h"#include"stdlib.h"structs_list{intdata;/*数据域*/structs_list*next;/*指针域*/};voidcreate_list(structs_l

5、ist*headp,int*p);voidmain(void){structs_list*head=NULL,*p;ints[]={1,2,3,4,5,6,7,8,0};/*0为结束标记*/create_list(head,s);/*创建新链表*/p=head;/*遍历指针p指向链头*/while(p){18printf("%dt",p->data);/*输出数据域的值*/p=p->next;/*遍历指针p指向下一结点*/}printf("");}voidcreate_list(structs_list*headp,int*p){structs_list*loc_head=N

6、ULL,*tail;if(p[0]==0)/*相当于*p==0*/;else{/*loc_head指向动态分配的第一个结点*/loc_head=(structs_list*)malloc(sizeof(structs_list));loc_head->data=*p++;/*对数据域赋值*/tail=loc_head;/*tail指向第一个结点*/while(*p){/*tail所指结点的指针域指向动态创建的结点*/tail->next=(structs_list*)malloc(sizeof(structs_list));tail=tail->next;/*tail指向新创建的结

7、点*/tail->data=*p++;/*向新创建的结点的数据域赋值*/}tail->next=NULL;/*对指针域赋NULL值*/}headp=loc_head;/*使头指针headp指向新创建的链表*/}错误改正:#include"stdio.h"#include"stdlib.h"structs_list{intdata;/*数据域*/structs_list*next;/*指针域*/};voidcreate_list(structs_list**headp,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。