第八章:善于利用指针

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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”

结果输出:

相关文档
最新文档