×
  • 1. Системы счисления
  • 2. Логические функции
  • 3. Анализ информационных моделей
  • 4. Файловая система и базы данных
  • 5. Кодирование и декодирование. Условие Фано
  • 6. Выполнение и анализ простых алгоритмов
  • 7. Адресация в электронных таблицах
  • 8. Анализ программ с циклами
  • 9. Скорость передачи, объем памяти, время передачи
  • 10. Кодирование, комбинаторика
  • 11. Рекурсивные алгоритмы
  • 12. Адресация в сетях TCP/IP
  • 13. Вычисление количества информации
  • 14. Анализ и выполнение алгоритмов для исполнителя
  • 15. Поиск путей в графе
  • 16. Позиционные системы счисления
  • 17. Запросы в поисковых системах
  • 18. Логические выражения и множества
  • 19. Анализ программы по работе с массивом
  • 20. Анализ программ с циклами
  • 21. Анализ программ с циклами и подпрограммами
  • 22. Динамическое программирование
  • 23. Системы логических уравнений
  • 24. Исправление фрагмента программы и ошибок
  • 25. Программа на обработку массива
  • Спасибо за внимание
  • Подготовка к ЕГЭ по Информатике

    Задания на тему "Анализ программы по работе с массивом".


    1) В программе используется одномерный целочисленный массив A с индексами от 0 до 11. Значения элементов равны 20, 19, 17, 41, 23, 12, 24, 16, 4, 13, 6, 15 соответственно, т.е. A[0] = 20, A[1] = 19 и т.д.

    s = 0 
    n = 0 
    for i in range(12): 
       if A[i] <= A[n]:  
          s += i   
          t = A[i]    
          A[i] = A[n]  
          A[n] = t
    s := 0; 
    n := 0; 
    for i := 0 to 11 do 
       if A[i] <= A[n] then begin 
          s := s + i; 
          t := A[i]; 
          A[i] := A[n]; 
          A[n] := t
       end;
    s = 0;
    n = 0; 
    for (int i = 0; i < 12; i++)  
        if (A[i] <= A[n]) { 
           s += i;   
           t = A[i];    
           A[i] = A[n]; 
           A[n] = t;
        }

    Определите значение переменной s после выполнения следующего фрагмента этой программы (записанного ниже на пяти языках программирования).

    2) В программе используется одномерный целочисленный массив A с индексами от 0 до 9. Значения элементов равны 2, 4, 3, 6, 3, 7, 8, 2, 9, 1 соответственно, т.е. A[0] = 2, A[1] = 4 и т.д.

    Индексы массива 0 1 2 3 4 5 6 7 8 9
    Массив А 2 4 3 6 3 7 8 2 9 1
    c = 0
    for i in range(1, 10):
       if A[i-1] < A[i]:
         c = c + 1
         t = A[i]
         A[i] = A[i-1]
         A[i-1] = t
    c := 0; 
    for i := 1 to 9 do
       if A[i-1] < A[i] then begin
         c := c + 1;
         t := A[i];
         A[i] := A[i-1];
         A[i-1] := t;
       end;
    c = 0;
    for (int i = 1; i < 10; i++)
         if (A[i-1] < A[i]){
             c++;
             t = A[i];
             A[i] = A[i-1];
             A[i-1] = t;
         }

    Определите значение переменной c после выполнения следующего фрагмента этой программы, записанного ниже на трех языках программирования.

    3) В программе описан одномерный целочисленный массив с индексами от 0 до 10. Ниже представлен фрагмент программы, записанный на трех языках программирования.

    s = 15
    n = 10
    for i in range(n):
        s = s + A[i] - A[i+1]
    s := 15;
    n := 10;
    for i := 0 to n-1 do
      s := s + A[i] - A[i+1];
    s = 15;
    n = 10;
    for (i = 0; i < n; i++) {
    	s = s + A[i] - A[i + 1];
    }

    Известно, что в начале выполнения этого фрагмента в массиве находилась возрастающая последовательность натуральных чисел, то есть A[0] < A[1] < … < A[10]. Какое наибольшее значение может иметь переменная s после выполнения данной программы?

    4) В программе описан одномерный целочисленный массив с индексами от 0 до 10. Ниже представлен фрагмент программы, записанный на трех языках программирования.

    s = 0
    n = 10
    for i in range(0,n-2):
        s = s + A[i] - A[i+3]
    s := 0;
    n := 10;
    for i := 0 to n-3 do
      s := s + A[i] - A[i+3];
    s = 0;
    n = 10;
    for (i = 0; i < n-2; i++) {
    	s = s + A[i] - A[i + 3];
    }

    В начале выполнения этого фрагмента в массиве находились двухзначные натуральные числа. Какое наибольшее значение может иметь переменная s после выполнения данной программы?

    5) В программе описан одномерный целочисленный массив с индексами от 0 до 10. Ниже представлен фрагмент программы, записанный на трех языках программирования.

    s = 0
    n = 10
    for i in range(n):
        s = s+2*A[i]-A[i+1]
    s := 0;
    n := 10;
    for i := 0 to n-1 do
      s := s+2*A[i]-A[i+1];
    s = 0;
    n = 10;
    for (i = 0; i < n; i++) {
       s = s + 2*A[i]-A[i + 1];
    }

    В начале выполнения этого фрагмента в массиве находились двухзначные натуральные числа. Какое наименьшее значение может иметь переменная s после выполнения данной программы?

    6) В программе описан одномерный целочисленный массив с индексами от 0 до 10. Ниже представлен фрагмент программы, записанный на трех языках программирования.

    s = 27
    n = 10
    for i in range(n):
        s = s+A[i]-A[i+1]+2
    s := 27;
    n := 10;
    for i := 0 to n-1 do
      s := s+A[i]-A[i+1]+2;
    s = 27;
    n = 10;
    for (i = 0; i < n; i++) {
        s = s+A[i]-A[i + 1]+2;
    }

    Известно, что в начале выполнения этого фрагмента в массиве находилась убывающая последовательность натуральных чисел, то есть A[0] > A[1] >…> A[10]. Какое наименьшее значение может иметь переменная s после выполнения данной программы?

    7) В программе описан одномерный целочисленный массив с индексами от 0 до 10. Ниже представлен фрагмент программы, записанный на трех языках программирования.

    s = 0
    n = 10
    for i in range(0,n-2):
        s = s + A[i] - A[i+3]
    s := 0;
    n := 10;
    for i := 0 to n-3 do
      s := s + A[i] - A[i+3];
    s = 0;
    n = 10;
    for (i = 0; i < n-2; i++) {
    	s = s + A[i]-A[i + 3];
    }

    В начале выполнения этого фрагмента в массиве находились трёхзначные натуральные числа. Какое наибольшее значение может иметь переменная s после выполнения данной программы?

    8) В программе используется одномерный целочисленный массив A с индексами от 0 до 9. Значения элементов равны 6, 5, 9, 8, 4, 2, 7, 8, 0, 2 соответственно, т.е. A[0] = 6, A[1] = 5 и т.д. Определите значение переменной c после выполнения следующего фрагмента этой программы (записанного ниже на трех языках программирования).

    c = 0
    for i in range(1,10):
       if A[i] < A[0]:
          c = c + 1
          t = A[i]
          A[i] = A[0]
          A[0] = t
    c := 0;
    for i := 1 to 9 do
      if A[i] < A[0] then
      begin
        c := c + 1;
        t := A[i];
        A[i] := A[0];
        A[0] := t;
      end;
    c = 0;
    for (i = 1; i < 10; i++) {
    	if (A[i] < A[0]) {
    		c = c + 1;
    		t = A[i];
    		A[i] = a[0];
    		A[0] = t;
    	}
    }

    9) В программе используется одномерный целочисленный массив A с индексами от 0 до 9. Значения элементов равны 4, 7, 3, 8, 5, 0, 1, 2, 9, 6 соответственно, т.е. A[0] = 4, A[1] = 7 и т.д. Определите значение переменной c после выполнения следующего фрагмента этой программы (записанного ниже на трех языках программирования).

    c = 0
    for i in range(1,10):
       if A[i] < A[0]:
          c = c + 1
          t = A[i]
          A[i] = A[0]
          A[0] = t
    c := 0;
    for i := 1 to 9 do
      if A[i] < A[0] then
      begin
        c := c + 1;
        t := A[i];
        A[i] := A[0];
        A[0] := t;
      end;
    c = 0;
    for (i = 1; i < 10; i++) {
    	if (A[i] < a[0]) {
    		c = c + 1;
    		t = A[i];
    		A[i] = a[0];
    		A[0] = t;
    	}
    }

    10) В программе описан одномерный целочисленный массив с индексами от 0 до 10. Ниже представлен фрагмент программы, записанный на трех языках программирования.

    s = 0
    n = 10
    for i in range(0,n-2):
        s = s + A[i] - A[i+3]
    s := 0;
    n := 10;
    for i := 0 to n-3 do
      s := s + A[i] - A[i+3];
    s = 0;
    n = 10;
    for (i = 0; i < n-2; i++) {
    	s = s + A[i]-A[i + 3];
    }

    В начале выполнения этого фрагмента в массиве находились двухзначные четные натуральные числа. Какое наибольшее значение может иметь переменная s после выполнения данной программы?

    11) В программе используется одномерный целочисленный массив A с индексами от 0 до 9. Значения элементов равны 3, 5, 1, 7, 3, 6, 8, 5, 9, 4 соответственно, т.е. A[0] = 3, A[1] = 5 и т.д. Определите значение переменной s после выполнения следующего фрагмента этой программы (записанного ниже на трех языках программирования).

    s = 0
    for j in range(9):
       if A[j] > A[j+1]:
          s = s + 1
          t = A[j]
          A[j] = A[j+1]
          A[j+1] = t
    s := 0;
    for j := 0 to 8 do
      if A[j] > A[j+1] then
      begin
        s := s + 1;
        t := A[j];
        A[j] := A[j+1];
        A[j+1] := t;
      end;
    s = 0;
    for (j = 0; i < 9; i++) {
    	if (A[j] > A[j+1]) {
    		s = s + 1;
    		t = A[j];
    		A[j] = A[j+1];
    		A[j+1] = t;
    	}
    }

    12) В программе описан одномерный целочисленный массив с индексами от 0 до 10. Ниже представлен фрагмент программы, записанный на трех языках программирования.

    s = 15
    n = 10
    for i in range(n):
        s = s+A[i]-A[i+1]
    s := 15;
    n := 10;
    for i := 0 to n-1 do
       s := s+A[i]-A[i+1];
    s = 15;
    n = 10;
    for (i = 0; i < n; i++) {
    	s = s + A[i] - A[i + 1];
    }

    Известно, что в начале выполнения этого фрагмента в массиве находилась убывающая последовательность натуральных чисел, то есть A[0] > A[1] >…> A[10]. Какое наименьшее значение может иметь переменная s после выполнения данной программы?

    13) В программе используется одномерный целочисленный массив A с индексами от 0 до 9. Значения элементов равны 4, 7, 9, 8, 4, 8, 1, 2, 9, 6 соответственно, т.е. A[0] = 4, A[1] = 7 и т.д. Определите значение переменной с после выполнения следующего фрагмента этой программы (записанного ниже на трех языках программирования).

    c = 0
    for i in range(1,10):
       if A[i] > A[0]:
           c = c + 1
           t = A[i]
           A[i] = A[0]
           A[0] = t
    c := 0;
    for i := 1 to 9 do
      if A[i] > A[0] then
      begin
        c := c + 1;
        t := A[i];
        A[i] := A[0];
        A[0] := t;
      end;
    c = 0;
    for (i = 1; i < 9; i++) {
    	if (A[i] >= A[0]) {
    		c = c + 1;
    		t = A[i];
    		A[i] = a[0];
    		A[0] = t;
    	}
    }

    14) В программе используется одномерный целочисленный массив A с индексами от 0 до 9. Значения элементов равны 8, 4, 3, 0, 7, 2, 1, 5, 9, 6 соответственно, т.е. A[0] = 8, A[1] = 4 и т.д. Определите значение переменной s после выполнения следующего фрагмента этой программы (записанного ниже на трех языках программирования).

    s = 0
    for j in range(9):
       if A[j] > A[j+1]:
          s = s + 1
          t = A[j]
          A[j] = A[j+1]
          A[j+1] = t
    s := 0;
    for j := 0 to 8 do
      if A[j] > A[j+1] then
      begin
        s := s + 1;
        t := A[j];
        A[j] := A[j+1];
        A[j+1] := t;
      end;
    s = 0;
    for (j = 0; i < 9; i++) {
    	if (A[j] > A[j+1]) {
    		s = s + 1;
    		t = A[j];
    		A[j] = a[j+1];
    		A[j+1] = t;
    	}
    }

    15) В программе описан одномерный целочисленный массив с индексами от 0 до 10. Ниже представлен фрагмент программы, записанный на трех языках программирования.

    s = 27
    n = 10
    for i in range(n):
        s = s+A[i]-A[i+1]+2
    s := 27;
    n := 10;
    for i := 0 to n-1 do
      s := s+A[i]-A[i+1]+2;
    s = 27;
    n = 10;
    for (i = 0; i < n; i++) {
       s = s +A[i]-A[i + 1]+ 2;
    }

    Известно, что в начале выполнения этого фрагмента в массиве находилась возрастающая последовательность натуральных чисел, то есть A[0] < A[1] < … < A[10]. Какое наибольшее значение может иметь переменная s после выполнения данной программы?

    16) В программе описан одномерный целочисленный массив с индексами от 0 до 10. Ниже представлен фрагмент программы, записанный на трех языках программирования.

    s = 0
    n = 10
    for i in range(n):
       s = s + A[i] + A[i+1]
    s := 0;
    n := 10;
    for i := 0 to n-1 do
      s := s + A[i] + A[i+1];
    s = 0;
    n = 10;
    for (i = 0; i < n; i++) {
    	s = s + A[i] + A[i + 1];
    }

    В начале выполнения этого фрагмента в массиве находились двухзначные чётные натуральные числа. Какое наибольшее значение может иметь переменная s после выполнения данной программы?

    17) В программе используется одномерный целочисленный массив A с индексами от 0 до 9. Значения элементов равны 8, 7, 6, 6, 6, 5, 3, 3, 2, 1 соответственно, т.е. A[0] = 8, A[1] = 7 и т.д. Определите значение переменной c после выполнения следующего фрагмента этой программы (записанного ниже на трех языках программирования).

    c = 0
    for i in range(1,10):
       if A[i] < A[0]:
          c = c + 1
          t = A[i]
          A[i] = A[0]
          A[0] = t
    c := 0;
    for i := 1 to 9 do
      if A[i] < A[0] then
      begin
        c := c + 1;
        t := A[i];
        A[i] := A[0];
        A[0] := t;
      end;
    c = 0;
    for (i = 0; i < 9; i++) {
    	if (A[i] < A[0]) {
    		c = c + 1;
    		t = A[i];
    		A[i] = A[0];
    		A[0] = t;
    	}
    }

    18) В программе описан одномерный целочисленный массив с индексами от 0 до 10. Ниже представлен фрагмент программы, записанный на трех языках программирования.

    s = 0
    n = 10
    for i in range(n):
       s = s+2*A[i]+A[i+1]
    s := 0;
    n := 10;
    for i := 0 to n-1 do
      s := s+2*A[i]+A[i+1];
    s = 0;
    n = 10;
    for (i = 0; i < n; i++) {
    	s = s+2*A[i]+A[i + 1];
    }

    В начале выполнения этого фрагмента в массиве находились двухзначные нечётные натуральные числа. Какое наибольшее значение может иметь переменная s после выполнения данной программы?

    19) В программе используется одномерный целочисленный массив А с индексами от 0 до 9. Значения элементов равны 5, 6, 5, 8, 5, 4, 1, 2, 9, 6 соответственно, т.е. А[0] = 5, А[1] = 6 и т.д. Определите значение переменной с после выполнения следующего фрагмента этой программы (записанного ниже на трех языках программирования).

    c = 0
    for i in range(9):
       if A[i] >= A[9]:
           c = c + 1
           t = A[i]
           A[i] = A[9]
           A[9] = t
    c := 0;
    for i := 0 to 8 do
      if A[i] >= A[9] then
      begin
        c := c + 1;
        t := A[i];
        A[i] := A[9];
        A[9] := t;
      end;
    c = 0;
    for (i = 0; i < 9; i++) {
    	if (A[i] >= A[9]) {
    		c = c + 1;
    		t = A[i];
    		A[i] = A[9];
    		A[9] = t;
    	}
    }

    Задания взяты из базы данных ФИПИ, сайта К.Полякова или придуманы мною