《C语言程序设计》实验报告
实验序号:7                                  实验项目:指针  学  号 实验地点  315 姓  名 指导教师 陈 林仙丽 专业、班级 实验时间 网络工程 2013年1月8日 一、实验目的及要求 1、通过实验掌握指针的定义和使用指针变量; 2、掌握使用指针对数组和字符串进行操作; 3、掌握函数中指针类型参数的使用; 4、要求采用指针方法完成。 二、实验设备(环境)及要求 使用Visual C++ 6.0;windows系列操作系统的环境。 三、实验内容与步骤    1.输入运行下面这个程序,观察并分析结果: #include \void main()                {   int a[]={2,3,4,5,6};  int *p1;  p1=a;  printf(\ printf(\  p1=a+2;  printf(\ printf(\  char *p2=\ printf(p2+2);  printf(\     } 运行结果截图:  P1+2是输出a[2]的地址,*(P1+2)是输出a[2]的值 定义了p1=a+2,所以现在的P1+2是输出a[4]的地址,*(P1+2)是输出a[4]的值 P2+2是输出从第三个字符开始的字符串。  2.以下程序调用invert 函数按逆序重新放置a 数组中的值,a 数组中的值在main 函数中读入,请填空。 #include \void invert(int *s,int i,int j) { int t; if(i #include void main()                {   int a[]={2,3,4,5,6};  int *p1;  char *p2=\ p1=a;  printf(\ printf(\  p1=a+2;  printf(\ printf(\  printf(p2+2);  printf(\ } 2.  #include void invert(int *s,int i,int j) { int t; if(i   t=*(s+i);    *(s+i)=*(s+j);   *(s+j)=t;  成绩    invert(s,i+1,j-1); } }  void main( ) {  int a[10],i;  for(i=0;i<10;i++) scanf(\   invert(a,0,10-1); for(i=0;i<10;i++)     printf(\printf(\} 3.  void main( ) {  char a[80],b[80],*p; int i; gets(a); gets(b);  for(i=0;i<10;i++) {      if(i%2==0) puts(a);     else    {   p=b;          puts(p);  } } } 4.  #include  int a[10]={3,7,9,8,5,4,3,1,0,2};  int *p,i,j;  p=a;   for(i=0;i<10;i++)   printf(\ printf(\ for(j=9;j>=0;j--)   printf(\} 5.  #include