指针实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
佛山科学技术学院
实验报告
实验名称指针
实验项目使用指针实现结构化程序设计
一、试验目的
1、能正确使用数组的指针和指向数组的指针变量。
2、掌握指针作为函数的参数处理数组。
二、实验内容
使用指针编写函数分别实现以下功能,每个功能一个函数,函数的参数必须使用字符指针。
(1)求一个字符串的长度。注意不能使用C语言现成的库函数strlen。
(2)将一个字符串反序输出,例如,输入“Michael”则输出“leahciM”。
(3)判断一个字符串是否是“回文”。所谓“回文”,是指顺读和倒读都一样的字符串。如“ABCBA”和“ppmmpp”都是“回文”。
然后再在main函数中输入一个字符串,调用这三个函数,并输出相应的结果。
完成后的源程序,以文件名zhizhen.cpp保存并上传到帐号下到cprg9文件夹中。“指针实验报告”上传到帐号下的sybg文件夹中。
三、程序清单
#include
#include
void lenght(char *str) /*求出字符串的长度*/
{
char *p1;
int l;
for(p1=str,l=0;*p1!='\0';p1++)
l=l+1;
printf("字符串%s的长度为:%d\n",str,l);
}
void strcpy(char *str) /*求出字符串的反序*/
{
char *p2,str1[100];
int l,i;
l=strlen(str);
//printf("字符串%s的反序为: ",str);
for(p2=str+l-1,i=0;i str1[i]=*p2; str1[i]='\0'; printf("字符串%s的反序为: %s\n",str,str1); //printf("%c",*p2); //printf("\n"); } void huiwen(char *str) /*判断字符串是不是回文*/ { char *p1,*p2; int l; l=strlen(str); for(p2=str+l-1,p1=str;p1 if(*p1 != *p2) { printf("字符串%s不是回文!\n",str); break; } if(*p1==*p2) printf("字符串%s是回文!\n",str); } void main() { char str[100]; int i; printf("请输入一个字符串: "); for(i=0;i<100;i++) { scanf("%c",&str[i]); if(str[i]=='\n') break; } str[i]='\0'; printf("\n"); lenght(str); printf("\n"); strcpy(str); printf("\n"); huiwen(str); } 四、运行结果 五、实验总结(调试分析和体会) 在学习完指针以后,我们可以知道指针是C语言中广泛使用的一种数据类型。运用指针编程是C语言最主要的风格之一。利用指针变量可以表示各种数据结构;能很方便地使用数组和字符串;并能象汇编语言一样处理内存地址,从而编出精练而高效的程序。 指针极大地丰富了C语言的功能。一个指针变量的值就是某个内存单元的地址或称为某内存单元的指针。变量的指针就是变量的地址。存放变量地址的变量是指针变量。指针变量同普通变量一样,使用之前不仅要定义说明,而且必须赋予具体的值。 函数的参数不仅可以是整型、实型、字符型等数据,还可以是指针类型。它的作用是将一个变量的地址传送到另一个函数中。一个变量有一个地址,一个数组包含若干元素,每个数组元素都在内存中占用存储单元,它们都有相应的地址。数组的指针是指数组的起始地 址,数组元素的指针是数组元素的地址。