实验分析报告.docx
- 文档编号:17255088
- 上传时间:2023-07-23
- 格式:DOCX
- 页数:14
- 大小:103.43KB
实验分析报告.docx
《实验分析报告.docx》由会员分享,可在线阅读,更多相关《实验分析报告.docx(14页珍藏版)》请在冰点文库上搜索。
实验分析报告
实验报告-
————————————————————————————————作者:
————————————————————————————————日期:
实验报告
课程名称:
高级语言程序设计
实验十:
指针及其应用
班级:
2015级
学生姓名:
学号:
专业:
计算机科学与技术
指导教师:
学期:
2015-2016学年上学期
云南大学信息学院
一、实验目的
1、掌握指针的概念
2、掌握指针变量的定义和基本使用方法
3、掌握使用指针操作数组元素的方法
4、掌握使用指针操作字符串的方法
二、知识要点
1、变量的直接访问和间接访问的概念
2、指针和指针变量的概念
3、简单变量的指针及指向简单变量的指针变量的定义、赋值及使用
4、数组的指针及指向数组的指针变量的定义、赋值及使用
5、字符串的指针及指向字符串的指针变量的定义、赋值及使用
三、实验预习(要求做实验前完成)
1、写出一个C语句,使得指针变量u指向变量x:
int*u=&;
2、写出一个C语句,输出“指针变量p指向的整型变量”的值:
printf("%d",*p);
3、把“指针变量u所指向的变量”的值变为40,其语句是:
*u=40;
4、定义三个变量,其中x1是整型变量;y1、y2是指向整数的指针变量:
intx1=0,*y1=0,*y2=0;
5、若有语句:
chart[20]=“abcdefgh”,*p;则使p指向字符串的第一个字符的语句是:
p=t;
四、实验内容(以下题目要求使用指针方法完成)
1、已知一个整数数组x[4],它的各元素值分别为3、11、8和22。
使用指针表
示法编程序,求该数组各元素之积。
2、编写程序,输入10个整数至一数组,将其中最小的数与第一个数对调,把
最大的数与最后一个数对调。
(要求输出对调前后的数组)
3、编写程序,复制一个字符串到字符数组x中,要求在复制时删除其中的数字
字符。
输出x数组。
(x数组中不能含有数字字符)
4、编写参数为指针变量的函数del,功能是删除字符串中的*号。
要求在主函数中定义数组a,b,输入字符串给数组a,调用del删除*号后存放在数组b中,输出b数组。
5、编写参数为指针变量的函数,功能是将数组元素按输入顺序逆置存放,要求在主函数中输入数组元素的值,在主函数中输出逆置后的数组。
6、编写参数为指针变量的函数fun,功能是交换两个数组中的对应元素。
已知
数组a元素值分别为10,20,30,40,数组b元素值分别为1,2,3,4,要求在主函
数中输出交换后的a和b数组。
7、利用动态内存分配的方法,输入一个班的学生某门功课的成绩,人数由用户指定,输出全班平均分以及最高分和最低分。
五、实验结果(要求写出运行界面及输出的运行结果)
1.
#include
#include
intmain()
{
intx[4]={0},*p=0,i=0,t=1;
printf("请输入各元素值:
\n");
for(i=0;i<4;i++)
scanf("%d",&x[i]);
p=x;
for(i=0;i<4;i++)
{
t*=*p;
p++;
}
printf("各元素之积是:
%d\n",t);
return0;
}
2.
#include
#include
voidswap(int*x,int*y)
{
intt;
t=*x;
*x=*y;
*y=t;
}
intmain()
{
inti=0,min=0,max=0,a[10]={0},r=0,t=0;
printf("请输入10个整数:
\n");
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
if(i==0)
{
max=a[i];
min=a[i];
}
elseif(a[i] { r=i; min=a[i]; } elseif(a[i]>max) { t=i; max=a[i]; } } printf("对调前: \n"); for(i=0;i<10;i++) { printf("%d",a[i]); } putchar('\n'); swap(&a[r],&a[0]); swap(&a[t],&a[9]); printf("对调后: \n"); for(i=0;i<10;i++) { printf("%d",a[i]); } putchar('\n'); return0; } 3. #include #include intmain() { intt=0,i=0; chara[100]={'0'},x[100]={'0'}; char*p0=a,*p1=x; printf("请输入一个带数字字符的字符串: \n"); gets(a); t=strlen(a); for(i=0;i { if((*(p0+i)<'0'||*(p0+i)>'9')) { *(p1++)=*(p0+i); } } printf("删除数字字符后的字符串是: %s\n",x); return0; } 4. #include #include #include intt=0; intmain() { voiddel(char*p0,char*p1); char*p0=NULL; char*p1=NULL; p1=malloc(20*1); p0=malloc(20*1); gets(p0); t=strlen(p0); del(p0,p1); puts(p1); free(p1); free(p0); return0; } voiddel(char*p0,char*p1) { inti=0; for(i=0;i { if(*p0! ='*') { *p1=*p0; p0++; p1++; } elsep0++; } } 5. #include #include #include voidinor(char*p,intlen); inti=0,t=0; intmain() { chara[20]={'\0'}; char*p=a; printf("请输入数组元素: \n"); gets(a); t=strlen(a); inor(p,t); printf("逆置后的结果是: \n"); puts(a); return0; } voidinor(char*p,intlen) { for(;i { if(len%2==0) { for(;i<=(len-2)/2;i++) { t=*(p+i); *(p+i)=*(p+len-1-i); *(p+len-1-i)=t; } } else { for(;i<=(len-3)/2;i++) { t=*(p+i); *(p+i)=*(p+len-1-i); *(p+len-1-i)=t; } } } } 6. #include #include voidfun(int*p1,int*p2); inti=0; intmain() { inta[4],b[4]; int*pa=a,*pb=b; printf("请输入a的元素: \n"); for(i=0;i<4;i++) { scanf("%d",&pa[i]); } printf("请输入b的元素: \n"); for(i=0;i<4;i++) { scanf("%d",&pb[i]); } fun(pa,pb); for(i=0;i<4;i++) { printf("%d",*(pa+i)); } putchar('\n'); for(i=0;i<4;i++) { printf("%d",*(pb+i)); } return0; } voidfun(int*p1,int*p2) { intt=0; for(;i<4;i++) { t=*(p1+i); *(p1+i)=*(p2+i); *(p2+i)=t; } } 7. #include #include intmain() { intnum=0,i=0; floatMax=0,Min=0,sum=0; printf("请输入人数: \n"); scanf("%d",&num); float*p=(float*)malloc(num*4); printf("请输入一个班的学生某门功课的成绩: \n"); for(i=0;i { scanf("%f",p+i); sum+=*(p+i); if(i==0)Max=Min=*(p+i); elseif(Max<*(p+i))Max=*(p+i); elseif(Min>*(p+i))Min=*(p+i); } printf("全班平均分: %f\n最高分: %f\n最低分: %f\n",sum/num,Max,Min); free(p); return0; } 六、实验小结 1.对于gets()函数,如从键盘输入asdf,获取后其后会自动生成反斜杠零; 2.指针指向一个数组,指针名称和数组名称在gets函数等情况下等价; 3.*(p+i)在一些情况下和p[i]等价; 4.For()中,如调用字符数组,可以在不等于反斜杠0的情况下继续操作; 5.记得写函数声明; 6.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 分析 报告
![提示](https://static.bingdoc.com/images/bang_tan.gif)