Язык программирования

3 082 задачивместе с подтемами
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: ✓ успешные, ✗ неуспешные.

Как в C++ осуществляется доступ к памяти для хранения и извлечения значений?

  1. Прямой доступ к памяти через адреса, такие как "получите значение, хранящееся в почтовом ящике номер 7532".
     
  2. Прямой доступ к памяти через идентификаторы, такие как "получите значение, хранящееся в переменной x".
     
  3. Косвенный доступ к памяти через объекты, позволяя компилятору определить, где и как получить значение.
     
  4. Косвенный доступ к памяти через адреса, такие как "получите значение, хранящееся в ящике номер 7532".

Как программы на самом деле создают результаты?

  1. Они создают результаты, манипулируя данными (считывая, изменяя и записывая их).
     
  2. Они создают результаты, выполняя только вычислительные операции.
     
  3. Они создают результаты, обрабатывая только данные, введенные пользователем.
     
  4. Они создают результаты, обрабатывая данные исключительно из файлов.

Какое из следующих утверждений о многострочных комментариях в C++ является верным?

  1. Многострочные комментарии могут быть вложенными, то есть комментарий внутри комментария допустим.
     
  2. Многострочные комментарии не могут содержать однострочные комментарии внутри себя.
     
  3. Многострочные комментарии игнорируются компилятором, но увеличивают размер исполняемого файла.
     
  4. Многострочные комментарии могут начинаться с /* и заканчиваться */, и любые символы между этими маркерами игнорируются компилятором.

Что происходит с текстом, который идет после // в строке кода C++?

  1. Текст выполняется как обычный код.
     
  2. Текст игнорируется компилятором.
     
  3. Текст используется для документирования функций.
     
  4. Текст генерирует ошибку при компиляции.

Что представляет собой синтаксис в контексте программирования на C++?

  1.  Способ организации данных в программе, определяющий их структуру и тип.
     
  2.  Правила, регулирующие построение предложений в английском языке.
     
  3.  Набор инструкций, позволяющих компилятору определить основные функции программы.
     
  4.  Правила о том, как должны быть построены программы, чтобы считаться корректными в языке C++.

Какую роль выполняет строка 1?

  1. Объявляет основную функцию программы.
     
  2. Указывает компилятору, что программа завершилась успешно.
     
  3. Включает библиотеку, необходимую для использования std::cout.
     
  4. Делает программу более читабельной, разделяя части кода.
Что представляет собой функция в программировании на C++?
  1.  Графический элемент, используемый для создания пользовательского интерфейса.
     
  2.  Набор инструкций, выполняющихся последовательно для выполнения определенной работы.
     
  3.  Переменная, хранящая числовое значение.
     
  4.  Оператор, заставляющий программу выполнять определенные действия.
Что представляют собой инструкции в программировании на C++?

1) Блоки кода, объединенные вместе для выполнения определенной задачи.

2) Наименьшие независимые единицы вычислений, заставляющие программу выполнять определенные действия.

3) Переменные и константы, используемые для хранения данных.

4) Графические элементы, используемые для создания пользовательского интерфейса.

У Вовы есть любимый магнит. Вове очень нравится играть с ним на большой поляне, которую можно представить в виде прямоугольника \(n\) на \(m\) клеток.

Однажды он пришел играть на поляну с магнитом и потерял его в одной из клеток. Вова очень расстроился, но нашел решение — в каждую клетку поляны он положил компас, стрелка которого может принимать 8 положений: вверх, вверх-вправо, вправо, вниз-вправо, вниз, вниз-влево, влево и вверх-влево. Каждому положению стрелки соответствует его номер:

Стрелки принимают направление, близкое к направлению на магнит: если магнит лежит строго по диагонали от компаса, то его стрелка примет диагональное положение, иначе — более близкое к направлению на магнит из вертикального и горизонтального. Стрелка компаса в клетке с магнитом может быть направлена куда угодно.


Рисунок для примера из входных данных, стрелки всех компасов направлены на магнит.

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


Рисунок для примера из входных данных с учетом аномалии.

Теперь Вова не знает, как ему найти свой магнит, и просит помощи у вас.

Формат входных данных
В первой строке входных данных записаны два целых числа через пробел \(n\) и \(m\) — размеры поляны (\(2 \le n, m \le 1500, nm \ge 6\)).

В следующих \(n\) строках описываются компасы на поляне.

В \(i\)-й строке записаны \(m\) целых чисел \(a_{i,j}\) (\(1 \le a_{i,j} \le 8\)), \(j\)-е число в \(i\)-й строке обозначает направление стрелки компаса в \(j\)-й клетке \(i\)-й строки.

Формат выходных данных

В первой строке выведите два числа \(x\) и \(y\) через пробел — номер строки и столбца клетки, в которой лежит магнит.

Во второй выведите два числа \(a\) и \(b\) через пробел  — номера горизонтали и вертикали, в которых действует аномалия.


Замечание

В данном тесте магнит лежит в клетке \((2, 1)\), инвертируется горизонталь номер \(3\) и вертикаль номер \(3\).

Что такое Интегрированная среда разработки (IDE)?

1) Программа для создания графических интерфейсов.

2) Система управления базами данных.

3) Средство упрощения разработки и отладки программ.

4) Инструмент для автоматического тестирования кода.

Какая основная задача компоновщика при создании исполняемого файла?

1) Проверка орфографии и грамматики в объектных файлах.

2) Объединение объектных файлов и разрешение межфайловых зависимостей.

3) Автоматическое создание объектных файлов из исходного кода.

4) Оптимизация размера исполняемого файла для экономии памяти.
Каким образом компилятор C++ обрабатывает файлы исходного кода при компиляции программы?

1) Последовательно просматривает каждый файл .cpp, проверяя их соответствие правилам C++ и переводя код в инструкции машинного языка.

2) Переносит код на другие уровни компиляции для оптимизации производительности программы.

3) Использует файлы .obj для хранения только ошибок компиляции и их номера строк.

4) Импортирует код из файлов .obj в код других программ для многократного использования.
На что следует обращать внимание в процессе программирования на C и C++?

1) На уровень свободы, предоставляемый языком, который может привести к возможности создания бессмысленного кода.
2) На то, что C++ разработан для ограничения свободы программистов, чтобы избежать ошибок.
3) На то, что сложность языка автоматически ограничивает возможность создания низкокачественного кода.
4) На то, что в C++ нельзя писать высокопроизводительные приложения.

Какой из вышеприведенных вариантов ответа наиболее точно отображает важные аспекты программирования на языках C и C++?

Какие из следующих явлений наиболее справедливо характеризует язык C++?

1) C++ является подмножеством языка программирования C.
2) C++ не имеет никакого отношения к объектно-ориентированному программированию.
3) C++ был стандартизирован в 2003 году.
4) C++11 добавил значительное количество новых возможностей, делая его новой базовой версией языка..

Какое утверждение верно относительно языка С?

1) Язык С не используется для создания компиляторов и интерпретаторов для других языков программирования.

2) Система управления кораблем "Пегас" написана на язке С.

3) Ядро операционной системы Линукс написано на языке С.

4) Язык С не используется для разработки баз данных и систем управления базами данных.

Какое утверждение верно относительно языков высокого уровня?

1) Они напрямую выполняются на железе компьютера

2) Они ближе к языку машины и используют машинные коды

3) Они более абстрактны и удобны для программистов

4) Они используются исключительно для создания аппаратного обеспеченияения

Напишите программу, которая выводит на экран одно любое целое число из диапазона от -1000 до 1000.


-------------------------------
Важное замечание
В нашей системе все задачи проверяются автоматически. Для этого свою программу вам необходимо написать в IDE ниже и нажать на кнопку "Проверить". Ваша программа будет автоматически проверена и вы получите вердикт: правильная она или нет.

Обычно результат программы проверяется на некотором количестве тестов. Если вы увидели надписать "Выполнено 100% тестов", значит Ваша программа прошла все проверочные тесты и можно двигаться дальше. 
 

Даны две строки \(S\) и \(T\) из строчных букв английского алфавита.

Посмотрим на следующий процесс. Рассмотрим не более одного раза каждый символ, хотя бы где-то входящий в первую строку. После чего, для рассматриваемого символа \(x\) определим другой символ \(p(x) \neq x\) и заменим некоторые вхождения \(x\) в \(S\) на \(p(x)\). Определите, возможно ли в ходе такого процесса получить из строки \(S\) строку \(T\). При этом разные символы можно заменять на один и тот же символ или на символ, который заменяться не будет.

Например, пусть \(S =\) <<aabab>>, \(T =\) <<abbbc>>. Из \(S\) можно получить \(T\), если выбрать p(‘a’) = ‘b’, p(‘b’) = ‘c’ и заменить второе и третье вхождение ‘a’ на p(‘a’), второе вхождение ‘b’ на p(‘b’).

А если \(S =\) <<aabaс>>, \(T =\) <<bbbbb>>, то все вхождения ’a’ и ’c’ были заменены на ’b’.

Формат входных данных
В первой строке вам дано число \(n\) \((1 \leqslant n \leqslant 200\,000)\). Во второй строке задана \(S\). В третьей строке задана \(T\). Обе строки имеют длину \(n\) и состоят только из букв от ‘a’ до ‘z’.

Формат выходных данных
Если возможно осуществить описанный процесс так, чтобы из \(S\) получилась \(T\), выведите <<YES>>, на следующей строке выведите \(m\) – количество различных символов \(S\), которые хотя бы раз заменялись. Обозначим эти символы за \(c_1,\ c_2,\ \ldots \ c_m\). После чего выведите \(m\) строк. На \(i\)-й строке необходимо вывести символы \(c_i\) и \(p(c_i)\) через пробел. Если это сделать невозможно, выведите <<NO>>.

 

В знаменитом магазине <<Двоечка>> продукты продаются всего два дня в неделю — понедельник и вторник — причём в разные дни по разным ценам. Вы захотели купить \(n\) килограммов картофеля на неделю. По понедельникам один килограмм картофеля стоит \(a\) рублей, а по вторникам — \(b\) рублей. Чтобы упростить работу кассирам, в <<Двоечке>> можно покупать только целое число килограммов.

Вам крупно повезло, ведь в <<Двоечке>> проходит акция: каждый понедельник за каждые \(m\) килограммов купленного картофеля дарят ещё один!

Найдите минимальную сумму, за которую можно приобрести хотя бы \(n\) килограммов картофеля на неделю.

Формат входных данных
В первой строке вводится целое число \(a\) \((1 \leqslant a \leqslant 10^9)\) — цена одного килограмма картофеля в понедельник.

Во второй строке вводится целое число \(b\) \((1 \leqslant b \leqslant 10^9)\) — цена одного килограмма картофеля во вторник.

В третьей строке вводится целое число \(n\) \((\mathbf{1 \leqslant n \leqslant 10^6})\) — желаемое количество килограммов картофеля.

В четвертой строке вводится целое число \(m\) \((1 \leqslant m \leqslant 10^6)\) — количество килограммов картофеля, участвующее в акции.

Формат входных данных
Выведите одно целое число — минимальное число рублей, которое придется заплатить, чтобы купить хотя бы \(n\) килограммов картофеля.

Обратите внимание, что ответ может быть больше, чем возможное значение 32-битной целочисленной переменной, поэтому необходимо использовать 64-битные целочисленные типы данных (тип int64 в языке Pascal, тип long long в C и C++, тип long в Java и C#). Язык Python будет корректно работать и с типом int.


Примечание

В первом примере выгодно купить один килограмм в понедельник за 5 рублей, получить еще один килограм в подарок и купить килограмм во вторник за 4 рубля. Купить три килограмма дешевле не получится.

Во втором примере выгодно купить три килограмма в понедельник и получить один килограмм в подарок.

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

В четвертом примере выгодно купить шесть килограммов в понедельник, получить по акции три килограмма и купить еще один килограмм во вторник.

В знаменитом магазине <<Двоечка>> продукты продаются всего два дня в неделю — понедельник и вторник — причём в разные дни по разным ценам. Вы захотели купить \(n\) килограммов картофеля на неделю. По понедельникам один килограмм картофеля стоит \(a\) рублей, а по вторникам — \(b\) рублей. Чтобы упростить работу кассирам, в <<Двоечке>> можно покупать только целое число килограммов.

Вам крупно повезло, ведь в <<Двоечке>> проходит акция: каждый понедельник за каждые \(m\) килограммов купленного картофеля дарят ещё один!

Найдите минимальную сумму, за которую можно приобрести хотя бы \(n\) килограммов картофеля на неделю.

Формат входных данных
В первой строке вводится целое число \(a\) \((1 \leqslant a \leqslant 10^9)\) — цена одного килограмма картофеля в понедельник.

Во второй строке вводится целое число \(b\) \((1 \leqslant b \leqslant 10^9)\) — цена одного килограмма картофеля во вторник.

В третьей строке вводится целое число \(n\) \((1 \leqslant n \leqslant 10^9)\) — желаемое количество килограммов картофеля.

В четвертой строке вводится целое число \(m\) \((1 \leqslant m \leqslant 10^9)\) — количество килограммов картофеля, участвующее в акции.

Формат выходных данных
Выведите одно целое число — минимальное число рублей, которое придется заплатить, чтобы купить хотя бы \(n\) килограммов картофеля.

Обратите внимание, что ответ может быть больше, чем возможное значение 32-битной целочисленной переменной, поэтому необходимо использовать 64-битные целочисленные типы данных (тип int64 в языке Pascal, тип long long в C и C++, тип long в Java и C#). Язык Python будет корректно работать и с типом int.


Примечание

В первом примере выгодно купить один килограмм в понедельник за 5 рублей, получить еще один килограм в подарок и купить килограмм во вторник за 4 рубля. Купить три килограмма дешевле не получится.

Во втором примере выгодно купить три килограмма в понедельник и получить один килограмм в подарок.

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

В четвертом примере выгодно купить шесть килограммов в понедельник, получить по акции три килограмма и купить еще один килограмм во вторник.

Поделиться
Класснуть