实验五 指针
- 格式:doc
- 大小:40.00 KB
- 文档页数:4
实验五指针
一、实验目的
1.掌握指针变量的定义和初始化、指针的间接访问、指针的加减运算和指针表达式;
2.掌握用指针处理数组和字符串的方法
3.掌握用指针作为函数参数的方法
4.理解引用的概念,掌握引用的应用方法。
二、实验要求
1)结合上课内容,写出程序,并调试程序,要给出测试数据和实验结果。
2)整理上机步骤,总结经验和体会。
3)完成实验报告和提交源程序。
三、实验内容
必做题
注:本章实现要求用指针或引用方法处理
1) 分析如下程序的结果(数组与指针的关系)
#include<iostream>
using namespace std;
void main()
{
char s1[5]={‘m’, ‘n’, ‘p’, ‘q’,‘\0’};
char *ps=s1;
cout<<s1<<'\n';
cout<<s1+2<< '\n';
cout<<*s1<<*(s1+1)<<s1[2] <<endl;
cout<<*ps<<*(ps+1)<<ps[2]<<endl;
cout<<&ps<<endl;
}
2) 字符替换
Problem Description
小明在学习加密技术,其中一个常用的方法是将明文里的某个字母,用指定的字母替换,从而实现加密。
请帮助小明编写一个函数replace将用户输入的字符串中的字符t(T)都替换为e(E),并返回替换字符的个数。
Input
一个字符串。
Output
替换后的字符串和替换的个数。
Sample Input
attbecTtTgh
Sample Output
aeebecEeEgh
5
3) 字符串大小比较
Problem Description
在数学中,经常需要遇到比较数值的大小关系。
现在需要对字符串的大小进行比较,比较的方式是根据字符串中对应位置字符的ASCII码值的大小进行比较。
要求用字符数组的方法来实现,输入3个字符串,按由小到大顺序输出。
Input
三个字符串。
Output
排好序的三个字符串。
Sample Input
india
english
cucumber
Sample Output
cucumber
english
india
4) 报数游戏
Problem Description
有n个人围成一圈,顺序排号。
从第1个人开始报数(从1~3),凡报到3的人退出圈子,问最后留下的原来排在第几号。
Input
人数(数值)。
Output
位号(数值)。
Sample Input
34
Sample Output
10
5) 月份数文转换
Problem Description
编写一程序,输入月份,输出该月的英文名。
例如,输入“3”,则输出March,要求用指针数组实现。
输入:一个数值月份
输出:对应的英文名
测试用例输入:
请输入数值月份:5
测试用例输出:
对应的英文名称:May
选做题
6) 返回最值元素的地址
Problem Description
编制具有如下原型的函数findMax,负责在数组a的n个元素中找出最大值,并返回该最大值数组元素的内存地址(指针值)。
int* findMax(int* a, int n,); 而后编制如下式样的主函数,调用findMax,以验证其正确性。