1、计算机上机实验报告本科实验报告课程名称:软件技术基础实验项目:线性表的插入和删除实验地点:电机馆跨越机房专业班级:通信1201学号:2012001294学生姓名:黄元指导教师:温景国2013年 11月11日实验目的:知道线性顺序表是怎样插入和删除的,学会在计算机上独立的用代码敲出来,并使之成功运行得出结果。实验内容:#includevoid ins(int *v,intm,int *n,inti,int b) int k; if(*n=m) printf(overflown); if(i*n) i=*n+1; if(i=i;k-) vk=vk-1; vi-1=b; *n=*n+1; retur
2、n; void del(int *v,intm,int *n,int i) int k; if(*n=0) printf(underflown); if(i*n) printf(Not this element in the listn); for(k=i;k*n;k+) vk-1=vk; *n=*n-1; return; int main() int n=10; int a100=1,2,3,4,5,6,7,8,9,0; intb,i,j,k; printf(请输入要插入的数:); scanf(%d,&b); printf(请输入要插入的位置:); scanf(%d,&i); ins(a,1
3、00,&n,i,b); for(k=0;kn;k+) printf(%d ,ak); printf(n); printf(请输入要删除的数的位置:); scanf(%d,&j); del(a,100,&n,j); for(k=0;kn;k+) printf(%d ,ak); printf(n);主要仪器设备:跨越机房电脑实验结果与分析:心得体会:这个实验需要注意的一点就是线性表的上溢与下溢。另外,插入的位置在线性表的首部或尾部也应该分析到。本科实验报告课程名称:软件技术基础实验项目:栈的操作实验地点:电机馆跨越机房专业班级:通信1201学号:2012001294学生姓名:黄元指导教师:温景国2
4、013年 11月11日实验目的:知道在栈的操作中是怎样入栈和退栈的,了解每一个语句在程序中的重要地位。熟练的在计算机上写出它的代码。实验内容:#includevoid push(int *a,intm,int *top,int x) if(*top=m) printf(overflown); return; *top=*top+1; a*top-1=x; return;int pop(int *a,intm,int *top) int y; if(*top=0) printf(underflown); return; y=a*top-1; *top=*top-1; return y;main(
5、) int n=9; int a10=1,2,3,4,5,6,7,8,9; intx,y,i; printf(请输入要入栈的数:); scanf(%d,&x); push(a,10,&n,x); for(i=0;in;i+) printf(%d,ai); printf(n); printf(退栈运算:); y=pop(a,8,&n); printf(%dn,y); for(i=0;in;i+) printf(%d,ai); printf(n);主要仪器设备:跨越机房电脑实验结果与分析:心得体会:这个实验需要明白的一点是栈的“先进后出”与栈的“后进先出”,然后注意分析上溢与下溢的情况。本科实验报
6、告课程名称:软件技术基础实验项目:数组的压缩存储实验地点:电机馆跨越机房专业班级:通信1201学号:2012001294学生姓名:黄元指导教师:温景国2013年11月11日实验目的:了解数组的压缩存储,知道如何用C语言把他写出来,并使之得出正确的结果。实验内容:#includemain() int a10=1,2,3,4,5,6,7,8,9,10; inti,j,k=0;for(i=0;i=3;i+) for(j=0;j=3;j+) if(j=i) printf(%5d,ai*(1+i)/2+j); else printf(%5d,k); printf(n); 主要仪器设备:跨越机房电脑得出结
7、果与分析:心得体会:这个程序的关键一步就是i*(1+i)/2+j这个式子的表达,然后理清数据压缩存储的逻辑就行了。本科实验报告课程名称:软件技术基础实验项目:线性表的对分搜索实验地点:电机馆跨越机房专业班级:通信1201学号:2012001294学生姓名:黄元指导教师:温景国2013年11月11日实验目的:了解对分搜索的优越性,知道怎么操作使其在计算机上成功运行,掌握对分搜索的原理。实验内容:4、对分搜索#includeint search(int a,intn,int x) intfirst,last,middle; first=1,last=n; while(first=last) mid
8、dle=(first+last)/2; if(x=amiddle-1) return middle; else if(xamiddle-1) last=middle-1; else first=middle+1; return -1;main() int i, x, num; int a10=1,4,6,7,11,15,29,31,45,56; printf(数组为:); for(i=0;i10;i+) printf(%2d ,ai); printf(n请输入要搜索的数:); scanf(%d,&x); num=search(a,10,x); if(num=-1) printf(该数不在数组中
9、n); else printf(该数为数组的第%2d个数n,num); 主要仪器设备:跨越机房电脑实验结果与分析:心得与体会:在这个实验中,比较容易弄混的就是last=middle-1与first=middle+1这两个加1与减1的问题,直接影响到首元素与尾元素能否被搜索到的问题。另外还需要理清的就是什么情况下该数不在数组中。本科实验报告课程名称:软件技术基础实验项目:冒泡排序实验地点:电机馆跨越机房专业班级:通信1201学号:2012001294学生姓名:黄元指导教师:温景国2013年11月11日实验目的:了解冒泡法是怎样将不规则排列的数排成规则排列的数的,掌握它的原理并学会在计算机上敲出她
10、的代码,使之成功运行。实验内容:5、冒泡排序#include main() int a10,i,j,t;printf(将数组由小到大排列); for(i=0;i10;i+) printf(请输入第%2d个数: ,i+1); scanf(%d,&ai); printf(原数组排列为:); for(i=0;i10;i+) printf(%d ,ai); printf(n); for(i=0;i10;i+) for(j=0;jaj+1) t=aj; aj=aj+1; aj+1=t; printf(新数组排列为:); for(i=0;i10;i+) printf(%d ,ai); printf(n);主要仪器设备:跨越机房电脑实验结果与分析:心得体会:这个程序的关键就是理清冒牌排序的逻辑,寻找排序的技巧,其实也就是将最大或最小的最小的数依次往后排,保证前n个数中第n个数是最大的,然后将n逐一递减,直到第2个数大于第一个数为止。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1