2014秋C++ 第15周项目3参考解答 在OJ上玩指针

简介: 课程主页在http://blog.csdn.net/sxhelijian/article/details/39152703,课程资源在云学堂“贺老师课堂”同步展示,使用的帐号请到课程主页中查看。 【项目3-在OJ上玩指针】(1)指针的基本操作(1)下面的程序,输入10 100和100 10,均可以输出max=100 min=10,请补充完整程序#include <iostre
课程主页在 http://blog.csdn.net/sxhelijian/article/details/39152703,课程资源在 云学堂“贺老师课堂”同步展示,使用的帐号请到课程主页中查看。 


【项目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菜鸟起飞铺跑道,和学生一起享受快乐和激情的大学 =====



目录
相关文章
|
25天前
|
JSON JavaScript 前端开发
C++ 智能指针与 JSON 处理:高级编程技巧与常见问题解析
C++ 智能指针与 JSON 处理:高级编程技巧与常见问题解析
255 0
|
8天前
|
存储 算法 Linux
【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现
【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现
25 6
|
11天前
|
存储 C++
C++指针
C++指针
|
17天前
C/C++test两步完成CMake项目静态分析
通过将C/C++test集成到CMake项目中,并根据项目的需要进行配置,可以在两步内完成CMake项目的静态分析。这样可以帮助开发人员及时发现并修复潜在的代码问题,提高代码质量和可靠性。
8 0
|
22天前
|
存储 编译器 C语言
【c++】类和对象(二)this指针
朋友们大家好,本节内容来到类和对象第二篇,本篇文章会带领大家了解this指针
【c++】类和对象(二)this指针
|
23天前
|
存储 编译器 C语言
【C++练级之路】【Lv.2】类和对象(上)(类的定义,访问限定符,类的作用域,类的实例化,类的对象大小,this指针)
【C++练级之路】【Lv.2】类和对象(上)(类的定义,访问限定符,类的作用域,类的实例化,类的对象大小,this指针)
|
24天前
|
IDE 算法 编译器
快速掌握陌生C++项目的科学与心理学策略
快速掌握陌生C++项目的科学与心理学策略
56 0
|
24天前
|
敏捷开发 安全 API
C/C++ 工程师面试:如何精彩展示你的项目经验并获得高分
C/C++ 工程师面试:如何精彩展示你的项目经验并获得高分
71 0
|
25天前
|
存储 安全 数据库连接
【C++智能指针】深入探究C++智能指针:自定义删除器的设计与选择
【C++智能指针】深入探究C++智能指针:自定义删除器的设计与选择
82 0
|
25天前
|
存储 安全 编译器
【C++ 函数设计的艺术】深挖 C++ 函数参数的选择 智能指针与 std::optional:最佳实践与陷阱
【C++ 函数设计的艺术】深挖 C++ 函数参数的选择 智能指针与 std::optional:最佳实践与陷阱
106 0

热门文章

最新文章