实验五 结与联合实验.doc

实验五 结与联合实验.doc

ID:58476482

大小:304.50 KB

页数:29页

时间:2020-05-15

实验五 结与联合实验.doc_第1页
实验五 结与联合实验.doc_第2页
实验五 结与联合实验.doc_第3页
实验五 结与联合实验.doc_第4页
实验五 结与联合实验.doc_第5页
资源描述:

《实验五 结与联合实验.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、C语言程序设计实验报告专业信息安全班级1103日期成绩实验组别第1次实验指导教师学生姓名严志颖学号U201114113同组人姓名实验名称:结构与联合实验一、实验目的1.熟悉和掌握结构的说明和引用、结构的指针、结构数组、以及函数中使用结构的方法。2.掌握动态储存分配函数的用法,掌握自引用结构,单向链表的创建、遍历、结点的增删、查找等操作。3.了解字段结构和联合的用法。二、实验内容及要求1.表达式求值的程序验证题设有说明:charu[]="UVWXYZ";charv[]="xyz";structT{i

2、ntx;charc;char*t;}a[]={{11,ˊAˊ,u},{100,ˊBˊ,v}},*p=a;请先自己计算下面表达式的值,然后通过编程计算来加以验证。(各表达式相互无关)序号表达式计算值验证值1(++p)->x2p++,p->c3*p++->t,*p->t4*(++p)->t5*++p->t6++*p->t2.源程序修改、替换下面所给源程序的功能是:给定一批整数,以0作为结束标志且不作为结点,将其建成一个先进先出的链表,先进先出链表的指头指针始终指向最先创建的结点(链头),先建结点指向后

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

4、idcreate_list(structs_list*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){printf("%dt",p->data);/*输出数据域的值*/p=p->next;/*遍历指针p指向下一结点*/}printf("");}v

5、oidcreate_list(structs_list*headp,int*p){structs_list*loc_head=NULL,*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){/*

6、tail所指结点的指针域指向动态创建的结点*/tail->next=(structs_list*)malloc(sizeof(structs_list));tail=tail->next;/*tail指向新创建的结点*/tail->data=*p++;/*向新创建的结点的数据域赋值*/}tail->next=NULL;/*对指针域赋NULL值*/}headp=loc_head;/*使头指针headp指向新创建的链表*/}3.程序设计编写并上机调试运行能实现以下功能的程序或函数:(1)编写一个程序,

7、实现以下功能:设计一个字段结构structbits,它将一个8位无符号字节从最低位向最高位声明为8个字段,各字段依次为bit0,bit1,…,bit7,且bit0的优先级最高。同时设计8个函数,第i个函数以biti(i=0,1,2,…,7)为参数,并且在函数体内输出biti的值。将8个函数的名字存入一个函数指针数组p_fun。如果bit0为1,调用p_fun[0]指向的函数。如果structbits中有多位为1,则根据优先级从高到低依次调用函数指针数组p_fun中相应元素指向的函数。8个函数中的第

8、0个函数可以设计为:voidf0(structbitsb){Printf(“thefunction%discalled!”,b);}(2)假设用单向链表建立一张班级成绩单,包括每个学生的学号、姓名、英语、高等数学、普通物理、C语言程序设计四门课程的成绩。用函数编程实现下列功能:(1)输入每个学生的各项信息。(2)输出每个学生的各项信息。(3)修改指定学生的指定数据项的内容。(4)统计每个同学的平均成绩(保留2位小数)。(5)输出各位同学的学号、姓名、四门课程的总成绩和平均成绩。

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

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

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