当前位置:文档之家› 实验六 指针.

实验六 指针.

实验六指针
●实验目的
1、进一步掌握指针的概念,会定义和使用指针变量。

2、能正确使用数组的指针和指向数组的指针变量。

3、能正确使用字符串的指针和指向宇符串的指针变量。

4、了解指向指针的指针的概念及其使用方法。

5、通过实验进一步理解指针和函数的几种关系。

● 实验内容
1、输入两个整数,按由大到小的顺序输出。

输入以下程序并调试运行。

#include <iostream.h>
int main()
{
int a,b;
int *p=&a,*q=&b,*t;
cout<<"请输入a和b:";
cin>>a>>b;
if(a<b)
{
t=p;
p=q;
q=t;
} //交换p和q
cout<<"a="<<a<<",b="<<b<<endl;
cout<<"*p="<<*p<<",*q="<<*q<<endl;
return 0;
}
输入3组以上测试数据,分析运行结果。

2、将若干字符串按英文字典排序(由小到大)。

输入以下程序,补充完整,并调试运行。

#include <iostream.h>
#include <string.h>
int main()
{
char *p[]={"Rebacca","Heaven","Michael Chang","Linda Tsai"};
//定义字符指针数组
char *temp;
int i,j,n=4;
for(i=0;i<n-1;i++)
for(j=0;j< ;j++)
if(strcmp(p[j],p[j+1])>0)
{
temp=p[j];
p[j]=p[j+1];
p[j+1]=temp;
} //排序
for(i=0;i<n;i++)
cout<< <<endl; //输出排序后的字符串return 0;
}
3、输入三个整数,按由小到大的顺序输出,然后将程序改为:输入三个字符串,按由小到大顺序输出。

[实现要求]
先用三个字符指针ps1,ps2,ps3分别指向输入的三个字符串,要求处理完毕后按ps1,ps2,ps3输出三个字符串时,是由小到大按顺序输出的。

[实现提示]
不必进行字符串的复制,只需改变ps1,ps2,ps3的指向即可。

4、编写一个函数,用于生成一个由n个空格字符构成的空白字符串,其原型为:
char *mystrspc(int n);
其中,参数n为字符串中空格字符的个数,函数返回值为生成的字符串的首地址。

[实现要求]
设计相应的主函数调用编写的函数。

由用户输入构成空白字符串的空格字符的个数n,调用函数mystrspc后,显示其返回值所指向的字符串。

5、编写一个函数,用于去掉字符串尾部的空格符,其原型为:
char *mytrim(char *string);
其中,参数string指向存放待处理的字符串,函数返回值为去掉尾部的空格符以后字符串的首地址。

[实现要求]
主程序中设计一个循环,不断从键盘输入字符串,调用函数去掉字符串尾部的空格符,将处理后的字符串输出,当用户输入空字符串时,程序结束;
[思考问题]
修改mytrim函数,使其在去掉字符串尾部的空格符的同时,也能去掉首部出现的空格符。

6、编写程序,当输入整数1~10时,可以转换成相应的英文单词输出。

输入其他整数时结束程序。

例如,输入5,则输出“five”。

输入-1,则退出程序。

要求使用指针数组处理。

7、使用动态内存分配技术设计一个计算学生某门课程平均成绩的程序,学生个数n是任意的,n在程序运行时由用户输入。

相关主题