C语言实验九指针1.docx
《C语言实验九指针1.docx》由会员分享,可在线阅读,更多相关《C语言实验九指针1.docx(12页珍藏版)》请在冰豆网上搜索。
![C语言实验九指针1.docx](https://file1.bdocx.com/fileroot1/2022-12/14/0680f3d7-48b6-42f2-90bf-34c7646dd6db/0680f3d7-48b6-42f2-90bf-34c7646dd6db1.gif)
C语言实验九指针1
d湖北民族学院信息工程学院《高级语言程序设计》实验报告
实验九指针
(1)
学院名称:
湖北民族学院信息工程学院专业名称:
电子信息科学与技术
学生姓名:
学号:
实验评分:
教师签名:
周慧华
【实验目的】
1.理解指针的概念。
2.掌握指针变量的定义及指针变量的引用。
3.熟悉指针变量的运算。
4.掌握指针作为函数参数的使用方法。
5.掌握返回指针的函数的应用。
6.掌握指向函数的指针的应用。
【实验内容】
1.阅读并调试程序。
【实验题9-1】
#include
voidmain()
{intiA[2][3]={2,4,6,8,10,12},(*pA)[3],i,j;
pA=iA;
scanf("%d,%d",&i,&j);
printf("iA[%d][%d]=%d\n",i,j,*(*(pA+i)+j));
}
【实验题9-2】
#include
voidmain()
{intiA,iB,*pA=&iA,*pB=&iB,P;
scanf("%d,%d",pA,pB);
if(*pA>*pB)
{
P=*pA;*pA=*pB;*pB=P;
}
printf("%d<=%d\n",*pA,*pB);
}
2.阅读分析程序并填空
【实验题9-3】
#include
fun(int*pA,int*pB)
{
intiTemp;
iTemp=*pA;
*pA=*pB;
*pB=iTemp;
}
voidmain()
{
intiA,iB;
int*pA,*pB;
scanf("%d,%d",&iA,&iB);
pA=&iA;
pB=&iB;
if(iAprintf("%d,%d\n",iA,iB);
}
【实验题9-4】
#include
Fun()
{
int*pA,i,iA[5];
pA=iA;
for(i=0;i<5;i++)
scanf("%d",pA++);
printf("\n");
pA=iA;
for(i=0;i<5;i++)
printf("%d,",(*pA)++);
printf("\n");
}
voidmain()
{
Fun();
}
3.通过指针间接访问变量
【实验题9-5】
#include
voidmain()
{
inta,*p;
printf("\nPleaseenteranumber:
\n");
scanf("%d",&a);
p=&a;
printf("a=%d\n",*p);
}
4.指针作为函数参数
【实验题9-6】
#include
voidhuhuan(int*p,int*q)
{
intm;
m=*p;
*p=*q;
*q=m;
}
voidmain()
{
inta,b;
printf("\nPleaseenternumbers(a,b):
\n");
scanf("%d%d",&a,&b);
huhuan(&a,&b);
printf("a=%d,b=%d\n",a,b);
}
【实验题9-7】
#include
intLen(constchar*p)
{
intiLen=0;
while(*p++)
iLen++;
returniLen;
}
voidmain()
{
inta;
charpStr[80];
printf("请输入字符串:
");
gets(pStr);
a=Len(pStr);
printf("字符串长度为%d\n",a);
}
5.返回值为指针的函数的应用
【实验题9-8】
#include
int*Max(inta,intb)
{
return((a>b)?
&a:
&b);
}
voidmain(void)
{
intiA,iB,*p;
printf("\nPleaseentertwoingeters:
\n");
scanf("%d%d",&iA,&iB);
p=Max(iA,iB);
printf("两个数的最大值为%d\n",*p);
}
6.指向函数的指针的应用
【实验题9-9】
#include
intMax(inta,intb)
{
return(a>b?
a:
b);
}
voidmain()
{
intiMax,iA,iB;
int(*p)(int,int);
p=Max;
printf("\nPleaseentertwoingeters:
\n");
scanf("%d%d",&iA,&iB);
iMax=(*p)(iA,iB);
printf("Max=%d\n",iMax);
}
7.其他应用
【实验题9-10】
#include
#defineN2
#defineM3
intMax(intiA[N][M],int*p)
{
inti,j,m=0,n=0;
for(i=0;ifor(j=0;jif(iA[i][j]>iA[m][n])
{
m=i;
n=j;
}
*p=n;
return(iA[m][n]);
}
voidmain()
{
intiA[N][M]={12,4,6,46,97,69};
inta,b;
a=Max(iA,&b);
printf("Max=%d,line=%d\n",a,b);
}
【实验小结】
通过这次上机,对指针有了初步的概念,熟悉了指针变量的运算,学会了指针作为函数参数的使用方法。
2013年12月17日