实验 10 指针.doc

上传人:M****1 文档编号:558349313 上传时间:2023-07-20 格式:DOC 页数:8 大小:109KB
返回 下载 相关 举报
实验 10 指针.doc_第1页
第1页 / 共8页
实验 10 指针.doc_第2页
第2页 / 共8页
实验 10 指针.doc_第3页
第3页 / 共8页
实验 10 指针.doc_第4页
第4页 / 共8页
实验 10 指针.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《实验 10 指针.doc》由会员分享,可在线阅读,更多相关《实验 10 指针.doc(8页珍藏版)》请在金锄头文库上搜索。

1、 实验 10 指针【实验题1】 程序填空,交换指针 p1,p2 所指向的变量。#include void main() int a=1,b=2, *p1, *p2, *ptp1=p2=/p1 指向变量 a,p1 指向变量 bprintf(“a=%d, b=%d n”, a,b)printf(“*p1=%d, *p2=%d n”, *p1,*p2)/交换指针变量 p1,p2 的指向printf(“a=%d, b=%d n”, a,b)printf(“*p1=%d, *p2=%d n”, *p1,*p2)运行结果:a=,b=*p1=, *p2=a=,b= *p1=,*p2=#includevoid

2、 main()int a=1,b=2,*p1,*p2,*pt;p1=&a;p2=&b;printf(a=%d,b=%dn,a,b);printf(*p1=%d,*p2=%dn,*p1,*p2);pt=p1;p1=p2;p2=pt;printf(a=%d,b=%dn,a,b);printf(*p1=%d,*p2=%dn,*p1,*p2);【实验题2】 程序填空,交换指针 p1,p2 所指向的变量的值。#include void main() int a=1,b=2, *p1, *p2, tempp1=p2=/p1 指向变量 a,p1 指向变量 bprintf(“a=%d, b=%d n”, a,

3、b)printf(“*p1=%d, *p2=%d n”, *p1,*p2)/交换 p1,p2 所指向的变量的值printf(“a=%d, b=%d n”, a,b)printf(“*p1=%d, *p2=%d n”, *p1,*p2)运行结果:a=,b=*p1=,*p2=a=,b=*p1=,*p2=#include void main() int a=1,b=2,*p1,*p2,temp;p1=&a; p2=&b;printf(a=%d,b=%dn,a,b);printf(*p1=%d,*p2=%dn,*p1,*p2);temp=*p1;*p1=*p2;*p2=temp;printf(a=%d

4、,b=%dn,a,b);printf(*p1=%d,*p2=%dn,*p1,*p2);【实验题3】 程序填空,输入三个整型变量 i,j,k 的值。请设置三个指针变 量 p1,p2,p3,分别指向 i,j,k。然后通过 p1,p2,p3 使 i,j,k 三个变量的 值依次交换,即原来 i 的值赋给 j,原来 j 的值赋给 k,原来 k 的值赋给 i。输出 交换后 i,j,k 的值。ijk【算法分析】三个值轮换跟两个值互换是一样的原理,在变量被赋新值之前必须保证原值已经被保存。设 temp 为临时变量,则 temp=i i=k k=j j=temp参考以上做法,要求:轮换时要求用指针 p1,p2,

5、p3 来替代 i,j,k。#include void main() int i,j,k,temp, *p1=&i,*p2=&j,*p3=&k;printf(Input i j k: ); scanf(%d%d%d,&i,&j,&k);temp=*p1;*p1=*p3;*p3=*p2;*p2=temp;printf(%d %d %dn,*p1,*p2,*p3);【实验题4】 程序填空,输入三个整数,要求设计 2 个指针变量 p1,p2,使p1 指向这三个数的最大值,p2 指向最小者,并输出最大值和最小值。#include void main() int a,b,c, *p1, *p2scanf(

6、“%d%d%d”,&a,&b,&c)/ 令 p1 指向最大值p1=/p1 指向 a,b 中较大者if()p1=&c/令 p2 指向最小值p2= /p2 指向 a,b 中较小者if()p2=&cprintf(“max=%d, min=%d”, *p1,*p2 )#includevoid main() int a,b,c,*p1,*p2;scanf(%d%d%d,&a,&b,&c);p1=(ab?&a:&b);if(c*p1) p1=&c;p2=(ab?&a:&b);if(c*p2) p2=&c;printf(max=%d,min=%dn,*p1,*p2);【实验题5】 编写一个交换两个数的函数

7、swap(int *p1,int *p2),函数的形式参 数使用指针变量,在 main()函数中调用 swap()函数实现实参的交换。#includevoid swap(int *p1,int *p2)int temp;temp=*p1;*p1=*p2;*p2=temp;void main()void swap(int *p1,int *p2);int a,b,*p1,*p2;printf(Enter a,b:);scanf(%d %d,&a,&b);p1=&a;p2=&b;swap(p1,p2);printf(%d %dn,*p1,*p2);【实验题6】 程序填空,请用下标、数组名、指针等不

8、同方法来输出数组元素。方法1:用下标引用数组元素源程序如下:#include void main() int i,a5=1,2,3,4,5;for(i=0;i5;i+)printf(%d ,ai);printf(n);方法2:用数组名引用数组元素,源程序如下:#include void main() int i,a5=1,2,3,4,5;for(i=0;i5;i+)printf(%d ,*(a+i);printf(n);方法3:用指针和下标引用数组元素源程序如下:#include void main() int i,a5=1,2,3,4,5,*p;for(p=&a,i=0;i5;i+)prin

9、tf(%d ,*(p+i);printf(n);方法4:用指针引用数组元素,源程序如下:#include void main() int a5=1,2,3,4,5,*p;for(p=a;p(a+5);p+ )printf(%d ,*p);printf(n);【实验题7】 程序填空,利用指针,将数组 a 中的 10 个整数按相反顺序存放。#includevoid main() int i,t,a10,*p,*q;printf(Input 10 integers:);for(i=0;i10;i+) scanf(%d,&ai);p=&a0;q=&a9;for(p=a,q=a+9;p(a+5);p+,

10、q-)t=*p;*p=*q;*q=t;for(i=0;i10;i+) printf(%d ,ai);printf(n);【实验题8】 程序设计(冒泡排序):输入 8 个实数,要求用冒泡法将这 8 个实数按降序排列,输出排序结果。#includevoid sort(int *x,int n) int i,j,temp;for(i=0;in;i+)for(j=0;jn-i;j+)if(xjxj+1)temp=xj;xj=xj+1;xj+1=temp;void main() int i,temp,a8;printf(请输入8个实数:);for(i=0;i8;i+)scanf(%d,&ai); sort(a,8);for(i=0;i8;i+)printf( %d ,ai);printf(n);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号