Подготовка к ЕГЭ и олимпиадам по информатике 2019 / Тренировочные варианты ЕГЭ

Профильная информатика:
подготовка к ЕГЭ и олимпиадам

Вариант № EGE_INF_1800

Добавлен 29 августа 2017 в 0:12. Изменён 22 октября 2017 в 1:02.Скачать PDF
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27

Задание

Требовалось написать программу, которая по входному натуральному числу \(n\), не превосходящему \(10^4\), определяла и печатала сумму цифр этого числа. Приведённая ниже программа содержит ошибки.

  • Копировать
    var
      n, j, k : integer;
    begin
      read(n);
      j := 10;
      k := 0;
      while j < n do begin
        k := k + n div j mod 10;
        j := j * 10
      end;
      write(k)
    end.
    
  • Копировать
    #include <iostream>
    int main(){
      int n, j, k;
      std::cin >> n;
      j = 10;
      k = 0;
      while(j < n){
        k += n / j % 10;
        j *= 10;
      }
      std::cout << k;
      return 0;
    }
    
  • Копировать
    DIM N, J, K AS INTEGER
    INPUT N
    J = 10
    K = 0
    WHILE J < N
      K = K + N \ J MOD 10
      J = J * 10
    WEND
    PRINT K
    
  • Копировать
    n = int(input())
    j = 10
    k = 0
    while j < n :
      k += n // j % 10
      j *= 10
    print(k)
    

Последовательно выполните следующее.

1) Напишите, что выведет эта программа при вводе числа 123.

2) Укажите наименьшее значение входной переменной \(n\), при котором, не смотря на ошибки, программа выведет верный ответ.

3) Найдите в программе все ошибки (их может быть одна или несколько). Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.

Достаточно указать ошибки и способ их исправления для одного языка программирования. Обратите внимание: необходимо исправить приведённую программу, а не написать свою. Требуется заменить только ошибочные строки, но нельзя удалять строки или добавлять новые. За исправления, внесённые в строки, не содержащие ошибок, баллы будут снижаться.