资源描述
实验八 指针操作
一、实验目的
1.了解指针参数的特殊性。
2.掌握函数、指针、数组的用法。
二、实验重难点
重点:
1. 指针的定义;
2. 指针作函数的参数及参数传递;
3. 函数的调用方法。
难点:
1. 指针作函数的参数。
三、实验内容与要求
实验内容:
1. 编程题:利用指针,将数组元素逆序存放。(用函数实现)。
四、实验学时
2课时
五、根据实验过程填写下列内容
1.写出能够完成实验1要求的输出格式的程序和运行后的结果。
运行结果:
2.写出能够完成实验2要求的程序和运行后的结果。
运行结果:
教师评语:
是否完成实验程序的预备设计? 是: 不是:
是否在本次规定时间完成所有项目? 是: 不是:
实验成绩等级:
教师签名: 时间:
实验9 指针操作(续)
(一)实验目的
1. 掌握指针的概念、会定义和使用指针变量;
2. 掌握指向数组的指针变量;
3. 掌握字符串指针的使用;
(二)实验器材
计算机硬件环境:PIII 667以上计算机;软件环境:Turbo C, Visual C。
(三)实验内容
1. 分析程序的运行结果,并上机验证。
① main()
{ int i, j, *pi, *pj;
pi=&i; pj=&j;
i=5; j=7;
printf( "%d\t%d\t%d\t%d", i, j, pi, pj );
printf( "\n%d\t%d\t%d\t%d\n", &i, *&i, &j, *&j );
}
程序的运行结果是:______________________
② main()
{ int a[ ]={ 1, 2, 3 };
int *p, i;
p=a;
for ( i=0; i<3; i++ )
printf( "%d %d %d %d\n", a[i], p[i], *(p+i), *(a+i) );
}
程序的运行结果是:______________________
③ main()
{ int a[ ]={ 2, 5, 3, 6, 8 };
int *p, i=1, s=0;
for ( p=a; p<a+5; p++ )
{ i*=*p; s+=*p; }
printf( "%d %d\n", i, s);
}
程序的运行结果是:______________________
2.分析程序的运行结果,并上机验证。
int ff( char *x )
{ char *p=x, *q;
int i, k=1;
q = p+strlen(x)-1;
for ( i=1; i<=strlen(x)/2; i++)
if (*p==*q) { p++; q--; }
else { k=0; break; }
return k;
}
main()
{ char a[80];
gets(a);
if ( ff (a)==1 ) printf( "*****\n");
else printf("%%\n");
}
若从键盘输入asdfghgfdsa则输出结果为:______________________
若从键盘输入aweftfew 则输出结果为:______________________
用户自定义函数的功能是:____ _______
3. 分析程序,将程序空白处填上,并上机验证。
以下是将字符串复制到另一个字符串中的源程序,其中函数cprstr的形参为两个字符指针变量,其中,pm指向原字符串,pn指向目标字符串,试完整源程序。
#include "stdio.h"
void cpystr( char *pm, char *pn){
while ( ( *pn=*pm )!='\0' )
{___________;
___________;
}
}
main( )
{ char *pa="BEIJING CHINA", b[20], *pb;
pb=b;
cpystr (___________);
printf( "string_a=%s\nstring_b=%s\n", pa, pb );
}
展开阅读全文