Блог компании «Лаборатория Касперского»

Найди общий язык с инопланетным разумом. Тест по JavaScript, C++ и C# + конкурс

13 декабря 2058. В этот день вся земная история разделилась на два этапа: до и после Контакта. На орбите нашей планеты появился объект внеземного происхождения. Незваного гостя засекли около Марса, а еще раньше «странно движущуюся комету» заметили астрономы в разных странах. Пришельцы оказались механической формой жизни, которая, впрочем, не проявляла враждебности.

Через несколько дней, в течение которых всю планету лихорадило от вопроса, зачем прибыли пришельцы, они попытались выйти на связь, отправив на все компьютеры в мире загадочное сообщение. Оказалось, что пришельцы синтезировали для себя некое подобие языка, имеющего общие черты с тремя земными языками программирования: C++, C# и JavaScript.

Для разработки метода общения было решено создать рабочую группу из специалистов по этим языкам. Для отбора профессионалов были составлены специальные тесты по каждому языку программирования. Пройдите тест, и, возможно, вы сможете вписать себя в историю Земли.

Тест по JavaScript
Тест по С#
Тест по С++
Итоги розыгрыша подведены, победители выбраны с помощью рандомайзера. Мы объявим их на странице чуть попозже. Спасибо всем членам хабрасообщества, кто принял участие!

Правила розыгрыша

Комментарии 30

    +4
    «Найдите ошибки в описании теста по js»
      –1
      кто ответит правильно минимум на 9 вопросов из 10

      Видимо 9 — это максимально возможный балл здесь)

        0
        Правильный (на самом деле) ответ у ≈9% ответивших. Бывает.
          +2
          Там прекрасен уже первый вопрос:
          image

          Щто??
        +22
        8.4 Принимая участие в Конкурсе, Участник дает свое согласие на использование Организатором, в том числе в рекламных целях в любых средствах массовой информации, предоставленной им информации, включая его персональные и иные данные (фамилия, имя, город проживания), сведений о полученном Призе без получения предварительного согласия Участника и уведомления Организатором, а так же без выплаты какого-либо вознаграждения.


        Простите, нет. Это дно)
          +3
          Хм, почему в посте сначала экшн, а потом правила?

          Сим уведомляю, что на момент прохождения квеста правил не читал и согласия на обработку ПД не давал.
            0

            Спасибо, пожалуй присоединюсь:


            Сим уведомляю, что на момент прохождения квеста правил не читал и согласия на обработку ПД не давал.

          0
          И тест можно проходить не один раз (C#). При должной усидчивости даже далёкий от темы человек с ним успешно справится путём перебора вариантов.
            +10
            Тест по С++, первый же вопрос
            Итак, начнем. Если определена операция вычитания для двух объектов класса A, а операция преобразования к int не определена, что будет вызвано при
            A a1,a2,a3=5;
            a3 = a1 – a2;


            Только операция вычитания
            Преобразование к целому
            Произойдет ошибка
            Операция вычитания, а затем преобразование к целому

            А конструктор класса A с параметром типа int определен???
            В общем, после первого же вопроса проходить тест желание отпало:)
              0
              а я до второго дошел! ответив на первый неправильно, так как вообще-то там ошибка должна быть изза a3=5
              а во втором еще веселей
              нажал, что будет ошибка, но по причине синтаксиса, оказался прав (но по другой причине). видимо, какой-то джун писал и не проверял код.
              +1

              я конечно не претендую на звание про, но они ищут кодеров которые пишут нечитаемый говнокод или же все таки простую, понятную и сложную архитектуру?)

                +1
                Кстати да, от половины примеров по С++ стошнило, видимо обфусцированный код был восстановлен декомпилятором, ну или просто они индусы
                +6
                По плюсам в принципе все понятно, но вот по JS… Вопрос:
                Какой результат будет получен в следующих двух примерах:
                1. “2” + “10” = a
                2. “2” * “10” = b

                Я бы сказал что будет syntax error в обоих случаях, но такого варианта ответа там нет… Чтобы не было syntax error, надо бы выражения перевернуть.
                  –6
                  Подожди, сейчас перевернут и минус тебе влепят, чтоб не умничал тут и не тыкал дерзко в ошибки.
                    0
                    Вообще-то в теле поста явно указали, что тест для инопланетного разума :D
                      –2
                      Вообще-то в JavaScript значение из правой части записывается в в левую.
                        +1

                        Ммм. И как это отменяет то, что я написал?

                        0

                        Перевернули, но всё равно SyntaxError: illegal character, потому что кавычки не те.

                          0
                          '' + 1 // '1'
                          +4
                          Но ведь в исходниках страницы есть все ответы… Kaspersky_Lab небезопасненько как-то…
                            0
                            «Не виноватые они»(с) Это движок тестов такой, еще будет дорабатываться внутри Хабра.
                              +1
                              Кто сказал, что поделки Kaspersky_Lab это безопасно, это просто дорого и тормознуто
                              +2
                              Я просто тыкнул на первый ответ, собираясь выбрать второй, но это оказалось невозможным после первого тыка :(
                                0
                                Не могли бы вы пояснить, в чем смысл вопроса про check_authentication() в тесте по C++?
                                А именно, почему неверен ответ habracadabra? С ним check_authentication() возвращает 1, а не это ли требовалось?
                                  0
                                  В тесте JS:
                                  2 вопрос: выражение которое «вернет» false — и разные варианты с оператором сравнения. Дальше по тесту вопрос что «вернет» typeof и вариант с object неверный, видимо потому что теперь слово «вернет» обрело иной смысл.
                                    0
                                    8 типов? А спецификация или реализация не уточняется, и как это понимать?
                                    а что у нас функция теперь не объект?
                                    –3

                                    У вашего теста по С++ есть один фатальный недостаток.
                                    Полагаю, что и в других тестах — тоже тот же самый.
                                    Стыдно! (Глупо!)
                                    Подробности письмом, тем более, что тест я прошёл и свой адрес вам указал.
                                    Хотя как способ рекламы — сойдёт. Да и сроки розыгрыша призов, поди, давно все закончились, апеллировать не к чему.

                                      +1

                                      Нет ни Java, ни Brainfuck?
                                      Эти пришельцы безнадёжны, не стоит тратить на них время.

                                        0
                                        Сведущие, поясните ответ на 5-й вопрос по C#: почему метода 3, а не 2? Ведь в приведенном коде только Do(true) и Do(DateTimeKind.Local) вызываются со значимыми типами
                                          0
                                          Почему в 6 вопросе по с++ ответ «habracadabra» неправильный?

                                          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.