• 程序设计实习MOOC / 程序设计与算法(三)第一周测验


    作业题:

       7. 填空(2分)简单的swap 通过码是 ( 请参考公告中的“关于编程作业的说明”完成编程作业(请注意,编程题都要求提交通过码,在openjudge上提交了程序并且通过以后,就可以下载到通过码。)

      总时间限制: 1000ms     内存限制: 65536kB    

           描述 :填空,使得程序    输出结果是:5,3

    #include <iostream>
    using namespace std;
    class A
    {
    	public:
    	int x;
    	int getX() { return x; }	
    };
    void swap(
    // 在此处补充你的代码
    )
    {
    	int  tmp = a.x;
    	a.x = b.x;
    	b.x = tmp;
    }
    int main()
    {
    	A a,b;
    	a.x = 3;
    	b.x = 5;
    	swap(a,b);
    	cout << a.getX() << "," << b.getX();
    	return 0;
    }
    

      输入无    输出5,3

      答案:

    #include <iostream>
    using namespace std;
    class A
    {
    	public:
    	int x;
    	int getX() { return x; }	
    };
    void swap( A & a, A & b) //考察定义到类型的问题 
    {
    	int  tmp = a.x;
    	a.x = b.x;
    	b.x = tmp;
    }
    int main()
    {
    	A a,b;
    	a.x = 3;
    	b.x = 5;
    	swap(a,b);
    	cout << a.getX() << "," << b.getX();
    	return 0;
    }
    填空(2分) 难一点的swap

      填空,使得程序输出结果是:5,3

    #include <iostream>
    using namespace std;
    
    void swap(
    // 在此处补充你的代码
    )
    {
    	int * tmp = a;
    	a = b;
    	b = tmp;
    }
    int main()
    {
    	int a = 3,b = 5;
    	int * pa = & a;
    	int * pb = & b;
    	swap(pa,pb);
    	cout << *pa << "," << * pb;
    	return 0;
    }
    

     答案:

    #include <iostream>
    using namespace std;
    
    void swap(int *& a,int *& b)
    {
    	int * tmp = a;
    	a = b;
    	b = tmp;
    }
    int main()
    {
    	int a = 3,b = 5;
    	int * pa = & a;
    	int * pb = & b;
    	swap(pa,pb);
    	cout << *pa << "," << * pb;
    	return 0;
    }
    
    填空(2分) 好怪异的返回值
     填空,使得程序输出指定结果
    #include <iostream>
    using namespace std;
    // 在此处补充你的代码
    getElement(int * a, int i)
    {
    	return a[i];
    }
    int main()
    {
    	int a[] = {1,2,3};
    	getElement(a,1) = 10;
    	cout << a[1] ;
    	return 0;
    }
    

      输入 无  输出  10

    答案:

    #include <iostream>
    using namespace std;
    int & getElement(int * a, int i)
    {
    	return a[i];
    }
    int main()
    {
    	int a[] = {1,2,3};
    	getElement(a,1) = 10;
    	cout << a[1] ;
    	return 0;
    }
    
    10 填空(2分) 神秘的数组初始化
    #include <iostream>
    using namespace std;
    
    int main()
    {
    	int * a[] = {
    // 在此处补充你的代码
    };
    	
    	*a[2] = 123;
    	a[3][5] = 456;
    	if(! a[0] ) {
    		cout << * a[2] << "," << a[3][5];
    	}
    	return 0;
    }
    

      输入 无  输出  123,456

    答案:

    #include <iostream>
    using namespace std;
    
    int main()
    {
    	int * a[] = {0,0,new int[1],new int[1]};
    	
    	*a[2] = 123;
    	a[3][5] = 456;
    	if(! a[0] ) {
    		cout << * a[2] << "," << a[3][5];
    	}
    	return 0;
    }
    

      

      


      

  • 相关阅读:
    Handler机制来处理子线程去更新UI线程控件
    获得某月份的天数
    listview选中没有效果
    kali或其他系统,虚拟机中不能加载镜像
    tomcat开启多个端口
    kali自定义分辨率
    Redis 安装手册
    bash检查centos服务器运行状态
    关于利用RD client远程电脑,和输入法的一些问题
    centOS下 MYSQL基本操作
  • 原文地址:https://www.cnblogs.com/songqingbo/p/8635863.html
Copyright © 2020-2023  润新知