资源描述:
《扬州大学电子实习实验报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、软件技术基础实验报告书姓名:陆建霞学号:131402117班级:电子1301指导老师:华继钊扬州大学信息工程学院二〇一四年六月一、实验准备:掌握指针的使用与赋值。仔细读了题目,分析了题意。实验目的:从键盘输入三个整数,在屏幕上按从小到大次序打印输出。(用If语句编程(两种方案:1、交换存储位置;2、不改变输入变量的值))。实验过程:(1).#include"stdio.h"main(){inta,b,c,m;printf("inputthreenumbers");scanf("%d%d%d",&a,&b,&c);if(a>b){t=a,a=b,b=t;}//交
2、换a,b的值if(a>c){t=a,a=c,c=t;}//交换a,c的值if(b>c){t=b,b=c,c=t;}//交换b,c的值printf("%d,%d,%d",a,b,c);getch();}(2).#include"stdio.h"main(){int*p1,*p2,*p3,*p,a,b,c;printf("inputthreenumbers");scanf("%d%d%d",&a,&b,&c);p1=&a;//把3个整数分别赋给3个指针变量p2=&b;p3=&c;if(*p1>*p2){p=p1;p1=p2;p2=p;}//a>b,交换a和b的
3、值if(*p1>*p3){p=p1;p1=p3;p3=p;}//a>c,交换a和c的值if(*p2>*p3){p=p2;p2=p3;p3=p;}//b>c,交换b和c的值printf("a=%d,b=%d,c=%d",a,b,c);//交换前printf("%d,%d,%d",*p1,*p2,*p3);//交换后getch();}调试结果:(1)输入:194输出:149(2)输入:194输出:149结果分析:赋地址时,不要求左值原来必须指向某个内存单元。而赋数据则要求指针必须指向某个内存单元,给其赋值只是填充了该内存单元的内容。二、实验准备:掌握冒泡、选择、插
4、入这三种排序。实验目的:输入十个整数,排序后按从小到大在屏幕上打印输出。(冒泡、选择、插入;比较这三种算法的优劣)。实验过程:1、冒泡法:#includemain(){ints[10],t,i,j,x;printf("input10numbers:");for(t=0;t<10;t++)scanf("%d",&s[t]);for(i=0;i<9;i++)//外循环控制排序趟数,n个数排n-1趟for(j=0;j<9-i;j++)//内循环每趟比较的次数if(s[j]>s[j+1]){t=s[j];s[j]=s[j+1];s[j+1]=t;}/
5、/相邻两关键字记录若逆序,则交换printf("theresultis:");for(j=0;j<10;j++)printf("%-4d",s[j]);printf("");getch();}2、选择#include"stdio.h"voidsort(inta[],intn){inti,j,t,m;for(i=0;ia[j])//若其后有比最值更大的{t=j;}//则将其下标记在t中}i
6、f(t!=i)//若t不为最初的i值,说明在其后找到比其更大的数{m=a[i];a[i]=a[t];a[t]=m;}//则交换最值和当前序列的第一个数}}voidmain(){inta[10],i;for(i=0;i<10;i++)scanf("%3d",&a[i]);sort(a,10);for(i=0;i<10;i++)printf("%3d",a[i]);}3、插入法:#includemain(){inta[10],i,j,t;printf("Pleaseinput10numbers:");for(i=0;i<10;i++)scanf("%
7、d",&a[i]);for(i=1;i<10;i++)//外循环控制趟数,n个数从第2个数开始到最后共进行n-1次插入{t=a[i];//将待插入数暂存于变量t中for(j=i-1;j>=0&&t8、基本思想: