实验十 指针(一)

u    实验目的

1、通过实验进一步掌握指针的概念,会定义和使用指针变量。

2、能正确使用数组的指针和指向数组的指针变量。

3、能正确使用字符串的指针和指向字符串的指针变量。

4、能正确使用指向函数的指针变量。

5、了解指向指针的指针的概念及其使用方法。

u    预习内容

见教材第十章

u    实验重点

1、通过实验进一步掌握指针的概念,会定义和使用指针变量。

2、能正确使用数组的指针和指向数组的指针变量。

3、能正确使用字符串的指针和指向字符串的指针变量。

4、能正确使用指向函数的指针变量。

u    实验难点

1、能正确使用数组的指针和指向数组的指针变量。

2、能正确使用字符串的指针和指向字符串的指针变量。

u    实验内容

编程序并上机调试运行程序,要求都用指针实现:

1、输入三个整数,按由小到大的顺序输出,然后将程序改为:输入三个字符串,按由小到大顺序输出。

2、将一个3×3的矩阵转置,用一函数实现之。

3、有n个人围成一圈,顺序排号。从第1个人开始13报数,凡报到3的人退出圈子,问最后留下的是原来第几号的那位。

u    参考例题

【例】从10个数中找出其中最大值和最小值。

调用一个函数只能得到一个返回值,今用全局变量在函数之间“传递”数据。

程序如下:

int max,min;      /*全局变量*/

void max_min_value(int array[],int n)

{int *p,*array_end;

 array_end=array+n;

 max=min=*array;

 for(p=array+1;p<array_end;p++)

     if(*p>max)max=*p;

     else if (*p<min)min=*p;

   return;

}

main()

{int i,number[10];

   printf("enter 10 integer umbers:\n");

 for(i=0;i<10;i++)

     scanf("%d",&number[i]);

   max_min_value(number,10);

 printf("\nmax=%d,min=%d\n",max,min);

 }

【例】以上程序可改为:

int max,min;      /*全局变量*/

void max_min_value(int *array,int n)

{int *p,*array_end;

 array_end=array+n;

 max=min=*array;

 for(p=array+1;p<array_end;p++)

     if(*p>max)max=*p;

     else if (*p<min)min=*p;

   return;

}

main()

{int i,number[10],*p;

 p=number;             /*使p指向number数组*/

   printf("enter 10 integer umbers:\n");

   for(i=0;i<10;i++,p++)

     scanf("%d",p);

   p=number;

   max_min_value(p,10);

   printf("\nmax=%d,min=%d\n",max,min);

 }

公告通知
教学日历
疑难留言
同学你好!对本课程有哪些建议?