四川师范大学数学与软件科学学院程序设计实验报告实验八

四川师范大学数学与软件科学学院程序设计实验报告实验八
四川师范大学数学与软件科学学院程序设计实验报告实验八

数学与软件科学学院实验报告

一、实验目的

(1) 掌握C语言环境下指针的声明、定义和使用方法;

(2) 掌握指针和变量以及指针和数组的关系;

(3) 掌握指针、数组之间的关系;

(4) 掌握指针、函数之间的关系。

二、实验内容

1.熟悉指针的基本使用方法。

(1) 请仔细分析以下程序段,并上机测试运行结果,对测试结果进行分析说明。

1) 程序段一:

#include

main()

{

int i=3,j=7,k=9;

printf("i=%d,j=%d,k=%d",*(&i),*(&j),*(&k));

}

2) 程序段二:

#include

main()

{

int a,*p;

float b,*q;

p=&a;

q=&b;

scanf("%d,%f",p,q);

*p=a*(*q);

printf("a=%d,p=%d,*p=%d\n",a,p,*p);

printf("b=%f,q=%d,*q=%f\n",b,q,*q);

printf("p+1=%d,q+1=%d",p+1,q+1);

}

2. 想使指针变量pt1指向变量a和b中的大者,pt2指向其小者,以下程序能

否实现此目的?为什么?如果不行,请给出实现的方法。

#include

swap(int *p1,int *p2);

main()

{

int a,b;

int *p1,*p2,*p;

scanf("%d,%d",&a,&b);

p1=&a;

p2=&b;

if(a

{

swap(p1,p2);

}

else

printf("%d,%d",*p1,*p2);

}

swap(int *p1,int *p2)

{

int *p;

p=p1;

p1=p2;

p2=p;

printf("%d,%d",*p1,*p2);

}

3.请仔细分析教材例6-8~6-9,上机调试之。记录并分析程序运行结果。#include

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);

}

三、实验准备

(1) 编写所选实验题目的程序代码和流程图;

(2) 检查源程序并给出其可能的运行结果说明。

四、实验步骤

(1) 上机验证所选题目,并做相应测试和分析;

(2) 进行实验分析;

(3) 总结指针及其程序设计、实现方法和经验;

(4) 编写实验报告。

五、实验结果

1.熟悉指针的基本使用方法。

(1) 请仔细分析以下程序段,并上机测试运行结果,对测试结果进行分析说明。

1) 程序段一:

2) 程序段二:

2.想使指针变量pt1指向变量a和b中的大者,pt2指向其小者,以下程序能否实现此目的?为什么?如果不行,请给出实现的方法。

不行,因为函数调用之后就不存在了,本质上,pt1和pt2是没有改变的:

3.请仔细分析教材例6-8~6-9,上机调试之。记录并分析程序运行结果。输入两个数,并使其从大到小输出:

相关主题
相关文档
最新文档