2001-gre-vs-practice.pdf/Q13 — различия между версиями

Материал из DISCOPAL
Перейти к: навигация, поиск
(Вопрос: Q13-e5724f)
Строка 1: Строка 1:
 
{{reserve-task|[[Участник:Tiniakov.ad|Tiniakov.ad]] 13:49, 20 декабря 2024 (UTC)}}
 
{{reserve-task|[[Участник:Tiniakov.ad|Tiniakov.ad]] 13:49, 20 декабря 2024 (UTC)}}
 
 
  
 
== Вопрос: Q13-e5724f ==
 
== Вопрос: Q13-e5724f ==
Строка 26: Строка 24:
 
=== Ответы ===
 
=== Ответы ===
  
* Правильный ответ: тут реально правильный ответ
+
* 0-9;
* неправильный ответ
+
* Правильный ответ: 10-19;
* еще какой-то неправильный ответ
+
* 20-29;
* еще какой-то неправильный ответ
+
* 30-39;
* еще какой-то неправильный ответ
+
* >39.
  
 
=== Объяснение ===
 
=== Объяснение ===
 
{{cstest-source|2001-gre-vs-practice.pdf|19|13}}
 
{{cstest-source|2001-gre-vs-practice.pdf|19|13}}
  
 +
Данная программа в цикле while проверяет условие i / j > 0.001. Если условие выполнено, она увеличивает j вдвое и выводит на новое строке число.
 +
Изначально j == 1.0, i == 2.0. Значит в цикле имеем следующую цепочку проверок:
 +
* 2/1 > 0.001? true ->
 +
* 2/2 > 0.001? true ->
 +
* 2/4 > 0.001? true ->
 +
* 2/8 > 0.001? true ->
 +
...
 +
* 2/2^11 > 0.001? false.
  
 +
Итого условие цикла выполнилось 12 раз, следовательно верный ответ -- B
  
 
{{question-ok|}}
 
{{question-ok|}}
 +
 +
{{checkme|[[Участник:Tiniakov.ad|Tiniakov.ad]] 14:22, 20 декабря 2024 (UTC)}}
  
 
[[Категория:Надо не забыть выбрать тему]]
 
[[Категория:Надо не забыть выбрать тему]]

Версия 14:22, 20 декабря 2024

Задача зарезервирована: Tiniakov.ad 13:49, 20 декабря 2024 (UTC)

Вопрос: Q13-e5724f

Рассмотрим следующую программу на языке C

#include <stdio.h>
 
void main()
{
  float sum = 0.0, j = 1.0, i = 2.0;
  while (i / j > 0.001)
  {
    j = j + j;
    sum = sum + i / j;
    printf("%f\n", sum);
  }
}

Сколько строчек выведет программа?

Ответы

  • 0-9;
  • Правильный ответ: 10-19;
  • 20-29;
  • 30-39;
  • >39.

Объяснение

Исходники — вопрос 13 на 19 странице книги «2001-gre-vs-practice.pdf»

Данная программа в цикле while проверяет условие i / j > 0.001. Если условие выполнено, она увеличивает j вдвое и выводит на новое строке число. Изначально j == 1.0, i == 2.0. Значит в цикле имеем следующую цепочку проверок:

  • 2/1 > 0.001? true ->
  • 2/2 > 0.001? true ->
  • 2/4 > 0.001? true ->
  • 2/8 > 0.001? true ->

...

  • 2/2^11 > 0.001? false.

Итого условие цикла выполнилось 12 раз, следовательно верный ответ -- BCheck-me-animated.gif Решено: Tiniakov.ad 14:22, 20 декабря 2024 (UTC)