实验6.docx
《实验6.docx》由会员分享,可在线阅读,更多相关《实验6.docx(13页珍藏版)》请在冰豆网上搜索。
实验6
实验报告
课程名称:
高级语言程序设计
系(院):
信息工程学院
专业:
电子信息工程
班级:
1401B
学生姓名:
李艳
学号:
1434130108
指导教师:
刘若慧
开课时间:
2014-2015学年第2学期
关于实验报告的说明
(一)对教师和学生的基本要求
1、加实验的学生需提交实验报告,一次实验写一个实验报告。
实验报告要求字迹工整,文字简练,数据齐全,图表规范,计算正确,分析充分、具体、定量。
2、教师应根据学生在实验中和在实验报告书写中反映出来的认真程度、实验效果、理解深度、独立工作能力、科学态度等给予出恰当的评语,并指出实验报告中的不妥之处,然后依照评分细则,采用100分制评出成绩并签名和评定日期。
如学生抄袭或缺交实验报告达该课程全学期实验报告总次数三分之一以上,不得同意其参加本课程的考核。
3、学期结束后任课教师要及时收交学生实验报告,并按要求给出学生实验报告成绩册和学生实验报告上交到系办公室。
(二)内容填写要求
1、实验项目名称:
要用最简练的语言反映实验的内容。
2、实验目的和要求:
目的和要求要明确,在理论上验证定理、公式、算法,并使实验者获得深刻和系统的理解,在实践上,掌握使用实验设备的技能技巧和程序的调试方法。
3、实验内容及步骤:
这是实验报告极其重要的内容。
要抓住重点,可以从理论和实践两个方面考虑。
只写主要操作步骤,不要照抄实习指导,要简明扼要。
还应该画出实验流程图,再配以相应的文字说明,这样既可以节省许多文字说明,又能使实验报告简明扼要,清楚明白。
4、实验结果:
根据实验目的将原始资料系统化、条理化,用准确的专业术语客观地描述实验现象和结果,要有时间顺序以及各项指标在时间上的关系。
5、实验总结:
根据相关的理论知识对所得到的实验结果进行解释和分析和总结。
也可以写一些本次实验的心得以及提出一些问题或建议。
实验报告
课程名称
高级语言程序设计
实验日期
2015-5-20
2014-5-27
2014-6-4
实验项目名称
指针
实验地点
1#609机房
实验类型
验证型设计型
综合型
学时
6
一、实验目的及要求(本实验所涉及并要求掌握的知识点)
1.掌握指针和指针变量的概念;
2.掌握简单指针变量的定义和基本使用方法;
3.熟悉指针和一维数组的关系,掌握指向一维数组的指针变量的定义方法,熟练使用指针变量访问一维数组元素;
4.掌握指针与字符串的关系,能使用指针与指针处理字符串;
5.掌握指针数组的定义,能使用指针数组处理多个字符串;
6.掌握指针与函数的关系,能使用指针处理函数;
7.掌握返回指针值的函数的定义与使用。
二、实验环境(本实验所使用的硬件设备和相关软件)
1.硬件:
个人计算机
2.软件:
WindowsXP、VC++6.0
三、实验内容及步骤
实验内容:
1.从键盘上输入三个整数,要求设三个指针变量p1,p2,p3,使p1指向三个数中的最大者,p2指向次大者,p3指向最小者,然后按从大到小的顺序输出三个数。
2.设计一个程序计算输入的两个数的和与差,要求自定义一个函数sum_diff(floatop1,floatop2,float*p1,float*p2),其中op1,op2是输入的两个数,*p1,*p2是计算得出的和与差。
3.定义函数voidsort(inta[],intn),用选择法对数组a中的元素按升序排列,自定义main函数,并在其中调用sort函数。
4.编程判断输入的一个字符串str是否为“回文”,所谓“回文”是指这个字符串正读和倒读都是一样的。
如“asdsa”是回文。
要求定义并调用函数fhuiwei(char*p)来完成判断的过程。
5.编写函数intsearch(inta[],int*x)实现输入十个整数存放于数组a后,再输入一个整数x,判断x是否在该数列中,如果在,返回第一次出现的位置;否则返回0。
要求自定义main函数,并在其中调用search函数判断x在数列中的位置或者不在数列中;如果不在,则输出“NOFOUND“的提示信息。
6.请输入一个字符串s和两个正整数m和n,将字符串s中从第m个字符开始的n个字符复制到字符串s中,再输出字符串。
要求用字符指针定义并调用函数strcopy(s,m,n),它的功能是将字符串s中从第m个字符开始的n字符复制到字符串s中。
7.先输入一个正整数n,再输入任意n个整数,计算并输出这n个整数的和。
要求使用动态内存分配方法为这n个整数分配空间。
选做题:
1.请输入一个字符串s,再输入一个字符c,将字符串s中出现的所有字符c删除。
要求用字符指针定义并调用函数delchar(s,c),它的功能是将字符串s中出现的所有c字符删除。
2.有5个字符串,按由小到大的顺序输出。
操作步骤:
(1)启动VC++6.0(双击桌面上的快捷方式图标);
(2)在编辑器窗口中输入程序1源代码;
(3)编译源程序;
(4)连接运行源程序。
四、实验结果(本实验源程序清单及运行结果或实验结论、实验设计图)
1.
#include
main()
{inta,b,c,*p1,*p2,*p3,p;
printf("输入三个整数:
");
p1=&a;p2=&b;p3=&c;
scanf("%d%d%d",p1,p2,p3);
if(*p1<*p2)
{p=*p1;*p1=*p2;*p2=p;}
if(*p1<*p3)
{p=*p1;*p1=*p3;*p3=p;}
if(*p2<*p3)
{p=*p2;*p2=*p3;*p3=p;}
printf("三个数由大到小为:
%d%d%d\n",*p1,*p2,*p3);
return0;
}
2.
#include
voidsum_diff(floatop1,floatop2,float*p1,float*p2)
{*p1=(op1+op2);
*p2=(op1-op2);
}
main()
{floata,b,sum,diff;
printf("输入任意两个数:
\n");
scanf("%f%f",&a,&b);
sum_diff(a,b,&sum,&diff);
printf("sum=%f\ndiff=%f",sum,diff);
return0;
}
3.
#include
voidsort(inta[],intn)
{
inti,k,c,j;
for(i=0;i{
k=i;
for(j=i+1;jif(a[k]k=j;
{
c=a[k];
a[k]=a[i];
a[i]=c;
}
}
}
main()
{
inta[20],i,n;
printf("随机输入一个整数n:
");
scanf("%d",&n);
printf("输入%d个数据:
",n);
for(i=0;iscanf("%d",&a[i]);
sort(a,n);
for(i=0;iprintf("%3d",a[i]);
return0;
}
4.
//编程判断输入的一个字符串str是否为"回文",所谓"回文"是指这个字符串正读和倒读都是一样的。
//如"asdsa"是回文。
要求定义并调用函数fhuiwei(char*p)来完成判断的过程。
#include
#include
charfhuiwei(char*p)
{
char*a,*b;
inti;
a=b=p;
for(i=0;i<(strlen(a)/2);i++)
if(a[i]!
=b[strlen(a)-1-i])
{printf("不是回文字符");
return0;}
printf("是回文字符");
}
voidmain()
{charstr[10];
inti;
printf("输入一字符串:
\n");
gets(str);
fhuiwei(str);
}
5.
#include
voidsearch(inta[],int*x)
{inti,flag=0;
for(i=0;i<10;i++)
{if(a[i]==*x)
{
flag=1;
break;}
else;
}
if(flag==0)
printf("NOFOUND");
if(flag==1)
printf("%d",i);
}
voidmain()
{inta[10],x,i;
printf("输入十个整数\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("输入一个整数x\n");
scanf("%d",&x);
search(a,&x);
}
6.
#include
#include
voidstrcopy(char*s,intm,intn)
{inti;
printf("复制后的字符串为:
\n");
for(i=m;iprintf("%c",s[i]);
printf("\n");
}
voidmain()
{chars[100];
intm,n;
printf("输入一串字符:
\n");
gets(s);
printf("输入m和n:
\n");
scanf("%d%d",&m,&n);
strcopy(s,m,n);
}
7.
#include
#include
main()
{intn,i,*p,sum,*q;
printf("输入一个整数n:
");
scanf("%d",&n);
p=(int*)malloc(n*sizeof(int));
printf("输入n个数据:
\n");
for(i=0;iscanf("%d",p+i);
sum=0;
for(i=0;isum+=*(p+i);
printf("n个整数的和=%d",sum);
free(p);
return0;
}
选做:
1.
#include
#include
voiddelchar(char*s,charc)
{inti;
for(i=0;s[i]!
='\0';i++)
{if(s[i]!
=c)
printf("%c",s[i]);
else;
}
}
voidmain()
{chars[100];
inti;
charc;
printf("输入字符:
\n");
gets(s);
printf("输入字符c:
\n");
scanf("%c",&c);
printf("删除后字符串为:
\n");
delchar(s,c);
printf("\n");
}2.
#include
#include
main()
{chars[5][30],t[5];
inti,j,min;
printf("请输入五个字符串:
\n");
for(i=0;i<5;i++)
gets(s[i]);
for(i=0;i<5-1;i++)
{
for(j=i+1;j<5;j++)
if(strcmp(s[i],s[j])>0)
{
strcpy(t,s[i]);
strcpy(s[i],s[j]);
strcpy(s[j],t);
}
}
printf("aftersorted:
\n");
for(i=0;i<5;i++)
printf("%s\n",s[i]);
return0;
}
五、实验总结(对本实验结果进行分析,实验心得体会及改进意见)
对于指针的学习,刚开始比较迷茫,知识运用也不熟练,后来经过程序的编写,在自行编写过程中知道了错误的发生,并且自己能够想办法解决,对于指针的学习更加明了,学习上更加如鱼得水,目前,感觉自己对指针方面的知识掌握的还算可以,
实验评语
实验目的明确,格式规范,实验内容齐全,程序代码基本正确,实验分析总结不够全面、认真。
实验成绩
指导教师签名:
刘若慧2015年6月9日