c语言实验报告--第9次报告思考题
洛阳理工学院实验报告 附:源程序: 第一题: #include intmain() { int*p,a[3],num;printf("请输入3个整数\n");for(num=0;num*(p+1)){}printf("从小到大排列为:\n");for(p=a;p*(p+1)){}num=*p;*p=*(p+1);*(p+1)=num;printf("\n");return0; 第二题: #include#includeintmain(){ voidswap(char*pt1,char*pt2);chars1[80],s2[80],s3[80],*p1,*p2,*p3;printf("请输入3个字符串:\n");gets(s1);gets(s2); XX学院 计算机课程实验报告 (XX~XX年度第二学期) 专业课程 计算机科学与技术C语言程序设计 XX级班级姓名学号教师 XXX XX学院电子信息工程学院制 实验报告填写说明 1、如为纸质版,请用钢笔或圆珠笔填写,要求字迹工整,条理清晰。如为电子版,请务必双面打印。 2、“实验题目”可以填写章节名称或用文字表述,“实验目的”要逐条列出。 3、“实验内容及步骤”,控制在3-4页之内,如程序代码所占篇幅过大,则只填入程序流程图,并尽可能精简。4、“教师批阅”处由课任老师填写评语,给出实验成绩,并作为平时成绩,参与期末成绩总评。 C语言程序设计实验报告 专业计算机科学与技术班级卓越工程师班日期XX年12月23日实验组别第一组成绩第九次实验结构与联合实验指导教师李开学生姓名学号 实验名称结构与联合实验 实验目的 熟悉和掌握结构的说明和引用、结构的指针、结构数组,以及函数中使用结构的方 法。 掌握动态存储分配函数的用法,掌握自引用结构和单向链表的创建、遍历、结点的 增删、查找等操作。 了解字段结构和联合的用法。 实验内容及要求 1.表达式求值的程序验证设有说明: charu[]="UVWXYZ";charv[]="xyz";structT{intx;charc;char*t; }a[]={{11,'A',u},{100,'B',v}},*p=a; 请先自己计算表中表达式的值,然后编写程序并运行来加以验证。 2.源程序修改、替换 下面所给源程序的功能是:给定一批整数,以0作为结束标志且不作为结点,将其建成一个先进先出的链表。先进先出链表的头指针始终指向最先创建的结点,先建结点指向后建结点,后建结点始终是尾结点。请完成以下工作: 源程序中存在什么样的错误?对程序进行修改、调试。使之能 够正确完成指定任务。 修改替换creat_list函数,将其建成一个后进先出的链表。后进先出的链表的头指针 始终指向最后创建的结点,后建结点指向先建结点,先建结点始终是尾结点。 源程序 #include #includestructs_list{intdata; structs_list*next;}; voidcreat_list(structs_list*headp,int*p);intmain(void){ structs_list*head=NULL,*p;ints[]={1,2,3,4,5,6,7,8,0};creat_list(head,s);p=head;while(p){ printf("%d\t",p->data);p=p->next;} printf("\n");return0;} voidcreat_list(structs_list*headp,int*p){ structs_list*loc_head=NULL,*tail;if(p[0]==0);else{ loc_head=(structs_list*)malloc(sizeof(structs_list));loc_head->data=*p++;tail=loc_head;while(*p){ tail->next=(structs_list*)malloc(sizeof(structs_list));tail=tail->next;tail->data=*p++;} tail->next=NULL;} headp=loc_head;} 3.程序设计 编写并上机调试运行能实现以下功能的程序或函数: 编写一个程序,实现以下功能:定义一个字段结构structbits,它将一个8位无符号字节从最低位向最高位声明为8个字段,各字段依次为bit0,bit1,……bit7