实验六 指针. 下载本文

实验六 指针

? 实验目的

1、进一步掌握指针的概念,会定义和使用指针变量。 2、能正确使用数组的指针和指向数组的指针变量。 3、能正确使用字符串的指针和指向宇符串的指针变量。 4、了解指向指针的指针的概念及其使用方法。 5、通过实验进一步理解指针和函数的几种关系。

??实验内容

1、输入两个整数,按由大到小的顺序输出。 输入以下程序并调试运行。

#include int main() {

int a,b;

int *p=&a,*q=&b,*t;

cout<<\请输入a和b:\ cin>>a>>b; if(a

t=p; p=q; q=t;

} //交换p和q

cout<<\

cout<<\ return 0; }

输入3组以上测试数据,分析运行结果。

2、将若干字符串按英文字典排序(由小到大)。 输入以下程序,补充完整,并调试运行。

#include #include int main() {

char *p[]={\ //定义字符指针数组

char *temp; int i,j,n=4;

for(i=0;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

cout<< <

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在程序运行时由用户输入。