第八章:善于利用指针
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
南京信息工程大学滨江学院实验(实习)报告
实验(实习)名称指针实验(实习)日期 2011.12 指导教师宣文霞
专业实验班年级大一班次4 班姓名王雅婷学号 20112335052 Eg8-1: 输入两个整数,并使其从大到小输出,用指针变量实现数的比较。
(1)源程序:
#include
void main()
{ int *p1,*p2,*p,a,b;
scanf("%d,%d",&a,&b);
p1=&a; p2=&b;
if(a
{ p=p1; p1=p2; p2=p;}
printf("a=%d,b=%d\n",a,b);
printf("max=%d,min=%d\n",*p1,*p2);
}
(2)输入数据:13,15
(3)结果输出:
Eg8-2: 输入两个整数,并使其从大到小输出,用函数实现数的交换
(1)源程序:
#include
void swap(int *p1, int *p2)
{ int p;
p=*p1;
*p1=*p2;
*p2=p;
}
void main()
{ int a,b;
int *p,*q;
scanf("%d,%d",&a,&b);
p=&a; q=&b;31
if(a
printf("\n%d,%d\n",a,b);
}
(2)输入数据:13,16
(3)结果输出:
(4)如果将swap 函数修改为如下形式,分析如何调试和修改?
void swap(int *p1, int *p2)
{
int *p;
*p=*p1;
*p1=*p2;
*p2=*p;
}
Eg8-3:用指针法输入12 个数,然后按每行4 个数输出。
(1)算法分析:定义一个整型数组和一个整型指针,这样通过数组就可以静态分配内存空间,存储数据;然后将指针与数组相关,使指针指向与数组相同的首地址处,这样就可以通过指针或者数组都可以对存储空间加以操作。
(2)源程序:
#include
void main()
{ int j,k,a[12],*p ;
p=a; //使指针p 指向与数组a 相同的首地址处
for(j=0;j<12;j++)
scanf("%d",p++); //移动P 的位置,输入数据
p=a; //指针重定位
for(j=0;j<12;j++)
{
if(j%4==0)
printf("\n"); //按每行4 个数输出
printf("%4d",*p++);
}
printf("\n");
}
(3)输入数据:0 1 2 3 4 5 6 7 8 9 10 11
(4)结果输出:
Eg8-4: 从键盘输入十个整数,要求用冒泡法(或选择法)实现从大到小的排列输出。
#include
main()
{
int s[10],t,i,j,x;
printf("input 10 numbers:\n");
for(t=0;t<10;t++)
scanf("%d",&s[t]);
for(i=0;i<9;i++)
for(j=0;j<9-i;j++)
if(s[j]
{t=s[j];s[j]=s[j+1];s[j+1]=t;}
printf("the result is:\n ");
for(j=0;j<10;j++)
printf("%d",s[ji]);
printf("\n");
}
输入数据:1 2 3 4 5 6 7 8 9 10
结果输出:
Eg8-5: 练习指针数组:有三个字符串“DATA STRUCTURE”、“COPUTER DESIGN”、“C PROGROM”,请按字符顺序输出这三个字符串。(要求用指针数组指
向这三个字符串。)
#include
#include
void sort(char *p[]);
int main()
{
char a[]="DATA STRUCTURE ",b[]="COPUTER DESIGN ",c[]="C PROGROM "; char *p[3];
int i;
p[0]=a;
p[1]=b;
p[2]=c;
sort(p);
for(i=0;i<=2;i++)
printf("%s ",p[i]);
printf("\n");
return 0;
}
void sort(char *p[])
{
char *t;
if(strcmp(p[0],p[1])>0)
{
t=p[0];
p[0]=p[1];
p[1]=t;
}
if(strcmp(p[0],p[2])>0)
{
t=p[0];
p[0]=p[2];
p[2]=t;
t=p[1];
p[1]=p[2];
p[2]=t;
}
}
输入数据:“DATA STRUCTURE”、“COPUTER DESIGN”、“C PROGROM”
结果输出: