Тест по программированию

Mar 31, 2008 21:29

Описание позиции системного программиста:

Развитие существующих и разработка новых сервисов компании.
Профессиональные требования

* Хорошее знание С++, Python, архитектуры Unix (FreeBSD, Linux и т. д.), Интернет-технологий (HTTP, SMTP, HTML, XML/XSL, TCP/IP).
* Хорошее знание командной строки Unix: perl, sh, sed, awk, и т.д., уверенное владение subversion.

Желательно также

* Знание SQL (MySQL).
* Опыт работы в команде, умение быстро разбираться в чужом коде.
* Понимание принципов экстремального программирования.

вышлите мне свое резюме на ermachenko.n@rambler.ru

1. Каков, по вашему мнению, будет sizeof (var) в следующей программе:

1. class A {
2. public:
3. virtual int f1(int);
4. protected:
5. int i1;
6. };
7. class B {
8. public:
9. virtual int f2(int);
10. protected:
11. int i2;
12. };
13. class C : public A, public B {
14. public:
15. virtual int f1(int);
16. virtual int f2(int);
17. protected:
18. int i3;
29. };
20. C var;

  1. Сколько в объекте var указателей на таблицу виртуальных методов? Кстати, а что это такое? Опишите структуру этих (этой) таблиц и способ вызова виртуального метода для какого-нибудь компилятора. Насколько быстро происходит вызов виртуального метода? Можно ли как-нибудь его ускорить?
  2. Предположим, на компьютере работает программа, использующая 100 Мб блок памяти. В некоторый момент она запускает дочерний процесс вызовом fork() и вычисляет в нем сумму ячеек этой памяти. Сколько памяти будет использовать дочерний процесс? А сколько всего памяти будут использовать оба процесса?
  3. Опишите максимально быстрый способ выделения гиперссылок из текста формата html. Что такое детерминированный конечный автомат?
Previous post Next post
Up