Язык программирования C++ для профессионалов

Ответы на курс: Язык программирования C++ для профессионалов

Что называется фактическими параметрами функции?


Что описывает оператор typedef void (*ptr)(char *);


Какими по умолчанию являются элементы класса?


Какое отношение между классами реализовано в данном случае?

 
  class A
  {  public: A() { a = 0; };
             virtual int f() { return a; }
             int a;
  };

  class B: public A
  {  public: B() { a = 1; };
     virtual int f() { return a; }
  };
  

Какая функция обеспечивает возможность использования имени в качестве уникального ключа объекта?


Какой результат будет у следующего выражения?

    #include <iostream.h>
    #include <fstream.h>
    int main(  
    {
    int i = 1, j = 25;  double a = 25e6;   char s[40];
    strcpy(s, "Test");
    ofstream outfile("c:\\test.txt");
    if (!outfile)
      { cout << "Ошибка создания файла";
        return 1;  }
    outfile << i << ' ' << j << ' ' << a << ' ' << s << endl;
    outfile.close();  
    }
    

Определен шаблон и описаны объекты класса:

 
  template <class A> class Array { /*…*/};
  Array <int> x1;
  Array <int> x2;
  Array <char> x3;
  Array <short> x4;
  

Какие из следующих операторов не содержат ошибки:


Что представляет собой обширный интерфейс?


Выберете корректное объявление

1.class A{	
	friend A&operator+(A&a, A&b);
};

A&operator+(A&a, A&b);
2.class A{	
	friend A&operator+(A&b);
};

A&A::operator+(A&a, A&b);

3.class A{	
	A&operator+(A&b);
};

friend A&A::operator+(A&a, A&b);
	

Объявлен класс A и объект d:

class A 
{ int a, b, c;
    public: A() {a = 1; b = 2; c = 3; };
            int get_a() { return a; }
            int get_c() { return c; }
            int get_b() { return b; }
};  
A* d = new A;

Как обратиться к переменной с?


Какая ошибка в таком определении шаблона: template <class T, T def_val> class My {};


В каком порядке вызываются конструкторы и деструкторы?

  • Конструктор базового класса
  • Деструктор базового класса
  • Конструктор производного класса
  • Деструктор производного класса

  • Какая строка данного кода производит возврат элемента по указателю?

    #define SIZE 100
    int Stack[SIZE]; 
    int SP; 
    void lnit(){ SP = - 1 ; } 
    void Push(int val) { 
    Stack[ ++SP]=val; }
    int Рор() { 
    if (SP < О ) return(O); 
    return ( Stack[SP--]); 
    }
    	

    Что определяет операция sizeof(str);?


    Наследование — это:

    Что будет напечатано в результате работы следующей программы?

      #include <iostream>
      int f1(int x, int y)
        {  return x + y; }
      int f2(int x, int y)
        {  return x * x + y * y; }
      int (*pf1)(int, int);
      int (*pf2)(int, int);
      main()
      { pf1 = &f1;
        pf2 = &f2;
        int x = 2, y = 3;
        cout << (*pf1)(x, y) << ' ' << (*pf2)(x, y) << endl;
      }
      

    Что понимается под сопровождением программного обеспечения?


    Каким языком является С++?


    Определены классы:

      class base
      { int x, y;
        public: base() { x = 0; y = 0; }
                int getx() { return x; }
                int gety() { return y; }
      };
      class Derived : private base
      { int z;
        public: Derived() : base() { z = 0; }
                int getz() { return z; }
                base::getx;
      };
      main()
      { Derived *obj = new Derived; 
        /* ??????????? */  
      }
      

    Какие из следующих операторов приведут к ошибкам компиляции?


    Синтаксис объявления шаблона функции имеет вид:

    Какой будет результат следующего выражения?

    	template <class T> T sum(T *a, T *b)
        {  T f = 5;
           return (*a + *b) - f;
        }
        int main()
        { int i = 10, j = 2;  double x = 10.1, y = 1.1;
          cout << sum(&i, &j) << " " << sum(&x, &y);
        }
    	

    Как обратиться к элементу x переменной v, объявленной следующим образом:

    struct A {char *x; int y;} *v;
    

    Что произойдет, если при возникновении особой ситуации блок try не будет обнаружен в данной функции?


    Объявлен класс:

      class Point
      {   int x,y,z;
          char *s;
        public:
          Point(int,int,int, char*);
          int GetX() { return x;}
          int GetY() { return y;}
          int GetZ() { return z;}
          Point* operator->()
           { return this;}
       };
      Point::Point(int x1,int y1,int z1, char * s1)
           { x=x1; y=y1; z=z1; int n=strlen(s1); s=new char[n+1];
             for(int i=0;i<=n;i++) s[i]=s1[i];}
      

    Какие из следующих операторов приведут к ошибкам компиляции?


    Как называется выделение существенных характеристик объекта, отличающих его от других видов объектов?


    Какой из следующих прототипов следует использовать для доопределения оператора << для вывода пользовательских типов?


    Может ли деструктор быть виртуальным?


    Что понимается под компонентом?


    Отметьте правильное создание объекта вложенного класса cls2, если имеется следующее объявление:

      class cls1
      { public : int yy;
                 class cls2
                 { public : int zz; };
      };
      

    Дано определение классов:

    	class MyClass0
    {
      public:
        int x;
      //...
    };
    class MyClass1 : MyClass0
    {
      //...
    };
    	

    Какой статус доступа будет иметь компонент «x» класса «MyClass0″ в производном классе «MyClass1″?


    Какой наиболее правильный порядок создания проекта:

  • Создать общее описание проекта.
  • Составить уточненное описание проекта.
  • Создать новые стандартные компоненты.
  • Выделить стандартные компоненты.

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

    int main()
    {
      int i = 5;
      int* pi = &i;
      void * v = pi;
      pi = v;
      cout << *pi;
      return 0;
    }
      

    Выберите правильные записи символьных констант:


    Класс A имеет следующее определение:

    class A
    {
    int _i;
    public: A(int i){  _i  =  i; }
    ~A(){ printf("%d  ",_i);}
    };
    	

    Что будет выведено в результате выполнения следующего кода:

    	{
       A a(-1);
       {
    	A a(0);
    	A a1(1);
    	throw "Error executed.";
    	A a2(2);
       }
       A a1(4);
    }
    	

    В файлы f1.txt и f2.txt записана строка символов 1234. Что будет выведено на экран в результате работы следующего фрагмента программы:

      char s1[] = "f1.txt"; char s2[] = "f2.txt";
      ifstream from(s1);
      fstream to(s2, ios::in | ios::out);
      char ch;
      from.seekg(1);
      from.get(ch);
      to.seekp(3);
      to.put(ch);
      to.seekp(0);
      while(to.get(ch)) 
        cout << ch;
      cout << endl;
      

    Какой класс содержит средства управления вводом и выводом?:


    Обязательно ли задавать в программе тип переменной?


    Какая функция вызывается для нормального завершения программы?


    Как получить доступ к закрытым членам класса из других объектов?


    Что называется инкапсуляцией?


    К какому виду относится класс, объявленный так:

      class dim 
      { public: virtual void add(X*) = 0;
                virtual void sub(X*) = 0;
                virtual int sum() = 0;
                virtual ~dim(){};
      }  
      

    Что понимается под эволюцией программного обеспечения?


    Чем механизм шаблонов отличается от механизма перегрузки


    Объявлен класс class A { public: int a,b,c;}; A *obj; Как обратиться к переменной с?


    Какое значение может иметь параметр argc функции main?


    Что произойдет при выполнении данного оператора switch, если val = 1?

      switch (val) 
      { case 1:  a();
        case 2:  b();
                 break;
        default: c();
                 break;
      }
      

    Выберите правильные записи констант с плавающей точкой:


    Можно ли переопределить операторы new и delete?


    Выберите правильный вариант обращения к элементам и использования класса A:

    class A
    {
    	int x;
    };
    

    Выберите правильные объявления дружественного класса:


    Правильно ли написан нижеприведенный программный код?

    #include "iostream.h"
    #include "conio.h"
    int main()
    {
      int x=17,y=46;
      cout<<x<<"+"<<y<<"="<<x+y;
      getch();
      return 0;
    }
    	

    Чем класс отличается от структуры?


    Может ли быть освобождена память, выделенная объектам класса Х с помощью класса Рool?


    Что выведет на экран фрагмент программы char z[10]; while(cin >> z) cout << z << ‘\n';
    после ввода текста, состоящего из нескольких слов, разделенных пробелами?


    Что может представлять собой интерфейс?


    В чем состоит преимущество строго типизированных интерфейсов?


    Какая функция устанавливает текущую позицию для чтения из файла?


    Класс Point имеет данные-члены int x,y. Какая из следующих операторных функций содержит ошибку?


    Исключительная ситуация в деструкторе


    Укажите неправильное объявление перечислимого типа?


    Выберите правильный вариант программного кода:

    1.template<typename T>
    class A
    {
    public:
    	void f(){}
    };
    class A<int>
    {
    public:
    	void f(){}
    };
    2.template<typename T>
    class A
    {
    public:
    	void f(){}
    };
    template<> class A<int>
    {
    public:
    	void f(){}
    };
    	

    Есть ли в С++ специальные средства для описания интерфейсов?


    В каких строках программного кода происходит объявления функций?

    #include <iostream.h>
    int sum(int a, int b);
    int main(){
    int a = 2, b - 3, c, d;
    с = sum(a, b); 
    cin >> d;
    cout << sum(c, d);
    return 0;
    }
    int sum(int а, int b){ 
    return (а + b);
    }
    

    Когда предпочтительно использовать представления объекта класса Х описанием Х* или Х&?


    Выберите вариант правильного объявления шаблона класса A:

    1.template<class T>
    class A
    {
    public:
    void f();
    };
    template<class T>
    void A<T>::f(){};
    
    2.template<class T>
    class A
    {
    public:
    void f();
    };
    void A<T>::f(){};
    	

    Какое свойство объекта называется инвариантом?


    Какие операторы можно использовать для выделения и освобождения динамической памяти?


    Если int n=2, какой будет результат

    	switch(n) {
    	case 2: cout << "YES"; break;
    	case 3: cout << "NO"; break;
    	default: cout << "MAYBE"; break; }
    	

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

      int SM(const int A[], int N)
      { int S = A[0];
        for (int i = 1; i < N; i++) S += A[i];
        return S;
      }  
      int main()
      {
       #define Bmax 3
        int B[5] = {1, 2, 3};
        cout << SM(B, Bmax) << endl;
      }
      

    Задан массив:

    int m[3][4] = {
            { 1, 2, 3, 4},
            { 5, 6, 7, 8},
            { 9, 10, 11, 12}
       };
    
    

    Какое значение содержится в элементе m[2][3]?


    Будет ли работать этот оператор?

      MyClass operator+(MyClass  x1, MyClass x2)
      { int sum= x1.a + x2.a;
        return *new MyClass(sum);
      }
      

    Базовый класс определен как class Base {…};. Какое из следующих объявлений правильно?

    Оператором итерационного цикла является оператор:


    Какая функция будет первой вызвана, если функция запустила особую ситуацию, не указанную в ее описании


    Чем отличается шаблон функции от обычной функции?


    Какой будет результат следующего выражения?

        template <class T> class A
        { public : T x1; T x2;
                   T func(T x3)
                    { x3 += x1 + x2;
                      return x3;
                    }
        };
        int main()
        { A <int> A1;
          A1.x1 = 3; A1.x2 = 10;
          cout << A1.func(1);
        }
        

    Сколько операндов должна иметь операторная функция бинарного оператора, объявленная как глобальная функция?


    Что называется иерархичностью?


    Как называются операторы, изменяющие состояние объекта?


    Какие операторы языка С++ нельзя перегружать?


    Какой результат будет у следующего выражения?

        #include <iostream.h>
        short x = 4, i = 0;
        fun1()
          {  if (i == 0) throw 2; }
        fun2()
          { --x; fun1();  x++; }
        int main()
          { try
              { fun2(); }
            catch (int)
              { cout << "Exception "; }
            cout << x << " " << i;  
        

    Оператором цикла с предусловием является оператор:


    В каком случае подкласс абстрактного класса сам не является абстрактным?


    Если имеется код char a[8]; cin >> a; и вводится текст «Hello world», то что будет в массиве a?


    Где может встречаться блок try-catch?


    Класс Point имеет данные-члены int x,y. Какая из следующих операторных функций содержит ошибку?


    Что такое библиотека?


    Имеется программный код:

    template<class For> For adjacent_find(For first, For last);
    template<class For, class BinPred>
    For adjacent_find(For first, For last, BinPred pred);
    	

    Для чего он предназначен?


    Что будет напечатано в результате выполнения фрагмента программы?

      char s[]  = "abcd yuio";
      char *str = s;
      cout << str;
      

    Какой результат будет у следующего выражения?

    #include <iostream.h>
    short x = 11, i = 6;
    void fun1()
    {  if (i == (x-4)) throw 2; }
    void fun2()
    { --x; fun1();  x++; }
    int main()
    { try
        { fun2(); }
           catch (int)
              { cout << "Exception "; }
      cout << x << " " << i;  
    }

    Что дает использование обработки особых ситуации?


    Укажите результат выполнения следующего кода:

    	int factorial(int x)
    {
    	if(x==1)
    		return 1;
    	else
    		return x*factorial(x-1);
    }
    int Func(int y)
    {
    	y = factorial(3);
    	return y+10;
    }
    int _tmain(int argc, _TCHAR* argv[])
    {
    	int x = 0;
    	int z = 0;
    	z = Func(x);
    	printf("z=[%d] x=[%d]",z,x);
    	int i;	
    	scanf("%d",&i);
    	return 0;
    }
    	

    Каково назначение параметра argv программы main?


    Верно ли такое объявление класса Name?

    	class Name
    {
    	public:
    	int Age;
    	char* name;
    };
    	

    Что значит операция:<<?


    Какими по умолчанию являются элементы структуры?


    Можно ли перегружать операции new и delete?


    Какой оператор генерирует исключительную ситуацию?


    Может ли виртуальная функция быть встроенной?


    Что будет выведено в результате

    	double x = 12.4;
    	cout << setw(5) << x << setw(3) 
        << setfill('*')<< "" << endl;
    	

    Выберите правильную синтаксическую конструкцию наследования:


    Может ли конструктор быть статическим?


    Если имеется код int x; cin >> x; и вводится «1.2«, то что будет в переменной x?


    Отличия функций-членов от обычных функций:


    Выберите корректный (компилируемый) код:

    Можно ли создать шаблон сразу по нескольким типам?


    Какой заголовочный файл нужно подключить, чтобы использовать объекты классов ofstream, ifstream, fstream?


    Абстракция данных — это:


    Имеются следующие обработчики ошибок:

      try {}
      catch (a) {код 1}
      catch (b) {код 2}
      catch (с) {код 3}
      catch (d) {код 4}
      catch (d) {код 5}
      

    Если возникла особая ситуация типа d, какой обработчик будет вызван?


    Что делает манипулятор flush?


    Укажите отличия С++ от С

    Какая функция вызывается при аварийном завершении программы?


    Что будет выведено на экран после выполнения программы?

      void main()
      { int i, j;
        j = 0;
        for( i = 0; i < 10; i++)
         {  j++;
            if (j == 5) continue;    
         }
        cout << j;
      }
      

    Объявлен класс: class A { public: int a,b,c;}; A *obj;. Как обратиться к переменной с?


    Cколько параметров может принимать catch


    Укажите правильно заданные идентификаторы


    Как правильно задать неизменяемый указатель?


    Если существует несколько обработчиков особой ситуации, какой будет вызван?


    Парадигма программирования, поддерживающего абстракцию данных, заключается в следующем:


    Что выводит данная программа, если она верна?

    #include <iostream.h>
    class Х{
    public:
    virtual void fun(int a = 0){cout << a;}
    };
    class Y: public X{
    public:
    virtual void fun(int a = 1) {cout << a ; }
    };
    int main(){
    X *px = new X;
    px->fun();
    X *py = new Y;
    py->fun();
    return 0;
    }
    	

    Выберите корректные части кода

    1.	int i =5;
    	switch(i)
    	{
    	case 2: ;break;
    	default:;
    	}
    2.	char c ='a';
    	switch(c)
    	{
    	case 'a': ;break;
    	default:;
    	}
    3.	char* str ="a";
    	switch(str)
    	{
    	case "a": ;break;
    	default:;
    	}
    	

    Что будет выведено на экран в результате работы следующего фрагмента программы:

      double x = 123.456789;
      printf("%f\n",x);
      

    Что произойдет, если чисто виртуальный метод не определить в производном классе?


    В каком из вариантов объявление класса ошибочно?

    1.class A
    {	
    	void F();
    public:
    	int Func(int x){ F();}
    	
    };
    
    2.class A
    {	
    	char* name;
    public:
    	void Func(){ printf("Hello");}
    };
    	

    В программе имеется функция с прототипом int func(int k, double f). Какое из следующих объявлений не приведет к ошибке компиляции?

    Класс Point имеет данные-члены int x,y. Какая из следующих операторных функций содержит ошибку?


    Синтаксис объявления шаблона класса имеет вид:


    Какие функции называются чисто виртуальными?


    Можно ли создать шаблон c несколькими параметрами?


    Что такое конкретный тип?


    Определена шаблонная функция

    template <class T> bool cmp(T a, T b){ return a>b? true : false;};

    Как осуществить вызов функции cmp() для параметров int a1, double b1?


    Какое объявление функции-шаблона func верно?


    В программе имеется функция с прототипом int func(int k, double f). Какое из следующих объявлений приведет к ошибке компиляции?

    	1.void func(int m, double g = 3.14)
    	2.double func(int m, double h, int d = 0)
    	

    Что обозначает данный код?

    int someFunc(double, int);
    int main(int argc, char* pArgs[])
    {
    someFunc(1, 2);
    }
    int someFunc(double argl, int arg2)
    {
    //...выполнение каких-то действий
    }
    

    Чему будет равна переменная x перед выходом из данной функции?

    void f()
      { 
        int x = 2;
        x = x++;
      }
    

    Какие из нижеприведенных описаний являются определениями?

    Может ли статическая функция-член быть виртуальной?


    Какая функция будет первой вызвана, если особая ситуация запущена и не перехвачена?


    Что выведет следующий код?

      сout.width(2); 
      cout << '(' << "abcdef" << ')';  
      

    Изменяются ли параметры, передаваемые в функцию?

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

      cout.precision(3);
      cout << 12.509;  
      

    Член класса, объявленный с атрибутом доступа private:


    Каким будет результат работы следующей программы?

      int a = 5 & 3;
      float b = 4.f;
      b += a++ / 2;
      cout << b;
    

    Шаблоны каких функций можно определить в программе?


    Как называются операторы, порождающие объект другого типа?


    В чем заключается недостаток модели «каскад»?


    Что выведет на экран фрагмент программы int a = 12; cout << ‘(‘ << setw(0) << a << ‘)';?


    Что должно стать результатом анализа создаваемой системы?


    Имеются следующие обработчики ошибок:

      try {}
      catch (a){код 1}
      catch (b){код 2}
      catch (с){код 3}
      catch (d){код 4}
      catch (...){код 5}
      

    Если возникла особая ситуация типа b, какой обработчик будет вызван?


    Какой из этих операторов сложения возвращает сумму по ссылке?

  • operator+();
  • operator++();

  • Что подразумевает термин «сборщик мусора»?


    Верно ли такое объявление класса?

    	class A
    {
    	int x;
    };
    	

    Какой результат будет у следующего выражения?

    int main()
    {
          char *s1;
          char s2[] = "Hello";
          *s1 = "Hi!";
          s1[2] = s2[1];
          cout << s1;
    }

    Что будет напечатано в результате работы следующей программы?

    	main()
      { int a = 0, x = 2;
        for (int i = 0; i < 4; i++)
          { a++;
            if (i == 1) goto B;
            // x++;
          }
        if (a < x) goto C;
        x = 5;
        C:  a -= x;
        B:  a += x;
        cout << a <<  " " << x;
      }
    	

    Интерфейс определен следующим образом:

      class X 
      { Y a; Z b;
        void set(Y&);
        public: void f(const char*);
                void g(int[10], int); 
      }       
      

    Какая проблема может возникнуть при его использовании?


    В чем ошибка при таком определении бинарного оператора: String operator+()?


    Как можно определить бинарную операцию?


    Какое отношение между классами реализовано в данном случае?

     
      class A
      {  public: A(B &b) { this->b = &b; };
                 B* f() { return b;}
                 B* b;
      };
    
      class B
      {  public: B() { b = 0; };
                 int b;
                 void f1() { }
      }
      

    Имеется программный код:

    class A
    {
    	public :  int a, b;
    	protected : int z;
      	private : short i; 
    } A1;
    
    class B : public A
    { 
    	private : int k;
      	int func (float d); 
    } B1;
    

    Выберите для него верные определения функции func:

    1. 
    int B::func(float d) 
    {
       B1.i = b + a; 
       return b;
    }  
    
    2. 
    int B::func(float d)
    {
       k = this.b + a;
       return b;
    }  
    
    3. 
    int B::func(float d)
    {
       B1.z = this->b + a;
       return b;
    }
    

    Какой из способов описания функций и переменных, совместно используемых несколькими классами, наиболее безопасен?


    Какой результат будет у следующего выражения?

        main()
        {
        char s2[] = "Hi";
        cout << sizeof("Hello") + sizeof(s2);
        }
        

    Какой вид иерархии реализует использование?


    Что будет напечатано в результате работы следующей программы?

      main()
      { int a = 0, x = 0;
        for (int i = 0; i < 4; i++)
          { a++;
            if (i == 2) goto B;
            x++;
          }
        if (a > x) goto C;
        x = 10;
        C:  a -= x;
        B:  a += x;
        cout << a << " " << x;
      }
      

    Выберите корректное определение класса Name


    Выберите вариант правильного объявления шаблона класса A:

    1.class A<T>
    {
    public:
    	void f();
    };
    void A<T>::f(){}; 
    
    2.template<class T>
    class A
    {
    public:
    	void f(){}
    };
    template<class T>
    void A::f(){};
    	

    Есть ли ошибка в таком объявлении класса:

      class A
      { public: 
        template <class Type> void f1( Type ) {}; 
        template <class Type> int f2( Type ) {}; 
      }; 
      

    Если два класса имеют нечто общее, как лучше поступить?


    С какого символа начинаются директивы препроцессору?


    Где содержатся операции ввода из файла и вывода в файл?


    Можно ли определить оператор new, принимающим несколько параметров?


    Укажите правильное объявление шаблона функции, если в программе производится вызов double х = zero<double>();


    Как использовать библиотеку math.a в своей программе myprog.c?


    Какая из функций является чисто виртуальной?


    Что будет напечатано в результате работы следующей программы?

      #include <iostream>
      double s2(double x)
        { return x*x; }
      double s3(double x)
        { return x*s2(x); }
      double s4(double x)
        { return s2(x)*s2(x); }
      int main()
      { typedef double (*PTF)(double);
         PTF pf[3] = {&s2, &s3, &s4};
         double x = 2;
         for(int i = 0; i < 3; i++)
             cout << (*pf[i])(x) << endl;
         return 0;
       }
      

    Выберите правильные записи целых констант:


    Какую функцию можно использовать для определения, является ли заданный класс базовым для другого класса?


    Как обратиться к элементу x переменной v, объявленной следующим образом:

    struct A {char *x; int y;} v;
    

    Какой будет результат следующего выражения?

        template <class T> class A
        { public : T x1; T x2;
                   T func(T x3)
                    { x3 += x1 + x2;
                      return x3;
                    }
        };
        int main()
        { A <int> A1;
          A1.x1 = 5; A1.x2 = 12;
          cout << A1.func(1);
        }
        

    Если имеется код double x; cin >> x; и вводится «12-3«, то что будет в переменной x?


    Каким будет результат работы следующей программы?

      int a=5 >> 3;
      float b = 5.5f;
      b+= ++a * 2;
      cout << b;
      

    Почему метод объектно-ориентированного программирования предпочтительнее метода функциональной декомпозиции?


    Имеются следующие обработчики ошибок:

      try {}
      catch (a){код 1}
      catch (b){код 2}
      catch (с){код 3}
      catch (d){код 4}
      catch (...){код 5}
      

    Если возникла особая ситуация типа d, какой обработчик будет вызван?


    В каком случае определение класса приведет к ошибке компиляции:

    А) class MyClass       
       {
         int n;
         // некий код ...
         int ADD(int n);
         MyClass(int);
         ~MyClass();
       };
     
    В) struct MyClass       
       {
         int n;
         // некий код ...
         int ADD(int n);
         MyClass(int);
         ~MyClass();
       };
    	

    Можно ли определить реализацию чисто виртуального метода, определённого в классе-родителе?

    Каков синтаксис функций (или операторов) преобразования объекта одного типа в объект другого типа?


    Укажите шаги для улучшения читаемости программы?


    Класс А определен следующим образом:

    	class A
    {
    	int x;
    };
    	

    Отметьте корректный вариант обращения и использования класса A:


    Что выведет на экран фрагмент программы double a = 17.135; cout << ‘(‘ << setw(8) << setfill(‘#’) << a <<‘)'; ?


    Отметьте верные высказывания для записи
    enum {two = 2, three, four, ten = 10, eleven, fifty = ten + 40};?


    Объявляется класс T. Какой из следующих прототипов конструкторов является конструктором копирования?


    Что возвращает функция, прототип которой объявлен следующим образом:

    struct A {char *x; int y;};
    A fun(void);
    

    Что будет выведено на экран в результате работы следующего фрагмента программы:

      double x = 123.456789;
      printf("%g\n",x);
      

    Выберите корректные (компилируемые) части кода:

    	1.
    	void func (int i , int x = 0);
    	2.
    	void func (int i , int x = 0, int y);
    	

    Какой будет результат следующей программы?

    class t
    { 
                public: t(int i, int j);
                ~t() {};
                int s, m;
                class t2
                { public : int i; };
    };
    t::t(int i, int j)
    { 
                s = i; m = j; 
    }
    int main()
    { 
                t obj_t(5, 10);
                t::t2 obj_t2;
                obj_t2.i = 10;
                cout <<	(obj_t.s + obj_t.m + obj_t2.i) << endl;
                return 0;
    }
    

    В чем заключается недостаток использования функции printf(…)


    Что будет напечатано в результате работы следующей программы?

      #include <iostream>
      #include <math>
      double s2(double x)
        {  return sqrt(x); }
      double s3(double x)
        {  return sqrt(s2(x)); }
      double (*pf1)(double);
      double (*pf2)(double);
      main()
      { pf1 = &s2;
        pf2 = &s3;
        cout << (*pf1)(25) << ' ' << (*pf2)(16) << endl;
      }
      

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

      int SM(const int A[], int N)
      { int S = A[0];
        for (int i = 1; i < N; i++) S += A[i];
        return S;
      }  
      int main()
      {
       #define Bmax 4
        int B[] = {4, 3, 2, 1};
        cout << SM(B, Bmax) << endl;
      }
      

    Какой тип наследования употребляется чаще всего?


    К какому виду относится класс, объявленный так:

      class vector_handler 
      { vector* p;
        public: vector* operator->() { return p; }
                vector_handler(vector* pp) : p(pp) { }
      };  
      

    Что должно стать результатом концептуализации создаваемой системы?


    Определены классы:

      class A
      { void fun() { cout << "функция класса A\n"; }
      };
      class B : private A
      { public: void fun() { cout << "функция класса B\n";}
      };
      class C : private B
      { public: void fun() { cout << "функция класса C\n";}
      };
      

    Что будет напечатано в результате выполнения операторов:

          C *obj;
          obj = new C;
          obj->fun();
      

    Выберете корректные объявления

    1.class A{	
    	friend A&operator+(A&a, A&b);
    };
    
    A&operator+(A&a, A&b);
    
    2.class A{	
    	friend A&operator+(A&a, A&b);
    };
    
    A&A::operator+(A&a, A&b);
    	

    Чему будет равняться переменная «z» после выполнения следующего кода:

    	int SUMM(int x, int y)
    {
        return (x+y);
    }
    int main()
    {
      int z=0;
      {
        int x=1;
        int y=3;
      }
      z=SUMM(x,y);
      return 0;
    }
    	

    Что возвращает функция-оператор <<?


    Какие два основных вида шаблонов существуют в языке С++?


    Определен шаблон и описаны объекты класса:

      template <class A, int n> class my_template {A x[n]; /*…*/};   
      my_template <char, 20> y1;
      my_template <int, 20> y2;
      my_template <char, 30> y3;
      my_template <int, 20> y4;
      

    Какой из следующих операторов не содержит ошибки:


    Что обозначает следующая запись?

    class Block<int, 100>{
    public:
    Вlоск() {р = new int [100];}
    ~Block {delete [ ] p;}
    operator int * ( );
    protected:
    int * p;
    };
    Block<int, 100>:: operator int *(){
    return р;
    }
    

    Какой вид иерархии реализует принадлежность?


    Укажите тернарные операции:


    Какая функция должна быть в классе обязательно?


    Что будет напечатано в результате работы программы:

      class A 
      { public: A() { cout << "A "; };
                virtual A* new_A() { return new A(); }
      };
      class B : public A 
      { public: B(){ cout << "B " ;};
                A* new_A() { return new B(); }
      };
      void fun(A* p1, A* p2)
      { A* p3 = p1->new_A();
        A* p4 = p2->new_A();
      }
      void main()
      { A* p1 = new A;
        B* p2 = new B;
        fun(p1,p2);
      }  
      

    Какие библиотечные функции можно использовать для выделения и освобождения динамической памяти?


    Сколько операндов должна иметь операторная функция бинарного оператора, объявленная как дружественная функция?


    Что следует использовать для представления понятий?


    Выберите правильное (синтаксически верное) объявление функции-шаблона func, принимающей два параметра параметризующего типа template <class T>

    Укажите поток вывода сообщений об ошибках:


    Выберите наиболее правильное определение функций-членов класса:

    Заголовок обобщенного метода print шаблона List имеет вид template <class Data> void List <Data>::print();. Что для данной записи обозначает следующее:

    void List <char>::print(){
    ... 
    }
    	

    Можно ли создать виртуальную функцию, имитирующую виртуальный конструктор?


    Какое определение наиболее точно соответствует понятию «каркас области приложения»?


    Каков будет результат , если конструктор абстрактного класса вызовет чисто виртуальную функцию?


    Определены классы:

      class window 
      { virtual void move();
      };
      class figure 
      { virtual void move();
      };
      class cwindow : public window
      { virtual int wmove(int) = 0;
        void move() { wmove(); }
      };
      class cfigure 
      { virtual int fmove(int) = 0;
        void move() { fmove(); }
      };
      class wind_fig : public cwindow, public cfigure
      { void wmove();
        void fmove();
      };
      

    К какому виду относится класс wind_fig?


    Какие существуют виды наследования?


    Что описывает оператор typedef float (*ptr)(char);


    Для списка с принудительной связью верно следующее:


    Произойдет ли ошибка при компиляции этого кода?

    	class Channel
    { public:
    	void SetNumber (int n) { number = n;};
    	int GetNumber() const { return number;};
    	int number;};
    int main()
    { private : int n;} Channel ch;
    {Channel ch;
    	ch.number = 9;
    	ch.SetNumber(10);
    	Channel ch2(2);}
    	

    Какой из перечисленных ниже операторов не может быть перегружен?


    Узловой класс:

    Верно ли объявлен следующий класс?

    class MyClass
       {
         int n;
         MyClass (int);
         ~MyClass ();
       };
    

    Интерфейс определен следующим образом:

      class X 
      { Y* a; Z & b;
        public:   void f(const char*);
                  X& get(int);    
                  void g(int[], int); 
      }
      

    Какая проблема может возникнуть при его использовании?


    Каково назначение параметра argc программы main?


    Что будет выведено на экран?

      class A
      { public:    A() { x = 1; };
                   int f() { return x; };
        protected: int x;
      };
      class B
      { public:    B() { x = 2; };
                   int f() { return x; };
        protected: int x;
      };
      class C : public A, public B
      {
      }; 
      C* c = new C;
      cout << c->f();
      delete c;
      

    Что делает оператор new?


    Объявлены классы:

      class base 
      { int x, y;
         public: int fun();
      };
      class derived: protected base
      { int z;
        public: int fun1();
      };
      

    Определите тип доступа из класса derived к членам x, y, fun класса base.


    К операторам языка С++, которые нельзя перегружать, относят


    Как называется процесс отделения друг от друга элементов объекта, определяющих его устройство и поведение?


    Сколько операндов имеет оператор ввода-вывода <<?

    Реализован ли в стандарте С++ «сборщик мусора»?


    Какой из этих операторов сложения возвращает сумму по значению?

  • operator+();
  • operator++();

  • Какая директива препроцессору служит для включения в текст файла текста, содержащегося в другом файле?


    Что будет напечатано при выполнении фрагмента кода:

      int x = 3, y = 2, z = 1;
     if(x >= y)
          if(y <= z)
            cout << "Вариант 1";
          else
          if(x >= z)
            cout << "Вариант 2";
          else
            cout << "Вариант 3";
      

    Что называется перегрузкой функций?


    В каком классе находится функция seekg(streampos) ?


    Верен ли нижеприведенный код? Каков результат его работы?

    #include <iostream>
    #include "conio.h"
    
    int main()
    { 
      enum {t, x, y, z ,w};
      cout<<t+x+y+z+w;
      getch();
      return 0;
    }
    

    Выберите верные утверждения для операторов new и delete, перегруженных в базовом классе:


    Верен ли данный код:

    	class A { public: void f() { cout << 5; } };
    	class B : public A
    	{ public: void f() { cout << 6; } };
    	

    Отметьте истинные высказывания в отношении потоков, представленные классом strstream:


    Нужно выделить память для одномерного массива А, состоящего из 10 элементов и затем освободить эту память. Какие из приведенных операторов пригодны для этой цели?


    Можно ли использовать виртуальную функцию, имитирующую виртуальный конструктор, для размножения объектов?

    Как можно определить унарную операцию?


    Если метод в базовом классе не объявлен как виртуальный, а в производном он переопределен, когда определяется, какой из методов вызывается?


    Что можно делать с указателями на функции?


    В каких случаях произойдет ошибка компиляции?


    Имеется программный код:

    template <class In1, class In2>
    bool equal(In1 first1, In1 last1, In2 first2);
    template <class In1, class In2, class BinPred>
    bool equal(In1 first1, In1 last1, In2 first2, BinPred pred);
    	

    Для чего он предназначен?


    Какой будет результат следующей программы?

      class t
      { public: t() { s = 2; }
                ~t() {};
                int s;
                int f(int a)
                 { s++;
                   return s * a;
                 }
                class t2
                { public : int i; };
      };
    	main()
    	{ t obj_t;
        t::t2 obj_t2;
        obj_t2.i = 5;
    		cout <<	(obj_t.f(2) + obj_t2.i) << endl;
    	}
    	

    Если происходит ошибка при выполнении функции new, то


    Инкапсуляция — это:


    Может ли класс, которому принадлежит другой класс, переопределить виртуальные функции этого класса?


    Каким будет результат работы следующей программы?

      int a = 3 << 1;
      double b = 5;
      b += ++a * 2;
      cout << b;
      

    Какая функция задает точность при выводе вещественного числа?


    Отметьте правильное определение константы:


    Объектом какого класса является оператор cout?


    Чему будет равняться значение переменной x после выполнения следующего кода:

    #include "iostream.h"
    #include "conio.h"
    int main()
    {
      int x=1;
      M2:;
      for(int i=1;i<5;i++,x++);
      if(x>5)
        goto M1;
      else
        goto M2;
      M1: cout<<x;
      getch();
      return 0;
    }
    

    Перечислите принципы управления памятью


    Парадигма процедурного программирования заключается в следующем:


    Что будет выведено на экран в результате выполнения приведенной ниже программы:

    	#include "iostream.h"
    #include "conio.h"
    class NewClass
    {
      int x;
      int y;
      public:
      NewClass(int x0,int y0)
      {
        x=x0;
        y=y0;
      }
      void DISPLAY(void)
      {
        cout<<x<<" "<<y;
      }
      NewClass operator+(NewClass obj)
      {
        NewClass tmp(0,0);
        tmp.x=x+obj.x;
        tmp.y=y+obj.y;
        return tmp;
      }
    };
    int main()
    {
      NewClass obj1(1,3),obj2(5,8);
      obj1=obj1+obj2;
      obj1.DISPLAY();
      getch();
      return 0;
    }
    	

    Имеется запись (monstr — базовый класс, daemon — производный):

    // Описывается указатель на базовый класс:
    monstr *р:
    // Указатель ссылается на объект производного класса:
    р = new daemon:
    

    При выполнении виртуального метода p->draw(1, 1, 1, 1); будет вызван


    Какой результат будет у следующего выражения?

        #include <iostream.h>
        short x = 10, i = 5;
        fun1()
          {  if (i == 5) throw 2; }
        fun2()
          { --x; fun1();  x++; }
        int main()
          { try
              { fun2(); }
            catch (int)
              { cout << "Exception "; }
            cout << x << " " << i;  
          }

    Для чего предназначена следующая программа и верна ли она:

    #include <iostream>
    #include <fstream>
    #include <vector>
    #include <stack>
    using namespace std;
    int main()
    {
        ifstream in ("inpnum");
        stack <int, vector<int> > s;
        int x;
        while (in >> x, !in.eof()) s.push(x);
        while (! s.empty())
        {
            x = s.top(); cout << x << " ";
            s.pop();
        }
    }
    

    Для чего нужны виртуальные базовые классы?


    Выберите правильное объявление дружественной функции:


    Что выведет на экран следующий код:

    int x = 2;
    while (x != 12)
    {
    cout << x << endl;
    x = x + 2;
    }
    	

    Парадигма модульного программирования заключается в следующем:


    Чему будет равняться значение переменной «ii» после выполнения приведенного ниже кода?

    int ii = 0; 
    int& rr = ii; 
    rr++;
    

    Могут ли блоки try-catch быть вложенными?


    Что производит следующий программный код:

    	sum = 0;
    	for (n = 1; n <= 10; n++)
    	sum = sum + n;
    	

    В каких из следующих операторов есть синтаксические ошибки?


    Можно ли определить длину строки с помощью функции?

    int len(char *s)
     { int n=0;
       while (*s++)n++;
       return n;}
    

    Что произойдет если вызвать delete для несуществующего указателя?


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

      int SM(const int A[], int N)
      { int S = A[0];
        for (int i = 1; i < N; i++) S += A[i];
        return S;
      }  
      void main()
      {
       #define Bmax 6
        int B[6] = {1, 2, 3, 4, 5, 6};
        cout << SM(B + 3, Bmax - 3) << endl;
      }
      

    Можно ли осуществить явное преобразование типа объекта к типу абстрактного класса?


    Что производит эта программа?

    #include <fstream>
    #include <vector>
    #include <stack>
    using namespace std:
    int main(){
    ifstream in ("inpnum");
    stack <int. vector<int> > s;
    int x;
    while ( in >> x. !in.eof()) s.push(x);
    while (!s.empty()){
    X = s.top(); cout << x << " ";
    s.pop();
    return 0;
    }
    }
    	

    Расставьте шаги проектирования классов в наиболее правильном порядке:

  • Определить классы
  • Определить интерфейсы
  • Определить операции для классов
  • Определить связи между классами
  • Определить зависимость от других классов

  • В каких случаях использование интерфейсных классов обеспечивает более эффективный интерфейс?


    Что в данном коде обозначает третья строка?

    int kоl;
    int& pal = kol;
    const char& CR ='\n';
    

    Если записано

    class A { public: void f() { cout << 1; } };
    class B : public A
    { public: void f() { cout << 2; } };
    	

    то что будет напечатано?
    B b; A& a=b; a.f();


    Объявляется класс T. Какой из следующих прототипов конструкторов является конструктором по умолчанию?


    Есть ли ошибка в следующем коде?

      try 
        { }
      catch (a) { }
      catch (b) { }
      catch (...) { }
      catch (c) { }
      catch (d){ }
      

    Какая директива включает стандартные возможности ввода и вывода?


    Что из перечисленного ниже облегчается, если программа имеет ясную внутреннюю структуру?


    Выберите корректные части кода

    1.	char* str ="a";
    	switch(str)
    	{
    	case "a": ;break;
    	default:;
    	}
    2.	enum day{sun,mon,thus};
    	day d = mon;
    	switch(d)
    	{
    	case sun: ;break;
    	}
    	

    Перечислите верные ответы:


    Если объект класса А может содержать несколько объектов класса В, какое должно быть между ними отношение?


    Что будет выведено на экран в результате работы следующего фрагмента программы:

      double x = 123.456789;
      printf("%e\n",x);
      

    Верно ли объявлены следующие классы:

    class MyClass1
       {
         int n;
         MyClass1(int);
         ~MyClass1();
       };
    
    class MyClass2
       {
         float s;
         MyClass2(int);
         ~MyClass2();
       };
    

    Отметьте правильный прототип функции, использующий в качестве параметра многомерный массив int m[10][2]:


    Какой оператор отслеживает исключительную ситуацию?


    Чему будет равна переменная x?

    void f()
    {
      int x = 1;
      int &y = x;    
      int &z = y;    
      z = -1;  
    }
    

    Почему использование моделей является не только допустимым, но и желательным?


    Какой будет результат следующего выражения?

    	template <class T> T sum(T *a, T *b)
        {  T f = 1;
           return (*a + *b) - f;
        }
        int main()
        { int i = 5, j = 1; double x = 5., y = 6.;
          cout << sum(&i, &j) << " " << sum(&x, &y);
        }
    	

    Объявлен класс A и объект d:

    class A 
    {
     int a, b, c;
     public: A() {a = 1; b = 2; c = 3; };
     int get_a() { return a; }
     int get_c() { return c; }
     int get_b() { return b; }
     };  
    A* d = new A();
    

    Как обратиться к переменной с?


    Какой файл необходимо включить, если предполагается использование манипуляторов с параметрами?


    Сколько в программе может быть определений шаблона типа для функции-члена шаблонного класса?


    Какие из перечисленных операторов не следует реализовывать как внешние функции, а только как функции-члены класса:


    Какой будет результат следующей программы?

    class t
    { 
        public: t() { s = 4; }
        ~t() {};
        int s;
        int f(int a)
        {
            s--;
            return s * a;
         }
        class t2
        { public : int i; };
     };
    
    void main()
    {
        t obj_t;
        t::t2 obj_t2;
        obj_t2.i = 10;
        cout << (obj_t.f(2) + obj_t2.i) << endl;
    }

    Определите результат работы данной программы для A a; B b; b.f();

    	class A { public: void f() { cout << 5; } };
    	class B : public A
    	{ public: void f() { cout << 6; } };
    	

    Перечислите верные высказывания:


    В файлы f1.txt и f2.txt записана строка символов 1234. Что будет выведено на экран в результате работы следующего фрагмента программы:

      char s1[] = "f1.txt"; char s2[] = "f2.txt";
      ifstream from(s1);
      fstream to(s2, ios::in | ios::out);
      char ch;
      from.seekg(2);
      from.get(ch);
      to.seekp(1);
      to.put(ch);
      to.seekp(0);
      while(to.get(ch)) 
        cout << ch;
      cout << endl;
      

    Какие из следующих операторов обеспечивают бесконечный цикл?


    Какой вид иерархии реализует наследование?


    Член класса, объявленный с атрибутом доступа protected:


    Если в качестве параметра функции указан массив, то передается:


    В каком файле определяются операторы ввода и вывода?


    Интерфейсный базовый класс — это:


    Что собой представляет исключительная ситуация?


    Какие из следующих прототипов функций содержат ошибки?


    Что обозначает следующая запись?

    	class В{ / * ... * / };
    class С: public В{ /* ... */ };
    С* с = new С;
    В* b = dynamic_cast<B*>(c);
    	

    Отметьте истинное высказывание:

    Какие ограничения накладывает использование абстрактных классов?


    Что обозначает запись typedef basic_filebuf<char> filebuf;?


    Какая функция должна присутствовать в каждой программе С++?


    Какие из перечисленных ниже приемов могут служить способами экспериментирования?


    В конструкторе класса

    	class  A {
     	public:
       	A() { ptr = new char[size];
        Init(); }
      	~A() { if (ptr) delete[] ptr; }
        char* ptr; };
    	

    произошла исключительная ситуация. Будет ли потеряна память при откате по стеку?


    Какими качествами должен обладать программный продукт?


    Член класса, объявленный с атрибутом доступа public:


    Для чего используется шаблон?

    Определены классы:

      class base
      { int x, y;
        public: base() { x = 0; y = 0; }
                int getx() { return x; }
                int gety() { return y; }
      };
      class Derived : protected base
      { int z;
        public: Derived() : base() { z = 0; }
                int getz() { return z; }
                base::gety;
      };
      main()
      { Derived *obj = new Derived; 
        /* ??????????? */  
      }
      

    Какие из следующих операторов приведут к ошибкам компиляции?


    Может ли конструктор быть виртуальным?


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

      main()
      { int x = 0; 
        for (int i = 0; i < 5; i++)
           for (int j = 0; j < 3; j++) 
             { x++;
               if (j) continue;
                 else break;
             }
        cout << x;
      }
      

    Какой тип не определен в стандарте языка С++?


    Comments are closed.

    Яндекс.Метрика