игра брюс 2048
Главная / Программирование / Язык программирования C++ / Тест 7

Язык программирования C++ - тест 7

Упражнение 1:
Номер 1
Для чего нужны классы?

Ответ:

 (1) для определения новых типов в программе 

 (2) для упрощения работы со сложными структурами данных 

 (3) для упрощения работы с константами 

 (4) для соединения данных и операций над ними 


Номер 2
В каком случае описание класса верно?
 
 1. class A
{
 
public:
      int x;
      
      int summ(int a){return x+a;}
};

2. class my_cl
{
 public:
      int f;

      int summ(int a){return x+a;}
};

3. class B
{
 public:
      int F;

      void Ch_F(int x)
      { 
  F=x;
  return F;
      }
};
 
 

Ответ:

 (1) в первом 

 (2) во втором 

 (3) в третьем 


Упражнение 2:
Номер 1
Какая из записей соответствует обращению к атрибуту m_arg класса AC в определении метода этого же класса?

Ответ:

 (1) this.m_arg.AC 

 (2) m_arg 

 (3) AC.this.m_arg 


Номер 2
Если имеется код
class A { public: int a; };
A obj;
как обратиться к переменной a?

Ответ:

 (1) obj.a 

 (2) obj-a 

 (3) obj::a 


Номер 3
Если имеется код
class A { public: int a, b, c; };
A obj;
как обратиться к члену класса c?

Ответ:

 (1) obj.c 

 (2) obj->c 

 (3) c.obj 

 (4) obj.public.c 


Упражнение 3:
Номер 1
Какой из приведенных ниже прототипов операции сложения для класса 
class A {int x; double y;  ... }
является наиболее правильным?

Ответ:

 (1) void operator+ (const A& a) const 

 (2) const A& operator+(A a) 

 (3) A operator+(const A a) const 

 (4) const A& operator(const A& a) 


Номер 2
Какой будет результат выполнения следующего кода?
class A {
public:
     int inc(int x) { return ++x; };
     int inc(short x) { return x + 2; };
};
A obj; int y = 5;
cout << obj.inc(y); 

Ответ:

 (1) 6 

 (2) 7 

 (3) 8 


Номер 3
Какой будет результат выполнения следующего кода?
class A {
public:
     int y;
     int inc(int x) { return ++y; };
     int inc(short x) { return x + y; };
};
A obj; int y = 5; obj.y = 6;
cout << obj.inc(y);

Ответ:

 (1) 6 

 (2) 7 

 (3) 11 

 (4) ошибка компиляции 


Упражнение 4:
Номер 1
Укажите в какой строке кода произойдет ошибка компиляции?

1: class Channel
2: { public:
3:  void SetNumber (int n) { number = n;};
4:  int GetNumber() const { return number;};
5:  int number;};
6: int main()
7: { Channel ch;
8:  ch.number = 9;
9:  ch.SetNumber(10);
10:  Channel ch2(2);
11: return 1;
12: }


Ответ:

 (1) в пятой 

 (2) в восьмой 

 (3) в десятой 


Номер 2
Укажите в каких строках кода произойдет ошибка компиляции?
 
1: class A 
2: { public:
3:      int x;
4:    int GetX() { return x; };};
5: int main() 
6: {    A b;
7:      b.SetX(2);
8:      b.GetX();
9:      A b1(2);
10:}
 

Ответ:

 (1) в восьмой 

 (2) в четвертой 

 (3) в седьмой 

 (4) в девятой 


Номер 3
В каких выражениях правильно определен метод класса Ping?
class Ping 
{  public: float f, d;
           int a;
           void MathFunc(double D);
}; 

Ответ:

 (1) Ping::MathFunc(double D) {f = D;} 

 (2) void Ping::MathFunc(double D) {f = D;} 

 (3) void Ping::MathFunc(double D) {this->f = D;} 


Упражнение 5:
Номер 1
Верен ли код 
Team::Player p; 
p.GoGoGo(); для класса Team, описанного следующим образом:

class Team
{
public:
 int score;
 class Player
 {
 public:
  void GoGoGo(){ printf("Player is going to a goal.\n");  }
 };
 void SetScore(int x){ score = x;}
 void ShowScore(){printf("%d\n",score);}
}; 
 
 

Ответ:

 (1) да, верен 

 (2) нет, неверен 

 (3) верен, если сформировать контекстные указатели 

 (4) верен, если увеличить его приоритет 


Номер 2
При определении метода запись this-> говорит о том, что:

Ответ:

 (1) атрибут принадлежит объекту, получившему сообщение 

 (2) атрибут принадлежит классу, определенному в заголовочном файле 

 (3) атрибут не принадлежит какому-либо классу 


Номер 3
Имеется класс:

class Team
{
public:
 int score;
 class Player
 {
 public:
  void GoGoGo(){ printf("Player is going to a goal.\n");  }
 };
 void SetScore(int x){ score = x;}
 void ShowScore(){printf("%d\n",score);}
};
 
 Выберите из нижеприведенных записей корректные коды для этого класса:
 
1. Team::Player p; 
p.GoGoGo();

2. Team t;
t.Player p;
p.GoGoGo();
 
 

Ответ:

 (1) первый 

 (2) второй 

 (3) оба верны 

 (4) оба ошибочны 


Упражнение 6:
Номер 2
Укажите правильный доступ к членам класса:
  
  class my
   { public: double Z;
       int f(int c, int d) {return c+d;}
       char s;
   } T1, T2;
  

Ответ:

 (1) T1->Z = 23.1; 

 (2) T2.f(4,1); 

 (3) my.T2->s = 'L'; 


Номер 3
Укажите какому классу принадлежит атрибут Z1
  
  class t
   { public: double sum::Z1;} C;
  class sum
   { public: double t::Z1;} D;
  

Ответ:

 (1) классу t 

 (2) обоим классам 

 (3) запись неверна 


Упражнение 7:
Номер 1
Какой будет результат следующей программы?

class t
{ public: int sum;
  float f(int a)
  { 
     sum++;
     return sum * a;
  }
} cl;
int main()
{ 
   cl.sum = 10;
   cout << cl.sum << "  " << cl.f(4);
}
 

Ответ:

 (1) 11 44 

 (2) 10 44 

 (3) 10 240 


Номер 2
Что будет выведено в стандартный поток вывода в результате исполнения следущей программы?

class Add
{ public: short S1;
  int f(int x)
    { return S1 + ++x;}
  int A(short a, short b);
} K1;
int Add::A(short a, short b)
{ 
  this->S1 += a*b;
  return this->S1; 
};
int main()
{ 
   K1.S1 = 2;
   K1.f(2);
   K1.A(0, 1);
   cout << K1.S1;
   return 0;
}

Ответ:

 (1) 0 

 (2) 10 

 (3) 2 

 (4) 4 


Номер 3
Какое второе число будет выведено в результате выполнения следующего кода?

class t
{ public: int sum;
  float f(int a, short m)
  { 
  sum++;
  return sum * a - m;
  }
} v;
int main()
{ 
   v.sum = 5;
   cout << v.sum << "  " << v.f(5, 2);
}

Ответ:

 (1) 27 

 (2) 28 

 (3) 29 

 (4) 5 

 (5) 6 


Упражнение 8:
Номер 1
Какие операторы не могут быть переопределены пользователем:

Ответ:

 (1) % 

 (2) :: 

 (3) . 


Номер 2
Вызовет ли следующее объявление ошибку компиляции
  
  class A{ 
     public: void sum(double s1,double s2);
       int sum (int s1,int s2);
     }; 
  

Ответ:

 (1) да 

 (2) нет 


Номер 3
Вызовет ли следующее объявление ошибку компиляции
  
  class A{ 
    public: double sum(int double,double s2);
      int sum (int s1,int s2);
    } 
  

Ответ:

 (1) да 

 (2) нет 




Главная / Программирование / Язык программирования C++ / Тест 7