zoukankan      html  css  js  c++  java
  • 程序设计实习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;
    }
    

      

      


      

  • 相关阅读:
    121. Best Time to Buy and Sell Stock
    70. Climbing Stairs
    647. Palindromic Substrings
    609. Find Duplicate File in System
    583. Delete Operation for Two Strings
    556 Next Greater Element III
    553. Optimal Division
    539. Minimum Time Difference
    537. Complex Number Multiplication
    227. Basic Calculator II
  • 原文地址:https://www.cnblogs.com/songqingbo/p/8635863.html
Copyright © 2011-2022 走看看