C++上机实验报告(指针)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C++上机实验报告
实验名称:指针
专业班级:
姓名:
学号:
实验日期:
目录
1.实验目的
2.实验内容
3.程序代码
4.调试结果
5.实验心得
1.实验目的
(1)通过实验进一步掌握指针的概念,会定义和使用指针变量;(2)能正确使用数组的指针和指向数组的指针变量;
(3)能正确使用字符串的指针和指向字符串的指针变量;
(4)能正确使用引用型变量。
2.实验内容
编程序并上机调试运行程序(要求用指针或引用处理)。
(1)输入3个整数,按由小到大的顺序输出。编译一个程序,用指针变量作为参数。
(2)在上题的基础上将程序改为:输入3个字符串,按由小到大的顺序输出。
(3)用引用指针变量作为形参,实现3个整数由小到大输出。(4)有n个人围成一圈,顺序排号。从第1个人开始报数(从1~3报数),凡是到3的人退出圈子,问最后留下的人原来排在第几号。(5)在主函数中输入10个字符串。用另一个函数最它们排序。然后在主函数输出这10个已排好的字符串。
要求用以下方法编程:
Ⅰ.指向一维数组的指针座函数参数;
Ⅱ.用string数组方法。
3.程序代码
(1)
#include
using namespace std;
int main()
{void swap(int *p1,int *p2);
int n1,n2,n3;
int *p1,*p2,*p3;
cout<<"input three integers n1,n2,n3:";
cin>>n1>>n2>>n3;
p1=&n1;
p2=&n2;
p3=&n3;
if(n1>n2) swap(p1,p2);
if(n1>n3) swap(p1,p3);
if(n2>n3) swap(p2,p3);
cout<<"Now,the order is:"< } void swap(int *p1,int *p2) {int p; p=*p1;*p1=*p2;*p2=p; } (2) Ⅰ.用字符数组方法的源程序 #include using namespace std; int main() {void swap(char *,char *); char str1[20],str2[20],str3[30]; cout<<"input three line:"< gets(str1); gets(str2); gets(str3); if(strcmp(str1,str2)>0) swap(str1,str2); if(strcmp(str1,str3)>0) swap(str1,str3); if(strcmp(str2,str3)>0) swap(str2,str3); cout< } void swap(char *p1,char *p2) {char p[20]; strcpy(p,p1);strcpy(p1,p2);strcpy(p2,p); } Ⅱ.用string方法的源程序(程序中使用了指针和引用)#include #include using namespace std; int main() {void change(string &,string &); string str1=" ", str2=" ", str3=" "; char *p1=&str1[0],*p2=&str2[0],*p3=&str3[0]; cout<<"input three line:"< gets(p1); gets(p2); gets(p3); if(str1>str2) change(str1,str2); if(str1>str3) change(str1,str3); if(str2>str3) change(str2,str3); cout< cout< } void change(string &st1,string &st2) {string st; st=st1;st1=st2;st2=st; } (3) #include using namespace std; int main() {void exchange(int *,int *,int *); int a,b,c,*p1,*p2,*p3; cin>>a>>b>>c; p1=&a;p2=&b;p3=&c; exchange(p1,p2,p3);