И.А. Волкова, А.А. Вылиток, Л.Е. Карпов - Сборник задач и упражнений по языку Си++, страница 3
Описание файла
PDF-файл из архива "И.А. Волкова, А.А. Вылиток, Л.Е. Карпов - Сборник задач и упражнений по языку Си++", который расположен в категории "". Всё это находится в предмете "практика расчётов на пэвм" из 3 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст 3 страницы из PDF
Ошибочные конструкции вычеркнуть из текста программы. Что будет выдано в стандартный канал вывода при работе программы?class K {public:virtual int f (int x) {cout << "K::f" << endl;return 0;}void g () {f (1);cout << "K::g" << endl;}virtual void h () {g ();cout << "K::h" << endl;}};class P: public K {public:int f (double y) {cout << "P::f" << endl;return 2;}virtual void g () {f (1);cout << "P::g" << endl;}virtual void h () {g();cout << "P::h" << endl;}};23int main(){K k; P p; K *t = &p;t -> f (0.7);t -> g ();t -> h ();}4.5.Есть ли ошибки в приведенном фрагменте программы? Если есть, то объясните,в чем они заключаются. Ошибочные конструкции вычеркнуть из текста программы.
Что будет выдано в стандартный поток вывода при работе программы?class A {public:virtual void f (int x) {h (x);cout << "A::f," << x << endl;}void g () {h (0); cout << "A::g"<< endl;}virtual void h (int k) {cout << "A::h," << k << endl;}};class B: virtual public A {public:void f (int y) {h (y); cout << "B::f," << y << endl;}void g () {h (1); cout << "B::g"<< endl;}void h (int k) {cout << "B::h," << k << endl;}};int main(){A a; B b; A * p = & b;p -> f (2);p -> g ();p -> h ();p -> h (3);}4.6.Есть ли ошибки в приведенном фрагменте программы? Если есть, то объясните,в чем они заключаются.
Ошибочные конструкции вычеркнуть из текста программы. Что будет выдано в стандартный поток вывода при работе программы?class C {public:virtual void f (int x) {h (x); cout << "C::f," << x << endl;}24virtual void g () {h (0); cout << "C::g" << endl;}virtual void h () {cout << "C::h"<< endl;}virtual void h (int k) {h (); cout << "C::h," << k << endl;}};class D: public C {public:virtual void f (int y) {h (y); cout << "D::f," << y << endl;}virtual void g () {h (1); cout << "D::g" << endl;}virtual void h () {cout << "D::h" << endl;}virtual void h (int k) { h ();cout << "D::h," << k << endl; }};int main(){C c; D d; C * p = & d;p -> f (2); p -> g ();p -> h (); p -> h (3);}4.7.Есть ли ошибки в приведенном фрагменте программы ? Если есть, то объясните,в чем они заключаются. Ошибочные конструкции вычеркнуть из текста программы.
Что будет выдано в стандартный поток вывода при работе программы?class T {public:virtual void f (int x) {h (); cout << "T::f," << x << endl;}void g () {h (); cout << "T::g" << endl;}virtual void h () {cout << "T::h"<< endl;}};class U: virtual public T {public:void f (int y) {h (y); cout << "U::f," << y << endl;}virtual void g () {h (0); cout << "U::g"<< endl;}25void h (int k) {cout << "U::h," << k << endl;}};int main(){T t; U u; T * p = & u;p -> f (1); p -> g ();p -> h (); p -> h (2);}4.8.Что напечатает следующая программа?class A {int i;public:A(int x) { i = x; cout << "first" << endl; }virtual ~A() { cout << "second" << endl; }int f() const { return i + g() + h(); }virtual int g() const { return i; }int h() const { return 39; }};class B : public A {public:B() : A(70) { cout <<"third" << endl; }~B() { cout << "fourth" << endl; }int f() const { return g() - 2; }virtual int g() const { return 4; }int h() const { return 6; }};int main() {B b;A* p = &b;Cout << "result = (“ << p->f() <<';'<< b.f() << ')' << endl;return 0;}4.9.Что напечатает следующая программа?class A {int i;public:A(int x) { i = x; cout << "mercury" << endl; }virtual ~A() { cout << "venus" << endl; }int f() const { return 96; }virtual int g() const { return i; }int h() const { return i - f() - g(); }};class B : public A {public:B(int x) : A(x+20) { cout << "earth" << endl; }~B() { cout << "mars" << endl; }int f() const { return 8; }virtual int g() const { return 3; }int h() const { return f() + g(); }};26int main() {B b(17);A* p = &b;Cout << "result = (" << p->h() << ';'<< b.h() <<')' << endl;return 0;}4.10.
Что напечатает следующая программа?class A {int i;public:A(int x) { i = x; cout << "dog" << endl; }virtual ~A() { cout << "cat" << endl; }int f() const { return i + g() + h(); }virtual int g() const { return i; }int h() const { return 5; }};class B : public A {public:B() : A(21) { cout << "sheep" << endl; }~B() { cout << "horse" << endl; }int f() const { return g() - 3; }virtual int g() const { return 7; }int h() const { return 9; }};int main() {B b;A* p = &b;Cout << "result = (" <<return 0;}p->f() << ';' << b.f() <<')' << endl;4.11. Дан фрагмент программы:struct A {int i;virtual void f() = 0;virtual ~A() {}};int g(A a) { return a.i * 5; }Есть ли в этом фрагменте ошибки? Если да, то в чем они заключаются?4.12.
Дан фрагмент программы:struct S {virtual void f() const = 0;virtual ~S() {}};27struct A {S s;int i;};Есть ли в этом фрагменте ошибки? Если да, то в чем они заключаются?4.13. Дан фрагмент программы:class B {public:virtual int f() = 0;int g() { return f() * 10; }virtual ~B() {}};int h(B b) { return b.g() + 2; }Есть ли в этом фрагменте ошибки? Если да, то в чем они заключаются?4.14. Что напечатает следующая программа?struct B {virtual void f (int n) { cout << “f (int) from B” << endl; }static int i;};struct D: B {virtual void f (char n) { cout << “f (char) from D” << endl; }};int B::i = 1;int main () {D d;Bb1, b2, *pb = &d;pb -> f ( ‘a’);b1.i += 2;b2.i += 3; d.i += 4;cout << b1.i << ' ' << b2.i << ' ' << d.i << ' ' <<return 0;}4.15.
Что напечатает следующая программа?struct K {virtual void add_st ( K * n ) {st ++;cout << “add_st (K*) from K” << endl;}static int st;};struct L: K {virtual void add_st ( L * a ) {st++;cout << “add_st (L*) from L” << endl;}};28B::i << endl;int K::st = 2;int main () {Lob, ob2;Kk, *pl = &ob;pl -> add_st (& ob2);k.st ++;++ob.st ;cout << k.st << ' ' << ob.st << ' ' <<return 0;}K::st << endl;4.16. Что напечатает следующая программа?struct S {static double d;virtual S & g () { cout << “g ( ) from S” << endl; }};struct T: S {virtual T & g ( ) { cout << “g ( ) from T” << endl; }};double S::d = 1.5;int main () {Tt;Ss , *ps = &t;ps -> g ();s.d = 5; t.d = 7;cout << s.d << ' ' << t.d << ' ' <<return 0;}S::d << endl;5.Аппарат исключений5.1.Что будет выдано в стандартный канал вывода при работе следующей программы?class X;void F(X & x, int n);class X {public:X() { try { F(*this, -2);cout << 1 << endl; }catch (X) { cout << 2 << endl; }catch (int) { cout << 3 << endl; }}X(X &) { cout << 12 << endl; }};class Y: public X {public: Y () {cout << 4 << endl;}Y (Y & a) {cout << 5 << endl;}~Y (){cout << 6 << endl;}};29void F(X & x, int n) {try { if (n < 0) throw x;if (n > 10) throw 1;cout << 7 << endl;}catch (int) { cout << 8 << endl; }catch (X&) { cout << 9 << endl;throw; }}int main() { try { Y a; }catch (...) { cout << 10 << endl;cout << 11 << endl;}5.2.}Что будет выдано в стандартный канал вывода при работе следующей программы?class A {public:A () { cout << 1 << endl;}};class B: public A {public:B (int n) {try { if (n == 0) throw *this;if (n > 11) throw 11;}catch (int) { cout << 2 << endl; }catch (B&) { cout << 3 << endl;throw; }cout << 4 << endl;}B (B&){cout << 5 << endl;}~B (){cout << 6 << endl;}};int main() {try {B b(0);B c (3);}catch (...) { cout << 7 << endl;cout << 8 << endl;}5.3.}Что будет выдано в стандартный канал вывода при работе следующей программы?class X;void F(X & x, int n);class X {public:X() {try{F(*this, -2);cout << 1 << endl;}catch (X){ cout << 2 << endl; }catch (int){ cout << 3 << endl; }}X (X &) { cout << 12 << endl; }};30class Y: public X {public:Y () {cout << 4 << endl;}Y (Y & a) {cout << 5 << endl;}~Y () {cout << 6 << endl;}};void F(X & x, int n) {try { if (n < 0) throw x;if (n > 10) throw 1;cout << 7 << endl;}catch (int) { cout << 8 << endl; }catch (X&){ cout << 9 << endl;throw; }}int main() { try { Y a; }catch (...) { cout << 10 << endl;cout << 11 << endl;}5.4.}Что будет выдано в стандартный канал вывода при работе следующей программы?struct X;void f(X & x, int n);int const P = 1; int const Q = 1; int conststruct X {X() {try { f(*this, -1); cout << 1catch (X){cout << 2catch (int) {cout << 3}X (X &) {cout << 4 << endl; }~X (){cout << 5 << endl; }};struct Y: X {Y () {f(*this,coutY (Y &) {cout~Y (){cout};R = 1;<< endl; }<< endl; }<< endl; }-1);<< 6 << endl; }<< 7 << endl; }<< 8 << endl; }void f(X & x, int n) {try { if (n < 0) throw x;if (n > 0) throw 1;cout << 9 << endl;}catch (int){cout << 10 << endl; }catch (X& a) {cout << 11 << endl;f(a, 1);cout << 12 << endl;throw;}}31int main() {try { Y a; }catch (...) {cout << 13 << endl;return 0;}cout << 14 << endl;return 0;}5.5.Что будет выдано в стандартный канал вывода при работе следующей программы?struct X;void f(X & x, int n);int const P = 1; int const Q = 1; int const R = 1;struct X {X(){try {f(*this, 0);cout << 1 << endl;}catch (X) { cout << 2 << endl; }catch (int) {cout << 3 << endl; }}X (X &) {cout << 4 << endl; }~X (){cout << 5 << endl; }};struct Y: X {Y () {f(*this, -1);cout << 6 << endl;}Y (Y &) {cout << 7 << endl; }~Y (){cout << 8 << endl; }};void f(X & x, int n) {try {if (n < 0) throw x;if (n > 0) throw 1;cout << 9 << endl;}catch (int){cout << 10 << endl; }catch (X& a) {cout << 11 << endl;f(a, 1);cout << 12 << endl;throw;}}int main() {try { Y a;}catch (...) {cout << 13 << endl;return 0;}cout << 14 << endl;return 0;}325.6.Что будет выдано в стандартный канал вывода при работе следующей программы?struct X;void f(X & x, int n);int const P = 1; int const Q = 1; int const R = 1;struct X {X(){try {f(*this, -1);cout << 1 << endl;}catch (X) { cout << 2 << endl; }catch (int) {cout << 3 << endl; }}X (X &) {cout << 4 << endl; }~X (){cout << 5 << endl; }};struct Y: X {Y () {f(*this,cout <<}Y (Y &) {cout~Y (){cout};1);6 << endl;<<<<7 << endl; }8 << endl; }void f(X & x, int n) {try {if (n < 0) throw x;if (n > 0) throw 1;cout << 9 << endl;}catch (int){ cout << 10 << endl; }catch (X& a) {cout << 11 << endl;f(a, 0);cout << 12 << endl;throw;}}int main() {try { Y a; }catch (...) {cout << 13 << endl;return 0;}cout << 14 << endl;return 0;}5.7.Что напечатает следующая программа?class Ex {int code;public:Ex(int i) : code(i) {}33Ex(const Ex& ex) : code(ex.code) {}int Get() const { return code; }};struct Ex90 : Ex {Ex90() : Ex(90) {}};void f() {throw Ex90();cout << "dog" << endl;}void t() {try { f(); }catch(Ex90 &x) {cout<< "cat” << endl;throw Ex(x.Get() + 1);cout << "sheep" << endl;}catch(Ex &) { cout << "horse" << endl; }cout <<"cow" << endl;}int main() {try { t(); }catch(Ex &x) { cout << "elephant " << x.Get() << endl; }catch(...) { cout << "wolf" << endl; }return 0;}5.8.Что напечатает следующая программа?class Ex {int code;public:Ex(int i) : code(i) {}Ex(const Ex& ex) : code(ex.code) {}int Get() const { return code; }};struct Ex60 : Ex {Ex60() : Ex(60) {}};void f() {throw Ex60();cout << "sword" << endl;}void t() {try { f(); }catch(Ex60 &x) {cout << "lance" << endl;throw Ex(x.Get() + 1);cout << "dagger" << endl;}catch(Ex &) { cout << "knife" << endl; }cout << "hammer" << endl;}34int main() {try { t(); }catch(Ex &x) { cout << "arche " << x.Get() << endl; }catch(...) { cout << "pistole" << endl; }return 0;}5.9.Что напечатает следующая программа?class Ex {int code;public:Ex(int i) : code(i) {}Ex(const Ex& ex) : code(ex.code) {}int Get() const { return code; }};struct Ex51 : Ex {Ex51() : Ex(51) {}};void f() {throw Ex51();cout << "train" << endl;}void t() {try { f(); }catch(Ex51 &x) {cout << "plane" << endl;throw Ex(x.Get() + 1);cout << "helicopter" << endl;}catch(Ex &) { cout << "car" << endl; }cout << "truck" << endl;}int main() {try { t(); }catch(Ex &x) {cout << "boat " << x.Get() << endl;}catch(...) { cout << "rocket" << endl; }return 0;}5.10.