2011-gre-cs-practice-book.pdf/Q06 — различия между версиями

Материал из DISCOPAL
Перейти к: навигация, поиск
 
(не показано 6 промежуточных версий 2 участников)
Строка 1: Строка 1:
 
== Вопрос: Q06-08c765 ==
 
== Вопрос: Q06-08c765 ==
  
<i>Тут вставьте перевод вопроса.
+
Какое значение будет возвращено в результате вызова функции ''f ()'' ?
Используйте [https://wiki.4intra.net/Help:%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5 возможности разметки],
+
включая формулы и т.п, если будут графы — посмотрите как задать их текстом https://wiki.4intra.net/Graphviz .
+
Если код — теги «code-pascal», «code-c» или «code-python».
+
  
Старайтесь нетривиальные понятия, особенно незнакомые вам, найти ссылку на википедию и вставить (нейросети лажают!).
+
<code-c>
Это важно, чтобы найти корректный перевод (то, что в википедии, или на худой конец — точно массово гуглится).
+
int f ()
 
+
{
Потом конечно сотрите инструкции, которые тут курсивом.</i>
+
    int k, result;
 +
    result = 0;
 +
    for ( k = 0; k < 5; k++ )
 +
    {
 +
        if ( ( k % 3 ) == 1 )
 +
            result = result + k;
 +
        else
 +
            result = result + 1;
 +
    }
 +
    return result;
 +
}
 +
</code-c>
  
 
=== Ответы ===
 
=== Ответы ===
<i>Если ответы простые, однострочные, используйте простой способ задания ответов списком, типа так
 
(префикс «Правильный ответ:» — это дословно, для правильного ответа, неважно, какой он будет в списке)</i>
 
  
* Правильный ответ: тут реально правильный ответ
+
* 5
* неправильный ответ
+
* 6
* еще какой-то неправильный ответ
+
* 7
* еще какой-то неправильный ответ
+
* Правильный ответ: 8
* еще какой-то неправильный ответ
+
* 9
  
<i>Если ответы длинные, многострочные, или там графы, используйте
+
=== Объяснение ===
[https://wiki.4intra.net/MediawikiQuizzer/ru#.D0.9E.D1.82.D0.B2.D0.B5.D1.82.D1.8B способ задания ответов разделами],
+
{{cstest-source|2011-gre-cs-practice-book.pdf|17|6}}
Но такое очень редко встречается. </i>
+
  
 +
Результат выполнения функции f():
  
=== Объяснение ===
+
Начальное состояние:
<i>Сначала заполните номер страницы с этим вопросом
+
result = 0
{{cstest-source|2011-gre-cs-practice-book.pdf|тут-номер-страницы-с-вопросом-6|6}}
+
k = 0
 +
 
 +
  Шаг 1: k = 0 ⇒ k % 3 = 0 ⇒ 0 != 1 ⇒ result = 0 + 1 = 1
 +
  Шаг 2: k = 1 ⇒ k % 3 = 1 ⇒ 1 == 1 ⇒ result = 1 + 1 = 2
 +
  Шаг 3: k = 2 ⇒ k % 3 = 2 ⇒ 2 != 1 ⇒ result = 2 + 1 = 3
 +
  Шаг 4: k = 3 ⇒ k % 3 = 0 ⇒ 0 != 1 ⇒ result = 3 + 1 = 4
 +
  Шаг 5: k = 4 ⇒ k % 3 = 1 ⇒ 1 == 1 ⇒ result = 4 + 4 = 8
  
Если все сделаете правильно, по ссылке выше будет открываться правильная страница в правильном PDFе.
+
Функция завершается, возвращая значение result = 8
  
Ну и наконец, вики-разметкой напишите ваше понимание, почему правильный ответ — правильный, а [[2004-gre-cs-practice-book.pdf/Q16|неправильные варианты — неправильны]].
+
Самопроверка:
Тут тоже могут быть полезны [[2004-gre-cs-practice-book.pdf/Q03|ссылки на википедию]],
+
* цикл выполнился 5 раз (k от 0 до 4)
решение вами [[2004-gre-cs-practice-book.pdf/Q12|рекуррентных уравнений в sympy]].
+
* условие k % 3 == 1 выполнилось дважды: при k = 1 и k = 4
 +
* в остальных случаях добавлялась единица
  
</i>
+
{{question-ok|[[Участник:StasFomin|StasFomin]] 20:27, 18 декабря 2024 (UTC)}}
  
{{reserve-task|[[Участник:Markvernikov|Markvernikov]] 11:13, 18 декабря 2024 (UTC)}}
+
[[Категория:Циклы]]

Текущая версия на 20:27, 18 декабря 2024

Вопрос: Q06-08c765

Какое значение будет возвращено в результате вызова функции f () ?

int f ()
{
    int k, result;
    result = 0;
    for ( k = 0; k < 5; k++ )
    {
        if ( ( k % 3 ) == 1 )
            result = result + k;
        else
            result = result + 1;
    }
    return result;
}

Ответы

  • 5
  • 6
  • 7
  • Правильный ответ: 8
  • 9

Объяснение

Исходники — вопрос 6 на 17 странице книги «2011-gre-cs-practice-book.pdf»

Результат выполнения функции f():

Начальное состояние:

result = 0
k = 0
 Шаг 1: k = 0 ⇒ k % 3 = 0 ⇒ 0 != 1 ⇒ result = 0 + 1 = 1
 Шаг 2: k = 1 ⇒ k % 3 = 1 ⇒ 1 == 1 ⇒ result = 1 + 1 = 2
 Шаг 3: k = 2 ⇒ k % 3 = 2 ⇒ 2 != 1 ⇒ result = 2 + 1 = 3
 Шаг 4: k = 3 ⇒ k % 3 = 0 ⇒ 0 != 1 ⇒ result = 3 + 1 = 4
 Шаг 5: k = 4 ⇒ k % 3 = 1 ⇒ 1 == 1 ⇒ result = 4 + 4 = 8

Функция завершается, возвращая значение result = 8

Самопроверка:

  • цикл выполнился 5 раз (k от 0 до 4)
  • условие k % 3 == 1 выполнилось дважды: при k = 1 и k = 4
  • в остальных случаях добавлялась единица