C语言-实验八-指针的使用
实验八
实验项目名称:指针的使用
实验时间:
实验地点:
实验目的:
掌握指针和间接访问的概念,会定义和使用指针变量。
能正确使用数组的指针和指向数组的指针变量。
能正确使用字符串的指针和指向字符串的指针变量。
主要的实验所需仪器、设备:PC机。
实验内容与步骤:
求一个整形数组a[10]的最大元素。(注意:数组元素由用户自由输入,求最大值要求用指针处理)
按要求编写程序,写出源程序:
#include
void main()
{
int *p,i,a[10],t,max;
p=a;
printf("please enter 10 integers:\n");
for(i=0;i<10;i++)
scanf("%d",p++);
p=a;
for(i=0,max=p[0];i<9;i++)
if(max
printf("max=%d\n",max);
}
运行结果是:
Please enter 10 integers:
34 67 87 77 98 100 23 1 29 32
max=100
与人工分析程序所得结果是否一致,有何结论:
任意输入3个字符串,按由小到大的顺序输出。(注意:处理过程要求用指针)。
按要求编写程序,写出源程序:
#include
#include
void main()
{
char a[20],b[20],c[20],*p1,*p2,*p3,*t;
p1=a,p2=b,p3=c;
printf("please enteer three strings:\n");
gets(a);gets(b);gets(c);
if(strcmp(p1,p2)>0)
t=p1,p1=p2,p2=t;
if(strcmp(p1,p3)>0)
t=p1,p1=p3,p3=t;
if(strcmp(p2,p3)>0)
t=p2,p2=p3,p3=t;
printf("由小到大排列是%s %s %s\n",p1,p2,p3);
}
运行结果是:
与人工分析程序所得结果是否一致,有何结论:
将一个3*3的整形二维数组转置。主函数中用scanf函数输入以下数组元素:
3 5
9 11
13 15 19
子函数实现行列互换,要求将数组第一行第一列元素的地址作为函数参数,
函数调用结束后在主函数输出已转置的二维数组。
按要求编写程序,写出源程序:
#include
void main()
{
void trans(int (*w)[3]);
int a[3][3],(*p)[3],i;
printf("请按行输入矩阵: \n");
for(p=a;p
for(i=0;i<3;i++)
scanf("%d",&(*p)[i]);
trans(a);
printf("转置后的矩阵: \n");
for(p=a;p