【项目3-在OJ上玩指针】
(1)指针的基本操作(1)
下面的程序,输入10 100和100 10,均可以输出max=100 min=10,请补充完整程序
#include <iostream> using namespace std; int main( ) { int *p1,*p2,a,b,t; cin>>a>>b; p1=&a; p2=&b; //下面加入的代码,只许出现p1,p2和t,不许出现a和b cout<<"Max="<<a<<" Min="<<b<<endl; return 0; }
参考解答:
#include <iostream> using namespace std; int main( ) { int *p1,*p2,a,b,t; cin>>a>>b; p1=&a; p2=&b; //下面加入代码,只许出现p1,p2和t,不许出现a和b if(*p1<*p2) { t=*p1; *p1=*p2; *p2=t; } cout<<"Max="<<a<<" Min="<<b<<endl; return 0; }
(2)指针的基本操作(2)
下面的程序,输入10 100和100 10,均可以输出max=100 min=10,请补充完整程序 #include <iostream> using namespace std; int main( ) { int *p1,*p2,t; //本程序以下不准再加入新的变量,下面用new操作符分配空间,并用p1、p2分别保存其地址 //下面输入两个整数。若无上面分配的空间,这样操作指赂的空间,极其危险 cin>>*p1>>*p2; //下面加入的代码,只许出现p1,p2和t,不许出现a和b cout<<"Max="<<*p1<<" Min="<<*p2<<endl; //p1和p2指向的分别是大值和小值,无论输入大小 //下面写释放p1和p2所指向空间的语句 return 0; }
参考解答:
#include <iostream> using namespace std; int main( ) { int *p1,*p2,t; //本程序以下不准再加入新的变量,下面用new操作符分配空间,并用p1、p2分别保存其地址 p1=new int; p2=new int; //下面输入两个整数。若无上面分配的空间,这样操作指赂的空间,极其危险 cin>>*p1>>*p2; //下面加入的代码,只许出现p1,p2和t,不许出现a和b if(*p1<*p2) { t=*p1; *p1=*p2; *p2=t; } cout<<"Max="<<*p1<<" Min="<<*p2<<endl; //p1和p2指向的分别是大值和小值,无论输入大小 //下面写释放p1和p2所指向空间的语句 delete p1; delete p2; return 0; }
(3)指针当形参
下面的程序将调用函数进行变量的交换,请设计出交换的函数
#include <iostream> using namespace std; void jiaohuan(int *p1, int *p2); int main( ) { int a,b; cin>>a>>b; jiaohuan(&a,&b); cout<<a<<" "<<b<<endl; return 0; } //下面定义jiaohuan;
参考解答:
#include <iostream> using namespace std; void jiaohuan(int *p1, int *p2); int main( ) { int a,b; cin>>a>>b; jiaohuan(&a,&b); cout<<a<<" "<<b<<endl; return 0; } //下面定义jiaohuan; void jiaohuan(int *p1, int *p2) { int t; t=*p1; *p1=*p2; *p2=t; return; }
(4)两数和与差(用参数带回结果)
下面的程序,输入两个整数,调用函数ast后,输出了两数之和及两数之差。阅读程序,补全程序中空白处。
#include <iostream> using namespace std; void ast(int x,int y,int *cp,int *dp) { //补全函数的定义 ___(1)____=x+y; ___(2)____=x-y; } int main() { int a,b,c,d; cin>>a>>b; //下面调用函数ast ______(3)______ cout<<c<<" "<<d<<endl; return 0; }
参考解答:
#include <iostream> using namespace std; void ast(int x,int y,int *cp,int *dp) { //补全函数的定义 *cp=x+y; *dp=x-y; } int main() { int a,b,c,d; cin>>a>>b; //下面调用函数ast ast(a,b,&c,&d); cout<<c<<" "<<d<<endl; return 0; }
=================== 迂者 贺利坚 CSDN博客专栏================= |== IT学子成长指导专栏 专栏文章的分类目录(不定期更新) ==| |== C++ 课堂在线专栏 贺利坚课程教学链接(分课程年级) ==| |== 我写的书——《逆袭大学——传给IT学子的正能量》 ==| ===== 为IT菜鸟起飞铺跑道,和学生一起享受快乐和激情的大学 ===== |