понедельник, 19 марта 2018 г.

10 класс

1. Ниже приведён фраг­мент программы, за­пи­сан­ный на четырёх язы­ках программирования. Мас­сив A це­ло­чис­лен­ный двумерный. В про­грам­ме рас­смот­рен фраг­мент массива, со­от­вет­ству­ю­щий зна­че­ни­ям ин­дек­сов от 1 до n; n >= 3.





БейсикПаскаль
FOR i = n TO 1 STEP -1
    FOR j = n TO 1 STEP -1
        A(i,j) = i-j
    NEXT j
NEXT i
for i := n downto 1 do
    for j := n downto 1 do
        A[i,j] := i-j;
Си++Алгоритмический язык
for (i = n; i >= 1; i--) {
    for (j = n; j >= 1; j--) {
        A[i][j] = i-j;
    }
}
нц для i от n до 1 шаг -1
    нц для j от n до 1 шаг -1
        A[i,j] := i-j
    кц
кц
Python
for i in range(n, 0, -1):
    for j in range(n, 0, -1):
        A[i,j] = i-j


Чему будет равно мак­си­маль­ное из зна­че­ний эле­мен­тов рас­смот­рен­но­го фраг­мен­та мас­си­ва посе вы­пол­не­ния фраг­мен­та программы?

1) n – 1
2) 1– n
3) n
4) 1
2. Представленный ниже фрагмент программы обрабатывает элементы одномерного целочисленного массива A с индексами от 1 до 10. Перед началом выполнения данного фрагмента эти элементы массива имели значения 7, 4, 9, 10, 2, 3, 5, 8, 13, 19 (т.е. A[1] = 7, A[2] = 4, …, A[10] = 19).
Определите значение переменной s после выполнения фрагмента этой программы (записанного ниже на разных языках программирования).



БейсикPython
n = 10
s = 0
FOR i = 2 TO n
    IF A(i-1) < A(i) THEN
        A(i) = A(i) + A(i-1)
        s = s + A(i)
    END IF
NEXT i
n = 10
s = 0
for i in range(2,n+1):
    if A[i-1] < A[i]:
        A[i] = A[i] + A[i-1]
        s = s + A[i]
ПаскальАлгоритмический язык
n := 10;
s := 0;
for i:=2 to n do begin
    if A[i-1] < A[i] then begin
        A[i] := A[i] + A[i-1];
        s := s + A[i]
    end
end;
n := 10
s := 0
нц для i от 2 до n
    если A[i-1] < A[i]
        то
            A[i] := A[i] + A[i-1]
            s := s + A[i]
    все
кц
Си++
n = 10;
s = 0;
for (i = 2; i <= n; ++i) {
    if (A[i-1] < A[i]) {
        A[i] = A[i] + A[i-1];
        s = s + A[i];
    }
}

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



БейсикPython
c = 0
FOR i = 1 TO 9
  IF A(i) < A(0) THEN
    c = c + 1
    t = A(i)
    A(i) = A(0)
    A(0) = t
  END IF
NEXT i
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
нц для i от 1 до 9
  если A[i] < A[0] то
    c := c + 1
    t := A[i]
    A[i] := A[0]
    A[0] := t
  все
кц
Си++
c = 0;
for (i = 1;i < 10;i++)
  if (A[i] < A[0])
  {
    c++;
    t = A[i];
    A[i] = A[0];
    A[0] = t;
  }

4. Значения двух массивов A[1..100] и B[1..100] задаются с помощью следующего фрагмента программы:






БейсикPython

FOR n = 1 TO 100
    A(n) = n - 10
NEXT n
FOR n = 1 TO 100
    B(n) = A(n)*n;
NEXT n


for n in range(1, 101):
    A[n] = n - 10
for n in range(1, 101):
    B[n] = A[n]*n
ПаскальАлгоритмический язык

for n : = 1 to 100
    do A[n] : = n - 10;
for n : = 1 to 100 do begin
    B[n]:= A[n]*n;
end;

нц для n от 1 до 100
    A[n] : = n - 10
кц
нц для n от 1 до 100
    B[n]:=A[n]*n
кц

Си++

for (n = 1; n <= 100; n++) {
    A[n] = n - 10;
}
for (n = 1; n <= 100; n++) {
    B[n] = A[n]*n;
}


Сколько элементов массива B будут иметь положительные значения?

Примечание. Нуль является ни положительным, ни отрицательным числом.
5. Ниже представлен записанный на разных языках программирования фрагмент одной и той же программы. В программе описан одномерный целочисленный массив A, в представленном фрагменте программы обрабатываются элементы массива с индексами от 1 до 10.




БейсикPython
s = 0
n = 10
FOR i = 2 TO n
    s=s+A(i)*A(i)-A(i-1)*A(i-1)
NEXT i
s=0
n=10
for i in range(2,n+1):
    s=s + A[i]*A[i]-A[i-1]*A[i-1]
ПаскальАлгоритмический язык
s:=0;
n:=10;
for i:= 2 to n do begin
    s:=s+A[i]*A[i]-A[i-1]*A[i-1];
end;
s:=0
n:=10
нц для i от 2 до n
    s:=s + A[i]*A[i]-A[i-1]*A[i-1];
кц
Си++
s = 0;
n = 10;
for (i = 2; i <= n; i++) {
    s=s + A[i]*A[i]-A[i-1]*A[i-1];
}


В начале выполнения этого фрагмента в массиве находились числа 1, 11, 22, 33, 44, 55, 66, 77, 88, 99, т. е. A[1]=1, A[2]=11 и т.д. Чему будет равно значение переменной s после выполнения данного фрагмента?
6. В про­грам­ме ис­поль­зу­ет­ся од­но­мер­ный це­ло­чис­лен­ный мас­сив A с ин­дек­са­ми от 1 до 10. Зна­че­ния эле­мен­тов равны 7; 3; 4; 8; 6; 9; 5; 2; 0; 1 соответственно, т. е. A[1] = 7; A[2] = 3 и т. д.
Определите зна­че­ние пе­ре­мен­ной j после вы­пол­не­ния сле­ду­ю­ще­го фраг­мен­та программы, за­пи­сан­но­го ниже на раз­ных язы­ках программирования.



БейсикПаскаль
j = 0
FOR k = 2 TO 10
  IF A(k) > A(1) THEN
    A(1) = A(k)
    j = j + k
  END IF
NEXT k
j := 0;
for k := 2 to 10 do
begin
  if A[k] > A[1] then
  begin
    A[1] := A[k];
    j := j + k
  end
end;
СиАлгоритмический язык
j = 0;
for (k = 2; k<= 10; k++) {
  if (A[k] > A[1]) {
    A[1] = A[k];
    j = j + k;
  }
}
k := 0
нц для k от 2 до 10
  если A[k] > A[1] то
    A[1] := A[k]
    j := j+k
  все
кц

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





БейсикPython
s = 29
n = 10
FOR i = 0 TO n-1
    s = s+A(i)-A(i+1)+1
NEXT i
s = 29
n = 10
for i in range(0,n):
    s = s + A[i] - A[i+1]+1
Алгоритмический языкПаскаль
s := 29
n := 10
нц для i от 0 до n-1
    s:=s+A[i]-A[i+1]+1
кц
s := 29;
n := 10;
for i:=0 to n-1 do begin
    s:=s+A[i]-A[i+1]+1
end;
Си
s = 29;
n = 10;
for (i = 0; i <= n-1; i++)
    s=s+A[i]-A[i+1]+1;

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






БейсикPython
FOR i = 0 TO 10
    A(i) = i
NEXT i
FOR i = 0 TO 9
    A(i) = A(i+1)
NEXT i

for i in range(0, 11):
    A[i] = i
for i in range(0, 10):
    A[i] = A[i+1]
ПаскальАлгоритмический язык
for i:=0 to 10 do
    A[i]:=i;
for i:=0 to 9 do
    A[i]:=A[i+1];
нц для i от 0 до 10
    A[i] : = i
кц
нц для i от 0 до 9
    A[i]: = A[i+1];
кц

Си++

for (i = 0; i <= 10; i++) {
    A[i] = i;
}
for (i = 0; i <= 9; i++) {
    A[i] = A[i+1];
}


Чему будут равны элементы этого массива?


1) 10 0 1 2 3 4 5 6 7 8 9
2) 1 2 3 4 5 6 7 8 9 10 10
3) 0 0 1 2 3 4 5 6 7 8 9
4) 1 2 3 4 5 6 7 8 9 10 0
9. Все элементы двумерного массива A размером 10х10 элементов первоначально были равны 0. Затем значения элементов меняются с помощью вложенного оператора цикла в представленном фрагменте программы:






БейсикPython
FOR n = 1 TO 4
    FOR k = n TO 4
        A(n,k) = A(n,k) + 1
        A(k,n) = A(k,n) + 1

    NEXT k
NEXT n

for n in range(1, 5):
    for k in range(n, 5):
        A[n,k] = A[n,k] + 1
        A[k,n] = A[k,n] + 1
ПаскальАлгоритмический язык
for n:=1 to 4 do
    for k:=n to 4 do begin
        A[n,k] : = A[n,k] + 1;
        A[k,n] : = A[k,n] + 1;
    end;
нц для n от 1 до 4
    нц для k от n до 4
        A[n,k] : = A[n,k] + 1
        A[k,n] : = A[k,n] + 1
    кц
кц
Си++
for (n = 1; n <= 4; n++) {
    for (k = n; k <= 4; k++) {
        A[n][k] = A[n][k] + 1;
        A[k][n] = A[k][n] + 1;
    }
}


Сколько элементов массива в результате будут равны 1?
10. В программе описан одномерный целочисленный массив A с индексами от 0 до 10. Ниже представлен фрагмент этой программы, в котором значения элементов массива сначала задаются, а затем меняются.






БейсикPython

FOR i = 0 TO 10
    A(i) = 2*i
NEXT i
FOR i = 0 TO 4
    A(10-i) = A(i) - 1;
    A(i) = A(10-i) - 1;
NEXT i


for i in range(0, 11):
    A[i] = 2*i
for i in range(1, 5):
    A[10-i] = A[i] - 1
    A[i] = A[10-i] - 1
ПаскальАлгоритмический язык

for i : = 0 to 10
    do A[i] : = 2*i;
for i : = 0 to 4 do begin
    A[10-i]:= A[i] - 1;
    A[i] : = A[10-i]-1;
end;

нц для i от 0 до 10
    A[i] : = 2*i
кц
нц для i от 0 до 4
    A[10-i]:= A[i] - 1
    A[i]:= A[10-i] - 1
кц

Си++

for (i = 0; i <= 10; i++) {
    A[i] = 2*i;
}
for (i = 0; n <= 4; i++) {
    A[10-i] = A[i] - 1;
    A[i] = A[10-i] - 1;
}


Чему будут равны элементы этого массива?


1) 0 2 4 6 8 10 12 14 16 18 20
2) 19 17 15 13 11 10 -1 1 3 5 7
3) -2 0 2 4 6 10 7 5 3 1 -1
4) -1 1 3 5 7 9 11 13 15 17 19

Комментариев нет:

Отправить комментарий