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



目录
相关文章
|
13天前
|
存储 编译器 Linux
【c++】类和对象(上)(类的定义格式、访问限定符、类域、类的实例化、对象的内存大小、this指针)
本文介绍了C++中的类和对象,包括类的概念、定义格式、访问限定符、类域、对象的创建及内存大小、以及this指针。通过示例代码详细解释了类的定义、成员函数和成员变量的作用,以及如何使用访问限定符控制成员的访问权限。此外,还讨论了对象的内存分配规则和this指针的使用场景,帮助读者深入理解面向对象编程的核心概念。
36 4
WK
|
22天前
|
机器学习/深度学习 人工智能 算法
那C++适合开发哪些项目
C++ 是一种功能强大、应用广泛的编程语言,适合开发多种类型的项目。它在游戏开发、操作系统、嵌入式系统、科学计算、金融、图形图像处理、数据库管理、网络通信、人工智能、虚拟现实、航空航天等领域都有广泛应用。C++ 以其高性能、内存管理和跨平台兼容性等优势,成为众多开发者的选择。
WK
48 1
|
29天前
|
存储 安全 编译器
在 C++中,引用和指针的区别
在C++中,引用和指针都是用于间接访问对象的工具,但它们有显著区别。引用是对象的别名,必须在定义时初始化且不可重新绑定;指针是一个变量,可以指向不同对象,也可为空。引用更安全,指针更灵活。
|
1月前
|
Ubuntu Linux 编译器
Linux/Ubuntu下使用VS Code配置C/C++项目环境调用OpenCV
通过以上步骤,您已经成功在Ubuntu系统下的VS Code中配置了C/C++项目环境,并能够调用OpenCV库进行开发。请确保每一步都按照您的系统实际情况进行适当调整。
299 3
|
1月前
|
存储 C++
c++的指针完整教程
本文提供了一个全面的C++指针教程,包括指针的声明与初始化、访问指针指向的值、指针运算、指针与函数的关系、动态内存分配,以及不同类型指针(如一级指针、二级指针、整型指针、字符指针、数组指针、函数指针、成员指针、void指针)的介绍,还提到了不同位数机器上指针大小的差异。
39 1
|
1月前
|
存储 编译器 C语言
C++入门2——类与对象1(类的定义和this指针)
C++入门2——类与对象1(类的定义和this指针)
30 2
|
1月前
|
算法 C++
【算法】双指针+二分(C/C++
【算法】双指针+二分(C/C++
|
1月前
|
存储 编译器 程序员
【C++】C++特性揭秘:引用与内联函数 | auto关键字与for循环 | 指针空值(二)
【C++】C++特性揭秘:引用与内联函数 | auto关键字与for循环 | 指针空值
|
5天前
|
存储 编译器 C++
【c++】类和对象(下)(取地址运算符重载、深究构造函数、类型转换、static修饰成员、友元、内部类、匿名对象)
本文介绍了C++中类和对象的高级特性,包括取地址运算符重载、构造函数的初始化列表、类型转换、static修饰成员、友元、内部类及匿名对象等内容。文章详细解释了每个概念的使用方法和注意事项,帮助读者深入了解C++面向对象编程的核心机制。
27 5
|
12天前
|
存储 编译器 C++
【c++】类和对象(中)(构造函数、析构函数、拷贝构造、赋值重载)
本文深入探讨了C++类的默认成员函数,包括构造函数、析构函数、拷贝构造函数和赋值重载。构造函数用于对象的初始化,析构函数用于对象销毁时的资源清理,拷贝构造函数用于对象的拷贝,赋值重载用于已存在对象的赋值。文章详细介绍了每个函数的特点、使用方法及注意事项,并提供了代码示例。这些默认成员函数确保了资源的正确管理和对象状态的维护。
40 4