指针实验报告.docx

上传人:小飞机 文档编号:3545264 上传时间:2023-03-13 格式:DOCX 页数:7 大小:39.15KB
返回 下载 相关 举报
指针实验报告.docx_第1页
第1页 / 共7页
指针实验报告.docx_第2页
第2页 / 共7页
指针实验报告.docx_第3页
第3页 / 共7页
指针实验报告.docx_第4页
第4页 / 共7页
指针实验报告.docx_第5页
第5页 / 共7页
亲,该文档总共7页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《指针实验报告.docx》由会员分享,可在线阅读,更多相关《指针实验报告.docx(7页珍藏版)》请在三一办公上搜索。

1、指针实验报告嘉应学院 计算机学院 实 验 报 告 课程名称 指导老师 班 级 程序设计基础 实验名称 实验时间 姓 名 实验地点 提交时间 座 号 一、实验目的和要求 1、掌握指针和间接访问的概念,会定义和使用指针变量。 2、能正确使用数组的指针和指向数组的指针变量。 3、能正确使用字符串的执针和指向字符串的指针变量。 二、实验环境和方法 实验方法: 综合运用课本所学的知识,用不同的算法实现在不同的程序功能。 结合指导老师的指导,解决程序中的问题,正确解决实际中存在的异常情况,逐步改善功能。 根据实验内容,编译程序。 实验环境:Windows xp Visual C+6.0 三、实验内容及过程

2、描述 实验内容:编译以下题目的程序并调试运行。 1、输入3个整数,按由大到小的顺序输出,然后将程序改为:输入3个字符串,按由小到大顺序输出。 先编写一个程序,以处理输入3个整数,按由小到大顺序输出。运行程序,分析结果。 把程序改为能处理输入3个字符串,按由小到大的顺序输出。运行此程序,分析结果。 比较以上两个程序,分析处理整数与处理字符串有什么不同?例如: 怎样得到指向整数的指针。 怎样比较两个整数的指针。 怎样交换两个整数。 2、将一个33的整数型二维数组转置,用一个函数实现之。 在主函数中用scanf函数输入以下数组元素: 1 3 5 7 9 11 13 15 19 将数组0行0列元素的地

3、址作为函数实参,在执行函数的过程中实现行列互换,函数调用结束后在主函数中输出已转置的二维数组。 请思考: 二维数组的指针,某一行的指针、某一元素的指针个代表什么含义?应该怎么表示? 怎样表示i行j列元素及其地址。 3、将n个数按输入时顺序的逆序排列,用函数实现。 在调用函数时用数组名作函数实参。 函数实参改为用指向数组首元素的指针,形参不变。 分析以上二者的不同。 4、写一个函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度。 分别在程序中按以下两种情况处理: 函数形参用指针变量。 函数形参用数组名。 实验步骤: 进入Visual C+ 6.0集成环境。 输入自己编好的程序。

4、检查一遍已输入的程序是否有错,如发现有错,及时改正。 进行编译和连接。如果在编译和连接过程中发现错误,频幕上会出现“报错信息”,根据提示找到出错位置和原因,加以改正。再进行编译,如此反复直到不出错为止。 运行程序并分析运行结果是否合理。在运行是要注意当输入不同的数据时所得结果是否正确,应运行多次,分别检查在不同情况下结果是否正确。 以下是各题源代码: 1、 输入3个整数,按由大到小的顺序输出,然后将程序改为:输入3个字符串,按由小到大顺序输出。 程序 #include int main void swap(int *p1,int *p2); int n1,n2,n3; int *p1,*p2,

5、*p3; printf(请输入3个数n1,n2,n3:); scanf(%d,%d,%d,&n1,&n2,&n3); p1=&n1; p2=&n2; p3=&n3; if(n1n2) swap(p1,p2); if(n1n3) swap(p1,p3); if(n2n3) swap(p2,p3); printf(排序结果为:%d,%d,%dn,n1,n2,n3); return 0; void swap(int *p1,int *p2) int p; p=*p1;*p1=*p2;*p2=p; 程序 #include #include int main void swap(char *,char

6、*); char str120,str231,str320; printf(请输入3行字符:n); 2、将一个33的整数型二维数组转置,用一个函数实现之。 #include int main void move(int * pointer); int a33,*p,i,j; printf(请输入一个33数组:n); for(i=0;i3;i+) scanf(%d %d %d,&ai0,&ai1,&ai2); p=&a00; move(p); printf(转置数组为:n); for(i=0;i3;i+) printf(%d %d %dn,ai0,ai1,ai2); return 0; void

7、 move(int * pointer) int i,j,t; for(i=0;i3;i+) for(j=i;j3;j+) t=*(pointer+3*i+j); *(pointer+3*i+j)=*(pointer+3*j+i); *(pointer+3*j+i)=t; 3、将n个数按输入时顺序的逆序排列,用函数实现。 #include int main void sort(char * p,int m); int i,n; char * p,num20; printf(请输入n为:); scanf(%d,&n); printf(请输入%d个数:n,n); for(i=0;i0) swap(

8、str1,str2); if(strcmp(str1,str3)0) swap(str1,str3); if(strcmp(str2,str3)0) swap(str2,str3); printf(排序结果为:n); printf(%sn%sn%sn,str1,str2,str3); return 0; void swap(char *p1,char *p2) char p20; strcpy(p,p1);strcpy(p1,p2);strcpy(p2,p); printf(逆序排列为:n); for(i=0;in;i+) printf(%d ,numi); printf(n); return

9、 0; void sort(char * p,int m) int i; char temp,* p1,* p2; for(i=0;im/2;i+) p1=p+i; p2=p+(m-1-i); temp=* p1; * p1=*p2; * p2=temp; 4、写一个函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度。 分别在程序中按以下两种情况处理: 函数形参用指针变量。 #include int main int length(char * p); int len; char str20; printf(请输入一个字符串:n); scanf(%s,str); len=len

10、gth(str); printf(该字符串长度为%d.n,len); return 0; int length(char * p) int n; n=0; while (* p!=0) n+; p+; return(n); 函数形参用数组名。 #include int main int length(char str); int len; char str20; printf(请输入一个字符串:n); scanf(%s,str); len=length(str); printf(该字符串长度为%d.n,len); return 0; int length(char str20) int len

11、gth(char str20) int n; char * p; p=str; n=0; while (* p!=0) n+; p+; return(n); 四、实验结果: 1、输入3个整数,按由大到小的顺序输出,然后将程序改为:输入3个字符串,按由小到大顺序输出。 程序结果: 结果分析: 本程序应用指针,在swap函数中交换指针p所指向的单元数值,使较小的数放前面从而达到排序的效果。 程序结果: 结果分析: 利用指针指向字符串数组,在strcmp函数中,将两个字符串自左向右逐个字符比较,直到出现不同字符或遇到0为止。 处理整数只需将指针指向整数的存储地址然后进行比较;处理字符串时,字符串是用

12、数组存储的,在进行大小比较时用指针指向数组首地址或数组名从而得到字符串指针。比较整数用swap函数,比较字符串用strcmp函数。 2、将一个33的整数型二维数组转置,用一个函数实现之。 二维数组中,某一行的指针是指指向该数组一行中的所有元素可表示为:*,i表示第i行;某一元素指针代表任意元素的指针*aij,i表示第i行,j表示第j列。 第i行j列表示为aij,地址表示为&aij。 3、将n个数按输入时顺序的逆序排列,用函数实现。 结果分析: 用数组名作函数实参与用指向数组首元素的指针作函数实参都是用“值传递”的方法将数值变量的地址传递到函数接收。数组名表示数组首元素的地址,在值传递中把首元素的地址传递到函数接收处,所以函数形参采用指针变量。 4、写一个函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度。 运行结果: 结果分析: 函数形参用指针变量在函数值传递时是将数组首元素地址传递给函数形参;数组名表示函数首地址,在作函数形参时接收传递的变量地址。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号