Вопросы для собеседования.

Разговоры на любые темы
Аватара пользователя
arxont
Сообщения: 3948
Зарегистрирован: Пт авг 31, 2012 11:29 pm

Re: Вопросы для собеседования.

Сообщение arxont »

Написать консольное приложения для анкетирования

При загрузке приложения выводится стартовое сообщение: “Выберите действие:”, нужно ввести команду для продолжения дальнейшей работы.


Список доступных команд:

cmd: -new_profile - Заполнить новую анкету
cmd: -statistics - Показать статистику всех заполненных анкет
cmd: -save - Сохранить заполненную анкету
cmd: -goto_question <Номер вопроса> - Вернуться к указанному вопросу (Команда доступна только при заполнении анкеты, вводится вместо ответа на любой вопрос)
cmd: -goto_prev_question - Вернуться к предыдущему вопросу (Команда доступна только при заполнении анкеты, вводится вместо ответа на любой вопрос)
cmd: -restart_profile - Заполнить анкету заново (Команда доступна только при заполнении анкеты, вводится вместо ответа на любой вопрос)
cmd: -find <Имя файла анкеты> - Найти анкету и показать данные анкеты в консоль
cmd: -delete <Имя файла анкеты> - Удалить указанную анкету
cmd: -list - Показать список названий файлов всех сохранённых анкет
cmd: -list_today - Показать список названий файлов всех сохранённых анкет, созданных сегодня
cmd: -zip <Имя файла анкеты> <Путь для сохранения архива> - Запаковать указанную анкету в архив и сохранить архив по указанному пути
cmd: -help - Показать список доступных команд с описанием
cmd: -exit - Выйти из приложения


Заполнить новую анкету

В анкете 5 вопросов:
ФИО
Дата рождения (Формат ДД.ММ.ГГГГ)
Любимый язык программирования (Можно ввести только указанные варианты, иначе ошибка: PHP, JavaScript, C, C++, Java, C#, Python, Ruby)
Опыт программирования на указанном языке (Полных лет)
Мобильный телефон

Вопросы должны идти по очереди, после того как пользователь ввёл ответ, выводить следующий вопрос или ошибку.

Все вопросы обязательны для заполнения.

После заполнения всех вопросов, выводится сообщение: “Выберите действие:”, нужно ввести команду для продолжения дальнейшей работы.


Сохранить заполненную анкету

Анкета должна сохраняться в текстовом файле (txt) с именем, которое пользователь указал в ФИО, в каталоге с названием "Анкеты", который должен находится в каталоге приложения.


Структура текстового файла анкеты:
1. ФИО: <ФИО>
2. Дата рождения: <Дата рождения>
3. Любимый язык программирования: <Любимый язык программирования>
4. Опыт программирования на указанном языке: <Опыт программирования на указанном языке>
5. Мобильный телефон: <Мобильный телефон>

Анкета заполнена: <Дата заполнения анкеты>
Показать статистику всех заполненных анкет

Нужно вывести в консоль следующие данные:
Средний возраст всех опрошенных: <Посчитать средний возраст всех тех, кто заполнял анкеты, целое число> (год, года, лет в зависимости от полученного числа, т.е если средний возраст получился 22, то вывести 22 года, если 25, то 25 лет итд)
Самый популярный язык программирования: <Название языка программирования, который большинство пользователей указали как любимый>
Самый опытный программист: <ФИО человека, у которого указан самый большой опыт работы>

Тестовое задание выполнить на языке C#, отправить исходный код и скомпилированное приложение.
Киберпанк не умер. Он просто наступил.

Аватара пользователя
arxont
Сообщения: 3948
Зарегистрирован: Пт авг 31, 2012 11:29 pm

Re: Вопросы для собеседования.

Сообщение arxont »

В следующем коде изменить ОДИН знак так, чтобы напечаталось 20 звездочек:

Код: Выделить всё

void Main()
{
	int n = 20;

	for ( int i = 0; i < n; i-- )
	{
		Console.WriteLine(" *");
	}
}
Киберпанк не умер. Он просто наступил.

Аватара пользователя
arxont
Сообщения: 3948
Зарегистрирован: Пт авг 31, 2012 11:29 pm

Re: Вопросы для собеседования.

Сообщение arxont »

Разработать ASP.Net MVC/WPF/Win Forms приложение с одной страницей, которая имеет textbox для сообщения и кнопку.
  • По нажатию на кнопку происходит отправка и запоминание сообщения на сервере (хранение сообщений должно работать автономно, без использования сервера баз данных).
  • Реализовать возможность просмотра сообщений текущего пользователя и всех пользователей системы.
  • Страницу вывода всех сообщений пользователей сделать с сортировкой сообщений пользователей по ID или по времени.
  • На сервере запоминается 10 последних сообщений (по умолчанию) для каждого юзера и 20 последних сообщений (по умолчанию) для всех юзеров. Каждому пользователю должен быть присвоен ID – либо автоматически либо вручную.
Киберпанк не умер. Он просто наступил.

Аватара пользователя
arxont
Сообщения: 3948
Зарегистрирован: Пт авг 31, 2012 11:29 pm

Re: Вопросы для собеседования.

Сообщение arxont »

Забавное было интервью. За два дня до скинули письмо, где написали -
Вопросы на техническом собеседовании будут по следующим вещам. Пробегитесь пожалуйста.
  • Статический конструктор
  • Ref и out
  • Boxing/unboxing
  • Gethashcode
  • List и linkedlist
  • Partial
  • Structlayout и fieldoffset для структур
  • Switch case
  • Yield
  • Анонимные типы
  • Делегаты
  • Замыкания в цикле for
  • Замыкания в цикле foreach
  • Значимые и ссылочные типы данных
  • Именованные и необязательные аргументы
  • Инициализация примитивных типов
  • Интернирование строк
  • Исключения
  • Ковариация и контравариация (.net 4.0+)
  • Коллекции для поиска
  • Конструктор значимых типов
  • Конструкция using
  • Копирование массива
  • Примитивы синхронизации
  • Метод equals
  • Методы расширения
  • Модификаторы доступа
  • Наследование
  • Настраиваемые атрибуты
  • Обобщения
  • Ограничения в обобщениях
  • Перегрузка операторов
  • Перечисления
  • Приведение типов
  • Реализация интерфейса
  • Свойства и индексаторы
  • События
  • События и утечки памяти
  • Статические члены в обобщениях
  • Строки
  • Условная компиляция
  • Финализация
  • Флаги и типы данных
  • Цикл foreach
  • Циклы
Киберпанк не умер. Он просто наступил.

Аватара пользователя
arxont
Сообщения: 3948
Зарегистрирован: Пт авг 31, 2012 11:29 pm

Re: Вопросы для собеседования.

Сообщение arxont »

есть у тебя коллекция - модель надо вывести ее разбив на группы в ItemsControl в заголовке групп вывести поле по которому сгруппированно и количество элементов в группе

напиши как будешь делать группировку и как выводить количество элементов группы
Киберпанк не умер. Он просто наступил.

Аватара пользователя
lis
Сообщения: 427
Зарегистрирован: Пт авг 31, 2012 10:46 pm

Re: Вопросы для собеседования.

Сообщение lis »

arxont писал(а):В следующем коде изменить ОДИН знак так, чтобы напечаталось 20 звездочек:

Код: Выделить всё

void Main()
{
	int n = 20;

	for ( int i = 0; i < n; i-- )
	{
		Console.WriteLine(" *");
	}
}
Убрать пробел тут?

Код: Выделить всё

Console.WriteLine("*");

Аватара пользователя
arxont
Сообщения: 3948
Зарегистрирован: Пт авг 31, 2012 11:29 pm

Re: Вопросы для собеседования.

Сообщение arxont »

lis писал(а):Убрать пробел тут?

Код: Выделить всё

Console.WriteLine("*");
Неа :) Там на самом деле 3 способа решения
Киберпанк не умер. Он просто наступил.

hjv
Сообщения: 317
Зарегистрирован: Ср мар 04, 2015 10:41 pm

Re: Вопросы для собеседования.

Сообщение hjv »

Кстати, а сколько раз выполнится цикл for (int i = 0; i < n; i--) ? :?
R2D2 это не робот, а цепь из схем журнала "Радио" :mrgreen:

Аватара пользователя
arxont
Сообщения: 3948
Зарегистрирован: Пт авг 31, 2012 11:29 pm

Re: Вопросы для собеседования.

Сообщение arxont »

hjv писал(а):Кстати, а сколько раз выполнится цикл for (int i = 0; i < n; i--) ? :?
А кто сказал, что сейчас программа работает корректно? Там и есть условие - поменять один символ )
Киберпанк не умер. Он просто наступил.

hjv
Сообщения: 317
Зарегистрирован: Ср мар 04, 2015 10:41 pm

Re: Вопросы для собеседования.

Сообщение hjv »

Т.е. как минимум одна ошибка найдена :D
R2D2 это не робот, а цепь из схем журнала "Радио" :mrgreen:

Ответить