C语言试验九报告
- 格式:doc
- 大小:111.18 KB
- 文档页数:5
上机实验九 指针1
班级 学号 姓名
一共6个题,其中1个选做题
一.实验内容
【实验题1】程序填空,交换指针p1,p2所指向的变量。
#include
void main( )
{ int a=1,b=2, *p1, *p2, *pt;
p1=&a; p2=&b;
printf(“%d, %d \n”, *p1,*p2);
//交换指针变量p1,p2的指向
; ; ;
printf(“%d, %d \n”, *p1,*p2);
}
运行结果:
【实验题2】程序填空,交换指针p1,p2所指变量的值。
#include
void main ( )
{ int a=1,b=2, *p1, *p2, temp;
p1=&a; p2=&b;
printf(“*p1=%d, *p2=%d \n”, *p1,*p2);
//交换p1,p2所指向的变量的值
; ; ;
printf(“*p1=%d, *p2=%d \n”, *p1,*p2);
}
运行结果:
【实验题3】程序填空:输入三个整数,要求设计2个指针变量p1,p2 ,使p1指向这三个数的最大值,p2指向最小者 ,并输出最大值和最小值。
#include
void main ( )
{
int a,b,c, *p1, *p2, *p3;
scanf(“%d%d%d”,&a,&b,&c);
//令p1指向a和b最大值
if(a>b)
p1= ;
else
p1= ;
//令p1指向a、b和c中最大值
if( ) p1=&c;
//令 p2指向最小值,提示使用条件表达式
p2= ; //p2指向a,b中较小者
if( ) p2=&c;
printf(“max=%d, min=%d\n”, *p1,*p2 );
}
运行结果:输入 1 2 3
输出
指针(二):指针与数组
【实验题4】程序填空:请用下标、数组名、指针等不同方法来输出数组元素。
方法1:用下标引用数组元素,源程序如下:
#include
void main ( )
{ int i, a[5]={1,2,3,4,5};
for( i=0 ; i<5 ; i++ )
printf("%d ", );
printf("\n");
}
方法3: 用指针和下标引用数组元素,源程序如下:
#include
void main ( )
{ int i, a[5]={1,2,3,4,5}, *p;
for( p=a , i=0 ; i<5 ; i++ )
printf("%d ", );
printf("\n");
}
由此可见,若指针p=a, 则a[i]≡*(a+ i )≡*(p+i )≡p[ ]
&a[i]≡a+ i ≡p+ i 方法2: 用数组名引用数组元素,源程序如下:
#include
void main ( )
{ int i, a[5]={1,2,3,4,5};
for( i=0 ; i<5 ; i++)
printf("%d ", *( ) );
printf("\n");
}
方法4: 用指针引用数组元素,源程序如下:
#include
void main ( )
{ int a[5]={1,2,3,4,5}, *p;