Язык программирования C++ для профессионалов - ответы
Что будет выведено в результате
double x = 12.4; cout << setw(5) << x << setw(3) << setfill('*')<< "" << endl;
Как называется процесс отделения друг от друга элементов объекта, определяющих его устройство и поведение?
Что будет выведено на экран в результате выполнения приведенной ниже программы:
#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;}
Определен шаблон и описаны объекты класса:
template <class A> class Array { /*…*/}; Array <int> x1; Array <int> x2; Array <char> x3; Array <short> x4;Какие из следующих операторов не содержат ошибки:
Имеются следующие обработчики ошибок:
try {} catch (a){код 1} catch (b){код 2} catch (с){код 3} catch (d){код 4} catch (...){код 5}Если возникла особая ситуация типа d, какой обработчик будет вызван?
Можно ли использовать виртуальную функцию, имитирующую виртуальный конструктор, для размножения объектов?
Чему будет равняться переменная "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;}
Определены классы:
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();
Какая директива препроцессору служит для включения в текст файла текста, содержащегося в другом файле?
Какую функцию можно использовать для определения, является ли заданный класс базовым для другого класса?
Интерфейс определен следующим образом:
class X { Y a; Z b; void set(Y&); public: void f(const char*); void g(int[10], int); }Какая проблема может возникнуть при его использовании?
Объявлен класс 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 Base1 { public: void func(); };class Base2 { public: void func(); }; class Derived: public Base1, public Base2 { … };void main() { Derived a; … };Какие из следующих операторов функции main() правильны?
Как обратиться к элементу x переменной v, объявленной следующим образом:
struct A {char *x; int y;} v;
Можно ли определить длину строки с помощью функции?
int len(char *s) { int n=0; while (*s++)n++; return n;}
Что будет напечатано в результате выполнения фрагмента программы?
char s[]="abcd1234"; char *str = s + 4; cout << str;
Что будет выведено на экран в результате выполнения приведенной ниже программы:
#include "iostream.h"#include "conio.h"const int a=144;int main(){ a=12; cout<<a; getch(); return 0;}
Какой результат будет у следующего выражения?
main() { char s2[] = "Hi"; cout << sizeof("Hello") + sizeof(s2); }
Что будет напечатано при выполнении фрагмента кода:
int x = 3, y = 2, z = 1; if(x >= y) if(y <= z) cout << "Вариант 1"; else if(x >= z) cout << "Вариант 2"; else cout << "Вариант 3";
Какой результат будет после выполнения следующей программы?
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; }
Если int n=2, какой будет результат
switch(n) { case 2: cout << "YES"; break; case 3: cout << "NO"; break; default: cout << "MAYBE"; break; }
Каким будет результат работы следующей программы?
int a = 3 << 1; double b = 5; b += ++a * 2; cout << b;
Выберите корректные части кода
1. char* str ="a"; switch(str) { case "a": ;break; default:; }2. enum day{sun,mon,thus}; day d = mon; switch(d) { case sun: ;break; }
Какой будет результат выполнения следующей программы?
int main(){ int i = 5; int* pi = &i; void * v = pi; pi = v; cout << *pi; return 0;}
Укажите результат выполнения следующего кода:
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;}
Отметьте правильный прототип функции, использующий в качестве параметра многомерный массив int m[10][2]:
Какой будет результат выполнения следующей программы?
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; }
Что будет напечатано в результате работы следующей программы?
#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; }
Если в программе уже имеется функция с прототипом int func(int k, double f), то какое из следующих объявлений не вызовет ошибки компиляции?
Выберите корректные (компилируемые) части кода:
1. void func (int i , int x = 0); 2. void func (int i , int x = 0, int y);
В каком из вариантов объявление класса ошибочно?
1.class A{ void F();public: int Func(int x){ F();} };2.class A{ char* name;public: void Func(){ printf("Hello");}};
Объявляется класс T. Какой из следующих прототипов конструкторов является конструктором по умолчанию?
Какой будет результат следующей программы?
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;}
Если записано
class A { public: void f() { cout << 1; } }; class B : public A { public: void f() { cout << 2; } };то что будет напечатано? B b; b.f();
Верен ли данный код:
class A { public: void f() { cout << 5; } }; class B : public A { public: void f() { cout << 6; } };
Имеется программный код:
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;}
Объявлены классы:
class base { int x, y; public: int fun(); }; class derived: protected base { int z; public: int fun1(); };Определите тип доступа из класса derived к членам x, y, fun класса base.
Что обозначает следующая запись?class Block<int, 100>{public:Вlоск() {р = new int [100];}~Block {delete [ ] p;}operator int * ( );protected:int * p;};Block<int, 100>:: operator int *(){return р;}
Дано определение классов:
class MyClass0{ public: int x; //...};class MyClass1 : MyClass0{ //...};Какой статус доступа будет иметь компонент "x" класса "MyClass0" в производном классе "MyClass1"?
Будет ли работать этот оператор?
MyClass operator+(MyClass x1, MyClass x2) { int sum= x1.a + x2.a; return *new MyClass(sum); }
Выберете корректное объявление
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. Функция объявляется внутри класса A. Выберите корректные варианты объявления функции перегрузки оператора.
Выберите правильное (синтаксически верное) объявление функции-шаблона func, принимающей два параметра параметризующего типа template <class T>
Какой будет результат следующего выражения?
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); }
Какой будет результат следующего выражения?
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); }
Имеется программный код:
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);Для чего он предназначен?
Определена шаблонная функция template <class T> bool cmp(T a, T b){ return a>b? true : false;};
Как осуществить вызов функции cmp() для параметров int a1, double b1?
Заголовок обобщенного метода print шаблона List имеет вид template <class Data> void List <Data>::print();. Что для данной записи обозначает следующее:
void List <char>::print(){... }
Выберите правильный вариант программного кода:
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(){}};
Какой будет результат следующего выражения?
template <class T> class A { public : T x1; T x2; T func(T x3) { x3 += x1 + x2; return x3; } }; int main() { A <float> A1; A1.x1 = 5.5; A1.x2 = 0.6; cout << A1.func(1.1); }
Что произойдет, если при возникновении особой ситуации блок try не будет обнаружен в данной функции?
Какой результат будет у следующего выражения?
#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 <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;}}
Что будет выведено на экран в результате работы следующего фрагмента программы:
double x = 123.456789; printf("%f\n",x);
В файлы 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;
Какой результат будет у следующего выражения?
#include <iostream.h> #include <fstream.h> int main( ) { int i = 1, j = 11; double a = 2; char s[40]; strcpy(s, "file"); ofstream outfile("c:\\tst.txt"); if (!outfile) { cout << "Ошибка создания файла"; return 1; } outfile << i << ' ' << j << ' ' << a << ' ' << s << endl; outfile.close(); }
Как называется выделение существенных характеристик объекта, отличающих его от других видов объектов?
Какое отношение между классами реализовано в данном случае?
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 X { Y* a; Z & b; public: void f(const char*); void h(int, ...); void g(int[10], int); }Какая проблема из перечисленных ниже может возникнуть при его использовании?
Какой из способов описания функций и переменных, совместно используемых несколькими классами, наиболее безопасен?
К какому виду относится класс, объявленный так:
class dim { public: virtual void add(X*) = 0; virtual void sub(X*) = 0; virtual int sum() = 0; virtual ~dim(){}; }
К какому виду относится класс, объявленный так:
class vector_handler { vector* p; public: vector* operator->() { return p; } vector_handler(vector* pp) : p(pp) { } };
Отметьте верные высказывания для записи enum {two = 2, three, four, ten = 10, eleven, fifty = ten + 40};?
Имеется запись (monstr - базовый класс, daemon - производный):// Описывается указатель на базовый класс:monstr *р:// Указатель ссылается на объект производного класса:р = new daemon:
При выполнении виртуального метода p->draw(1, 1, 1, 1); будет вызван
Что будет напечатано в результате выполнения фрагмента программы?
char s[] = "abcd yuio"; char *str = s; cout << str;
Объявлены классы:
class A { public: int a; A() { a = 0; }; }; class B : public A { public: B():A() {}; }; class C : protected A { public: C():A() {}; }; class D : private A { public: D():A(){}; }; Созданы объекты и ссылки: B* b = new B; C* c = new C; D* d = new D;Какие из следующих операторов приведут к ошибкам компиляции?
Что будет напечатано в результате работы следующей программы?
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; }
Какое отношение между классами реализовано в данном случае?
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; } };
Дано частичное определение класса MyClass:class MyClass { int a; //...public: MyClass(int); MyClass(const MyClass&); //...};
Будет ли работать этот оператор:
MyClass operator+(MyClass x1, MyClass x2) { int sum= x1.a + x2.a; MyClass result(sum); return result; }
Что обозначает данный код?
int someFunc(double, int);int main(int argc, char* pArgs[]){someFunc(1, 2);}int someFunc(double argl, int arg2){//...выполнение каких-то действий}
Выберите правильные утверждения относительно следующего кода:class hero{friend class mistress;}class mistress{void f1 ();void f2();}
Что выведет на экран фрагмент программы double a = 17.135; cout << '(' << setw(8) << setfill('#') << a <<')'; ?
Имеются следующие обработчики ошибок:
try {} catch (a) {код 1} catch (b) {код 2} catch (с) {код 3} catch (d) {код 4} catch (d) {код 5}Если возникла особая ситуация типа d, какой обработчик будет вызван?
Чему будет равняться значение переменной "ii" после выполнения приведенного ниже кода?
int ii = 0; int& rr = ii; rr++;
Что является результатом программы
#include <stdio.h>int main(){int x = 3, у = 3;printf("Значение префиксного выражения: %d\n", ++х);printf("Значение постфиксного выражения: %d\n", у++);printf("Значение х после приращения: %d\n", х);printf("Значение у после приращения: %d\n", у);return 0;}
Что будет напечатано в результате работы следующей программы?
int main() { int a = 0, x = 2; for (int i = 0; i < 1; i++) { a++; if (i == 1) goto B; x++; } if (a > x) goto C; /* x = 5; */ C: a -= x; B: a += x; cout << a << " " << x; 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:; }
Какой будет результат выполнения следующей программы?
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; }
Что будет напечатано в результате работы следующей программы?
#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 func(int k, double f). Какое из следующих объявлений приведет к ошибке компиляции?
1.void func(int m, double g = 3.14) 2.double func(int m, double h, int d = 0)
Объявляется класс T. Какой из следующих прототипов конструкторов является конструктором копирования?
Определены классы:
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; /* ??????????? */ }Какие из следующих операторов приведут к ошибкам компиляции?
Произойдет ли ошибка при компиляции этого кода?
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 В{ / * ... * / };class С: public В{ /* ... */ };С* с = new С;В* b = dynamic_cast<B*>(c);
Что будет напечатано в результате работы программы:
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); }
Что будет выведено на экран после выполнения программы?
int main(){ int i, j; j = 0; for( i = 0; i < 10; i++) { j++; if (j == 5) continue; } cout << j; return 0;}
Сколько операндов должна иметь операторная функция бинарного оператора, объявленная как дружественная функция?
Какие приёмы следует использовать для того, чтобы перегруженные операторы были пригодны для операндов разных типов?
Укажите правильное объявление шаблона функции, если в программе производится вызов double х = zero<double>();
Выберите вариант правильного объявления шаблона класса 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(){};
Есть ли ошибка в таком объявлении класса:
class A { public: template <class Type> void f1( Type ) {}; template <class Type> int f2( Type ) {}; };
Какой будет результат следующего выражения?
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); }
Какой результат будет у следующего выражения?
#include <iostream.h> short x = 4, i = 0; int fun1() { if (i == 0) throw 2; } int 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(); }}
В конструкторе класса
class A { public: A() { ptr = new char[size]; Init(); } ~A() { if (ptr) delete[] ptr; } char* ptr; };произошла исключительная ситуация. Будет ли потеряна память при откате по стеку?
Имеются следующие обработчики ошибок:
try {} catch (a){код 1} catch (b){код 2} catch (с){код 3} catch (d){код 4} catch (...){код 5}Если возникла особая ситуация типа b, какой обработчик будет вызван?
Какая функция будет первой вызвана, если функция запустила особую ситуацию, не указанную в ее описании
Что будет выведено на экран в результате работы следующего фрагмента программы:
double x = 123.456789; printf("%e\n",x);
Какой из следующих прототипов следует использовать для доопределения оператора << для вывода пользовательских типов?
Какой результат будет у следующего выражения?
#include <iostream.h> #include <fstream.h> int main ( ) { int i = 5, j = 10; double a = 25; char s[40]; strcpy(s, "Test"); ofstream outfile("c:\\tst.txt"); if (!outfile) { cout << "Ошибка создания файла"; return 1; } outfile << i << ' ' << j << ' ' << a << ' ' << s << endl; outfile.close(); }
Почему метод объектно-ориентированного программирования предпочтительнее метода функциональной декомпозиции?
Интерфейс определен следующим образом:
class X { Y* a; Z & b; public: void f(const char*); X& get(int); void g(int[], int); }Какая проблема может возникнуть при его использовании?
Если метод в базовом классе не объявлен как виртуальный, а в производном он переопределен, когда определяется, какой из методов вызывается?
Определены классы:
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?
Определены классы:
class A { public: void fun() { cout << "функция класса A\n"; } }; class B: public A { public: void fun() { cout << "функция класса B\n"; } }; class C: public B { public: void fun() { cout << "функция класса C\n"; } };Что будет напечатано в результате выполнения операторов:
C obj; obj.A::fun();
Какая строка данного кода производит возврат элемента по указателю?
#define SIZE 100int Stack[SIZE]; int SP; void lnit(){ SP = - 1 ; } void Push(int val) { Stack[ ++SP]=val; }int Рор() { if (SP < О ) return(O); return ( Stack[SP--]); }
Определены классы:
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; /* ??????????? */ }Какие из следующих операторов приведут к ошибкам компиляции?
Задан массив:
int m[3][4] = { { 1, 2, 3, 4}, { 5, 6, 7, 8}, { 9, 10, 11, 12} };Какое значение содержится в элементе m[2][3]?
Верно ли объявлены следующие классы:
class MyClass1 { int n; MyClass1(int); ~MyClass1(); };class MyClass2 { float s; MyClass2(int); ~MyClass2(); };
Что произойдет при выполнении данного оператора switch, если val = 1?
switch (val) { case 1: a(); case 2: b(); break; default: c(); break; }
В каком случае определение класса приведет к ошибке компиляции:
А) class MyClass { int n; // некий код ... int ADD(int n); MyClass(int); ~MyClass(); }; В) struct MyClass { int n; // некий код ... int ADD(int n); MyClass(int); ~MyClass(); };
Какой результат будет у следующего выражения?int main(){ char *s1; char s2[] = "Hello"; *s1 = "Hi!"; s1[2] = s2[1]; cout << s1;}
Что будет выведено на экран после выполнения программы?
void main() { int i, j; j = 0; for( i = 0; i < 10; i++) { j++; if (j == 5) continue; } cout << j; }
Нужно выделить память для одномерного массива А, состоящего из 10 элементов и затем освободить эту память. Какие из приведенных операторов пригодны для этой цели?
Каким будет результат работы следующей программы?
int a=5 >> 3; float b = 5.5f; b+= ++a * 2; cout << b;
В каких строках программного кода происходит объявления функций?#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);}
Что будет напечатано в результате работы следующей программы?
#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; }
Класс А определен следующим образом:
class A{ int x;};Отметьте корректный вариант обращения и использования класса A:
Объявлен класс 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;Как обратиться к переменной с?
Отметьте правильное создание объекта вложенного класса cls2, если имеется следующее объявление:
class cls1 { public : int yy; class cls2 { public : int zz; }; };
Определите результат работы данной программы для A a; B b; b.f();
class A { public: void f() { cout << 5; } }; class B : public A { public: void f() { cout << 6; } };
В каком порядке вызываются конструкторы и деструкторы?
Объявлен класс:
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];}Какие из следующих операторов приведут к ошибкам компиляции?
Имеется программный код:
template<class For> For adjacent_find(For first, For last);template<class For, class BinPred>For adjacent_find(For first, For last, BinPred pred);Для чего он предназначен?
Верна ли следующая программа?
class A { int _i;public: A(int i) { _i = i; } ~A() { printf("%d ",_i); }};int main() { A a(-1); { A a(0); A a1(1); throw "Error executed."; A a2(2); } A a1(4); return 0;}
Есть ли ошибка в следующем коде?
try { } catch (a) { } catch (b) { } catch (...) { } catch (c) { } catch (d){ }
Что будет выведено на экран в результате работы следующего фрагмента программы:
double x = 123.456789; printf("%g\n",x);
В файлы 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;
Как называются операторы,позволяющие организовать доступ ко всем частям объекта в строго определенной последовательности?
Если объект класса А может содержать несколько объектов класса В, какое должно быть между ними отношение?
В программе имеется функция с прототипом 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)
Какой результат будет у следующего выражения?
#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 Т> class А{int х;};template<class Т> class А<Т*> { long х;};template<template<class U> class V> class C{V<int> y;V<int*> z;};C<A> c;
Верен ли нижеприведенный код? Каков результат его работы?
#include <iostream>#include "conio.h"int main(){ enum {t, x, y, z ,w}; cout<<t+x+y+z+w; getch(); return 0;}
Что будет напечатано в результате работы следующей программы?
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; }
Каким будет результат работы следующей программы?
int a = 5 & 3; float b = 4.f; b += a++ / 2; cout << b;
Что выводит данная программа, если она верна?
#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;}
Что будет выведено на экран?
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;
Сколько операндов должна иметь операторная функция бинарного оператора, объявленная как глобальная функция?
Что выведет на экран фрагмент программы char z[10]; while(cin >> z) cout << z << '\n'; после ввода текста, состоящего из нескольких слов, разделенных пробелами?
Какой заголовочный файл нужно подключить, чтобы использовать объекты классов ofstream, ifstream, fstream?
Расставьте шаги проектирования классов в наиболее правильном порядке:
Какой будет результат следующего выражения?
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); }
Какой будет результат следующей программы?
class t{ public: t() { s = 4; } ~t() {}; int s; int f(int a) { s--; return s * a; } class t2 { public : int i; }; };int main(){ t obj_t; t::t2 obj_t2; obj_t2.i = 10; cout << (obj_t.f(2) + obj_t2.i) << 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 6 int B[6] = {1, 2, 3, 4, 5, 6}; cout << SM(B + 3, Bmax - 3) << endl; return 1; }
Объявлены классы:
class A { public: int a; A() { a = 0; }; }; class B : public A { public: B():A() {}; }; class C : protected A { public: C():A() {}; }; class D : private A { public: D():A(){}; };Созданы объекты и ссылки:
B* b = new B; C* c = new C; D* d = new D;Какие из следующих операторов приведут к ошибкам компиляции?
Какой будет результат следующей программы?
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; }
Если записано
class A { public: void f() { cout << 1; } };class B : public A{ public: void f() { cout << 2; } };то что будет напечатано? B b; A& a=b; a.f();
Определен шаблон и описаны объекты класса:
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;Какой из следующих операторов не содержит ошибки:
Класс 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);}
Какой наиболее правильный порядок создания проекта:
Определены классы:
class base { int x, y; public: int getx() { return x; } int gety() { return y; } }; class Derived : private base { int z; public: int getz() { return z; } base::getx; }obj;Какой из следующих операторов приведет к ошибкам компиляции?
Что возвращает функция, прототип которой объявлен следующим образом:
struct A {char *x; int y;};A fun(void);
В программе имеется функция с прототипом int func(int k, double f). Какое из следующих объявлений не приведет к ошибке компиляции?
Какие из перечисленных операторов не следует реализовывать как внешние функции, а только как функции-члены класса:
Выберите вариант правильного объявления шаблона класса 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(){};
Выберете корректные объявления
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);
Чему будет равняться значение переменной 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>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; }
Правильно ли написан нижеприведенный программный код?
#include "iostream.h"#include "conio.h"int main(){ int x=17,y=46; cout<<x<<"+"<<y<<"="<<x+y; getch(); return 0;}
Как обратиться к элементу x переменной v, объявленной следующим образом:
struct A {char *x; int y;} *v;