если int n 3 какой будет результат

основы алгоритмизации и программирования тест. оап тест. Программа передаёт управление в случае, если значение переменной или выражения оператора switch не совпадает ни с одним константным выражением

Вариант 1.

int main(int argc, char** argv)

int main(int argc, char** argv)

int main(int argc, char** argv)

int main(int argc, char** argv)

int y = sizeof(x) / sizeof(int);

// форма записи оператора цикла do while:

do // начало цикла do while

while (/*условие выполнения цикла*/); // конец цикла do while

case constant1: statement1; [break;]

case constant2: statement2; [break;]

case constantN: statementN; [break;]

[default: statement N+l;]

int main(int argc, char** argv)

int foo(int x, int y)

double foo(double x, double y)

int main(int argc, char** argv)

содержит пояснения к тексту и не оказывает влияния на выполнение программы

2 сколько функций может быть в программе С++?

3 какой служебный знак ставится после оператора case?

4 какому зарезервированному слову программа передаёт управление в случае, если значение переменной или выражения оператора switch ни с одним константным выражением?

5 укажите правильное объявление массива.

7 какое значение, по умолчанию, возвращает программа операционной системе в случае успешного завершения (return)?

8 процесс компиляции программы.

переводит исходный текст в исполняемый файл

9 чем метод пузырька отчается от шейкера?

метод шейкера позволяет сортировать массив в двух направлениях (и слева на право и справа на лево)

10 чему будет равна переменная а, после выполнения этого кода int a; for(a=0; a « “ ” « « endl;

26 Какое из следующих значений эквивалентно зарезервированному слову true?

27 укажите правильный вариант записи условного оператора в языке с.

Источник

Возможно ли использовать механизм исключительных ситуаций в деструкторах

Выберите наиболее правильный вариант объявления оператора присваивания в классе A:

Выберите наиболее правильный вариант объявления оператора сложения и присваивания двух объектов класса A:

Выберите правильное объявление константы pi:

Выберите правильное утверждение:

Вызовет ли данный код ошибку компиляции?

Вызовет ли следующее объявление ошибку компиляции

Двумерный массив Ar представленный в виде матрицы имеет вид

Для переопределенного оператора верно:

Для получения адреса переменной используется операция

Для создания исполняемого файла в системе Unix необходимо

Для того чтобы вывести символ новой строки, надо:

Для того чтобы выполнить чтение из файла с произвольной позиции, надо использовать объект класса

Для чего нужны классы?

Для чего предназначен оператор namespace?

Для чего предназначен фрагмент текста из заголовочного файла:

Для чего предназначены манипуляторы потоков ввода-вывода?

Допустима ли следующая конструкция?

Если i = 5, какой будет результат

Если int n=45, какой будет результат?

Если в арифметическом выражении участвуют короткое целое и длинное целое, то:

Если в арифметическом выражении участвуют целый и вещественный операнды, то:

Если в классе A определены методы

Если в классе операция delete переопределена как

Если в классе операция new переопределена как

Если в классе определяется операция delete, то

Если в массиве A 132 элемента, каким будет правильное обращение к последнему элементу массива?

Если в программе объявлен макрос #define CIRC(x) (3.14159 * (x) * (x)), то как будет подставлен этот макрос в тексте программы при следующем вызове:

Если в программе уже имеется функция с прототипом int func(int k, double f), то какое из следующих объявлений не вызовет ошибки компиляции?

Если в производном классе переопределена операция new то:

Если в процессе компиляции программы возникла ошибка то:

Если есть два объявления int qwerty; int QWERTY; какое из утверждений верно

Если имеется абстрактный класс А и производный от этого класса класс А1 то какая из записей заведомо неверна?

Если имеется класс с двумя атрибутами

Если имеется код char a[8]; cin >> a; и вводится текст «Hello world», то что будет в массиве a?

Если имеется код double x; cin >> x; и вводится «12-3», то что будет в переменной x?

Если имеется код int x; cin >> x; и вводится «1.2», то что будет в переменной x?

Если имеется объявление char ch1=’a’,ch2=’b’,ch3=’c’; допустима ли запись ch1=ch2+ch3;

Если имеется объявление float f=4;double d=4; что будет выведено на экран в результате выполнения кода

Если имеется объявление int a[15], какой фрагмент кода выводит все элементы массива?

Если определена операция вычитания для двух объектов класса A, а операция преобразования к int не определена, что будет вызвано при

Если определена операция умножения для двух объектов класса A и операция преобразования к int, что будет вызвано при

Если ошибки в алгоритме программы, на каком этапе они обнаружатся?

Если после выражения стоит точка с запятой, то

Если функция вычисления суммы целых чисел от 1 до n имеет прототип int sum(int n), запишите определение функции, используя рекурсию:

Если функция вычисления суммы целых чисел от 1 до n имеет прототип int sum(int n), то как будет выглядеть запись определения функции с использованием рекурсии?

Если функция вычисления суммы целых чисел, находящихся между двумя заданными (начальным и конечным), имеет прототип int sum(int start, int end), запишите определение функции, используя рекурсию:

Если функция вычисления факториала n имеет прототип int fact(int n), запишите определение функции, используя рекурсию:

Если функция имеет тип void, то неверно, что

Есть ли преимущество выноса определения функции в отдельный файл

Запись ::func(x) означает, что

Известно, что в классе A определен один публичный конструктор A(int);. Выберите из предложенных выражений компилируемые:

Имеется объявление char ch1=’A’;. Что будет выведено на экран при выполнения кода cout говорит о том, что:

Программа на языке Си++ начинает выполняться с:

Произойдет ли ошибка компиляции если функцию

Произойдет ли ошибка при использовании следующей конструкции:

Произойдет ли ошибка при компиляции этого кода?

Прототип функции задает

Процесс компиляции программы

Результат работы программы:

С какой целью производится вынесение функций в отдельный заголовочный файл?

С помошью какой директивы происходит подключение других модулей программы?

С помощью какого метода можно изменить текущую позицию в файле?

С помощью механизма friend можно разрешить обращение к внутренним элементам класса:

Сколько блоков catch может быть после блока try?

Сколько вызовов системных функций всегда будет в программе, независимо от ее реализации?

Сколько производных классов можно получить из базового класса?

Сколько функций может быть в программе С++?

Совокупность формальных параметров определяет

Существует ли в С++ готовый набор шаблонов:

Существует файл «test.dat» в котором записано «Hello World».Каково будет содержимое файла после выполнения кода:

Текст программы можно набирать:

У какой переменой в данном коде самое длинное «время жизни»?

У какой переменой в данном коде самое короткое «время жизни»?

Укажите в каких выражениях используются ключевые слова?

Укажите в каких выражениях неправильно применяются операции к вещественным типам

Укажите в каких выражениях переменная или константа объявляется и ей присваивается значение:

Укажите в каких строках кода произойдет ошибка компиляции?

Укажите в каком выражении используется операция с наивысшим приоритетом?

Укажите в каком выражении правильно определена переменная в шестнадцатеричной системе счисления?

Укажите в каком выражении правильно определена целочисленная переменная?

Укажите в каком выражении правильно применяются операции к целочисленным типам

Укажите в каком выражении произойдет потеря точности

Укажите все ключевые слова в приведенном примере?

Укажите какие компиляторы языка Си++ могут быть использованы в системе Unix.

Укажите каким будет результат вычисления цикла?

Укажите какое из выражений будет правильным?

Укажите какой будет результат вычисления k?

Укажите какой результат будет у следующего примера?

Укажите какому классу принадлежит атрибут Z1

Укажите неправильный идентификатор:

Укажите основные используемые манипуляторы потоков.

Укажите правильное использование оператора friend

Укажите правильное объявление функции

Укажите правильное объявление шаблона функции, если в программе производится вызов double х = zero ();

Укажите правильное объявление?

Укажите правильные присваивания значений переменным и константам

Укажите правильный доступ к членам класса:

Укажите правильный идентификатор для имени переменной:

Укажите, где происходит объявление констант или переменных

Файл имеющий имя «test_file.cpp» это:

Функция вычисляет произведение двух чисел. Исходные данные вводятся с клавиатуры. Какие проверки целесообразно ввести в программе?

Функция объявлена как friend класса. Отметьте верное.

Чему будет равен результат вычисления выражения: float A = 2, B = 20, C; C = (B = A = 5) + 1;

Чему будет равен результат вычисления выражения: int d=5; bool b = true, c; c = (!b||(d>3));

Чему будет равен результат вычисления:

Чему будет равна переменная k в результате вычисления цикла?

Чему равен результат вычисления выражения

Чему равен результат вычисления выражения

Чему равен результат вычисления выражения

Чему равно значение выражения 54

Для продолжения скачивания необходимо пройти капчу:

Источник

Лекция 3. Операторы и выражения¶

Архитектура программы¶

Выражения и операторы¶

Понятие оператора¶

Существуют операторы преобразования данных и операторы управления работой программы.

Операции¶

Характеристики операций¶

Приоритет операций¶

Результат операций¶

В языке Си у операций могут быть следующие результаты:

Арифметические операции¶

ЗнакОперация
    *
Умножение
/Деление и целочисленное деление нацело
%Деление по модулю и остаток от деления
    +
Сложение
Вычитание

Знак / всегда означает деление. Однако если с обеих сторон от этого знака стоят целые величины (константы, переменные или их комбинации), он означает целочисленное деление. Если в результате такого деления получается остаток, С++ его отбрасывает.

Знак % означает выделение остатка при целочисленном делении. Эта операция требует, чтобы с обеих сторон от ее знака стояли целые величины

Присваивание¶

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

Существуют два класса выражений:

l-value (левостороннее выражение. Может стоять слева от присваивания)

r-value (правостороннее выражение. Может стоять справа от присваивания)

Составное присваивание¶

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

Преобразование типов¶

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

Сравнение¶

Операции сравнения являются бинарными и используются для сравнения двух значений

Значения операций¶

Пример выраженияРезультат
-4+62
c=3+811
5>31
6+(c=3+8)17
6+c=3+8Ошибка!

Инкремент и декремент¶

будет эквивалентен следующему

будет эквивалентен следующему

Операции инкремента/декремента¶

Что можно сказать о следующей программе?

Ошибка компиляции: l-value required as left operand of assignment

Неопределенное поведение¶

Определение (см. Википедию)

Неопределённое поведение (англ. undefined behaviour) — свойство некоторых языков программирования (наиболее заметно в Си), программных библиотек и аппаратного обеспечения в определённых маргинальных ситуациях выдавать результат, зависящий от реализации компилятора (библиотеки, микросхемы) и случайных параметров

При его выполнении переменная i может принять значения 13 или 14 для C/C++, 13 для Java, PHP и C#, 12 при реализации на LISP.

Неопределенность в языке C/C++ связана с тем, что согласно стандартам С и С++ побочные эффекты (то есть инкремент в данном случае) могут быть применены в любой удобный для компилятора момент между двумя точками следования (см. раздел Дополнительная информация).

Операторы¶

Основные алгоритмические конструкции¶

Основная теорема структурного программирования

Программа для решения любой задачи может быть составлена из комбинации следования, ветвления и цикла (Бойм-Якопини, 1966).

Классификация операторов¶

Оператор if¶

Оператор if

Примеры if¶

Несколько версий одной и той же программы

Удачные/неудачные конструкции¶

Удачные и неудачные конструкции¶

Среди всех приведенных конструкций наиболее удачной следует признать последнюю, так как она лишена нагромождений и воспринимается однозначно.

Если необходимо сравнить значение переменной с набором констант, то лучше отказаться от if в пользу switch

Сложные выражения¶

С позволяет конструировать очень сложные выражения. Эта сложность должна быть оправдана.

Оператор switch¶

Оператор switch

Вопрос: Чему будут равны значения переменных, если строка: babah!?

Оператор while¶

Операторы цикла¶

Оператор while

Ошибки при организации while¶

В чем состоит ошибка?

Оператор do while¶

Оператор do while

Это цикл с постусловием. Тело цикла выполняется как минимум 1 раз

Оператор for¶

Оператор for

Оператор for¶

Операторы управления¶

Оператор goto усложняет отладку программы и сильно портит стиль разработчика (‘’спагетти-код’‘)!

Спагетти-код¶

Пример спагетти кода на языке BASIC:

Тоже самое, но без goto:

Оператор break¶

Оператор continue¶

Дополнительная информация¶

Точка следования (англ. Sequence point) — в программировании любая точка программы, в которой гарантируется, что все побочные эффекты предыдущих вычислений уже проявились, а побочные эффекты последующих еще отсутствуют.

В C и C++ определены следующие точки следования:

Источник

Занятие 7. Циклы в Java

Цикл — это многократно повторяющийся фрагмент программы.

В java существует два типа циклов: типа «пока» и типа «n-раз».

Первый тип «пока» предназначен для повторения какого-то действия до тех пор, пока выполняется некоторое условие. Пример: увеличивать число на 5 до тех пор, пока оно не станет трёхзначным.

Второй тип «n-раз» предназначен для повторения каких-то действий заранее известное количество раз. Пример: умножить число само на себя 4 раза.

Цикл типа «пока» (операторы while и do…while)

Оператор while повторяет указанные действия до тех пор, пока его параметр имеет истинное значение.

Например, такой цикл выполнится 4 раза, а на экран будет выведено «1 2 3 4 »:

Такой цикл не выполнится ни разу и на экран ничего не выведется:

Такой цикл будет выполняться бесконечно, а на экран выведется «1 2 3 4 5 6 7 …»:

Условие, определяющее будет ли цикл повторятся снова, проверяется перед каждым шагом цикла, в том числе перед самым первым. Говорят, что происходит предпроверка условия.

Бывает цикл типа «пока» с постпроверкой условия. Для его записи используется конструкция из операторов do…while.

Такой цикл выполнится 4 раза, а на экран будет выведено «2 3 4 5 »:

Такой цикл выполнится 1 раз, а на экран будет выведено «2 »:

Тело цикла do…while выполняется по крайней мере один раз. Этот оператор удобно использовать, когда некоторое действие в программе нужно выполнить по крайней мере единожды, но при некоторых условиях придётся повторять его многократно.

Ознакомьтесь со следующей программой (она загадывает случайное целое число из отрезка [1;10] и просит пользователя его угадать, вводя варианты с клавиатуры, пока пользователь не угадает число, программа будет ему подсказывать, сообщая больше или меньше число загаданное, чем то, что ввёл пользователь):

Внесите в программу следующие доработки:

Программа должна считать количество попыток, которое потребовалось пользователю, чтобы угадать число. И в конце сообщать, сколько было попыток.

Программа должна загадывать число не из отрезка [1;10], а целое число из отрезка от [−10;10], исключая ноль. При этом, постарайтесь, чтобы распределение случайных чисел генерируемых программой было равномерных (т. е. в случае выпадения нуля его нельзя просто заменить на какое-то другое число, например, на 1, ведь тогда 1 будет выпадать с вдвое большей вероятностью, чем остальные числа).

Программа должна подсказывать пользователю, что он ошибся в знаке, если программа загадала положительное число, а пользователь ввёл отрицательное. И наоборот.

Цикл типа «n-раз» (оператор for)

Оператор for содержит три параметра. Первый называется инициализацией, второй — условием повторения, третий — итерацией.

В первом параметре обычно выбирают какую-то переменную, с помощью которой будет подсчитываться количество повторений цикла. Её называют счетчиком. Счётчику задают некоторое начальное значение (указывают, начиная с какого значения он будет изменяться).

Во втором параметре указывают некоторое ограничение на счётчик (указывают, до какого значения он будет изменяться).

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

Перед первым шагом цикла счётчику присваивается начальное значение (выполняется инициализация). Это происходит лишь однажды.

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

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

Представленная программа выводит на экран числа от 1 до 100:

Представленная программа выводит на экран числа от 10 до −10:

Представленная программа выводит на экран нечётные числа от 1 до 33:

Представленная программа вычислит сумму элемнтов фрагмента последовательности 2, 4, 6, 8,… 98, 100. Итак:

Представленная программа будет возводить число из переменной a в натуральную степень из переменной n:

Представленная программа выведет на экран 10 первых элементов последовательности 2n+2, где n=1, 2, 3…:

Представленная программа выведет на экран 10 первых элементов последовательности 2an−1+3, где a1=3:

В одном цикле можно задавать сразу несколько счётчиков. При этом несколько выражений в итерации и в инициализации разделяются запятыми. Условие повторения можно задавать только одно, но оно может быть выражением, содержащим сразу несколько счётчиков.

Представленная программа выведет на экран 10 первых элементов последовательности 2an−1–2, где a1=3:

Досрочное завершение цикла (оператор break)

Как цикл типа «пока» так и цикл типа «n-раз» можно завершить досрочно, если внутри тела цикла вызвать оператор break. При этом произойдёт моментальный выход из цикла, не будет закончен даже текущий шаг (т. е. если после break присутствовали какие-то ещё операторы, то они не выполнятся).

В результате работы следующего примера на экран будут выведены только числа «1 2 3 4 Конец»:

Когда программа будет выполнять цикл в пятый раз(войдёт в цикл с счётчиком равным 5), сразу же будет проверено и окажется истинным условие при котором выполнится оператор break. Оставшаяся часть тела цикла (вывод на экран) уже производится не будет: программа сразу перейдёт к выполнению операций указанных после цикла и далее.

C помощью оператор break можно прервать заведомо бесконечный цикл. Пример (на экран выведется «100 50 25 12 6 3 1 0 » и после этого цикл остановится):

Оператор break имеет смысл вызывать только при наступлении какого-то условия, иначе цикл будет завершен досрочно на первом же своём шаге.

В представленном выше примере вывода в цикле на экран не произойдёт ни разу, а когда переменная a выведется на экран после цикла, то окажется, что её значение ни разу не менялось, т. е. выведено будет «a=25» (и ничего больше).

Обратите внимание также на то, что переменная была объявлена до начала цикла. Когда переменная объявляется в параметрах цикла, то она оказывается недоступной за его приделами, а в данном случае требовалось иное — узнать какое значение будет у счётчика после завершенияцикла.

Задачи

Создайте программу, выводящую на экран все четырёхзначные числа последовательности 1000 1003 1006 1009 1012 1015 ….

Создайте программу, выводящую на экран первые 55 элементов последовательности 1 3 5 7 9 11 13 15 17 ….

Создайте программу, выводящую на экран все неотрицательные элементы последовательности 90 85 80 75 70 65 60 ….

Создайте программу, выводящую на экран первые 20 элементов последовательности 2 4 8 16 32 64 128 ….

Выведите на экран все члены последовательности 2an-1–1, где a1=2, которые меньше 10000.

Выведите на экран все двузначные члены последовательности 2an-1+200, где a1= –166.

Создайте программу, вычисляющую факториал натурального числа n, которое пользователь введёт с клавиатуры.

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

Проверьте, является ли введённое пользователем с клавиатуры натуральное число — простым. Постарайтесь не выполнять лишних действий (например, после того, как вы нашли хотя бы один нетривиальный делитель уже ясно, что число составное и проверку продолжать не нужно). Также учтите, что наименьший делитель натурального числа n, если он вообще имеется, обязательно располагается в отрезке [2; √n].

Создайте программу, выводящую на экран 12 первых элементов последовательности 2an-2–2, где a1=3 и a2=2.

Выведите на экран первые 11 членов последовательности Фибоначчи. Напоминаем, что первый и второй члены последовательности равны единицам, а каждый следующий — сумме двух предыдущих.

Для введённого пользователем с клавиатуры натурального числа посчитайте сумму всех его цифр (заранее не известно сколько цифр будет в числе).

В городе N проезд в трамвае осуществляется по бумажным отрывным билетам. Каждую неделю трамвайное депо заказывает в местной типографии рулон билетов с номерами от 000001 до 999999. «Счастливым» считается билетик у которого сумма первых трёх цифр номера равна сумме последних трёх цифр, как, например, в билетах с номерами 003102 или 567576. Трамвайное депо решило подарить сувенир обладателю каждого счастливого билета и теперь раздумывает, как много сувениров потребуется. С помощью программы подсчитайте сколько счастливых билетов в одном рулоне?

В городе N есть большой склад на котором существует 50000 различных полок. Для удобства работников руководство склада решило заказать для каждой полки табличку с номером от 00001 до 50000 в местной типографии, но когда таблички напечатали, оказалось что печатный станок из-за неисправности не печатал цифру 2, поэтому все таблички, в номерах которых содержалась одна или более двойка (например, 00002 или 20202) — надо перепечатывать. Напишите программу, которая подсчитает сколько всего таких ошибочных табличек оказалось в бракованной партии.

Электронные часы показывают время в формате от 00:00 до 23:59. Подсчитать сколько раз за сутки случается так, что слева от двоеточия показывается симметричная комбинация для той, что справа от двоеточия (например, 02:20, 11:11 или 15:51).

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *