Меню

Какая строка содержит ошибку

Всего: 17    1–17

Добавить в вариант

Задания Д24 C1 № 5532

Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число N, не превосходящее 109, и выводится сумма цифр этого числа. Программист торопился и написал программу неправильно. (Ниже для Вашего удобства программа представлена на четырёх языках программирования.)

Бэйсик Паскаль

DIM N AS LONG

INPUT N

sum = 0

WHILE N >= 9

    digit = N MOD 10

    sum = sum + digit

    N = N 10

WEND

PRINT sum

END

var N: longint;

    digit, sum: integer;

begin

    readln(N);

    sum := 0;

    while N >= 9 do

    begin

        digit := N mod 10;

        sum := sum + digit;

        N := N div 10;

    end;

    writeln(sum);

end.

Си++ Алгоритмический язык

#include <iostream>

using namespace std;

int main()

{

    long int N;

    int digit, sum;

    cin >> N;

    sum = 0;

    while (N >= 9)

    {

        digit = N % 10;

        sum = sum + digit;

        N = N / 10;

    }

    cout « sum « endl;

}

алг

нач

    цел N, digit, sum

    ввод N

    sum := 0

    нц пока N >= 9

        digit := mod(N, 10)

        sum := sum + digit

        N := div(N, 10)

    кц

    вывод sum

кон

Python

n = int(input())

sum = 0

while n >= 9:

    digit = n % 10

    sum += digit

    n //=10;

print(sum)

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

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

2.  Найдите все ошибки в этой программе (их может быть одна или несколько). Укажите все строки (одну или более), содержащие ошибки, и для каждой такой строки приведите правильный вариант. Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.

3.   Укажите одно число для которого эта программа будет работать верно.

Источник: ЕГЭ по информатике 30.05.2013. Основная волна. Дальний Восток. Вариант 3.


Задания Д24 C1 № 5468

Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число N, не превосходящее 109, и выводится произведение цифр этого числа. Программист торопился и написал программу неправильно. (Ниже для Вашего удобства программа представлена на четырёх языках программирования.)

Бэйсик Паскаль

DIM N AS LONG

DIM product AS LONG

INPUT N

product = N mod 10

WHILE N >= 10

    digit = N MOD 10

    product = product*digit

    N = N 10

WEND

PRINT product

END

var N, product: longint;

    digit: integer;

begin

    readln(N);

    product := N mod 10;

    while N >= 10 do

    begin

        digit := N mod 10;

        product := product*digit;

        N := N div 10;

    end;

    writeln(product);

end.

Си++ Алгоритмический язык

#include <iostream>

using namespace std;

int main()

{

    long int N, product;

    int digit;

    cin >> N;

    product = N % 10;

    while (N >= 10)

    {

        digit = N % 10;

        product = product*digit;

        N = N / 10;

    }

    cout << product;

}

алг

нач

    цел N, digit, product

    ввод N

    product := mod(N, 10)

    нц пока N >= 10

        digit := mod(N, 10)

        product := product*digit

        N := div(N, 10)

    кц

    вывод product

кон

Python

n = int(input())

product = n % 10

while n >= 10:

    digit = n % 10

    product = product*digit

    n //= 10

print(product)

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

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

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

1) выпишите строку, в которой сделана ошибка;

2) укажите, как исправить ошибку,  — приведите правильный вариант строки.

Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.

Источник: ЕГЭ по информатике 30.05.2013. Основная волна. Сибирь. Вариант 1.


Задания Д24 C1 № 5500

Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число N, не превосходящее 109, и выводится максимальная цифра этого числа. Программист торопился и написал программу неправильно. (Ниже для Вашего удобства программа представлена на четырёх языках программирования.)

Бэйсик Паскаль

DIM N AS LONG

INPUT N

max_digit = 9

WHILE N > 9

    digit = N MOD 10

    IF max_digit < digit THEN

        max_digit = digit

    END IF

        N = N 10

WEND

PRINT max digit

END

var N: longint;

    digit, max_digit: integer;

begin

    readln(N);

    max_digit := 9;

    while N > 9 do

    begin

        digit := N mod 10;

        if max_digit < digit then

            max_digit := digit;

        N := N div 10;

    end;

    writeln(max_digit);

end.

Си++ Алгоритмический язык

#include <iostream>

using namespace std;

int main()

{

    long int N;

    int digit, max_digit;

    cin >> N;

    max_digit = 9;

    while (N > 9)

    {

        digit = N % 10;

        if (max_digit < digit)

            max_digit = digit;

        N = N /10;

    }

    cout « max_digit « endl;

}

алг

нач

    цел N, digit, max_digit

    ввод N

    max_digit := 9

    нц пока N > 9

         digit := mod(N, 10)

        если max_digit < digit то

            max_digit := digit

        все

    N := div(N, 10)

    кц

    вывод max_digit

кон

Python

n = int(input())

max_digit = 9

while n > 9:

    digit = n % 10

    if max_digit < digit:

        max_digit = digit

    n //= 10;

print(max_digit)

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

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

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

1) выпишите строку, в которой сделана ошибка;

2) укажите, как исправить ошибку,  — приведите правильный вариант строки.

Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.

Источник: ЕГЭ по информатике 30.05.2013. Основная волна. Урал. Вариант 1., ЕГЭ по информатике 30.05.2013. Основная волна. Урал. Вариант 2., ЕГЭ по информатике 30.05.2013. Основная волна. Урал. Вариант 3., ЕГЭ по информатике 30.05.2013. Основная волна. Урал. Вариант 4.


Задания Д24 C1 № 5596

Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число N, не превосходящее 109, и выводится произведение цифр этого числа. Программист торопился и написал программу неправильно. (Ниже для Вашего удобства программа представлена на четырёх языках программирования.)

Бэйсик Паскаль

DIM N AS LONG

DIM product AS LONG

INPUT N

product = 0

WHILE N >= 10

    digit = N MOD 10

    product = product*digit

    N = N 10

WEND

PRINT product

END

var N, product: longint;

    digit: integer;

begin

    readln(N);

    product := 0;

    while N >= 10 do

    begin

        digit := N mod 10;

        product := product*digit;

        N := N div 10;

    end;

    writeln(product);

end.

Си++ Алгоритмический язык

#include <iostream>

using namespace std;

int main()

{

    long int N, product;

    int digit;

    cin >> N;

    product = 0;

    while (N >= 10)

    {

        digit = N % 10;

        product = product*digit;

        N = N / 10;

    }

    cout << product;

}

алг

нач

    цел N, digit, product

    ввод N

    product := 0

    нц пока N >= 10

        digit := mod(N, 10)

        product := product*digit

        N := div(N, 10)

    кц

    вывод product

кон

Python

n = int(input())

product = 0

while n >= 10:

    digit = n % 10

    product = product*digit

    n //= 10

print(product)

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

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

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

1) выпишите строку, в которой сделана ошибка;

2) укажите, как исправить ошибку,  — приведите правильный вариант строки.

Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.

Источник: ЕГЭ по информатике 30.05.2013. Основная волна. Сибирь. Вариант 2.


Задания Д24 C1 № 5692

Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число N, не превосходящее 109, и выводится максимальная цифра этого числа. Программист торопился и написал программу неправильно. (Ниже для Вашего удобства программа представлена на четырёх языках программирования.)

Бэйсик Паскаль

DIM N AS LONG

INPUT N

max_digit = 10

WHILE N >= 10

    digit = N MOD 10

    IF max_digit < digit THEN

        max_digit = digit

    END IF

        N = N 10

WEND

PRINT max_digit

END

var N: longint;

    digit, max_digit: integer;

begin

    readln(N);

    max_digit := 10;

    while N >= 10 do

    begin

        digit := N mod 10;

        if max_digit < digit then

            max_digit := digit;

        N := N div 10;

    end;

    writeln(max_digit);

end.

Си++ Алгоритмический язык

#include <iostream>

using namespace std;

int main ()

{

    long int N;

    int digit, max_digit;

    cin >> N;

    max digit = 10;

    while (N >= 10)

    {

        digit = N % 10;

        if (max_digit < digit)

            max_digit = digit;

        N = N / 10;

    }

    cout « max_digit « endl;

}

алг

нач

    цел N, digit, max_digit

    ввод N

    max_digit := 10

    нц пока N >= 10

        digit := mod(N, 10)

        если max_digit < digit то

            max_digit := digit

        все

        N := div(N, 10)

    кц

    вывод max_digit

кон

Python

n = int(input())

max_digit = 10

while n >= 10:

    digit = n % 10

    if max_digit < digit:

        max_digit = digit

    n //= 10

print(max_digit)

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

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

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

1) выпишите строку, в которой сделана ошибка;

2) укажите, как исправить ошибку,  — приведите правильный вариант строки.

Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.

Источник: ЕГЭ по информатике 30.05.2013. Основная волна. Сибирь. Вариант 5.


Задания Д24 C1 № 6014

Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число N, не превосходящее 109, и выводится максимальная цифра этого числа. Программист торопился и написал программу неправильно. (Ниже для Вашего удобства программа представлена на четырёх языках программирования.)

Бейсик Паскаль

DIM N AS LONG

INPUT N

max_digit = 9

WHILE N >= 10

    digit = N MOD 10

    IF digit > max_digit THEN

        max_digit = digit

    END IF

    N = N 10

WEND

PRINT max_digit

END

var N: longint;

    digit, max_digit: integer;

begin

    readln(N);

    max_digit := 9;

    while N >= 10 do

    begin

        digit := N mod 10;

        if digit > max_digit then

            max_digit := digit;

        N := N div 10;

    end;

    writeln(max_digit);

end.

Си++ Алгоритмический

#include <iostream>

using namespace std;

int main()

{

    long int N;

    int digit, max_digit;

    cin >> N;

    max_digit = 9;

    while (N >= 10)

    {

        digit = N % 10;

        if (digit > max_digit)

            max_digit = digit;

        N = N /10;

    }

    cout « max_digit « endl;

}

алг

нач

    цел N, digit, max_digit

    ввод N

    max_digit := 9

    нц пока N >= 10

        digit := mod(N, 10)

        если digit > max_digit то

            max_digit := digit

        все

        N := div(N, 10)

    кц

    вывод max_digit

кон

Python

n = int(input())

max_digit = 9

while n >= 10:

    digit = n % 10

    if digit > max_digit:

        max_digit = digit

    n //= 10

print(max_digit)

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

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

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

1)  выпишите строку, в которой сделана ошибка;

2)  укажите, как исправить ошибку,  — приведите правильный вариант строки.

Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.

Источник: Демонстрационная версия ЕГЭ—2014 по информатике.


Задания Д24 C1 № 5372

Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число N, не превосходящее 109, и выводится количество цифр этого числа. Программист торопился и написал программу неправильно. (Ниже для Вашего удобства программа представлена на четырёх языках программирования.)

Бейсик Паскаль

DIM N AS LONG

INPUT N

sum = 1

WHILE N > 1

N = N 10

sum = sum + 1

WEND

PRINT sum

END

var N: longint;

sum: integer;

begin

readln(N);

sum := 1;

while N > 1 do

begin

N := N div 10;

sum := sum + 1;

end;

writeln(sum);

end.

Си++ Алгоритмический

#include <iostream>

using namespace std;

int main()

{

long int N;

int sum;

cin >> N;

sum = 1;

while (N > 1)

{

N = N /10;

sum = sum + 1;

}

cout « sum « endl;

}

алг

нач

цел N, sum

ввод N

sum := 1

нц пока N > 1

N := div(N, 10)

sum := sum + 1

кц

вывод sum

кон

Python

n = int(input())

sum = 1

while n > 1:

    n //= 10

    sum += 1

print(sum)

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

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

2.  Укажите одно число для которого эта программа будет работать верно.

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

Источник: ЕГЭ по информатике 30.05.2013. Основная волна. Дальний Восток. Вариант 1.


Задания Д24 C1 № 6199

Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число N, не превосходящее 109, и выводится сумма чётных цифр в десятичной записи этого числа или 0, если чётных цифр в записи нет. Ученик написал такую программу:

Бейсик Паскаль

DIM N AS LONG

INPUT N

S = 0

WHILE N > 1

IF N MOD 2 = 0

S = N MOD 10

END IF

N = N 10

WEND

PRINT S

END

var N: longint;

s: integer;

begin

readln(N);

s := 0;

while N > 1 do begin

if N mod 2 = 0 then begin

s := N mod 10;

end;

N := N div 10;

end;

write(s);

end.

Си++ Алгоритмический язык

#include <iostream>

using namespace std;

int main()

{

long int N;

int s;

cin >> N;

s = 0;

while (N > 1) {

if (N%2 == 0) {

s = N % 10;

}

N = N / 10;

}

cout « s « endl;

}

алг

нач

цел N, s

ввод N

s := 0

нц пока N > 1

если mod(N,2) = 0 то

s := mod(N,10)

все

N := div(N,10)

кц

вывод s

кон

Python

N = int(input())

s = 0

while N > 1:

    if N % 2 == 0:

        s = N % 10

    N //= 10

print(s)

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

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

2.Приведите пример числа, при вводе которого программа выдаст верный ответ.

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

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


Задания Д24 C1 № 7796

Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число x, не превосходящее 1000, и выводится количество единиц в двоичной записи этого числа. Программист торопился и написал программу неправильно. (Ниже для Вашего удобства программа представлена на пяти языках программирования.)

Бейсик Python

INPUT x

cnt = 0

WHILE x > 0

cnt = cnt + 1

x = x MOD 2

WEND

PRINT cnt

END

x = int(input())

cnt = 0

while x > 0:

    cnt = cnt+1

    x = x % 2

print(cnt)

Паскаль Алгоритмический язык

var x,cnt: integer;

begin

readln(x);

cnt := 0;

while x > 0 do

begin

cnt:=cnt + 1;

x := x mod 2

end;

writeln(cnt)

end.

алг

нач

цел x, cnt

ввод x

cnt := 0

нц пока x > 0

cnt := cnt+1

x := mod(x, 2)

кц

вывод cnt

кон

Си++

#include <iostream>

using namespace std;

int main()

{

int x,cnt;

cin >> x;

cnt = 0;

while (x > 0)

{

cnt = cnt + 1;

x = x % 2;

}

cout « cnt « endl;

}

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

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

2.  Приведите пример такого числа x, что, несмотря на ошибки, программа печатает правильный ответ.

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

1)  выпишите строку, в которой сделана ошибка;

2)  укажите, как исправить ошибку, т. е. приведите правильный вариант строки.

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


Задания Д24 C1 № 5884

Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число N, не превосходящее 109, и выводится минимальная цифра этого числа. Программист торопился и написал программу неправильно. (Ниже для Вашего удобства программа представлена на четырёх языках программирования.)

Бэйсик Паскаль

DIM N AS LONG

INPUT N

min_digit = 9

WHILE N >= 10

    digit = N MOD 10

    IF digit < min_digit THEN

        digit = min_digit

    END IF

    N = N 10

WEND

PRINT min_digit

END

var N: longint;

    digit, min_digit: integer;

begin

    readln(N);

    min_digit := 9;

    while N >= 10 do

    begin

        digit := N mod 10;

        if digit < min_digit then

            digit := min_digit;

        N := N div 10;

    end;

    writeln(min_digit);

end.

Си++ Алгоритмический язык

#include <iostream>

using namespace std;

int main()

{

    long int N;

    int digit, min_digit;

    cin >> N;

    min_digit = 9;

    while (N >= 10)

    {

        digit = N % 10;

        if (digit < min_digit)

            digit = min_digit;

        N = N / 10;

    }

    cout << min_digit << endl;

}

алг

нач

    цел N, digit, min_digit

    ввод N

    min_digit := 9

    нц пока N >= 10

        digit := mod(N, 10)

        если digit < min_digit то

            digit := min_digit

        все

        N := div(N, 10)

    кц

    вывод min_digit

кон

Python

n = int(input())

min_digit = 9

while n >= 10:

    digit = n % 10

    if digit < min_digit:

        digit = min_digit

    n //= 10

print(min_digit)

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

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

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

1) выпишите строку, в которой сделана ошибка;

2) укажите, как исправить ошибку,  — приведите правильный вариант строки.

Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.

Источник: ЕГЭ по информатике 30.05.2013. Основная волна. Центр. Вариант 2.


Задания Д24 C1 № 5948

Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число N, не превосходящее 109, и выводится минимальная цифра этого числа. Программист торопился и написал программу неправильно. (Ниже для Вашего удобства программа представлена на четырёх языках программирования.)

Бэйсик Паскаль

DIM N AS LONG

INPUT N

min_digit = 0

WHILE N > 0

    digit = N MOD 10

    IF digit < min_digit THEN

        min_digit = digit

    END IF

    N = N 10

WEND

PRINT digit

END

var N: longint;

    digit, min_digit: integer;

begin

    readln(N);

    min_digit := 0;

    while N > 0 do

    begin

        digit := N mod 10;

        if digit < min_digit then

            min_digit := digit;

        N := N div 10;

    end;

    writeln(digit);

end.

Си++ Алгоритмический язык

#include <iostream>

using namespace std;

int main()

{

    long int N;

    int digit, min_digit;

    cin >> N;

    min_digit = 0;

    while (N > 0)

    {

        digit = N % 10;

        if (digit < min_digit)

            min_digit = digit;

        N = N / 10;

    }

    cout « digit « endl;

}

алг

нач

    цел N, digit, min_digit

    ввод N

    min_digit := 0

    нц пока N > 0

        digit := mod(N, 10)

        если digit < min_digit то

            min_digit := digit

        все

        N := div(N, 10)

    кц

    вывод digit

кон

Python

n = int(input())

min_digit = 0

while n > 0:

    digit = n % 10

    if digit < min_digit:

        min_digit = digit

    n //= 10

print(digit)

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

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

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

1) выпишите строку, в которой сделана ошибка;

2) укажите, как исправить ошибку,  — приведите правильный вариант строки.

Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.

Источник: ЕГЭ по информатике 30.05.2013. Основная волна. Центр. Вариант 4.


Задания Д24 C1 № 9659

Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число A, не превосходящее 109, и выводится произведение его цифр. Программист торопился и написал программу неправильно. (Ниже для Вашего удобства программа представлена на четырёх языках программирования.)

Бейсик Паскаль

DIM A AS LONG

DIM pr AS LONG

INPUT A

pr = 0

WHILE A >= 10

  pr = pr * (A MOD 10)

  A = A 10

WEND

PRINT pr

END

var A,pr: longint;

begin

  readln(A);

  pr := 0;

  while A >= 10 do

  begin

    pr:=pr * (A mod 10);

    A := A div 10;

  end;

  writeln(pr);

end.

Си++ Алгоритмический язык

#include <iostream>

using namespace std;

int main()

{

  long int A,pr;

    cin >> A;

  pr = 0;

  while (A >= 10)

  {

    pr = pr * (A%10);

    A = A /10;

  }

  cout « pr « endl;

}

алг

нач

  цел A, pr

  ввод A

  pr := 0

  нц пока A >= 10

    pr := pr * mod (A, 10)

    A := div(A, 10)

  кц

  вывод pr

кон

Python

A = int(input())

pr = 0

while A >= 10:

    pr = pr * (A % 10)

    A //= 10

print(pr)

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

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

2.  Найдите все ошибки в этой программе (их может быть одна или несколько).

Для каждой ошибки:

а)  выпишите строку, в которой сделана ошибка;

б)  укажите, как исправить ошибку: приведите правильный вариант строки.

Обратите внимание на то, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.


Задания Д24 C1 № 5436

Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число N, не превосходящее 109, и выводится количество цифр этого числа. Программист торопился и написал программу неправильно. (Ниже для Вашего удобства программа представлена на четырёх языках программирования).

Бейсик Паскаль

DIM N AS LONG

INPUT N

sum = 0

WHILE N >= 9

N = N 10

sum = sum + 1

WEND

PRINT sum

END

var N: longint;

sum: integer;

begin

readln(N);

sum := 0;

while N >= 9 do

begin

N := N div 10;

sum := sum + 1;

end;

writeln(sum);

end.

Си++ Алгоритмический

#include <iostream>

using namespace std;

int main()

{

long int N;

int sum;

cin >> N;

sum = 0;

while (N >= 9)

{

N = N / 10;

sum = sum + 1;

}

cout « sum « endl;

}

алг

нач

цел N, sum

ввод N

sum := 0

нц пока N >= 9

N := div(N, 10)

sum := sum + 1

кц

вывод sum

кон

Python

N = int(input())

sum = 0

while N >= 9:

    N //= 10

    sum += 1

print(sum)

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

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

2.  Укажите одно число для которого эта программа будет работать верно.

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

Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.

Источник: ЕГЭ по информатике 30.05.2013. Основная волна. Дальний Восток. Вариант 4.


Задания Д24 C1 № 5852

Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число N, не превосходящее 109, и выводится минимальная цифра этого числа. Программист торопился и написал программу неправильно. (Ниже для Вашего удобства программа представлена на четырёх языках программирования.)

Бэйсик Паскаль

DIM N AS LONG

INPUT N

min_digit = 0

WHILE N > 0

    digit = N MOD 10

    IF digit > min_digit THEN

        min_digit = digit

    END IF

    N = N 10

WEND

PRINT min_digit

END

var N: longint;

    digit, min_digit: integer;

begin

    readln(N);

    min_digit := 0;

    while N > 0 do

    begin

        digit := N mod 10;

        if digit > min_digit then

            min_digit := digit;

        N := N div 10;

    end;

    writeln(min_digit);

end.

Си++ Алгоритмический язык

#include <iostream>

using namespace std;

int main ()

{

    long int N;

    int digit, min_digit;

    cin >> N;

    min_digit = 0;

    while (N > 0)

    {

        digit = N % 10;

        if (digit > min_digit)

            min_digit = digit;

        N = N / 10;

    }

    cout « min_digit « endl;

}

алг

нач

    цел N, digit, min_digit

    ввод N

    min_digit := 0

    нц пока N > 0

        digit := mod(N, 10)

        если digit > min_digit то

            min_digit := digit

        все

        N := div(N, 10)

    кц

    вывод min_digit

кон

Python

N = int(input())

min_digit = 0

while N > 0:

    digit = N % 10

    if digit > min_digit:

        min_digit = digit

    N //= 10;

print(min_digit)

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

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

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

1) выпишите строку, в которой сделана ошибка;

2) укажите, как исправить ошибку,  — приведите правильный вариант строки.

Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.

Источник: ЕГЭ по информатике 30.05.2013. Основная волна. Центр. Вариант 1.


Задания Д24 C1 № 5980

Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число N, не превосходящее 109, и выводится минимальная цифра этого числа. Программист торопился и написал программу неправильно. (Ниже для Вашего удобства программа представлена на четырёх языках программирования.)

Бейсик Паскаль

DIM N AS LONG

INPUT N

min_digit = 9

WHILE N >= 10

digit = N MOD 10

IF digit < min_digit THEN

min_digit = digit

END IF

N = N 10

WEND

PRINT digit

END

var N: longint;

digit, min_digit: integer;

begin

readln(N);

min_digit := 9;

while N >= 10 do

begin

digit := N mod 10;

if digit < min_digit then

min_digit := digit;

N := N div 10;

end;

writeln(digit);

end.

Си++ Алгоритмический

#include <iostream>

using namespace std;

int main()

{

long int N;

int digit, min_digit;

cin >> N;

min_digit = 9;

while (N >= 10)

{

digit = N % 10;

if (digit < min_digit)

min_digit = digit;

N = N / 10;

}

cout « digit « endl;

}

алг

нач

цел N, digit, min_digit

ввод N

min_digit := 9

нц пока N >= 10

digit := mod(N, 10)

если digit < min_digit то

min_digit := digit

все

N := div(N, 10)

кц

вывод digit

кон

Python

N = int(input())

min_digit = 9

while N >= 10:

    digit = N % 10

    if digit < min_digit:

        min_digit = digit

    N //= 10

print(digit)

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

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

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

1)  выпишите строку, в которой сделана ошибка;

2)  укажите, как исправить ошибку,  — приведите правильный вариант строки.

Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.

Источник: ЕГЭ по информатике 30.05.2013. Основная волна. Центр. Вариант 5.


Задания Д24 C1 № 7769

Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число x, не превосходящее 1000, и выводится количество значащих цифр в двоичной записи этого числа. Программист торопился и написал программу неправильно. (Ниже для Вашего удобства программа представлена на пяти языках программирования.)

Бейсик Python

INPUT x

cnt = 0

WHILE x > 0

cnt = cnt + x MOD 2

x = x 10

WEND

PRINT cnt

END

x = int(input())

cnt = 0

while x > 0:

    cnt = cnt+x % 2

    x = x // 10

print(cnt)

Паскаль Алгоритмический язык

var x,cnt: integer;

begin

readln(x);

cnt := 0;

while x > 0 do

begin

cnt:=cnt + x mod 2;

x := x div 10

end;

writeln(cnt);

end.

алг

нач

цел x, cnt

ввод x

cnt := 0

нц пока x > 0

cnt := cnt+mod(x,2)

x := div(x, 10)

кц

вывод cnt

кон

Си++

#include <iostream>

using namespace std;

int main()

{

int x,cnt;

cin >> x;

cnt = 0;

while (x > 0)

{

cnt = cnt + x%2;

x = x /10;

}

cout « cnt « endl;

}

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

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

2.  Приведите пример такого числа x, что, несмотря на ошибки, программа печатает правильный ответ.

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

Для каждой ошибки:

1)  выпишите строку, в которой сделана ошибка;

2)  укажите, как исправить ошибку, т. е. приведите правильный вариант строки.

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


Задания Д24 C1 № 9705

Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число A, не превосходящее 109, и выводится количество цифр в десятичной записи этого числа. Программист торопился и написал программу неправильно. (Ниже для Вашего удобства программа представлена на четырёх языках программирования.)

Бейсик Паскаль

DIM A AS LONG

INPUT A

cnt = 0

WHILE A > 1

  cnt = cnt + A MOD 10

  A = A 10

WEND

PRINT cnt

END

var A: longint;

  cnt: integer;

begin

  readln(A);

  cnt := 0;

  while A > 1 do

  begin

    cnt:=cnt + A mod 10;

    A := A div 10;

  end;

  writeln(cnt);

end.

Си++ Алгоритмический язык

#include <iostream>

using namespace std;

int main()

{

  long int A;

  int cnt;

  cin >> A;

  cnt = 0;

  while (A > 1)

  {

    cnt = cnt + A%10;

    A = A /10;

  }

  cout « cnt « endl;

}

алг

нач

  цел A, cnt

  ввод A

  cnt := 0

  нц пока A > 1

    cnt := cnt + mod(A, 10)

    A := div(A, 10)

  кц

  вывод cnt

кон

Python

A = int(input())

cnt = 0

while A > 1:

    cnt += A % 10

    A //= 10

print(cnt)

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

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

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

а)  выпишите строку, в которой сделана ошибка;

б)  укажите, как исправить ошибку: приведите правильный вариант строки.

Обратите внимание на то, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.

Всего: 17    1–17

logo

    • Предмет:

      Информатика

    • Автор:

      calebschwartz436

    • Создано:

      3 года назад

    Ответы

    Знаешь ответ? Добавь его сюда!

  • drugie-predmety
    Другие предметы

    12 секунд назад

    Музыка, 6 класс, помогите пожалуйста!

  • matematika
    Математика

    16 секунд назад

    Опять внуки 1 класс

  • fizika
    Физика

    21 секунд назад

    КОНДЕНСАТОРЫ! ФИЗИКА ! СРОЧНАЯ ПОМОЩЬ

  • biologiya
    Биология

    29 секунд назад

    Ответить на вопрос по биологии 11 класс

  • russkii-yazyk
    Русский язык

    2 минуты назад

    Пж помогите

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.

Вы не можете общаться в чате, вы забанены.

Чтобы общаться в чате подтвердите вашу почту
Отправить письмо повторно

Вопросы без ответа

  • russkii-yazyk
    Русский язык

    2 минуты назад

    Пж помогите

  • algebra
    Алгебра

    3 минуты назад

    нужна помощь

Топ пользователей

  • avatar

    Fedoseewa27

    22808

  • avatar

    Sofka

    7419

  • avatar

    zlatikaziatik

    5659

  • avatar

    vov4ik329

    5111

  • avatar

    DobriyChelovek

    4625

  • avatar

    olpopovich

    3461

  • avatar

    TheDenty

    3258

  • avatar

    dobriykaban

    2540

  • avatar

    Udachnick

    1867

  • avatar

    ViktoriaBell0

    1740

Войти через Google

или

Запомнить меня

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

Выберите язык и регион

Русский

Россия

English

United States

zoom

How much to ban the user?

1 hour
1 day

Тест на зание веб технологий

Всего ~ 58 вопросов, 125 баллов. На отлично нужно набрать > 100

1 час 30 минут на весь тест. Это около 1.5 минуты на вопрос.

PHP, Linux, MySQL

Какие в POSIX системе права на файл test.txt установит следующий PHP-код: chmod(‘test.txt’, 777)? (2)

  • Для всех на чтение, запись и выполнение

Чем отличаются функции mysql_connect и mysql_pconnect? (2)

  • mysql_pconnect не закрывает соединение с БД после окончания выполнения скрипта

Какие теги не могут использоватся для оформления PHP кода?(2)

  • <! !>

Какие данные пользователя сайта можно считать на 100% достоверными?(2)

  • cookie
  • Данные сессии

Чем интеграл отличается от производной? (3)

  • нет правильного ответа

С помощью какой команды Linux можно найти все вложенные поддиректории директории? (3)

  • find ./ -type d

Какое из выражений соответствует умножению переменной $a на 4? (2)

  • $a *= pow(2,2)

Каким будет результат выполнения кода? (2)

  • Ничего из вышеперечисленного

Какой из модулей PHP позволяет увеличить производительность выполнения php скриптов? (3)

  • eAccelerator

Какой тип данных возвращает функция array_unique() ? (2)

  • array

С помощью какой команды Linux можно создать ссылку на файл? (2)

  • ln
  • ls

Кто был первым программистом? (3)

  • Ада Лавлейс

Каково будет значение переменной $b после выполнения нижеприведенного кода? (2)

  • Ни один из приведенных вариантов

Какой оператор необходимо использовать в запросе, что бы получить результат? (2)

  • left join

Какой прототип функции autoload корректный? (3)

  • function __autoload ($className)

В чем отличие методов POST и GET? (2)

  • В GET данные передаются в заголовке запроса, а в POST – в теле

Каким будет результат выполнения кода? (2)

  • «1000»

Какой паттерн проектирования необходимо использовать для реализации класса, который должен иметь только одну сущность во время выполнения скрипта? (2)

  • Singleton

С помощью какой команды можно выполнить backup баз данных MySQL? (3)

  • mysql_dump

Какую функцию следует использовать для вывода типа и значения переменной? (2)

  • var_dump

Каким будет результат выполнения кода? (2)

  • Сообщение об ошибке.

Каким будет результат выполнения кода? (2)

  • Сообщение об ошибке

Что удаляет функция delete в PHP? (3)

  • Файлы

С помощью какой команды можно посмотреть план выполнения запроса в MySQL? (3)

  • explain

Каким будет результат выполнения кода? (2)

  • 12345

Для высоконагруженного проекта с множеством backend серверов где эффективнее всего хранить сессионные данные? (2)

  • в cookie

Какой оператор необходимо использовать в запросе, что бы получить результат? (3)

  • join

В чем отличие записей Class::method() и $Class->method() ? (2)

  • Первую запись можно использовать только в PHP5

  • Вторую запись можно использовать, только если $Class – объект

Каким будет результат выполнения кода? (2)

  • true
  • false
  • 0
  • 1

Каким будет результат выполнения кода? (3)

  • Сообщение об ошибке, класс не может перекрывать контанты интерфейса.

Каким будет результат выполнения кода? (2)

  • Сообщение об ошибке

Какие из функций позволяют получить целиком содержимое файла? (2)

  • file_get_contents

Каким будет результат выполнения кода из файла main.php? (4)

  • Foo
  • Bar

JavaScript

Какие из этих вызовов корректно бросят исключение ? (2)

  • throw new Error("Ошибка")

  • throw Error("Ошибка")

Как правильно вывести приветствие через 5 секунд после запуска скрипта? (2)

  • sleep(5000); alert("Привет!");
  • setTimeout('alert("Привет!")', 5000);

Что делает код: (3)

  • Выходит из текущего блока цикла или switch на метку «me»

В каком случае из перечисленных событие не попадет на обработку javascript? (2)

  • Если страничка просматривается локально, т.е offline

Сколько параметров можно передать функции ? (2)

  • Любое количество

Можно ли в скрипте перевести посетителя на другую страницу сайта? (2)

  • Да, куда угодно

Какие варианты правильно объявляют переменную для f, возвращающей сумму двух аргументов ? (2)

  • var f = function(a,b) { return a+b }

Что из этого — не событие мыши ? (2)

  • onmousescroll

  • onmousewheel

Где в документе может располагаться тэг script по стандарту HTML ? (2)

  • Где угодно, главное чтоб был

Какое событие не вызывается кликом мыши ? (3)

  • onclick

Есть ли какая-нибудь разница между этими двумя определениями функции ? (2)

function f(a,b) { return a+b }
var f = function(a,b) { return a+b }
  • Да, есть

Какие конструкции для циклов есть в javascript? (2)

  • Три: for, while и do…while.

Можно ли через javascript подключить внешний js-файл, отсутствующий на странице? (4)

  • Да, но только один раз

Какие из этих вариантов задают массив из элементов «a», «b» ? (2)

  • var a = new Array("a","b")

  • var a = [ "a", "b" ]

HTML и CSS

Какой элемент является необязательным и его можно опустить (два варианта)? (2)

  • <ul>

  • <li>

Как установить кодировку документа? (2)

  • <meta charset="utf-8">

Какие два элемента являются обязательными для любого кода HTML? (2)

  • <head>
  • <body>

Какой элемент внутри секции является обязательным? (2)

  • <title>

Какая строка содержит ошибку? (2)

  • <img src=black.jpg alt=Люди в чёрном>

  • <img src=black.jpg alt=Пришельцы>

Что такое стиль? (2)

  • Язык разметки гипертекстовых документов.

В какой строке содержится корректный синтаксис? (2)

  • body:color=black

Какое выражение написано корректно? (2)

  • width: "auto"

  • bakground: red(2)

  • color: #fco

Какая строка написана правильно? (2)

  • P: { color: #333;}

Какой атрибут используется для определения внутреннего стиля? (2)

  • style

Этот вопрос из курса Python на freeCodeCamp.com.

smallest = None
print("Before:", smallest)
for itervar in [3, 41, 12, 9, 74, 15]:
    if smallest is None or itervar < smallest:
        smallest = itervar
        break
    print("Loop:", itervar, smallest)
print("Smallest:", smallest)

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

1 ответ

Лучший ответ

Вам не нужен break на 5-й строке. Он прерывает цикл, который там не нужен.

Без него все нормально работает.

Кроме того, какой тип значения None и для чего он нужен?

Ключевое слово None используется для определения нулевого значения или отсутствия значения вообще.


1

Yevgeniy Kosmak
9 Янв 2022 в 16:33

Введение

Ошибки, увы, неизбежны, поэтому их обработка занимает очень важное место в программировании. И если алгоритмические ошибки можно выявить и исправить во время написания и тестирования программы, то ошибок времени выполнения избежать нельзя в принципе. Сегодня мы рассмотрим функции стандартной библиотеки (C Standard Library) и POSIX, используемые в обработке ошибок.

Переменная errno и коды ошибок

<errno.h>

errno – переменная, хранящая целочисленный код последней ошибки. В каждом потоке существует своя локальная версия errno, чем и обусловливается её безопасность в многопоточной среде. Обычно errno реализуется в виде макроса, разворачивающегося в вызов функции, возвращающей указатель на целочисленный буфер. При запуске программы значение errno равно нулю.

Все коды ошибок имеют положительные значения, и могут использоваться в директивах препроцессора #if. В целях удобства и переносимости заголовочный файл <errno.h> определяет макросы, соответствующие кодам ошибок.

Стандарт ISO C определяет следующие коды:

  • EDOM – (Error domain) ошибка области определения.
  • EILSEQ – (Error invalid sequence) ошибочная последовательность байтов.
  • ERANGE – (Error range) результат слишком велик.

Прочие коды ошибок (несколько десятков) и их описания определены в стандарте POSIX. Кроме того, в спецификациях стандартных функций обычно указываются используемые ими коды ошибок и их описания.

Нехитрый скрипт печатает в консоль коды ошибок, их символические имена и описания:

#!/usr/bin/perl

use strict;
use warnings;

use Errno;

foreach my $err (sort keys (%!)) {
    $! = eval "Errno::$err";
    printf "%20s %4d   %sn", $err, $! + 0, $!
}

Если вызов функции завершился ошибкой, то она устанавливает переменную errno в ненулевое значение. Если же вызов прошёл успешно, функция обычно не проверяет и не меняет переменную errno. Поэтому перед вызовом функции её нужно установить в 0.

Пример:

/* convert from UTF16 to UTF8 */
errno = 0;	
n_ret = iconv(icd, (char **) &p_src, &n_src, &p_dst, &n_dst);   
	
if (n_ret == (size_t) -1) {
    VJ_PERROR();
    if (errno == E2BIG)  
        fprintf(stderr, " Error : input conversion stopped due to lack of space in the output buffern");
    else if (errno == EILSEQ)  
        fprintf(stderr, " Error : input conversion stopped due to an input byte that does not belong to the input codesetn");
    else if (errno == EINVAL)  
        fprintf(stderr, " Error : input conversion stopped due to an incomplete character or shift sequence at the end of the input buffern");
/* clean the memory */   
    free(p_out_buf);
    errno = 0;
    n_ret = iconv_close(icd);      
    if (n_ret == (size_t) -1)  
        VJ_PERROR();
    return (size_t) -1; 
}

Как видите, описания ошибок в спецификации функции iconv() более информативны, чем в <errno.h>.

Функции работы с errno

Получив код ошибки, хочется сразу получить по нему её описание. К счастью, ISO C предлагает целый набор полезных функций.

<stdio.h>

void perror(const char *s);

Печатает в stderr содержимое строки s, за которой следует двоеточие, пробел и сообщение об ошибке. После чего печатает символ новой строки 'n'.

Пример:

/*
//  main.c
//  perror example
//
//  Created by Ariel Feinerman on 23/03/17.
//  Copyright  2017 Feinerman Research, Inc. All rights reserved.
*/

#include <stdio.h>
#include <stdlib.h>
#include <errno.h>

int main(int argc, const char * argv[]) 
{
    // Generate unique filename.
    char *file_name = tmpnam((char[L_tmpnam]){0});
   
    errno = 0;
    FILE *file = fopen(file_name, "rb");

    if (file) {
        // Do something useful. 
        fclose(file);
    }
    else {
        perror("fopen() ");
    }
	
    return EXIT_SUCCESS;
}

<string.h>

char* strerror(int errnum);
Возвращает строку, содержащую описание ошибки errnum. Язык сообщения зависит от локали (немецкий, иврит и даже японский), но обычно поддерживается лишь английский.

/*
//  main.c
//  strerror example
//
//  Created by Ariel Feinerman on 23/03/17.
//  Copyright  2017 Feinerman Research, Inc. All rights reserved.
*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include <errno.h>

int main(int argc, const char * argv[]) 
{
    // Generate unique filename.
    char *file_name = tmpnam((char[L_tmpnam]){0});

    errno = 0;
    FILE *file = fopen(file_name, "rb");
    // Save error number. 
    errno_t error_num = errno;
	
    if (file) {
        // Do something useful. 
        fclose(file);
    }
    else {
        char *errorbuf = strerror(error_num);
        fprintf(stderr, "Error message : %sn", errorbuf);
    }
    
    return EXIT_SUCCESS;
}

strerror() не безопасная функция. Во-первых, возвращаемая ею строка не является константной. При этом она может храниться в статической или в динамической памяти в зависимости от реализации. В первом случае её изменение приведёт к ошибке времени выполнения. Во-вторых, если вы решите сохранить указатель на строку, и после вызовите функцию с новым кодом, все прежние указатели будут указывать уже на новую строку, ибо она использует один буфер для всех строк. В-третьих, её поведение в многопоточной среде не определено в стандарте. Впрочем, в QNX она объявлена как thread safe.

Поэтому в новом стандарте ISO C11 были предложены две очень полезные функции.

size_t strerrorlen_s(errno_t errnum);

Возвращает длину строки с описанием ошибки errnum.

errno_t strerror_s(char *buf, rsize_t buflen, errno_t errnum);

Копирует строку с описание ошибки errnum в буфер buf длиной buflen.

Пример:

/*
//  main.c
//  strerror_s example 
//
//  Created by Ariel Feinerman on 23/02/17.
//  Copyright  2017 Feinerman Research, Inc. All rights reserved.
*/

#define __STDC_WANT_LIB_EXT1__ 1
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include <errno.h>

int main(int argc, const char * argv[]) 
{
    // Generate unique filename.
    char *file_name = tmpnam((char[L_tmpnam]){0});
	
    errno = 0;
    FILE *file = fopen(file_name, "rb");
    // Save error number. 
    errno_t error_num = errno;

    if (file) {
        // Do something useful. 
        fclose(file);
    }
    else {
#ifdef __STDC_LIB_EXT1__
    size_t error_len = strerrorlen_s(errno) + 1;
    char error_buf[error_len];
    strerror_s(error_buf, error_len, errno);
    fprintf(stderr, "Error message : %sn", error_buf);
#endif
    }
	
    return EXIT_SUCCESS;
}

Функции входят в Annex K (Bounds-checking interfaces), вызвавший много споров. Он не обязателен к выполнению и целиком не реализован ни в одной из свободных библиотек. Open Watcom C/C++ (Windows), Slibc (GNU libc) и Safe C Library (POSIX), в последней, к сожалению, именно эти две функции не реализованы. Тем не менее, их можно найти в коммерческих средах разработки и системах реального времени, Embarcadero RAD Studio, INtime RTOS, QNX.

Стандарт POSIX.1-2008 определяет следующие функции:

char *strerror_l(int errnum, locale_t locale);

Возвращает строку, содержащую локализованное описание ошибки errnum, используя locale. Безопасна в многопоточной среде. Не реализована в Mac OS X, FreeBSD, NetBSD, OpenBSD, Solaris и прочих коммерческих UNIX. Реализована в Linux, MINIX 3 и Illumos (OpenSolaris).

Пример:

/*
 //  main.c
 //  strerror_l example – works on Linux, MINIX 3, Illumos
 //
 //  Created by Ariel Feinerman on 23/03/17.
 //  Copyright  2017 Feinerman Research, Inc. All rights reserved.
 */

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include <errno.h>

#include <locale.h>

int main(int argc, const char * argv[]) 
{
    locale_t locale = newlocale(LC_ALL_MASK, "fr_FR.UTF-8", (locale_t) 0);
    
    if (!locale) {
        fprintf(stderr, "Error: cannot create locale.");
        exit(EXIT_FAILURE);
    }

    // Generate unique filename.
    char *file_name = tmpnam((char[L_tmpnam]){0});
	
    errno = 0;
    FILE *file = fopen(tmpnam(file_name, "rb");
    // Save error number. 
    errno_t error_num = errno;

    if (file) {
        // Do something useful. 
        fclose(file);
    }
    else {
        char *error_buf = strerror_l(errno, locale);
        fprintf(stderr, "Error message : %sn", error_buf);
    }
	
    freelocale(locale);
	
    return EXIT_SUCCESS;
}

Вывод:

Error message : Aucun fichier ou dossier de ce type

int strerror_r(int errnum, char *buf, size_t buflen);

Копирует строку с описание ошибки errnum в буфер buf длиной buflen. Если buflen меньше длины строки, лишнее обрезается. Безопасна в многоготочной среде. Реализована во всех UNIX.

Пример:

/*
//  main.c
//  strerror_r POSIX example
//
//  Created by Ariel Feinerman on 25/02/17.
//  Copyright  2017 Feinerman Research, Inc. All rights reserved.
*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include <errno.h>

#define MSG_LEN 1024 

int main(int argc, const char * argv[]) 
{
    // Generate unique filename.
    char *file_name = tmpnam((char[L_tmpnam]){0});
    
    errno = 0;
    FILE *file = fopen(file_name, "rb");
    // Save error number. 
    errno_t error_num = errno;	
	
    if (file) {
        // Do something useful.
        fclose(file);
    }
    else {
        char error_buf[MSG_LEN];
        errno_t error = strerror_r (error_num, error_buf, MSG_LEN);
		
        switch (error) {
            case EINVAL:
                    fprintf (stderr, "strerror_r() failed: invalid error code, %dn", error);
                    break;
            case ERANGE:
                    fprintf (stderr, "strerror_r() failed: buffer too small: %dn", MSG_LEN);
            case 0:
                    fprintf(stderr, "Error message : %sn", error_buf);
                    break;
            default: 
                    fprintf (stderr, "strerror_r() failed: unknown error, %dn", error);
                    break;
        }
    }
    
    return EXIT_SUCCESS;
}

Увы, никакого аналога strerrorlen_s() в POSIX не определили, поэтому длину строки можно выяснить лишь экспериментальным путём. Обычно 300 символов хватает за глаза. GNU C Library в реализации strerror() использует буфер длиной в 1024 символа. Но мало ли, а вдруг?

Пример:

/*
 //  main.c
 //  strerror_r safe POSIX example
 //
 //  Created by Ariel Feinerman on 23/03/17.
 //  Copyright  2017 Feinerman Research, Inc. All rights reserved.
 */

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include <errno.h>

#define MSG_LEN 1024 
#define MUL_FACTOR 2

int main(int argc, const char * argv[]) 
{
    // Generate unique filename.
    char *file_name = tmpnam((char[L_tmpnam]){0});
	
    errno = 0;
    FILE *file = fopen(file_name, "rb");
    // Save error number. 
    errno_t error_num = errno;
	
    if (file) {
        // Do something useful.
        fclose(file);
    }
    else {
        errno_t error = 0;
        size_t error_len = MSG_LEN; 
		
        do {
            char error_buf[error_len];
            error = strerror_r (error_num, error_buf, error_len);
            switch (error) {
                    case 0:
                            fprintf(stderr, "File : %snLine : %dnCurrent function : %s()nFailed function : %s()nError message : %sn", __FILE__, __LINE__, __func__, "fopen", error_buf);
	                    break;
                    case ERANGE: 
                            error_len *= MUL_FACTOR;
                            break;
                    case EINVAL: 
                            fprintf (stderr, "strerror_r() failed: invalid error code, %dn", error_num);
                            break;
                    default:
                            fprintf (stderr, "strerror_r() failed: unknown error, %dn", error);
                            break;
            }
			
        } while (error == ERANGE);
    }
    
    return EXIT_SUCCESS;
}

Вывод:

File : /Users/ariel/main.c
Line : 47
Current function : main()
Failed function : fopen()
Error message : No such file or directory

Макрос assert()

<assert.h>

void assert(expression)

Макрос, проверяющий условие expression (его результат должен быть числом) во время выполнения. Если условие не выполняется (expression равно нулю), он печатает в stderr значения __FILE__, __LINE__, __func__ и expression в виде строки, после чего вызывает функцию abort().

/*
//  main.c
//  assert example
//
//  Created by Ariel Feinerman on 23/03/17.
//  Copyright  2017 Feinerman Research, Inc. All rights reserved.
*/

#include <stdio.h>
#include <stdlib.h>
#include <assert.h>

#include <math.h>

int main(int argc, const char * argv[]) {
    double x = -1.0;
    assert(x >= 0.0);
    printf("sqrt(x) = %fn", sqrt(x));   
    
    return EXIT_SUCCESS;
}

Вывод:

Assertion failed: (x >= 0.0), function main, file /Users/ariel/main.c, line 17.

Если макрос NDEBUG определён перед включением <assert.h>, то assert() разворачивается в ((void) 0) и не делает ничего. Используется в отладочных целях.

Пример:

/*
//  main.c
//  assert_example
//
//  Created by Ariel Feinerman on 23/03/17.
//  Copyright  2017 Feinerman Research, Inc. All rights reserved.
*/

#NDEBUG

#include <stdio.h>
#include <stdlib.h>
#include <assert.h>

#include <math.h>

int main(int argc, const char * argv[]) {
    double x = -1.0;
    assert(x >= 0.0);
    printf("sqrt(x) = %fn", sqrt(x));   
    
    return EXIT_SUCCESS;
}

Вывод:

sqrt(x) = nan

Функции atexit(), exit() и abort()

<stdlib.h>

int atexit(void (*func)(void));

Регистрирует функции, вызываемые при нормальном завершении работы программы в порядке, обратном их регистрации. Можно зарегистрировать до 32 функций.

_Noreturn void exit(int exit_code);

Вызывает нормальное завершение программы, возвращает в среду число exit_code. ISO C стандарт определяет всего три возможных значения: 0, EXIT_SUCCESS и EXIT_FAILURE. При этом вызываются функции, зарегистрированные через atexit(), сбрасываются и закрываются потоки ввода — вывода, уничтожаются временные файлы, после чего управление передаётся в среду. Функция exit() вызывается в main() при выполнении return или достижении конца программы.

Главное преимущество exit() в том, что она позволяет завершить программу не только из main(), но и из любой вложенной функции. К примеру, если в глубоко вложенной функции выполнилось (или не выполнилось) некоторое условие, после чего дальнейшее выполнение программы теряет всякий смысл. Подобный приём (early exit) широко используется при написании демонов, системных утилит и парсеров. В интерактивных программах с бесконечным главным циклом exit() можно использовать для выхода из программы при выборе нужного пункта меню.

Пример:

/*
//  main.c
//  exit example
//
//  Created by Ariel Feinerman on 17/03/17.
//  Copyright  2017 Feinerman Research, Inc. All rights reserved.
*/

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

void third_2(void) 
{
    printf("third #2n");          // Does not print.
}

void third_1(void) 
{
    printf("third #1n");          // Does not print.
}

void second(double num) 
{
    printf("second : before exit()n");	// Prints.
    
    if ((num < 1.0f) && (num > -1.0f)) {
        printf("asin(%.1f) = %.3fn", num, asin(num));
        exit(EXIT_SUCCESS);
    }
    else {
        fprintf(stderr, "Error: %.1f is beyond the range [-1.0; 1.0]n", num);
        exit(EXIT_FAILURE);
    }
    
    printf("second : after exit()n");	// Does not print.
}

void first(double num) 
{
    printf("first : before second()n")
    second(num);
    printf("first : after second()n");          // Does not print.
}

int main(int argc, const char * argv[]) 
{
    atexit(third_1); // Register first handler. 
    atexit(third_2); // Register second handler.
    
    first(-3.0f);
    
    return EXIT_SUCCESS;
}

Вывод:

first : before second()
second : before exit()
Error: -3.0 is beyond the range [-1.0; 1.0]
third #2
third #1

_Noreturn void abort(void);

Вызывает аварийное завершение программы, если сигнал не был перехвачен обработчиком сигналов. Временные файлы не уничтожаются, закрытие потоков определяется реализацией. Самое главное отличие вызовов abort() и exit(EXIT_FAILURE) в том, что первый посылает программе сигнал SIGABRT, его можно перехватить и произвести нужные действия перед завершением программы. Записывается дамп памяти программы (core dump file), если они разрешены. При запуске в отладчике он перехватывает сигнал SIGABRT и останавливает выполнение программы, что очень удобно в отладке.

Пример:

/*
//  main.c
//  abort example
//
//  Created by Ariel Feinerman on 17/02/17.
//  Copyright  2017 Feinerman Research, Inc. All rights reserved.
*/

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

void third_2(void) 
{
    printf("third #2n");          // Does not print.
}

void third_1(void) 
{
    printf("third #1n");          // Does not print.
}

void second(double num) 
{
    printf("second : before exit()n");	// Prints.
    
    if ((num < 1.0f) && (num > -1.0f)) {
        printf("asin(%.1f) = %.3fn", num, asin(num));
        exit(EXIT_SUCCESS);
    }
    else {
        fprintf(stderr, "Error: %.1f is beyond the range [-1.0; 1.0]n", num);
        abort();
    }
    
    printf("second : after exit()n");	// Does not print.
}

void first(double num) 
{
    printf("first : before second()n");
    second(num);
    printf("first : after second()n");          // Does not print.
}

int main(int argc, const char * argv[]) 
{
    atexit(third_1); // register first handler 
    atexit(third_2); // register second handler
    
    first(-3.0f);
    
    return EXIT_SUCCESS;
}

Вывод:

first : before second()
second : before exit()
Error: -3.0 is beyond the range [-1.0; 1.0]
Abort trap: 6

Вывод в отладчике:

$ lldb abort_example 
(lldb) target create "abort_example"
Current executable set to 'abort_example' (x86_64).
(lldb) run
Process 22570 launched: '/Users/ariel/abort_example' (x86_64)
first : before second()
second : before exit()
Error: -3.0 is beyond the range [-1.0; 1.0]
Process 22570 stopped
* thread #1: tid = 0x113a8, 0x00007fff89c01286 libsystem_kernel.dylib`__pthread_kill + 10, queue = 'com.apple.main-thread', stop reason = signal SIGABRT
    frame #0: 0x00007fff89c01286 libsystem_kernel.dylib`__pthread_kill + 10
libsystem_kernel.dylib`__pthread_kill:
->  0x7fff89c01286 <+10>: jae    0x7fff89c01290            ; <+20>
    0x7fff89c01288 <+12>: movq   %rax, %rdi
    0x7fff89c0128b <+15>: jmp    0x7fff89bfcc53            ; cerror_nocancel
    0x7fff89c01290 <+20>: retq   
(lldb) 

В случае критической ошибки нужно использовать функцию abort(). К примеру, если при выделении памяти или записи файла произошла ошибка. Любые дальнейшие действия могут усугубить ситуацию. Если завершить выполнение обычным способом, при котором производится сброс потоков ввода — вывода, можно потерять ещё неповрежденные данные и временные файлы, поэтому самым лучшим решением будет записать дамп и мгновенно завершить программу.

В случае же некритической ошибки, например, вы не смогли открыть файл, можно безопасно выйти через exit().

Функции setjmp() и longjmp()

Вот мы и подошли к самому интересному – функциям нелокальных переходов. setjmp() и longjmp() работают по принципу goto, но в отличие от него позволяют перепрыгивать из одного места в другое в пределах всей программы, а не одной функции.

<setjmp.h>

int setjmp(jmp_buf env);

Сохраняет информацию о контексте выполнения программы (регистры микропроцессора и прочее) в env. Возвращает 0, если была вызвана напрямую или value, если из longjmp().

void longjmp(jmp_buf env, int value);

Восстанавливает контекст выполнения программы из env, возвращает управление setjmp() и передаёт ей value.

Пример:

/*
//  main.c
//  setjmp simple
//
//  Created by Ariel Feinerman on 18/02/17.
//  Copyright  2017 Feinerman Research, Inc. All rights reserved.
*/

#include <stdio.h>
#include <stdlib.h>
#include <setjmp.h>

static jmp_buf buf;

void second(void) 
{
    printf("second : before longjmp()n");	// prints
    longjmp(buf, 1);						// jumps back to where setjmp was called – making setjmp now return 1
    printf("second : after longjmp()n");	// does not prints
	
    // <- Here is the point that is never reached. All impossible cases like your own house in Miami, your million dollars, your nice girl, etc.
}

void first(void) 
{
    printf("first : before second()n");
    second();
    printf("first : after second()n");          // does not print
}

int main(int argc, const char * argv[]) 
{
    if (!setjmp(buf))
        first();                // when executed, setjmp returned 0
    else                        // when longjmp jumps back, setjmp returns 1
        printf("mainn");       // prints
    
    return EXIT_SUCCESS;
}

Вывод:

first : before second()
second : before longjmp()
main

Используя setjmp() и longjmp() можно реализовать механизм исключений. Во многих языках высокого уровня (например, в Perl) исключения реализованы через них.

Пример:

/*
//  main.c
//  exception simple
//
//  Created by Ariel Feinerman on 18/02/17.
//  Copyright  2017 Feinerman Research, Inc. All rights reserved.
*/

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

#include <setjmp.h>

#define str(s) #s

static jmp_buf buf;

typedef enum {
    NO_EXCEPTION    = 0,
    RANGE_EXCEPTION = 1,
    NUM_EXCEPTIONS
} exception_t;

static char *exception_name[NUM_EXCEPTIONS] = {
	
    str(NO_EXCEPTION),
    str(RANGE_EXCEPTION)
};

float asin_e(float num) 
{
    if ((num < 1.0f) && (num > -1.0f)) {
        return asinf(num);
    }	
    else {
        longjmp(buf, RANGE_EXCEPTION);        // | @throw  
    }
}

void do_work(float num) 
{
    float res = asin_e(num);
    printf("asin(%f) = %fn", num, res);         
}

int main(int argc, const char * argv[]) 
{
    exception_t exc = NO_EXCEPTION;
    if (!(exc = setjmp(buf))) {        // |	
        do_work(-3.0f);                // | @try
    }                                  // |
    else {                                                                               // | 
        fprintf(stderr, "%s was hadled in %s()n", exception_name[exc], __func__);       // | @catch
    }                                                                                    // | 
	
    return EXIT_SUCCESS;
}

Вывод:

RANGE_EXCEPTION was hadled in main()

Внимание! Функции setjmp() и longjmp() в первую очередь применяются в системном программировании, и их использование в клиентском коде не рекомендуется. Их применение ухудшает читаемость программы и может привести к непредсказуемым ошибкам. Например, что произойдёт, если вы прыгните не вверх по стеку – в вызывающую функцию, а в параллельную, уже завершившую выполнение?

Информация

  • стандарт ISO/IEC C (89/99/11)
  • Single UNIX Specifcation, Version 4, 2016 Edition
  • The Open Group Base Specifcations Issue 7, 2016 Edition (POSIX.1-2008)
  • SEI CERT C Coding Standard
  • cправочная информация среды программирования
  • справочная информация операционной системы (man pages)
  • заголовочные файлы (/usr/include)
  • исходные тексты библиотеки (C Standard Library)

Главная / Программирование /
Java: основы / Тест 1

Упражнение 1:


Номер 1

Какие из нижеперечисленных комментариев в Java-программах могут содержать более одной строки?

Ответ:

(1) // MyClass 

(2) 'MyClass' 

(3) ## MyClass 

(4) /** MyClass */ 

(5) /* MyClass */ 


Номер 2

Какие из нижеперечисленных комментариев не могут быть использованы в Java-программах?

Ответ:

(1) // MyClass 

(2) 'MyClass' 

(3) ## MyClass 

(4) /** MyClass */ 

(5) /* MyClass */ 


Номер 3

Какой из нижеперечисленных видов комментариев в Java-программах используется для определения однострочного комментария?

Ответ:

(1) // MyClass 

(2) 'MyClass' 

(3) ## MyClass 

(4) /** MyClass */ 

(5) /* MyClass */ 


Номер 4

Какой из нижеприведенных комментариев является документационным Java-комментарием (JavaDoc)?

Ответ:

(1) // MyClass 

(2) 'MyClass' 

(3) ## MyClass 

(4) /** MyClass */ 

(5) /* MyClass */ 


Номер 5

Какой из нижеприведенных комментариев является однострочным Java-комментарием?

Ответ:

(1) // MyClass 

(2) 'MyClass' 

(3) ## MyClass 


Номер 6

Какие из нижеперечисленных комментариев не являются Java-комментариями?

Ответ:

(1) // MyClass 

(2) 'MyClass' 

(3) ## MyClass 

(4) /** MyClass */ 

(5) /* MyClass */ 


Упражнение 2:


Номер 1

Что из перечисленного относится к ключевым словам?

Ответ:

(1) catch 

(2) none 

(3) native 

(4) strictfp 

(5) False 


Номер 2

Что из перечисленного является зарезервированным, но не используемым ключевым словом?

Ответ:

(1) catch 

(2) package 

(3) private 

(4) goto 

(5) break 


Номер 3

Что из перечисленного верно?

Ответ:

(1) Ключевые слова можно переопределять 

(2) Значение ключевого слова зависит от его местонахождения в коде 

(3) Ключевые слова можно использовать как идентификаторы 

(4) Некоторые ключевые слова зарезервированы, но не используются 


Номер 4

Что из перечисленного относится к ключевым словам?

Ответ:

(1) try 

(2) except 

(3) true 

(4) repeat 

(5) struct 


Номер 5

Какие из нижеперечисленных ключевых слов являются модификаторами доступа?

Ответ:

(1) package 

(2) private 

(3) volatile 

(4) abstract 

(5) extends 


Номер 6

Какое определение верно?

Ответ:

(1)
Ключевые слова – это имена, которые даются различным элементам языка для упрощения доступа к ним
 

(2)
Ключевые слова – это зарезервированные слова, состоящие из ASCII-символов
 

(3)
Ключевые слова — другое название литералов
 

(4)
Ключевые слова – это зарезервированные слова, которые используются для ввода пояснений к программе
 


Упражнение 3:


Номер 1

Что из нижеприведенного вызовет ошибку компиляции?

Ответ:

(1) int @x = 5; 

(2) int $x = 5; 

(3) int _x_ = 5; 

(4) int $x# = 5; 

(5) int $x_ = 5; 


Номер 2

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

1 public class Test {
2	public static void main (String args[]) {
3       int a = 2;
4       int __b = 3;
5       int _c_ = a + __B;
6       int d = _c_ * 3;
7       System.out.println( "end" );
8	}
9 }

Ответ:

(1) будет выдано сообщение «end» 

(2) сообщение не будет выдано, потому что строка 4 содержит ошибку 

(3) сообщение не будет выдано, потому что строка 5 содержит ошибку 

(4) сообщение не будет выдано, потому что строка 6 содержит ошибку 


Номер 3

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

1    public static void main( String[] args ) {
2        int _@check = 5;
3        System.out.println( check(_@check) );
4    }
5
6    private static boolean check( int x ) {
7        return x < 0;
8    }

Ответ:

(1) будет выдано сообщение об ошибке связанное с невозможностью обозначения переменной именем функции 

(2) будет выдано сообщение об ошибке связанное с недопустимым названием переменной 

(3) false 

(4) true 


Номер 4

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

1 public class MyClass {
2	public static void main (String args[]) {
3		int a = 1;
4		int b = 2;
5		int c;
6		int $a4 = 0;
7		int 4q = 11;
8		System.out.println("These are integers");
9	}
10 }

Ответ:

(1) будет выдано сообщение «These are integers» 

(2) сообщение не будет выдано, потому что строка 5 содержит ошибку 

(3) сообщение не будет выдано, потому что строка 6 содержит ошибку 

(4) сообщение не будет выдано, потому что строка 7 содержит ошибку 

(5) сообщение не будет выдано, так как параметр args не используется в функции main() 


Номер 5

Что из нижеприведенного вызовет ошибку компиляции?

Ответ:

(1) int null = 5; 

(2) int _null = 5; 

(3) int 1null = 5; 

(4) int null1 = 5; 

(5) int $null = 5; 


Номер 6

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

1    public static void main( String[] args ) {
2        int check = 5;
3        System.out.println( check(check) );
4    }
5
6    private static boolean check( int x ) {
7        return x < 0;
8    }

Ответ:

(1) будет выдано сообщение об ошибке связанное с невозможностью обозначения переменной именем функции 

(2) будет выдано сообщение об ошибке связанное с тем, что функция check вызывет саму себя 

(3) false 

(4) true 


Упражнение 4:


Номер 1

Что из нижеперечисленного является допустимой записью шестнадцатиричного литерала?

Ответ:

(1) 0A 

(2) 0xaBc 

(3) 0Xf 

(4) 0XGea 

(5) 0xDEC 


Номер 2

Что из перечисленного вызовет ошибку компиляции?

Ответ:

(1) double a = 5f+3d; 

(2) double a = 5d+3e-1; 

(3) double a = 5e+3e-1; 

(4) double a = 5e+1+3e-1; 

(5) double a = 5d+3e+1; 


Номер 3

Каким образом заполнить строку 2 нижеследующего фрагмента программы, чтобы на экран было
выведено число2.5?

1 double a;
2
3 System.out.print(a);

Ответ:

(1) a = 5/2; 

(2) a = 5./2; 

(3) a = 5e-0/2; 

(4) a = 5/2.0; 

(5) a = 5; a /= 2;; 


Номер 4

Что из нижеперечисленного является допустимой записью восьмеричного литерала?

Ответ:

(1) 8 

(2) 07 

(3) 08 

(4) 010 

(5) 0x8 


Номер 5

Укажите ответы, где приведены допустимые определения дробных литералов типа:

Ответ:

(1) double b = .15f; 

(2) double b = 1e; 

(3) double b = 1e-5; 

(4) double b = 1.; 


Номер 6

Что из нижеперечисленного не вызовет ошибку компиляции?

Ответ:

 

(1)

int val=5;
if(val==5){}

 

 

(2)

int val=5;
if(val!=5){}

 

 

(3)

int val=5;
if(val<>5){}

 

 

(4)

int val=5;
if(val||5){}

 

 

(5)

int val=5;
if(val=5){}

 


Упражнение 5:


Номер 1

Укажите правильные определения переменных типа char:

Ответ:

(1) char a = 'a'; 

(2) char a = "a"; 

(3) char a = 20+80; 

(4) int i = 5;char a = (char) i; 

(5) char a = 1000; 


Номер 2

Какие из перечисленных значений может принимать переменная булевского типа?

Ответ:

(1) true 

(2) 1 

(3) 0 

(4) false 

(5) ни одного из вышеперечисленных 


Номер 3

Укажите переменные какого типа данных могут быть проинициализированы начальным значением 'a'?

Ответ:

(1) char 

(2) double 

(3) short 

(4) int 

(5) boolean 


Номер 4

Укажите ответы, где приведены правильные определения переменных целого типа:

Ответ:

(1) long a = 15; 

(2) double n, k, l; 

(3) integer q, q1; 

(4) float q1, q2; 

(5) short b, c; 


Номер 5

Укажите правильные определения переменных типа с плавающей точкой:

Ответ:

(1) long a = 15; 

(2) double n, k, l; 

(3) integer q, q1; 

(4) float q1, q2; 


Номер 6

Укажите правильные определения переменных булевского типа:

Ответ:

(1) bool a = true; 

(2) boolean a = false; 

(3) bool a = 1; 

(4) boolean = 1; 

(5) boolean a = true; 


Упражнение 6:


Номер 1

Результат каких из перечисленных выражений будет иметь булевский тип?

Ответ:

(1) !6 

(2) 6 == 11 

(3) 6 < 11 

(4) 6 > 11 


Номер 2

Результат какого из перечисленных выражений будет иметь булевский тип?

Ответ:

(1) !6 

(2) 6 > 11 

(3) 6 <> 11 

(4) 6 || 11 


Номер 3

Результат каких из перечисленных выражений может быть присвоен переменной булевского типа?

Ответ:

(1) 6 != 5 

(2) 6 > 11 

(3) 6 <> 11 

(4) 6 + 11 


Номер 4

Результат каких из перечисленных выражений будет иметь булевский тип?

Ответ:

(1) a = 10 

(2) 11 = 11 

(3) 6 < 10 

(4) a == 7 

(5) 111 < 4 & 24 : 2 


Номер 5

Результат какого из перечисленных выражений будет иметь булевский тип?

Ответ:

(1) a = 10 

(2) 1 == 1 

(3) 6 | 10 

(4) flag == 1 

(5) (111 < 4) & 24 


Номер 6

Результат какого из перечисленных выражений будет иметь булевский тип?

Ответ:

(1) !6 

(2) 6 = 11 

(3) 6 < 11 

(4) 6 && 11 

(5) 6 <> 11 


Упражнение 7:


Номер 1

Укажите все варианты  кодов, которыми следует дополнить первую строку программы, чтобы следующий фрагмент программы выполнился без ошибок?

1 …
2 for (; i > 0; i--)
3	a = Math.sqrt(i);

Ответ:

(1) double i = 5, a = 0; 

(2) short i = 6, a = 0; 

(3) int i = 6; double a = 0; 

(4) int i = 5; 

(5) long i = 5, a = 0 


Номер 2

Укажите все варианты  кодов, которыми следует дополнить первую строку программы, чтобы следующий фрагмент программы выполнился без ошибок?

1 …
2 for (; i > 0; i--)
3	a = Math.cos(i);

Ответ:

(1) long i = 5; 

(2) short i = 6, a = 0; 

(3) int i = 6; double a = 0; 

(4) int i = 5; 

(5) long i = 5; double a = 0 


Номер 3

Каким кодом следует дополнить первую строку программы, чтобы следующий фрагмент программы выполнился без ошибок?

1 …
2 if (b)
3 System.out.print("ok");

Ответ:

(1) long b = 5; 

(2) boolean b = 5 && 6; 

(3) double b = 0; 

(4) 2 и 3 

(5) ни одним из перечисленных 


Номер 4

Какой код может дополнить первую строку программы, чтобы результатом работы в выходном потоке стала строка 0123456789?

1 …
2 for (; i < 10; i++)
3	System.out.print(i);

Ответ:

(1) boolean i = 0; 

(2) short i = 0; 

(3) int i = 1; 

(4) int i = 0; 

(5) long i = 0; 


Номер 5

Укажите все варианты кода, которыми следует дополнить первую строку 
программы, чтобы результатом работы в выходном потоке стала строка 0123456789?

1 …
2 for (; i < 10; i++)
3	System.out.print(i);

Ответ:

(1) boolean i = 10; 

(2) short i = 0; 

(3) int i = 0; 

(4) int i = 1; 


Номер 6

Укажите все варианты кода, которыми следует дополнить первую строку программы, чтобы результатом работы в выходном потоке стала строка 654321?

1 …
2 for (; i > 0; i--)
3	System.out.print(i);

Ответ:

(1) boolean i = 5; 

(2) short i = 6; 

(3) int i = 6; 

(4) int i = 5; 

(5) long i = 5; 


Упражнение 8:


Номер 1

При условии, что коды символов 'a' и 'b' равны 97 и 98 соответственно, укажите, что будет выведено на экран в результате выполнения следующего фрагмента программы?
 
char ch = 'a';
char ch1 = 'b';
System.out.print(ch1 + ch2);

Ответ:

(1) сообщение об ошибке 

(2) a + b 

(3) 97 + 98 

(4) 195 

(5) NaN 


Номер 2

При условии,что коды символов 'a' и 'b' равны 97 и 98 соответственно, укажите, что будет выведено на экран в результате выполнения следующего фрагмента программы?
 
char ch1 = 'a';
char ch2 = 'b';
System.out.print(ch1 * ch2);
System.out.print(ch1 + ch2);

Ответ:

(1) сообщение об ошибке 

(2) 9506195  

(3) a + b 

(4) 9506a + b 

(5) NaNNaN 


Номер 3

При условии, что коды символов 'a' и 'b' равны 97 и 98 соответственно, укажите, что будет выведено на экран в результате выполнения следующего фрагмента программы?
 
char ch1 = 'a';
char ch2 = 'b';
System.out.print(ch1 + " + " + ch2);

Ответ:

(1) сообщение об ошибке 

(2) 9506195  

(3) a + b 

(4) 9506a + b 

(5) NaNNaN 


Номер 4

При условии, что 97 представляет собой код символа 'a', укажите, что будет выведено на экран в результате выполнения следующего фрагмента программы?
 
char ch = 'a';
char ch1 ;
int code = 98 ;
ch1 = (char)code ;
System.out.print(ch);
System.out.print(ch1);

Ответ:

(1) будет выдано сообщение об ошибке 

(2) a b 

(3) 9798 

(4) ab 

(5) NaNNaN 


Номер 5

При условии, что коды символов 'a' и 'b' равны 97 и 98 соответственно, укажите, что будет выведено на экран в результате выполнения следующего фрагмента программы?
 
char ch = 'a';
char ch1 = 'b';
System.out.print((int)ch);
System.out.print((double)ch1);

Ответ:

(1) сообщение об ошибке 

(2) a b 

(3) 9798.0 

(4) 9798 

(5) NaNNaN 


Номер 6

При условии, что коды символов 'a' и 'b' равны 97 и 98 соответственно, укажите, что будет выведено на экран в результате выполнения следующего фрагмента программы?
 
char ch1 = 'a';
char ch2 = 'b';
System.out.print(ch1 + ch2);

Ответ:

(1) сообщение об ошибке 

(2) a + b 

(3) 97 + 98 

(4) 195 

(5) NaNNaN 


Упражнение 9:


Номер 1

Какие строки содержат ошибки в объявлении переменных?

Ответ:

(1) int a = 'a'; 

(2) char b = 'a'; 

(3) int = 'c'; 

(4) boolean b = 'a'; 

(5) char a = 100; 


Номер 2

Какие строки не содержат ошибок в объявлении переменных?

Ответ:

(1) int a = 'a'; 

(2) char b = 'a'; 

(3) int = 'c'; 

(4) boolean b = 'a'; 

(5) char a = 100; 


Номер 3

Какие строки не содержат ошибок в объявлении переменных?

Ответ:

(1) short code = 'a'; 

(2) char a = b = 'a'; 

(3) short = 'c'; 

(4) boolean = 'a'; 

(5) char a = 98; 


Номер 4

Укажите варианты ответа, которые содержат ошибки в объявлении переменных?

Ответ:

(1) float , b = 3.14; 

(2) int a, b, c = 14; 

(3) byte pi = 3.14; 

(4) double g = 9.8; 

(5) int z, d = 1L; 


Номер 5

Какие строки содержат ошибки в объявлении переменных?

Ответ:

(1) double b = 3.14; 

(2) int a; b, c = 14; 

(3) byte pi = 3.14; 

(4) double g = 9.8; 

(5) long z, d = 1L; 


Номер 6

Какие строки содержат ошибки в объявлении переменных?

Ответ:

(1) boolean b = 1; 

(2) int a = 11, b, c = 14; 

(3) double pi = 3.14; 

(4) double g = 9.8; 

(5) long z = 1.1; 


Упражнение 10:


Номер 1

Укажите варианты без ошибок:

Ответ:

(1) double d = 1, f = 2l; 

(2) double = 1, f = 2d 

 

(3)

byte a = ‘a’;
boolean b = true && a;

 

 

(4)

int a = 2, b = 3;
short c = a / b;

 

 

(5)

short a = 2, b = 3;
int c = a / b;

 


Номер 2

Укажите варианты без ошибок:

Ответ:

 

(1)

double PI = 3.14;
int r = 2;
double h = 4.5;
int vol = (int)PI * r * r * (int)h;

 

 

(2)

double PI = 3.14;
int r = 2;
double h = 4.5;
int vol = (int)PI * r * r * h;

 

 

(3)

double PI = 3.14;
int r1 = 2;
int r2 = 1;
double h = 4.5;
int vol = (int)PI * (r1 — r2) * (int)h;

 

 

(4)

double PI = 3.14;
int r = 2;
double h = 4.5;
int vol = PI * r * r * h;

 

 

(5)

double PI = 3.14;
int r = 2;
int r1 = 2;
int r2 = 1;
double h = 4.5;
int vol = PI * (r1 — r2) * (int)h;

 


Номер 3

Укажите варианты без ошибок:

Ответ:

 

(1)

double volume;
int r1=1;
double h = 15;
volume = Math.PI * r1 * r1 * h / 8;

 

 

(2)

double volume;
int r1=1;
double h = 15;
volume = PI * r1 * r1 * h / 8;

 

 

(3)

double volume;
double r1=1;
double h = 15;
volume = Math.PI * r1 * r1 * h / 8;

 

 

(4)

double volume;
double r1=1;
double h = 15;
volume = PI * r1 * r1 * h / 8;

 

 

(5)

double volume;
int r1;
double h = 15;
volume = Math.PI * r1 * r1 * h / 8;

 


Номер 4

Укажите варианты кода без ошибок (учитывая, что никакие переменные не были предварительно объявлены и/или инициализированы):

Ответ:

(1) int a = 1, b = a; 

(2) int a = b = c; 

 

(3)

int a = 2, b = 3;
double c = a / b;

 

 

(4)

int a = 2, b = 3.0;
double c = a / b;

 

 

(5)

double a = 2, b = 3.0;
int c = a / b;

 


Номер 5

Укажите варианты кода без ошибок:

Ответ:

(1) int a = 6, b = 3, c = (a*a + b*b) / 1.5; 

(2) double a = 6, b = 3, c = (a*a + b*b) / 1.5; 

 

(3)

int a = 4, b = 3;
double c = (a*a + b*b) / 1.5;

 

 

(4)

int a = 4, b = 3;
double c = (a*a + d*d) / 1.5;

 

 

(5)

int a = 4, b = 3, c;
double c = (a*a + b*b) / 1.5;

 


Номер 6

Укажите варианты кода без ошибок:

Ответ:

(1) int a, b = a; 

 

(2)

int x = 10;
byte b = x;
 

 

(3)

short x = 10;
int b = x;

 

 

(4)

float f = 10;
double d = f;

 

 

(5)

float f = 10;
int d = f;

 


Упражнение 11:


Номер 1

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

int a = 15;
System.out.print(a);
{
	a ++;
	System.out.print(a);
}
System.out.print(a);

Ответ:

(1) сообщение об ошибке 

(2) 151615 

(3) 151616 

(4) 151516 


Номер 2

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

int a = 15;
System.out.print(a);
{
    int a = 16;
	a ++;
	System.out.print(a);
}
System.out.print(a);

Ответ:

(1) сообщение об ошибке 

(2) 151615 

(3) 151616 

(4) 151516 

(5) 151515 


Номер 3

Фрагмент программы вычисляет значение логической функции. Какие изменение необходимо внести в код, чтобы на экран было выведено true?

1 boolean a = true;
2 {
3	boolean b = false;
4	{
5		boolean c = false;
6	}
7 }
8 System.out.print(a&!b|c);

Ответ:

(1) изменить значение переменной b на true

(2) изменить значение переменной c на true

(3) удалить операторные скобки из строк 2, 4, 6, 7; 

(4) изменить значение переменной a на false


Номер 4

Программа реализует алгоритм обмена значениями двух переменных без использования третьей. Результатом выполнения указанного кода стало сообщение об ошибке. Укажите возможные способы устранения ошибки.

1		public static void main (String args[]) {
2			{
3				int a = 5;
4				{
5					int b = 6;
6					{
7						b = b - a;
8						a = a + b;
9						b = a - b;
10					}			
11				}
12              System.out.println(a + b);
13			}
14		}
15	}

Ответ:

(1) удалить фигурные скобки из строк 6, 10 

(2) удалить фигурные скобки из строк 4, 11 

(3) следует удалить все блоки, включенные в блок главной функции 

(4) определения обеих переменных следует вынести на строку 3 

(5) содержимое строки 12 следует включить в предыдущий блок 

(6) удалить фигурные скобки из строк 2, 4, 6, 10, 11, 13 


Номер 5

Что выведет следующий код?

int a = 0;
int b = 1;
System.out.print(a);
System.out.print(a + b);
System.out.print(b);

Ответ:

(1) aabb 

(2) 011 

(3) 001 

(4) a=0 a+b=1 b=1 


Номер 6

Какое изменение может быть внесено в код, чтобы на экран была выведена последовательность 34?

1	int a = 1;
2	{
3		int b = 2;
4		System.out.print(a + b);
5	}
6	int b = 3;
7	System.out.print(a + b);

Ответ:

(1) содержимое строки 6 заменить на a = 2 

(2) удалить содержимое строки 6, перед строкой 5 добавить b = 3 

(3) содержимое строки 1 перенести в строку 4 

(4) удалить фигурные скобки из строк 2 и 5  

(5) никаких изменений вносить не нужно 


Упражнение 12:


Номер 1

Отрывок программы вывел на экран последовательность 991. Каким образом необходимо изменить программу, чтобы на экране отобразилась последовательность 9999?

1 {
2	int a = 99;
3	a ++;
4	System.out.print(a);
5 }
6 int a = 1;
7 System.out.print(a);

Ответ:

(1) добавить перед строкой 5 оператор System.out.print(a); 

(2) удалить содержимое строки 6 и скобки из строк 1, 5 

(3) удалить содержимое строки 4 и скобки из строк 1, 5 

(4) добавить после строки 5 оператор System.out.print(a); 

(5) изменить строку 6 на int a = 9; 


Номер 2

Учитывая, что кодом символа b является число 98, укажите какой код необходимо добавить в строку 3, чтобы в выходном потоке появилась последовательность 991?

1 {
2	int a = 'b';
3	...
4	System.out.print(a);
5 }
6 int a = 1;
7 System.out.print(a);

Ответ:

(1) a = 9; 

(2) a++; 

(3) int a = 9; 

(4) double a = 9.0; 

(5) a += 9; 


Номер 3

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

char a = 'a';
{
	char a = 'b';
	System.out.print(a);
}
System.out.print(a);

Ответ:

(1) b 

(2) ab 

(3) ba 

(4) a 

(5) сообщение об ошибке 


Номер 4

Какой блок кода следует поместить в строку 6, чтобы в результате выполнения фрагмента программы на экране была отображена строка 21?

1	public static void main (String args[]) {
2	{
3		int a = 2;
4		System.out.print(a++);
5	}
6	…
7	System.out.println(a);
8	}

Ответ:

(1) a = 1; 

(2) a--; 

(3) int a = 1; 

(4) a -= 1; 


Номер 5

Какой блок кода следует поместитить в строку 6, чтобы в результате выполнения фрагмента программы на экране была отображена строка 21.0?

1	public static void main (String args[]) {
2	{
3		int a = 2;
4		System.out.print(a);
5	}
6	…
7	System.out.println(a);
8	}

Ответ:

(1) a = 1; 

(2) a--; 

(3) int a = 1.0; 

(4) a -= 1; 

(5) double a = 1.0; 


Номер 6

Какой блок кода следует поместитить в строку 7, чтобы в результате выполнения фрагмента программы на экране была отображена строка 22.0?

1	public static void main (String args[])
2	{
3	    {
4		    int a = 2;
5		    System.out.print(a);
6	    }
7	    …
8	    System.out.print(a);
9	}

Ответ:

(1) a = 1; 

(2) a++; 

(3) int a = 2.0; 

(4) double a = 2.0; 

(5) никаких изменений вносить не нужно 


Упражнение 13:


Номер 1

Каким будет результат выполнения следующего фрагмента программы?

int a = 1;
for (int i = 0, q = 0; i < 5; i++, q++);
System.out.println(a + i);

Ответ:

(1) 01234 

(2) 12345 

(3) 0123456 

(4) будет выведено сообщение об ошибке  

(5) 23456 


Номер 2

Каким будет результат выполнения следующего фрагмента программы?

int a = 1;
for (int i = 0, q = 0; i < 5; i++, q++)
System.out.print(a + i);

Ответ:

(1) 01234 

(2) 12345 

(3) 0123456 

(4) будет выведено сообщение об ошибке  

(5) 23456 


Номер 3

Каким будет результат выполнения следующего фрагмента программы?

int a = 1, i;
for (int i = 0, q = 0; i < 5; i++, q++);
System.out.print(a + i);

Ответ:

(1) 01234 

(2) 12345 

(3) 0123456 

(4) будет выведено сообщение об ошибке  

(5) 23456 


Номер 4

Каким будет результат выполнения следующего фрагмента программы?

int a = 1;
for (int i = 0; i < 10; i++)
{
    int q = 1;
    if (q == 4)
	    break;
    q++;
}
System.out.println(a + q);

Ответ:

(1) 14 

(2) будет выведено сообщение об ошибке 

(3) 5 

(4) 10 

(5) 6 


Номер 5

Каким будет результат выполнения следующего фрагмента программы?

int a = 1;
for (int i = 0, q = 0; i < 10; i++, q++);
System.out.println(a + q);

Ответ:

(1) будет выведено 11 

(2) будет выведено 1 

(3) будет выведено 12 

(4) будет выведно сообщение об ошибке 

(5) будет выведено 10 


Номер 6

Какое нижеприведенное утверждение будет верно для следующего кода?

int a = 1;
for (int i = 0, q = 0; i < 10; i++, q++)
System.out.println(a + i);

Ответ:

(1) результат будет содержать число 11 

(2) результат будет содержать число 1 

(3) результат будет содержать число 12 

(4) будет выведно сообщение об ошибке 

(5) результат будет содержать число 10 


Упражнение 14:


Номер 1

Что будет выведено при выполнении следующего фрагмента программы?

int x = 1, y = 1, z = 1;
x = y++*++z*(++y + z--);
System.out.print(x);

Ответ:

(1) 8 

(2) 10 

(3) 1

(4) 14 

(5) сообщение об ошибке 


Номер 2

Что будет выведено при выполнении следующего фрагмента программы?

int x = 1, y = 1, z = 1;
x = (y++*++z)*(++y - z--);
System.out.print(x);

Ответ:

(1) 0 

(2) 2 

(3) 4 

(4) 6 

(5) 3 


Номер 3

Что будет выведено при выполнении следующего фрагмента программы?

int x = 0, y = 1, z = 2;
int itog = x++*(++y * z++*(++x + ++x));
System.out.print(itog);

Ответ:

(1) 0 

(2) 1 

(3) 2 

(4) 3 

(5) 4 


Номер 4

Что будет выведено при выполнении следующего фрагмента программы?

1	int x = 1;
2	int y = x++;
3	int z = y + ++x*(y + 2);
4	System.out.print(z);

Ответ:

(1)

(2) 10 

(3) 13 

(4) 12 

(5) будет выведно сообщение об ошибке 


Номер 5

Что будет выведено при выполнении следующего фрагмента программы?

int x = 2;
int y = 0;
int z = y++;
y = z + ++z * (x-- + --x);
System.out.print(y);

Ответ:

(1)

(2)

(3)

(4)

(5) будет выведно сообщение об ошибке 


Номер 6

Что будет выведено при выполнении следующего фрагмента программы?

int x = 0;
int y = 1;
int z = 2;
x = y++*++z*(++y + z--);
System.out.print(x);

Ответ:

(1)

(2)

(3) 18 

(4)

(5) будет выведно сообщение об ошибке 


Упражнение 15:


Номер 1

Что будет выведено при выполнении следующего фрагмента программы?

int  a = 3 ;
int b = a<<3;
System.out.println(b);

Ответ:

(1) 9 

(2) 11 

(3) 24 

(4) 27 

(5) сообщение об ошибке 


Номер 2

Что будет выведено при выполнении следующего фрагмента программы?

int  a = 2;
byte b = a<<2;
System.out.println(b);

Ответ:

(1) сообщение об ошибке 

(2) 16 

(3) 256 

(4) 512 

(5) 1024 


Номер 3

Что будет выведено при выполнении следующего фрагмента программы?

int a = 2;
byte b = 1;
int c = a << 5 + b << 2;
System.out.print(c);

Ответ:

(1) сообщение об ошибке 

(2) 33 

(3) 36 

(4) 256 

(5) 512 


Номер 4

Какой тип будет иметь значение бинарного выражения, в котором к операнду типа byte применяется операция сдвига <<?

Ответ:

(1) int 

(2) long 

(3) byte 

(4) short 

(5) char 


Номер 5

Какой тип будет иметь значение бинарного выражения, в котором к операнду типа int применяется операция сдвига <<?

Ответ:

(1) int 

(2) long 

(3) byte 

(4) short 

(5) char 


Номер 6

Какие типы может иметь переменная a, чтобы приведенный ниже код выполнился без ошибок?

1 …a = 2 ;
2 int b = a<<3;
3 System.out.println(b);

Ответ:

(1) int 

(2) long 

(3) byte 

(4) short 

(5) char 


Упражнение 16:


Номер 1

Какое значение будет выведено при выполнении следующего фрагмента кода?

int x = 1, y = 1, z = x^y;
y = z&y&x;
System.out.print(y);

Ответ:

(1) 0 

(2) 1 

(3) 2 

(4) 3 

(5) 4 


Номер 2

Какое значение будет выведено при выполнении следующего фрагмента кода?

int x = 1, y = 1, z = x|y;
y = z&y&x;
System.out.print(++y);

Ответ:

(1) 0 

(2) 1 

(3) 2 

(4) 3 

(5) 4 


Номер 3

Какое значение будет выведено при выполнении следующего фрагмента кода?

int x = 1, y = 1, z = 2;
int result = ++x & y++ | --z;
System.out.print(result++);

Ответ:

(1) 0 

(2) 1 

(3) 2 

(4) 3 

(5) 4 


Номер 4

Какое значение будет выведено при выполнении следующего фрагмента кода?

1	int x = 2;
2	int y = 3;
3	int z = x|y;
4	x = z^(z|y)&(z|x);
5	System.out.print(x);

Ответ:

(1)

(2)

(3)

(4)

(5)


Номер 5

Какое значение будет выведено при выполнении следующего фрагмента кода?

int x = 1;
int y = 1;
int z = x&y;
x = z&(z|y)&(z|x);
System.out.print(x);

Ответ:

(1)

(2)

(3)

(4)

(5)


Номер 6

Какое значение будет выведено при выполнении следующего фрагмента кода?

int x = 3;
int y = 2;
int z = x^y;
y = z|y|x;
System.out.print(y);

Ответ:

(1)

(2)

(3)

(4)

(5)


Упражнение 17:


Номер 1

Результат вычисления каких выражений с участием целочисленной переменной x в условном операторе будет иметь булевский тип?

Ответ:

(1) if (x <> 0) 

(2) if (x = 1) 

(3) if (x > 0|| x < 0) 

(4) if (x) 

(5) if (x == 1) 


Номер 2

Результат вычисления каких выражений с участием целочисленной переменной x в условном операторе будет иметь булевский тип?

Ответ:

(1) if (x > 0) 

(2) if (x == 1) 

(3) if (x||x) 

(4) if (!x) 

(5) if (x = 1) 


Номер 3

Результат вычисления каких выражений с участием символьной переменной x в условном операторе будет иметь булевский тип?

Ответ:

(1) if (x || x) 

(2) if (!x && x) 

(3) if (x == 'a') 

(4) if (!x) 

(5) if (x != 100) 


Номер 4

Какие из перечисленных выражений с целочисленной переменной x недопустимы в условном операторе?

Ответ:

(1) if (x) 

(2) if (x != x) 

(3) if (x == 0) 

(4) if (5 << (x > 5)) 

(5) if (5 << x > 5) 


Номер 5

Какие из перечисленных выражений с целочисленной переменной x недопустимы в условном операторе?

Ответ:

(1) if (x > x) 

(2) if (x != x) 

(3) if (x|x) 

(4) if (!x) 

(5) if (5 << x > 5) 


Номер 6

Какие из перечисленных выражений булевской переменной x недопустимы в условном операторе?

Ответ:

(1) if (x) 

(2) if (x == 1) 

(3) if (x||x) 

(4) if (!x) 

(5) if (x = 1) 


Упражнение 18:


Номер 1

В каких ответах верно применяется явное преобразование типа?

Ответ:

 

(1)

int x = 1, y = 1;
int c = (int)Math.cos(x) + (int)Math.sin(x);

 

 

(2)

int x = 1, y = 1;
double c = (double)Math.cos(x) + (double)Math.sin(x);

 

 

(3)

int x = 1, y = 1;
int c = (int)(Math.cos(x) + Math.sin(x));

 

 

(4)

int x = 1, y = 1;
double c = Math.cos(x) + Math.sin(x);

 

 

(5)

int x = 1, y = 1;
int c = (double)Math.cos(x) + (double)Math.sin(x);

 


Номер 2

В каких ответах верно применяется явное преобразование типа?

Ответ:

 

(1)

int x = 1, y = 1;
int c = Math.cos(x) + Math.sin(x);

 

 

(2)

int x = 1, y = 1;
double c = (double)Math.cos(x) + (double)Math.sin(x);

 

 

(3)

int x = 1, y = 1;
int c = (int)Math.cos(x) + Math.sin(x);

 

 

(4)

int x = 1, y = 1;
double c = (double)(Math.cos(x) + Math.sin(x));

 

 

(5)

double x = 1, y = 1;
double c = Math.cos(x) + Math.sin(x);

 


Номер 3

В каких ответах неверно применяется явное преобразование типа?

Ответ:

 

(1)

int x = 1, y = 1;
int z = Math.cos(x) + Math.sin(x);

 

 

(2)

int x = 1, y = 1;
double z = (double)Math.cos(x) + (double)Math.sin(y);

 

 

(3)

int x = 1, y = 1;
int z = (int)Math.cos(x) + Math.sin(x);

 

 

(4)

int x = 1, y = 1;
double z = (double)(Math.cos(y) + Math.sin(x));

 

 

(5)

int x = 1, y = 1;
int z = (int)(Math.cos(x) + Math.sin(x));

 


Номер 4

Укажите в каких фрагментах кода применяется расширяющее преобразование типа?

Ответ:

 

(1)

byte q = 15;
byte p = 20;
int sum = q + p;

 

 

(2)

int r = 0;
short t = 1;
byte mult = (byte)(r * t);

 

 

(3)

float r = 1.2;
double r1 = (double)r;

 

 

(4)

char ch = ‘a’;
char ch1 = ch;

 

 

(5)

long z = 1;
int a = (int)z;

 


Номер 5

В каких ответах применяется сужающее преобразование типа?

Ответ:

 

(1)

byte q = 15;
byte p = 20;
int sum = q + p;

 

 

(2)

int x = 1;
long u = 5;
x = (int)u;

 

 

(3)

double r = 1.2;
float r1 = (float)r;

 

 

(4)

char ch = ‘a’;
char ch1 = ch;

 

 

(5)

long z = 1;
int a = (int)z;

 


Номер 6

В каких ответах верно применяется явное преобразование типа?

Ответ:

 

(1)

int a = 3, b = 4;
int c = (int)Math.sqrt(Math.pow(a, 2) + Math.pow(b,2));

 

 

(2)

int a = 3, b = 4;
int c = Math.sqrt(Math.pow(a, 2) + Math.pow(b,2));

 

 

(3)

double a = 3, b = 4;
double c = Math.sqrt(Math.pow(a, 2) + Math.pow(b,2));

 

 

(4)

int a = 3, b = 4;
double c = (double)Math.sqrt(Math.pow(a, 2) + Math.pow(b,2));

 

 

(5)

int a = 3, b = 4;
int c = (double)Math.sqrt(Math.pow(a, 2) + Math.pow(b,2));

 


Упражнение 19:


Номер 1

Каким образом заполнить строку 3 нижеследующего фрагмента программы, чтобы на экран было выведено число 2?

1 double r = 2.3;
2 double t = 1.4;
3 ..
4 System.out.print(a);

Ответ:

(1) double a = r*t; 

(2) int a = (int)r*(int)t; 

(3) int a = (int)(r*t);  

(4) double a = r*t;  

(5) double a = (int)r*(int)t; 


Номер 2

Каким образом заполнить строки 1 и 2 нижеследующего фрагмента программы, чтобы на экран было выведено число 3?

1 ...
2 ...
3 int a = (int)(r*t);
4 System.out.print(a);

Ответ:

 

(1)

double r = 2;
double t = 1;

 

 

(2)

int r = 2.3;
int t = 1.4;

 

 

(3)

double r = 2.3;
double t = 1.4;

 

 

(4)

long r = 2.3;
long t = 1.4;

 

 

(5)

double r = 2.3;
double t = 3;

 


Номер 3

Каким образом заполнить строки 1 и 2 нижеследующего фрагмента программы, чтобы на экран было выведено число 0.5?

1 ...
2 ...
3 double result = ((double)p / q);
4 System.out.print(result);

Ответ:

 

(1)

int p = 1;
char q = 2;

 

 

(2)

int p = 1;
int q = 2;

 

 

(3)

short p = 2
char q = 4

 

 

(4)

float p = 1;
float q = 2;

 

 

(5)

int p = 9;
char q = 4.5;

 


Номер 4

Каким образом заполнить строку 4 нижеследующего фрагмента программы, чтобы на экран было выведено число 4?

1 int a = 1;
2 double pi = 3.14;
3 int summ = 0;
4 …
5 System.out.print(summ);

Ответ:

(1) summ = pi + a; 

(2) (int) summ = pi + a; 

(3) summ = (pi + a).int(); 

(4) summ = (int)pi + a;  

(5) summ = (int) (a / pi * (int)pi + pi / pi); 


Номер 5

Каким образом заполнить строку 3 нижеследующего фрагмента программы, чтобы на экран было выведено число 27?

1 int i = 2;
2 double g = 9.8;
3 ...
4 System.out.println(f);

Ответ:

(1) int f = ++i * g; 

(2) int f = i++ * (int)g; 

(3) int f = ++i * (int)g; 

(4) int f = i * (int)g; 

(5) int f = i++ * ++(int)g; 


Номер 6

Каким образом заполнить строку 3 нижеследующего фрагмента программы, чтобы на экран было выведено число 27?

1 int i = 2;
2 double g = 9.8;
3 ...
4 System.out.println(f);

Ответ:

(1) int f = ++i * g; 

(2) int f = (i+1) * (int)g; 

(3) int f = ++i * (int)g; 

(4) int f = i * (int)g; 

(5) int f = i++ * ++(int)g; 


Упражнение 20:


Номер 1

В каких строках производится сужающее преобразование типа?

Ответ:

 

(1)

long a = 10;
short f = (short) (a + 23);

 

 

(2)

int a = 42;
byte r = 35;
long y = a + r + 14;

 

 

(3)

int q = 15;
short r = (short)q * 2;

 

 

(4)

byte q = 10;
short s = (short) q;

 

 

(5)

double t = 1.6, s = 1.6;
s = t*s ;

 


Номер 2

В каких строках производится сужающее преобразование типа?

Ответ:

 

(1)

long a = 10;
short f = (short) (a + 23);

 

 

(2)

int a = 42;
byte r = 35;
long y = a + r + 14;

 

 

(3)

int q = 15;
short r = (short)q * 2;

 

 

(4)

int q = 10;
byte s = (byte) q;

 

 

(5)

byte t = 1, s = 1;
s = t++ ;

 


Номер 3

В каких строках производится расширяющее преобразование типа?

Ответ:

 

(1)

int p = 2, q = 4;
double result = ((double)p / q);

 

 

(2)

int p = 2, q = 4;
short d = (short)(p * q);

 

 

(3)

long p = 2, q = 4;
byte d = (byte)(p * q);

 

 

(4)

short r = 1;
long q = r++*4;

 

 

(5)

byte t = 1, s = 1;
s = t++ ;

 


Номер 4

В каких фрагментах кода производится сужающее преобразование типа?

Ответ:

 

(1)

double pi = 3.14;
float f = (float)pi;

 

 

(2)

int a = 4;
byte r = 3;
long y = a + r + 14;

 

 

(3)

int q = 15;
short r = q * 2;

 

 

(4)

long q = 0;
int s = (int)q;

 

 

(5)

byte t = 1, s = 1;
s = t++ ;

 


Номер 5

В каких строках производится расширяющее преобразование типа?

Ответ:

 

(1)

double pi = 3.14;
float f = (float)pi;

 

 

(2)

int a = 4;
byte r = 3;
long y = a + r + 14;

 

 

(3)

int q = 15;
short r = q * 2;

 

 

(4)

int q = 0;
long s = (long)q;

 

 

(5)

byte t = 1, s = 1;
s = t++ ;

 


Номер 6

В каких строках производится расширяющее преобразование типа?

Ответ:

 

(1)

double pi = 3.14;
double f = pi;

 

 

(2)

int a = 42;
byte r = 35;
long y = a + r + 14;

 

 

(3)

short q = 15;
long r = q * 2;

 

 

(4)

int q = 10;
long s = q;

 

 

(5)

byte t = 1, s = 1;
s = t++ ;

 


Упражнение 21:


Номер 1

Какие объявления допустимы в Java-программах?

Ответ:

(1) float arr[][][] = new float [10][20][30]; 

(2) short [][]arr = new short [4][]; 

(3) int arr[][] = {{3,4,4},{0,1,1},{4,4,4}}; 

(4) float arr = {2, 5, 10,144, 12}; 

(5) double arr [][][] = new float [4][4][4]; 


Номер 2

Какие объявления допустимы в Java-программах?

Ответ:

(1) float arr[][][] = new float [10][20][30]; 

(2) short [][]arr = new short [4][]; 

(3) int arr[][] = {{3,4,4},{0,1,1},{4,4,4}}; 

(4) float arr = {2, 5, 10,144, 12}; 

(5) double mtr [][][] = new float [4][4][4]; 


Номер 3

Какие объявления недопустимы в Java-программах?

Ответ:

(1) char simb[][] = new char[32][]; 

(2) double [][] numb = new double[10][10]; 

(3) int days[] = {1,2,3,4,5,6,7}; 

(4) char [][] simb = new char [32][]; 

(5) double numb [] = new double[10,10]; 


Номер 4

Какие из следующих объявлений допустимы в Java-программах?

Ответ:

(1) float arr[][] = new float [10][20]; 

(2) float arr[][] = new float [4][]; 

(3) float arr = new float [5]; 

(4) int [] arr = {2, 5, 10,144, 12}; 

(5) double arr [] = new float [4]; 

(6) double arr [] = (double[]) new float [4]; 


Номер 5

Какие объявления допустимы в Java-программах?

Ответ:

(1) float arr = new float [10][20]; 

(2) float [][]arr = new float [4][];  

(3) int mtr[][] = {{3,4,4},{0,1,1},{4,4,4}}; 

(4) int arr = {2, 5, 10,144, 12}; 

(5) double arr [][] = new float [4][4]; 


Номер 6

Какие объявления недопустимы в Java-программах?

Ответ:

(1) float arr = new float [10][20]; 

(2) float [][]arr = new float [4][]; 

(3) int arr[][] = {{3,4,4},{0,1,1},{4,4,4}}; 

(4) int arr = {2, 5, 10,144, 12}; 

(5) double arr [][] = new float [4][4]; 


Упражнение 22:


Номер 1

Чему равен элемент массива a с индексом [51]?

int a []= new int [100];
for (int i = 0, j = 100; i < 100; i++, j--){
	a[i] = i + j;
	System.out.print(a[i]);
}

Ответ:

(1) 50 

(2) 51 

(3) 100 

(4) программа завершится ошибкой 

(5) 101 


Номер 2

Чему равен элемент массива a с индексом [51]?

int a []= new int [100];
for (int i = 0, j = 100; i < 100; i++, j--){
	a[i] = -(i + j);
	System.out.print(a[i]);
}

Ответ:

(1) -50 

(2) -51 

(3) -100 

(4) программа завершится ошибкой 

(5) -101 


Номер 3

Чему равен элемент массива a с индексом [51]?

int a []= new int [100];
for (int i = 0, j = 100; i < 100; i++, j--){
	a[i] = (i + j % 2);
	System.out.print(a[i]);
}

Ответ:

(1) 50 

(2) 51 

(3) 52 

(4) фрагмент содержит синтаксические ошибки 

(5) элемент с индексом [51] не получит никакого значения, потому что цикл завершиться раньше 


Номер 4

Каким будет вывод следующего фрагмента Java-программы?

short ar[] = new short [3];
short ar1[];
ar1 = ar;
for (int i = 0; i < 3; i++)
if (i < 3)
		System.out.print(ar1[i]);
	else 
		System.out.print(ar1[i] + i);

Ответ:

(1) 012456789 

(2) программа завершится ошибкой 

(3) 000456789 

(4) 000 

(5) 456789 


Номер 5

Каким будет вывод следующего фрагмента Java-программы?

short ar[] = {1, 0, 1};
short ar1[];
ar1 = ar;
for (int i = 0; i < 3; i++)
if (i < 2)
		System.out.print(ar1[i]);
	else 
		System.out.print(ar1[i] + i);

Ответ:

(1) 101 

(2) 102 

(3) 103 

(4) программа завершится ошибкой 

(5) 104 


Номер 6

Чему равен элемент массива a с индексом [51]?

int [] a = new int [100];
int i = 0, j = 100;
while (i < 100) {
	a[i] = i + j--;
	i++;
	System.out.print(a[i]);
}

Ответ:

(1) 50 

(2) 51 

(3) 100 

(4) программа завершится ошибкой 

(5) 101 


Упражнение 23:


Номер 1

В программе определены три целочисленных массива. Укажите, какие строки вывода напечатают на экране последовательность 0 0 2?

int ar1[] = new int [10];
short ar2[] = {2, 0, 0, 2, 1, 0};
long [] ar3 = {1, 2, 1, 0, 2, 0};

Ответ:

(1) попытка вывода на экран завершиться ошибкой 

(2) System.out.println(ar1[5] + " " + ar3[3] + " " + ar2[0]); 

(3) System.out.println(ar2[2] + " " + ar1[2] + " " + ar3[2]); 

(4) System.out.println(ar1[1] + " " + ar2[1] + " " + ar3[1]); 

(5) System.out.println(ar3[3] + " " + ar2[2] + " " + ar2[0]); 


Номер 2

В программе определены три целочисленных массива. Укажите, какие строки вывода напечатают на экране последовательность 0 1 2?

int ar1[] = new int [10];
short ar2[] = {2, 0, 0, 2, 1, 0};
long [] ar3 = {1, 2, 1, 0, 2, 0};

Ответ:

(1) попытка вывода на экран завершиться ошибкой 

(2) System.out.println(ar3[5] + " " + ar1[0] + " " + ar2[5]); 

(3) System.out.println(ar1[2] + " " + ar2[4] + " " + ar3[1]); 

(4) System.out.println(ar1[1] + " " + ar2[4] + " " + ar3[4]); 

(5) System.out.println(ar3[3] + " " + ar2[2] + " " + ar2[0]); 


Номер 3

В программе определены три целочисленных массива. Укажите, какие строки вывода напечатают на экране последовательность 0 2 0?

int ar1[] = new int [10];
short ar2[] = {2, 0, 0, 2, 1, 0};
long [] ar3 = {1, 2, 1, 0, 2, 0};

Ответ:

(1) попытка вывода на экран завершиться ошибкой 

(2) System.out.println(ar1[7] +" "+ ar2[3] + " "+ ar3[3]); 

(3) System.out.println(ar1[6] +" "+ ar2[2] + " "+ ar3[3]); 

(4) System.out.println(ar1[6] +" "+ ar3[4] + " "+ ar2[4]); 

(5) System.out.println(ar1[6] +" "+ ar3[1] + " "+ ar3[3]); 


Номер 4

В программе определены следующие три целочисленных массива. Укажите каким строкам соответствует на экране последовательность 0 0 0?

int ar1[] = new int [10];
short ar2[] = {1, 0, 0, 0, 1, 0};
long [] ar3 = {1, 1, 1, 0, 0, 0};

Ответ:

(1) попытка вывода на экран завершиться ошибкой 

(2) System.out.println(ar3[5] + " " + ar1[0] + " " + ar2[5]); 

(3) System.out.println(ar1[2] + " " + ar2[2] + " " + ar3[2]); 

(4) System.out.println(ar1[3] + " " + ar2[3] + " " + ar3[3]); 

(5) System.out.println(ar1[4] + " " + ar2[4] + " " + ar3[4]); 


Номер 5

В программе определены три целочисленных массива. Укажите, какие строки вывода напечатают на экране последовательность 0 0 1?

int ar1[] = new int [10];
short ar2[] = {1, 0, 0, 0, 1, 0};
long [] ar3 = {1, 1, 1, 0, 0, 0};

Ответ:

(1) попытка вывода на экран завершиться ошибкой 

(2) System.out.println(ar3[5] + " " + ar1[0] + " " + ar2[5]); 

(3) System.out.println(ar2[2] + " " + ar1[2] + " " + ar3[2]); 

(4) System.out.println(ar1[3] + " " + ar2[3] + " " + ar3[3]); 

(5) System.out.println(ar3[3] + " " + ar2[2] + " " + ar1[0]); 


Номер 6

В программе определены три целочисленных массива. Укажите, какая строка вывода напечатает на экране последовательность 0 1 2?

int ar1[] = new int [10];
short ar2[] = {2, 0, 0, 2, 1, 0};
long [] ar3 = {1, 2, 1, 0, 2, 0};

Ответ:

(1) попытка вывода на экран завершиться ошибкой 

(2) System.out.print(ar3[5] + " " + ar1[0] + " " + ar2[5]); 

(3) System.out.print(ar2[2] + " " + ar1[2] + " " + ar3[2]); 

(4) System.out.print(ar1[1] + " " + ar2[4] + " " + ar3[1]); 

(5) System.out.print(ar3[3] + " " + ar2[2] + " " + ar2[0]); 


Упражнение 24:


Номер 1

Какое значение получит элемент массива с индексом 10, если он заполнен следующим образом?

int a [] = new int [100];
for(int i = 0; i < 100; a[i] = i % 2, i++);

Ответ:

(1) 0 

(2) 1 

(3) 5 

(4) 10 

(5) 2 


Номер 2

Какое значение получит элемент массива с индексом 92, если он заполнен следующим образом:

int a [] = new int [100];
for(int i = 0; i < 100; a[i] = i % 2, i++);

Ответ:

(1) 91 

(2) 90 

(3) 2 

(4) 1 

(5) 0 


Номер 3

Какое значение получит элемент массива с индексом 92, если он заполнен следующим образом:

int a [] = new int [100];
for(int i = 0, j = 101; i < 100; a[i] = (i + j) % 2, i++, --j);

Ответ:

(1) 91 

(2) 90 

(3) 2 

(4) 1 

(5) 0 


Номер 4

Каким фрагментом кода необходимо дополнить 12-ую строку программы, чтобы она отработала без ошибок?

1	int[][] arr = new int [5][]; int i, j, counter = 0;
2	for (i = 0; i < 5; i++)
3		arr[i] = new int [i<3? i+1:5-i];
4	boolean flag = true;
5	for (i = 0; i < 5; i++) {
6		for(j = 0; j <= counter; j++) {
7			arr[i][j] = j;
8			System.out.print(arr[i][j] + " ");					
9		}
10		System.out.println("");
11		if (counter == 2)
12			…
13		if ((counter <= 2) && (flag == true)) counter++;
14		else 	counter--;
15	}

Ответ:

(1) { flag = false; counter++; } 

(2) flag = false; 

(3) counter--; 

(4) flag = true; 


Номер 5

Как необходимо исправить программу, чтобы она отработала без ошибок?

1 int Arr[][] = new int [5][], i, j, counter = 0;
2 for (int i = 0; i < 5; i++)
3	Arr[i] = new int [i<3? i+1:5-i];
4	boolean flag = true;
5	for (i = 0; i < 5; i++) {
6		for(j = 0; j <= counter; j++) {
7			Arr[i][j] = j+2;
8			System.out.print(Arr[i][j] + " ");					
9		}
10		System.out.println("");
11		if (counter == 2)
12			flag = false;
13		if ((counter <= 2) && (flag == true)) counter++;
14		else 	counter--;
15	}

Ответ:

(1) в строке 6 j = 0 заменить на int j = 0 

(2) изменения не нужны 

(3) описание переменной flag внести в блок цикла for строки 5 

(4) в строке 2 удалить дублирующее объявление переменной i и добавить ее инициализацию в строку 1 

(5) строку 12 заменить на flag = true; 


Номер 6

Какое значение получит пятидесятый элемент массива, если он заполнен следующим образом?

int a [] = new int [100];
for(int i = 0; i < 100; a[i] = i % 2, i++);

Ответ:

(1) 50 

(2)

(3) 25 

(4)

(5) 51 

(6) программа завершится ошибкой 


Упражнение 25:


Номер 1

Какое значение получит элемент a [4][3] после выполнения следующего фрагмента программы:

int a [][] = new int [5][5];
int i = 0, j = 0, counter = 0;
for (i = 0; i < 5; i++){
	counter = -i;
for(j =0; j < 5; j++) 
		a [i][j] = counter + j;
}

Ответ:

(1) 1 

(2) -1 

(3) 2 

(4) -2 

(5) 3 


Номер 2

Какое значение получит элемент a [1][2] после выполнения следующего фрагмента программы:

int a [][] = new int [5][5];
int i = 0, j = 0, counter = 0;
for (i = 0; i < 5; i++){
	counter = -i;
for(j =0; j < 5; j++) 
		a [i][j] = counter + j;
}

Ответ:

(1) 1 

(2) -1 

(3) 2 

(4) -2 

(5) -3 


Номер 3

Какое значение получит элемент a [3][0] после выполнения следующего фрагмента программы:

int a [][] = new int [5][5];
int i = 0, j = 0, counter = 0;
for (i = 0; i < 5; i++){
	counter = -i % 2;
	for(j =0; j < 5; j++) 
		a [i][j] = counter + j;
}

Ответ:

(1) 1 

(2) -1 

(3) 2 

(4) -2 

(5) -3 


Номер 4

Какое значение получит элемент ar [4][4] после выполнения следующего фрагмента программы:

int [][] ar = new int [5][5];
for (int i = 0; i < 5; i++)
for (int j = 0; j < 5; j++)
		if (j > i) 
			ar[i][j] = i ;
		else
			ar[i][j] = j;

Ответ:

(1)

(2)

(3)

(4)

(5)

(6) программа завершится ошибкой 


Номер 5

Какое значение получит элемент ar [2][3] после выполнения следующего фрагмента программы:

int [][] ar = new int [5][5];
for (int i = 0; i < 5; i++)
for (int j = 0; j < 5; j++)
		if (j > i) 
			ar[i][j] = i ;
		else
			ar[i][j] = j;

Ответ:

(1)

(2)

(3)

(4)

(5)

(6) программа завершится ошибкой 


Номер 6

Какое значение получит элемент a[2][3] после выполнения следующего фрагмента программы:

int a[][] = new int [5][5];
int i = 0, j = 0, counter = 0;
for (i = 0; i < 5; i++){
	counter = -i;
for(j =0; j < 5; j++) 
		a[i][j] = counter + j;

Ответ:

(1)

(2)

(3)

(4)

(5)

(6) программа завершится ошибкой 


Упражнение 26:


Номер 1

Какие из перечисленных методов и операций не могут быть использованы для объединения строк String или StringBuffer в Java-программах?

Ответ:

(1) append() 

(2) toString() 

(3) + 

(4) . 

(5) concat() 


Номер 2

Какие из перечисленных методов и операций могут быть использованы для приведения строк String к числовым типам данных Java-программах?

Ответ:

(1) intValue() 

(2) integerValue() 

(3) doubleValue() 

(4) toInt() 

(5) toIntValue() 


Номер 3

Какой из перечисленных методов и операций может быть использован для замены символов в строках String или StringBuffer  в Java-программах?

Ответ:

(1) substring() 

(2) replace() 

(3) getChars() 

(4) concat() 

(5) charAt() 


Номер 4

Какие средства используются в Java-программах для сравнения содержимого строковых объектов?

Ответ:

(1) equals() 

(2) strCmp() 

(3) != 

(4) == 

(5) compareTo() 


Номер 5

Какие средства не используются в Java-программах для сравнения содержимого строковых объектов?

Ответ:

(1) equals() 

(2) strCmp() 

(3) compareTo() 

(4) == 

(5) != 


Номер 6

Какие из перечисленных методов и операций могут быть использованы для объединения строк String или StringBuffer в Java-программах?

Ответ:

(1) append() 

(2) toString() 

(3) + 

(4) . 

(5) concat() 


Упражнение 27:


Номер 1

В программе введены следующие определения:

String s;
BufferedReader buf = new BufferedReader(new InputStreamReader(System.buf));

Пользователь ввел с клавиатуры число 3, которые было сохранено в переменную s. Какие из следующих фрагментов выведут на экран идентичные последовательности?

Ответ:

 

(1)

short d = Short.valueOf(s).shortValue();
System.out.println(d * 3);

 

 

(2)

int d = Integer.valueOf(s).intValue();
System.out.println(d * 3);

 

 

(3)

int d = Short.valueOf(s).shortValue();
System.out.println(d + 6);

 

 

(4)

double d = Double.valueOf(s).doubleValue();
System.out.println(d * 3);

 

 

(5)

short d = Short.valueOf(s).shortValue();
System.out.println(d + 3);

 


Номер 2

В программе введены следующие определения:

String s;
BufferedReader buf = new BufferedReader(new InputStreamReader(System.buf));

Пользователь ввел с клавиатуры число 3, которые было сохранено в переменную s. Какие из следующих фрагментов выведут на экран идентичные последовательности?

Ответ:

 

(1)

short d = Short.valueOf(s).shortValue();
System.out.println(d * 3);

 

 

(2)

float d = Integer.valueOf(s).intValue();
System.out.println(d * 3);

 

 

(3)

int d = Short.valueOf(s).shortValue();
System.out.println(d + 6);

 

 

(4)

double d = Double.valueOf(s).doubleValue();
System.out.println(d + 3);

 


Номер 3

В программе введены следующие определения:

String s;
BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));

Пользователь ввел с клавиатуры число 3, которые было сохранено в переменную s. В каких фрагментах программ на экран будут выводиться пары совпадающих чисел?

Ответ:

 

(1)

int i = Integer.valueOf(s).intValue();
System.out.println(i+2);
System.out.print(s+2);

 

 

(2)

int i = Integer.valueOf(s).intValue();
System.out.println(i+»2″);
System.out.print(s+2);

 

 

(3)

int i = Integer.valueOf(s).intValue();
System.out.println(i*2);
System.out.print(s*2);

 

 

(4)

int i = Integer.valueOf(s).intValue();
System.out.println(i);
System.out.print(s);

 

 

(5)

int i = Integer.valueOf(s).intValue();
System.out.println(i+s);
System.out.print(s+i);

 


Номер 4

В программе введены следующие определения:

String s;
int n = 255;
StringBuffer sb = new StringBuffer(n);

Какие из следующих фрагментов выведут на экран идентичные результаты?

Ответ:

 

(1)

s = sb.append(«There are «).append(n).append(» symbols in this string»).toString();
System.out.println(s);

 

 

(2)

s = «There are» + toString(n) + » symbols in this string»;
System.out.println(s);

 

 

(3)

s = «There are » + n + » symbols in this string»;
System.out.println(s);

 

 

(4)

s.concat(«There are «).concat(n).concat(» symbols in this string») ;
System.out.println(s);

 

 

(5)

sb.append(«There are «).append(n).append(» symbols in this string»).toString();
System.out.println(sb);

 


Номер 5

В программе введены следующие определения:

String s;
int n = 255;
StringBuffer sb = new StringBuffer(n);

Какие из следующих фрагментов выведут на экран идентичные результаты?

Ответ:

 

(1)

s = sb.append(«There are «).append(n).append(» symbols in this string»);
System.out.println(s);

 

 

(2)

s = «There are » + n + » symbols in this string»;
System.out.println(s);

 

 

(3)

s = sb.append(«There are «).append(n).append(» symbols in this string»).toString();
System.out.println(s);

 

 

(4)

s.concat(«There are «).n.toString().concat.concat(» symbols in this string») ;
System.out.println(s);

 

 

(5)

sb.append(«There are «).append(n).append(» symbols in this string»);
System.out.println(sb);

 


Номер 6

В программе введены следующие определения:

String s;
BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));

Пользователь ввел с клавиатуры число 3, которое было сохранено в переменную s. Какие из следующих фрагментов выведут на экран идентичные последовательности?

Ответ:

 

(1)

short d = Short.valueOf(s).shortValue();
System.out.println(d * 3);

 

 

(2)

double d = Double.valueOf(s).doubleValue();
System.out.println(d * 3);

 

 

(3)

int d = Integer.valueOf(s).intValue();
System.out.println(d * 3);

 

 

(4)

short d = Short.valueOf(s).shortValue();
System.out.println(d + 3);

 


Упражнение 28:


Номер 1

Что будет выведено на экран в результате выполнения следующего фрагмента Java-программы?

char [] ar = {'a' ,'c', 'c', 'e', 'f'};
String s1 = new String(ar);
String s2 = "abcdefg";
System.out.print(s2.substring(2,6));
if (s1.substring(2,5).equals(s2.substring(3,6)))
	System.out.print(s1);
if (s2.substring(4,4).equals(s1.substring(1,2)))
	System.out.print(s2);

Ответ:

(1) cdef 

(2) def 

(3) cdefacdef 

(4) ничего 

(5) cdefabcdefg 


Номер 2

Что будет выведено на экран в результате выполнения следующего фрагмента Java-программы?

char [] ar = {'a' ,'a', 'c', 'd', 'f'};
String s1 = new String(ar);
String s2 = "abceefg";
System.out.print(s2.substring(2,6));
if (s1.substring(2,5).equals(s2.substring(3,6)))
	System.out.print(s1);
if (s2.substring(4,4).equals(s1.substring(1,2)))
	System.out.print(s2);

Ответ:

(1) cdef 

(2) def 

(3) cdefacdef 

(4) ничего 

(5) ceef 


Номер 3

Что будет выведено на экран в результате выполнения следующего фрагмента Java-программы?

char [] ar = {'h' ,'e', 'l', 'l', 'o'};
String s1 = new String(ar);
String s2 = "yellow";
System.out.print(s2.substring(2,5));
if (s1.substring(2,5).equals(s2.substring(3,5)))
	System.out.print(s1);
if (s2.substring(4,4).equals(s1.substring(1,2)))
	System.out.print(s2);

Ответ:

(1) ничего 

(2) сообщение об ошибке 

(3) ello 

(4) llo 

(5) ellow 


Номер 4

Что будет выведено на экран в результате выполнения следующего фрагмента Java-программы?

char [] ar = {'c', 'd', 'e', 'f'};
String s1 = new String(ar);
String s2 = "abcdefg";
System.out.println(s2.substring(3,6));
if (s1.equals(s2.substring(3,6)))
System.out.print(s1);
if (s2.substring(4,4).equals(s1.substring(2,3)))
	System.out.print(s2);

Ответ:

(2) def 

(3) abcdefg 

(4) ничего 

(5) defabcdefg 


Номер 5

Что будет выведено на экран в результате выполнения следующего фрагмента Java-программы?

char [] ar = {'a' ,'c', 'd', 'e', 'f'};
String s1 = new String(ar);
String s2 = "abcdefg";
System.out.print(s2.substring(2,6));
if (s1.equals(s2.substring(3,6)))
	System.out.print(s1);
if (s2.substring(4,4).equals(s1.substring(1,2)))
	System.out.print(s2);

Ответ:

(1) cdef 

(2) def 

(3) cdefacdef 

(4) ничего 

(5) cdefabcdefg 


Номер 6

Что будет выведено на экран в результате выполнения следующего фрагмента Java-программы?

char [] ar = {'a' ,'c', 'd', 'e', 'f'};
String s1 = new String(ar);
String s2 = "abcdefg";
System.out.print(s2.substring(2,6));
if (s1.substring(2,5).equals(s2.substring(3,6)))
	System.out.print(s1);
if (s2.substring(4,4).equals(s1.substring(1,2)))
	System.out.print(s2);

Ответ:

(1) cdef 

(2) def 

(3) cdefacdef 

(4) ничего 

(5) cdefabcdefg 


Упражнение 29:


Номер 1

Какие данные будут значением аргумента с индексом [0] метода main() при запуске программы MyProgramme.java инструкцией: java MyProgramme Some additional argues.

Ответ:

(1) java MyProgramme 

(2) java 

(3) java MyProgramme Some additional argues. 

(4) Some 

(5) additional 


Номер 2

Какие данные будут значением аргумента с индексом [0] метода main() при запуске программы MyProgramme.java инструкцией: java MyProgramme Start.

Ответ:

(1) java 

(2) java MyProgramme 

(3) java MyProgramme Start. 

(4) Start 

(5) Start. 

(6) . 


Номер 3

Чему будет равна длина массива args метода main() при запуске программы MyProgramme.java инструкцией: java MyProgramme Arguments list.

Ответ:

(1) 0 

(2) 1 

(3) 2 

(4) 3 

(5) 4 


Номер 4

Какие данные будут значением аргумента с индексом [0] метода main() при запуске программы MyProgramme.java инструкцией: java MyProgramme Some additional argues.

Ответ:

(1) java MyProgramme 

(2) java 

(3) MyProgramme 

(4) Some 

(5) Some additional argues. 


Номер 5

Какие данные будут значением аргумента с индексом [1] метода main() при запуске программы MyProgramme.java инструкцией: java MyProgramme Some additional argues.

Ответ:

(1) java MyProgramme 

(2) java 

(3) MyProgramme 

(4) Some 

(5) additional 


Номер 6

Чему будет равна длина массива args метода main() при запуске программы MyProgramme.java инструкцией: java MyProgramme Some additional argues.

Ответ:

(1) 1 

(2) 2 

(3) 3 

(4) 4 

(5) 5 


Упражнение 30:


Номер 1

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

StringBuffer sb1 = new StringBuffer("112211");
StringBuffer sb2 = new StringBuffer("221122");
if (sb1.insert(2,"1").charAt(4) == sb2.reverse().charAt(3))
	System.out.println(sb1.substring(3));
else
	System.out.println(sb2.substring(3));	

Ответ:

(1) ничего 

(2) 212 

(3) 122 

(4) 221 

(5) программа завершится с ошибкой 


Номер 2

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

StringBuffer sb1 = new StringBuffer("1123211");
StringBuffer sb2 = new StringBuffer("2213122");
if (sb1.insert(2,"1").charAt(4) == sb2.reverse().charAt(3))
	System.out.println(sb1.substring(3));
else
	System.out.println(sb2.substring(3));	

Ответ:

(1) ничего 

(2) 23211 

(3) 1232 

(4) 2321 

(5) программа завершится с ошибкой 


Номер 3

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

StringBuffer sb1 = new StringBuffer("00110101");
StringBuffer sb2 = new StringBuffer("11220010");
if (sb1.insert(2,"1").charAt(4) == sb2.reverse().charAt(3))
	System.out.println(sb1.substring(3));
else
	System.out.println(sb2.substring(3));

Ответ:

(1) ничего 

(2) 110101 

(3) 011100 

(4) 02211 

(5) 20010 

(6) программа завершится с ошибкой 


Номер 4

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

StringBuffer sb1 = new StringBuffer("bcdef");
StringBuffer sb2 = new StringBuffer("hgfedc");
if (sb1.insert(2,"g").charAt(2) == sb2.reverse().charAt(4))
System.out.println(sb1.substring(3));

Ответ:

(1) ничего 

(2)

(3) gdef 

(4) def 

(5) программа завершится с ошибкой 


Номер 5

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

StringBuffer sb1 = new StringBuffer("bcdef");
StringBuffer sb2 = new StringBuffer("hgfedc");
if (sb1.insert(2,"g").charAt(4) == sb2.reverse().charAt(3))
	System.out.println(sb1.substring(3));
else
	System.out.println(sb2.substring(3));

Ответ:

(1) ничего 

(2) fgh 

(3) edc 

(4) def 

(5) программа завершится с ошибкой 


Номер 6

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

StringBuffer sb1 = new StringBuffer("112211");
StringBuffer sb2 = new StringBuffer("221122");
if (sb1.insert(4,"33").charAt(3) == sb2.reverse().charAt(0))
	System.out.println(sb1.substring(4));
else
	System.out.println(sb2.substring(3));

Ответ:

(1) ничего 

(2) 1331 

(3) 122 

(4) 3311 

(5) программа завершится с ошибкой 


Упражнение 31:


Номер 1

Какие из перечисленных выражений преобразуют строковую переменную s в целое число?

Ответ:

(1) (int)s 

(2) Integer.valueOf(s).integerValue()  

(3) Integer.valueOf(s).intValue() 

(4) Short.valueOf(s).shortValue()  

(5) (long)s 


Номер 2

Какое из перечисленных выражений преобразует строковую переменную s в дробное число?

Ответ:

(1) (double)s 

(2) Integer.valueOf(s).doubleValue()  

(3) Integer.valueOf(s).double() 

(4) Short.valueOf(s).toDouble()  

(5) (float)s 

(6) Double.valueOf( s ) 


Номер 3

Какие из перечисленных выражений преобразуют строковую переменную s к нижнему регистру?

Ответ:

(1) s.tolower(); 

(2) s.tolowercase ();  

(3) s.toLower(); 

(4) s.toLowerCase(); 

(5) s.toLowercase(); 


Номер 4

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

Ответ:

(1) System.out.println("a + b = " + a + b); 

(2) System.out.println(a + b); 

(3) System.out.println("a + b = " + (a + b)); 

(4) System.out.println("a + b = ".concat(a + b)); 

(5) System.out.println("a + b = ".concat(a + b).toString()); 


Номер 5

В программе в целочисленные переменные a и b сохраняются два числа. Какое из выражений необходимо использовать, чтобы напечатать сумму этих чисел?

Ответ:

(1) System.out.println("a + b = " + a + b); 

(2) System.out.println(a + b); 

(3) System.out.println("a + b = " + {a + b}); 

(4) System.out.println("a + b = " + (a + b)); 

(5) System.out.println("a + b = " + concat(a + b).toString()); 


Номер 6

Какие из перечисленных выражений преобразуют строковую переменную s в число с плавающей точкой?

Ответ:

(1) Double.valueOf(s).doubleValue() 

(2) Long.valueOf(s).doubleLong() 

(3) (double)s 

(4) Float.valueOf(s).floatValue() 

(5) (float)s 


Упражнение 32:


Номер 1

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

int i = 100;
while (i > 0){
	while (--i < 99 && i > 0);
	System.out.print(i);
}

Ответ:

(1) 1000 

(2) 0 

(3) 990 

(4) -1 

(5) ничего 


Номер 2

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

int i = 0;
while (i < 5) {
	if (i >= 3){
		System.out.print(i);
		i++;
	}
	i++;
	continue;
}

Ответ:

(1) 35 

(2) 3 

(3) 5 

(4) 34 

(5) ничего 


Номер 3

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

int i = 0;
while (i != 5) {
if (i >= 3){
		i++;
		continue;
	}
	if (i > 3)
		break;
	i++;
	System.out.print(i);
}

Ответ:

(1) 3 

(2) 123 

(3) 1234 

(4) 4 

(5) ничего 


Номер 4

Каким будет результат выполнения следующего фрагмента программы?

int a = 1; 
int q = 1;
for (int i = 0; i < 10; i++) {
if (q == 4)
	break;
	q++;
	a += i%2;
}
System.out.println(a + q);

Ответ:

(1) будет выведено 5 

(2) будет выведено 6 

(3) будет выведено сообщение об ошибке 

(4) будет выведено 7 

(5) будет выведено 8 


Номер 5

Каким будет результат выполнения следующего фрагмента программы?

int a = 1; 
int q = 2;
for (int i = 0; i < 10; i++) {
	if (q > 4)
		break;
	q++;
	a += i%2;
}
System.out.println(a + q);

Ответ:

(1) будет выведено 5 

(2) будет выведено 6 

(3) будет выведено сообщение об ошибке 

(4) будет выведено 7 

(5) будет выведено 8 


Номер 6

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

int i = 0;
while (i < 100){
	while (++i > 0 && i <100);
		System.out.print(i);
}

Ответ:

(1) 1000 

(2) 100 

(3) 0100 

(4)

(5) ничего 


Упражнение 33:


Номер 1

Какие операторы ветвления алгоритма допустимы в Java-программах?

Ответ:

(1) if 

(2) if … else 

(3) if … then … else 

(4) switch 

(5) case 


Номер 2

Какие операторы ветвления алгоритма не допустимы в Java-программах?

Ответ:

(1) if 

(2) if … else 

(3) if … then … else 

(4) switch 

(5) if ... elseif ... else 


Номер 3

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

Ответ:

(1) if 

(2) if … else 

(3) if … then … else 

(4) if ... elseif ... else 

(5) switch 


Номер 4

Какие из перечисленных ключевых слов используются в инструкциях циклов в Java-программах?

Ответ:

(1) for, foreach, while, do… while 

(2) for, while, do… while 

(3) loop, for, while, do… while 

(4) foreach, for, do … while 

(5) for, while, repeat … until 


Номер 5

Какие из перечисленных циклов допустимы в Java-программах?

Ответ:

(1) for 

(2) foreach 

(3) while 

(4) do … while 

(5) repeat … until 


Номер 6

Какие утверждения относительно оператора множественного выбора switch верны?

Ответ:

(1) оператор switch должен содержать хотя бы однин пункт case 

(2) оператор switch должен содержать пункт default 

(3) если среди пунктов case подходящее значение переключателя не найдено, выполнятся операторы пункта default 

(4) если при выполнении пункта case не будет найден оператор break будет выполнено содержимое следующего пункта case 

(5) ни одно из перечисленных утверждений неверно 


Упражнение 34:


Номер 1

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

int i = 0;
while (i < 10) {
if (i < 5) {
		i++;
		continue;
	}
	if (i > 5)
		break;
	System.out.print(i);
	i++;
}

Ответ:

(1) 5 

(2) 012345 

(3) 01234 

(4) 45 

(5) ничего  


Номер 2

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

int i = 0;
while (i < 5) {
	if (i >= 3){
		System.out.print(i);
		i++;
	}
	i++;
	continue;
}
System.out.print(i);

Ответ:

(1) 5 

(2) 3 

(3) 34 

(4) 35 

(5) ничего 


Номер 3

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

int i = 0;
while (i < 5) {
	System.out.print(i);
	int i = 4;
	if (i >= 3){
		break;
	}
	i++;
System.out.print(i);
}

Ответ:

(1) 0 

(2) 1 

(3) ничего 

(4) 04 

(5) сообщение об ошибке 


Номер 4

Результатом вывода следующего фрагмента программы должна стать последовательность 46789. Каким образом следует отредактировать код, чтобы программа работала правильно?

1	int i = 4;
2	for (; i<10; i++) {
3		System.out.print(i);
4		if (i == 5)
5			continue;			
6	}

Ответ:

(1) заменить в строке 5 continue на break; 

(2) переместить оператор вывода (строка 3) в зону действия условного оператора (строки 4 и 5) 

(3) изменить очередность оператора вывода (строка 3) и условного оператора (строки 4 и 5) 

(4) убрать из кода программы заголовок условного оператора (срока 4) 

(5) ничего не изменять 


Номер 5

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

int i = 2;
for (; i<10; i++) {
if (i < 5)
		continue;	
	System.out.print(i);
}

Ответ:

(1) 23456789 

(2) 56789 

(3) 456789 

(4) 5678910 

(5) ничего не будет выведено, фрагмент содержит ошибки 


Номер 6

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

int i = 0;
while (i < 10) {
	if (i < 5) 
		continue;
	if (i > 5)
		break;
	System.out.print(i);
	i++;
}

Ответ:

(1) 5 

(2) 012345 

(3) 01234 

(4) 45 

(5) ничего не будет выведено и поток выполнения не выйдет из цикла 


Упражнение 35:


Номер 1

Каким будет вывод следующего фрагмента Java-программы?

double i = 1.5;
int a = (int)i*2;
switch (a) {
case 1: System.out.print(a);
	case 2: System.out.print(a); 
	case 3: System.out.print(a); 
	case 4: System.out.print(a); break;
	default: System.out.print(a);
}

Ответ:

(1) 2 

(2) 22 

(3) 222 

(4) 2222 

(5) 22222 


Номер 2

Каким будет вывод следующего фрагмента Java-программы?

double i = 1.5;
int a = (int)i*2;
switch (a) {
	case 1: System.out.print(a); break;
	case 2: System.out.print(a); break;
	case 3: System.out.print(a); break;
	case 4: System.out.print(a); break;
	default: System.out.print(a);
}

Ответ:

(1) 2 

(2) 22 

(3) 222 

(4) 2222 

(5) 22222 


Номер 3

Каким будет вывод следующего фрагмента Java-программы?

double i = 1.5;
int a = (int)i*2;
switch (a) {
case 1: System.out.print(a++); 
	case 2: System.out.print(++a); 
	case 3: System.out.print(a++); 
	case 4: System.out.print(++a); 
	default: System.out.print(a);
}

Ответ:

(1) 2 

(2) 2244 

(3) 2255 

(4) 3355 

(5) 3 


Номер 4

Каким будет вывод следующего фрагмента Java-программы?

int i = 1;
int a = i++;
switch (a) {
case 1: System.out.print(i);
	case 2: System.out.print(a); break;
	case 3: System.out.print(i); break;
	case 4: System.out.print(a);
	default: System.out.print(i);
}

Ответ:

(1) 11 

(2) 12 

(3) 31 

(4) 21 

(5) 22 


Номер 5

Каким будет вывод следующего фрагмента Java-программы?

int i = 8;
int a = i%3;
switch (a) {
case 1: System.out.print(i);
case 2: System.out.print(a); 
	case 3: System.out.print(i); break;
	case 4: System.out.print(a);
	default: System.out.print(i);
}

Ответ:

(1) 2 

(2) 28 

(3) 2332 

(4) 2882 

(5) 23 


Номер 6

Каким будет вывод следующего фрагмента Java-программы?

double i = 1.5;
int a = (int)i*2;
switch (a) {
case 1: System.out.print(a);
	case 2: System.out.print(a); 
	case 3: System.out.print(a); 
	case 4: System.out.print(a);
	default: System.out.print(a);
}

Ответ:

(1) 2 

(2) 2222 

(3) 22 

(4) 222 

(5) 22222 


Упражнение 36:


Номер 1

Какими вариантами кодов необходимо дополнить программу, чтобы она выводила на экран последовательность 13579?

1 int i = 3, j =0;
2 while (i > 0) {
3 	while (j < 10){
4		j++;
5 		if (j%2 ==1)
6			System.out.print(j);
7 	}
8 }

Ответ:

(1) после строки 6 добавить continue; 

(2) после строки 6 добавить оператор break; 

(3) после строки 7 добавить оператор break; 

(4) ничего изменять не нужно 

(5) после строки 7 добавить оператор continue; 


Номер 2

Каким будет вывод следующего фрагмента Java-программы?

int a = 5,i = 0;
while (a == 5) {
	if (i <= 3 || i > 5)
		System.out.print(i)
	else
		continue;
		i++;
}

Ответ:

(1) 0123 

(2) 01

(3) 01235 

(4) 345 

(5) сообщение об ошибке 


Номер 3

Каким будет вывод следующего фрагмента Java-программы?

int i = 9;
do {
	System.out.print(--i);
	if (i < 5) break;
	i--;
} while(i > 0);

Ответ:

(1) 975 

(2) 864 

(3) 987654 

(4) 9754 

(5) сообщение об ошибке 


Номер 4

Каким будет вывод следующего фрагмента Java-программы?

int a = 0, i = 1;
do {
if (a < 2) {
		a++;
		continue;
	}
	i = i + a;
	System.out.print(a);
	a++;
} while (i < 3);
System.out.print(i);

Ответ:

(1) 123 

(2) 23 

(3) 12 

(4) 0123 

(5) 34 


Номер 5

Каким кодом необходимо дополнить пятую строку программы, чтобы она выводила на экран последовательность 23?

1  int a = 0, i = 1;
2  do {
3  if (a < 2) {
4 		a++;
5		...
6	}
7	i = i + a;
8	System.out.print(a);
9	a++;
10 } while (i < 3);
11 System.out.print(i);

Ответ:

(1) return; 

(2) break; 

(3) continue; 

(4) a = 0; 

(5) exit; 


Номер 6

Каким кодом необходимо дополнить программу, чтобы она выводила на экран последовательность 13579?

1 int i = 3, j =0;
2 while (i > 0) {
3 	while (j < 10){
4		j++;
5 		if (j%2 ==1)
6			System.out.print(j);
7 	}
8 }

Ответ:

(1) после строки 6 добавить continue; 

(2) после строки 7 добавить i--; 

(3) после строки 7 добавить continue; 

(4) строку 4 изменить на j = j + 2; 

(5) ничего изменять не нужно 


Упражнение 37:


Номер 1

Каким будет результат вывода при выполнении следующего фрагмента Java-программы?

int i = 0;
for (;i < 10; i++)
if (i > 5)
		continue;
	else
		System.out.print(i);

Ответ:

(1) 012345679 

(2) 01234567910 

(3) 012345 

(4) 01234 

(5) ничего 


Номер 2

Каким будет результат вывода при выполнении следующего фрагмента Java-программы?

int i = 9;
for (;i > 0; i--)
	if (i > 5){
		System.out.print(i);
		continue;
	}
	else
		break;	

Ответ:

(1) 98765 

(2) 9876 

(3) 987654 

(4) 987654321 

(5) ничего 


Номер 3

Каким будет результат вывода при выполнении следующего фрагмента Java-программы?

int i = 9;
for (;;)
if (i > 5){
		System.out.print(--i);
		continue;
	}
	else
		break;

Ответ:

(1) 98765 

(2) 9876 

(3) 8765 

(4) 876 

(5) ничего 


Номер 4

Каким будет результат вывода при выполнении следующего фрагмента Java-программы?

1 int i;
2 i = 100;
3 while (--i < 11);
4 System.out.println(i);

Ответ:

(1) 10 

(2) 100 

(3) 99 

(4) 9 

(5) 12 


Номер 5

Каким будет результат вывода при выполнении следующего фрагмента Java-программы?

1 int i;
2 i = 100;
3 while (i++ < 11);
4 System.out.println(i);

Ответ:

(1) 10 

(2) 101 

(3) 99 

(4) 100 

(5) 11 


Номер 6

Каким будет результат вывода при выполнении следующего фрагмента Java-программы?

int i = 0;
for (;i < 10; i++)
if (i > 5)
		continue;
	else
		System.out.print(i);

Ответ:

(1) 012345679 

(2) 01234567910 

(3) 012345 

(4) 01234 

(5) ничего 


Упражнение 38:


Номер 1

В какой строке кода фрагмента программы допущена синтаксическая ошибка?

1	int i = 0;
2	for(; i < 10; i++)
3		if (i == 10)
4			i %= 2;

Ответ:

(1)

(2)

(3)

(4)

(5) ошибок нет 


Номер 2

В какой строке кода фрагмента программы допущена ошибка?

1	int i = 0
2	for(; i < 10; i++)
3		if (i == 10)
4			i %= 2;

Ответ:

(1)

(2)

(3)

(4)

(5) ошибок нет 


Номер 3

Компиляция следующего фрагмента программы завершилась ошибкой. Какие изменения необходимо внести в код?

1 int i = 0;
2 do
3	i++;
4	System.out.print(i);
5 while (i < 5);

Ответ:

(1) в строке 5 необходимо удалить точку с запятой; 

(2) описание переменной i следует перенести в тело цикла; 

(3) операторы внутри цикла следует выделить операторными скобками; 

(4) внутри циклов не допускается использование методов печати; 

(5) никаких изменений вносить не нужно 


Номер 4

В какой строке кода фрагмента программы допущена ошибка?

1	int ar[] = new int [50];
2	short i = 0;
3	for (i =0, i < 50, i++) 
4		ar[1] = (int)i;

Ответ:

(1)

(2)

(3)

(4)

(5) ошибок нет 


Номер 5

В какой строке кода фрагмента программы допущена ошибка?

1	int i = 0;
2	for(; i < 10; i++);
3	if i == 10
4		i %= 2;

Ответ:

(1)

(2)

(3)

(4)

(5) ошибок нет 


Номер 6

В какой строке кода фрагмента программы допущена ошибка?

1	int i = 0;
2	for(, i < 10, i++)
3		if i == 10
4			i %= 2;

Ответ:

(1)

(2)

(3)

(4)

(5) ошибок нет 


Упражнение 39:


Номер 1

Какая последовательность кода будет ошибочной в Java-программе?

Ответ:

(1) while i = 0  

(2) while (i = 0) 

(3) while (i > 3); 

(4) while (i == 0) 

(5) while i == 0 && i < 6 


Номер 2

Какая последовательность кода будет ошибочной в Java-программе?

Ответ:

(1) while i == 0  

(2) while i <> 0  

(3) while (i == 0 || i < 6) 

(4) while (i == 0) 

(5) while i == 0 && i < 6 


Номер 3

Какая последовательность кода будет ошибочной в Java-программе?

Ответ:

(1) for(int i = 0; i < 10; i++)  

(2) for(;;); 

(3) for(int i = 100, i > 10; i--); 

(4) for(int i = 0, j = 0; i < 10; i++; j++); 

(5) for(int i = 0; i < 10, i++;); 


Номер 4

Какая последовательность кода будет ошибочной в Java-программе?

Ответ:

 

(1)

int i = 0;
for (;;){

}

 

 

(3)

int i = 0;
for(; i<1; i++){

}

 

 

(4)

int i = 0;
for(i=0,i<7,i++){

}

 

(5) в приведенных фрагментах нет ошибок 


Номер 5

Переменная a имеет тип int. Какая последовательность кода будет ошибочной в Java-программе?

Ответ:

(1) if a != 0 

(2) if a <> 0  

(3) if (a != 0)  

(4) if (a <> 0) 

(5) if (!a) 


Номер 6

Переменная i имеет тип int. Какая последовательность кода будет ошибочной в Java-программе?

Ответ:

(1) while i == 0  

(2) while i <> 0  

(3) while (i == 0 || i < 6) 

(4) while (i == 0) 

(5) while i == 0 && i < 6 


Упражнение 40:


Номер 1

Какая из перечисленных строк вывода соответствует результату выполнения фрагмента Java-программы?

int i = 100;
while (i > 0) {
	do {
		if (i >= 10){
			i--;
			continue;					
		}
		i--;	
		break;
	} while (i > 0);
	System.out.print(i);
}

Ответ:

(1) 987654 

(2) 6543210 

(3) 9876543210 

(4) 876543210 

(5) фрагмент кода содержит синтаксические ошибки — программа не может выполниться 


Номер 2

Какая из перечисленных строк вывода соответствует результату выполнения фрагмента Java-программы?

int i = 30;
while (i > 0) {
	do {
		if (i > 7){
			i--;
			continue;					
		}
		i--;	
		break;
	} while (i > 0);
	System.out.print(i);
}

Ответ:

(1) 0123456 

(2) 6543210 

(3) 76543210 

(4) 54321 

(5) фрагмент кода содержит синтаксические ошибки — программа не может выполниться 


Номер 3

Какая из перечисленных строк вывода соответсвует результату выполнения фрагмента Java-программы?

int i = 0;
while (i < 5){
	while (i <= 3){
		i++;
		System.out.print(1<<i);
	}
	break;
}

Ответ:

(1) 1248 

(2) 24816 

(3) 124816 

(4) 0124 

(5) фрагмент кода содержит синтаксические ошибки — программа не может выполниться 


Номер 4

Какая из перечисленных строк вывода соответсвует результату выполнения фрагмента Java-программы?

int i = 7;
while (i > 0) {
do
		if (i > 3)
			System.out.print(i);
	while (i-- > 2);
	System.out.print(i);
	break;
}

Ответ:

(1) 76540 

(2) 7654321 

(3) 765410 

(4) 76541 

(5) фрагмент кода содержит синтаксические ошибки — программа не может выполниться 


Номер 5

Какая из перечисленных строк вывода соответсвует результату выполнения фрагмента Java-программы?

int i = 0;
while (i < 9) {
do
		if (i > 3)
			System.out.print(i);
	while (i++ < 6);
	System.out.print(i);
	break;
}

Ответ:

(1) 34567 

(2) 45678 

(3) 4567 

(4) 76541 

(5) фрагмент кода содержит синтаксические ошибки — программа не может выполниться 


Номер 6

Какая из перечисленных строк вывода соответсвует результату выполнения фрагмента Java-программы?

int i = 100;
while (i > 0) {
	do {
		if (i > 10){
			i--;
			continue;					
		}
		i--;	
		break;
	} while (i > 0);
	System.out.print(i);
}

Ответ:

(1) 98765 

(2) 543210 

(3) 9876543210 

(4) 987654321 

(5) фрагмент кода содержит синтаксические ошибки — программа не может выполниться 


Тест по теме «МАССИВЫ»

 Вариант 1

1.Выберите ошибочное утверждение:        

  1. Если каждый элемент массива определяется с помощью одного номера, то такой массив называется одномерным;
  2. в двумерных массивах первый номер указывает на строку, в торой  —  на положение элемента в строке;
  3. номер элемента в массиве называют индексом;
  4. строки двумерного массива могут иметь неодинаковую длину.

2. Выберите из приведенного списка ошибочные записи одномерных массивов:

  1. Type mas=array [1..n] of byte; var a:mas;
  2. Var a: array [-7..-7] of integer;
  3. Var a: array [10] of integer;
  4. Const n=10; Var a: array [1..n] of integer.


3. Выберите из списка ложное обращение к элементам массива:    a:array [1..3, 1…4] of real;

  1. A [i];
  2. A[1,4];
  3. A[4,3];
  4. A [3,3].


4. Выберите заголовок алгоритма, который определял бы три действительные табличные величины, которые имеют по 50 элементов и элементы которых пронумерованы, начиная соответственно с 1, 10, 105:

a)Var a,b,c: array [1..50] of real;

  1. Var a: array [1..50] of real; b: array [10..59] of real; c: array [105..154] of real;;
  2. Var a: array [1..50] of real; b: array [10..60] of real; c: array [105..155] of real;;
  3. Var a,b,c: array [1..50, 10..59, 105..154] of real;.

5.Пусть нижняя и верхняя границы индексов одномерного массива С равны соответственно -3 и 13. Выберите порядковый номер следующего элемента С[5]:
a) 5; b) 6; c)8; d) 9.

6. Пусть элементы одномерного массива А[1..10]  приобретают значения соответственно -5, -3, -1, 1, 3, 5, 7, 9, 11, 13. Выберите какие значения будут напечатаны в результате выполнения таких операторов:

i:=1; repeat write ( a[i], ‘ ‘); i:=i+1 until a[i]<0;

  1. -5;
  2. -5 -3 -1;
  3. никакие значения не будут напечатаны;
  4. -5 -3.

7. Дана  программа, составленная для решения задачи. Дано натуральное число N и последовательность действительных чисел а1,…an. Определить в этой последовательности количество соседств нулевых чисел. Выберите пропущенную строку:

Type mas=array [1..100] of real;

Var  a: mas;

i, n, k: integer;

Begin

Readln (n);

For i:=1 to n do

Read (a[i]);

k:=0;

For i:=1 to n-1 do

_____________________

Then k:=k+1;

Writeln (‘k=’, k);

End.

  1. If  a[i]*a[i+1]=0;
  2. If  a[i]=a[i+1];
  3. If (a[i]=0) and  (a[i+1]=0);
  4. If  a[i]+a[i+1]=0.

8. Дана  программа, составленная для решения задачи. Даны действительные числа а1, …, а30, в1, …, в30. Вычислить а1в2+а3в4+…+а29в30. Выберите пропущенную строку:

Type mas=array [1..30] of real;

Var a, b: mas;

i: byte; y: real;

Begin

For i:=1 to 30 do read (a[i]);

For i:=1 to 30 do read (b[i]);

y:=0;

______________________

Writeln (‘y=’, y:8:4);

End.

  1. For i:=1 to 29 do for j:=2 to 30 do y:=y+a[i]*b[j];;
  2. i:=1; while i<=29 do begin j:=2; while j<=30 do begin y:=y+a[i]*b[j]; j:=j+2; end; i:=i+2; end;;
  3. i:=1; while i<=29 do begin y:=y+a[i]*b[i+1]; i:=i+2; end;;
  4. y:=(a[1]]*b[2])+ (a[3]*b[4])+… (a[29]]*b[30]);.

9. Дана  программа, составленная для решения задачи. В двумерном массиве A [1..4, 1..4] вычислить сумму положительных элементов, расположенных на главной диагонали. Выберите, какая строка содержит ошибку:

Var a; array [1..4, 1..4] of real;

i, j :byte; s: real;

Begin

For i:=1 to 4 do

For j:=1 to 4 do read (a[i, j]);

s:=0;

For i:= 1 to 4 do For j:=1 to 4 do

If a[i, i]>0 then

s:=s+ a[i, i];

Writeln (s:8:4);

End.

  1. For i:= 1 to 4 do For j:=1 to 4 do  For i:=1 to 4 do;
  2. If a[i, i]>0 then  не требуется;
  3. a[i, i]  a[i, j];;
  4. s: real;  s: byte;.

Вариант 2

1.Выберите ошибочное утверждение:        

  1. доступ к какому-либо элементу массива осуществляется по его номеру;
  2. каждый элемент массива определяется по собственному имени;
  3. если в программе несколько массивов одного размера и типа, тои имена можно дать через запятую, а потом после двоеточия указать описание массива;
  4. одномерный массив имеет в описании одну пару индексов.

2. Выберите из приведенного списка ошибочные описи одномерных массивов:

  1. Var a: array [1..20] of real;
  2. Type mas=array [‘a’..’z’];  var a:mas;
  3. Const n=10; Var a: array [1..n] of char;
  4. Var mas=array [-5..-15] of integer;.

3. Выберите из списка ложное обращение к элементам массива:    a:array [-5..5] of integer;

  1. A [-5..5];
  2. A[-5];
  3. A[-5,5];
  4. A [0].

4. Выберите заголовок алгоритма, который определял бы две целочисленные переменные, одну  табличную целочисленную  величину, элементы которой  пронумерованы от 1 до 10:

a)Var a,b: integer; c: array [1..10] of integer;

  1. Var a: array [1..10] of real; b, c: integer;;
  2. Var a: integer; c ,b: array [1..10] of integer;;
  3. Var a,b,c: array [1..10] of integer;.

5.Пусть нижняя и верхняя границы индексов одномерного массива B равны соответственно -5 и 10. Выберите порядковый номер следующего элемента В[8]:
a) 8; b) 14; c)13; d) 15.

6. Пусть элементы одномерного массива А[1..10]  приобретают значения соответственно -5, -3, -1, 1, 3, 5, 7, 9, 11, 13. Выберите какие значения будут напечатаны в результате выполнения таких операторов:

 For i:=1 to 5  write ( a[i+5], ‘ ‘);

  1. -5 -3 -1 1 3;
  2. 0 2 4 6 8;
  3. 5 7 9 11 13;
  4. 10 12 14 16 18.

7. Дана  программа, составленная для решения задачи. Дано натуральное число N и последовательность действительных чисел а1,…an. Определить в этой последовательности количество соседств положительных чисел. Выберите пропущенную строку:

 Соnst n1=100;

Var  a: array [1..n1] of real;

i, n, k: integer;

Begin

Readln (n);

For i:=1 to n do

Read (a[i]);

k:=0;

For i:=1 to n-1 do

_____________________

Then k:=k+1;

Writeln (‘k=’, k);

End.

  1. If  a[i]=a[i+1];
  2. If  a[i]>0 and a[i+1]>0;
  3. If a[i] and  a[i+1]>0;
  4. If  (a[i]>0) and (a[i+1]>0).

8. Дана  программа, составленная для решения задачи. Даны действительные числа а1, …, а30, в1, …, в30. Вычислить (а1+в30)(а2+в29)…(а30+в1). Выберите пропущенную строку:

Type mas=array [1..30] of real;

Var a, b: mas;

i: byte; y: real;

Begin

For i:=1 to 30 do read (a[i]);

For i:=1 to 30 do read (b[i]);

y:=1;

______________________

Writeln (‘y=’, y:8:4);

End.

  1. For i:=1 to 30 do for j:=1to 30 do y:=y*(a[i]+b[j]);;
  2. y:=(a[1]+b[30])*(a[2]+b[29])*..*(a[30]+b[1]);;
  3. for i:=1 to 30 do y:=y*(a[i]+b[31-i]);;
  4. for i:=1 to 30 do y:=y*(a[i]+b[30-i]);.

9. Дана  программа, составленная для решения задачи. В двумерном массиве A [1..10, 2..5] вычислить сумму четных элементов. Выберите, какая строка содержит ошибку:

Var a; array [1..10, 2..5] of real;

i, j :byte; s: real;

Begin

For i:=1 to 10 do

For j:=2 to 5 do read (a[i, j]);

s:=0;

For i:=1 to 10 do For j:=2 to 5 do

If (i mod 2=0) and (j mod 2=0) then

s:=s+ a[i, i];

Writeln (s:8:4);

End.

  1. s: real; s: byte;
  2. If (i mod 2=0) and (j mod 2=0) then if a[i, j] mod 2=0 then;
  3. s:=s+ a[i, j] s:=s+ a[2*i,2* j];;
  4. s:=0;  s:=1;.

Ключи к заданиям:

№ варианта

1

2

3

4

5

6

7

8

9

1

d

a, c

a, c

b

d

a

c

c

a

2

b

b, d

a, c

a

b

c

d

c

b

Каждое правильно решенное  задание оценивается 1 баллом.

9 баллов – оценка «5»;        8-7 баллов – оценка «4»;

6-5 баллов – оценка «3»;     менее 5 баллов – оценка «2».

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Какая лингвистическая ошибка допущена учителем какие принципы методики изучения грамматики нарушены
  • Какая самая частая ошибка при первом запуске виртуальной машины