21xrx.com
2024-11-10 00:56:17 Sunday
登录
文章检索 我的文章 写文章
C++考研真题及答案解析
2023-06-27 15:46:28 深夜i     --     --
C++ 考研 真题 答案解析 编程语言

C++作为一种面向对象的编程语言,在计算机科学领域有着广泛的应用。在考研中,C++也是一个重要的考试科目之一。今天我们来聊一下C++的考研真题及答案解析,希望对大家备考有所帮助。

一、2010年C++考研真题及答案解析

1.以下C++程序的输出结果是什么?

#include

using namespace std;

int main()

{

  int i = 2,x = 1;

  while (i--)

  {

    if (i)

    {

      x = (++i)+(x*i)&(i--)>>1;

    }

    else x = x+i;

  }

  cout< <

  return 0;

}

答案:2

解析:循环两次,第一次i=1,x=3,i--后i=0;第二次i=0,x=2。故输出结果为2。

2.以下程序的输出结果是什么?

#include

using namespace std;

void function(int x)

{

  int y = 0;

  while (x > 0)

  {

    y = y*10+x%10;

    x = x/10;

  }

  cout< <

}

int main()

{

  int a = 123456;

  function(a);

  return 0;

}

答案:654321

解析:将a从右到左逐个拆开,依次变为6,5,4,3,2,1,然后将它们按从左往右的顺序组合,得到654321。

二、2011年C++考研真题及答案解析

1.以下程序的输出结果是什么?

#include

using namespace std;

int fun(int n)

{

  if (n == 0)

  {

    return 1;

  }

  if (n % 2)

  {

    return fun(n/2)*fun(n/2)*2;

  }

  else

  {

    return fun(n/2)*fun(n/2);

  }

}

int main()

{

  cout< <

  return 0;

}

答案:64

解析:递归调用fun()函数,输入为7时,先进入if语句(7%2=1),返回fun(3)*fun(3)*2。fun(3)=fun(1)*fun(1),fun(1)=fun(0)*fun(0)*2。因为fun(0)=1,所以fun(1)=2。故fun(3)=4。将fun(3)回代到fun(7)的公式中,得到fun(7)=64。

2.以下程序的输出结果是什么?

#include

using namespace std;

class A

{

  private:

    int n;

  public:

    A(int i):n(i) {}

    A(const A& a)

    {

      n = a.n;

    }

    ~A() {}

};

int main()

{

  A a1(10);

  A a2 = a1;

  cout<<"OK"<

  return 0;

}

答案:OK

解析:定义了一个A类,并在其中定义了构造函数和拷贝构造函数。在main()函数中定义了a1对象并初始化,然后通过a2对象的拷贝构造函数将a1对象复制给a2对象。最后输出OK,说明程序正确无误。

以上是2010年和2011年C++考研真题及答案解析。希望对大家备考有所帮助。在备考时,还要多做练习题、总结思路,才能更好地掌握C++语言。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复