Знание алгоритмов. Языки С/С++

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Tikson, 14 Jan 2007.

  1. Tikson

    Tikson Elder - Старейшина

    Joined:
    9 Oct 2005
    Messages:
    263
    Likes Received:
    42
    Reputations:
    14
    Один очень известный сайт проводил семинар на тему "Знание алгоритмов. Языки С/С++" В нем учавствовал и я. На ответы нам давалось 90 секунд.У вас есть больше времени. В течение недели(скорее всего после 18 числа) я сообщю вам ответы.
    Вопрос №1
    Что будет выведено на экран после выполнения функции:
    HTML:
    void main()
    {
    int i,j;
    j=0;
    for( i=0; i<10; i++)
    {
    if (j==5) continue;
    j++;
    }
    cout<<j;
    }
    
    1) 0
    2) 5
    3) 10
    4) 11
    Вопрос №2
    Логическое выражение
    (N Mod 10 Mod 2 = 0) Or (N Div 10 Mod 10 Mod 2 = 0) Or (N Div 100 Mod 2 = 0)
    , где Div – целочисленное деление, а Mod – остаток от деления
    должно принимать значение TRUE тогда и только тогда, когда истинно высказывание
    1) в трёхзначном натуральном числе все цифры чётные;
    2) в трёхзначном натуральном числе одна чётная цифра;
    3) в трёхзначном натуральном числе две чётных цифры;
    4) в трёхзначном натуральном числе хотя бы одна чётная цифра;
    5) в трёхзначном натуральном числе нет чётных цифр.
    Вопрос №3
    Цикл с предусловием выполняется так:
    1) выполняется тело цикла, изменяется параметр цикла, проверяется условие продолжения выполнения цикла;
    2) изменяется параметр цикла, проверяется условие продолжения выполнения цикла, выполняется тело цикла;
    3) проверяется условие продолжения выполнения цикла, выполняется тело цикла;
    4) тело цикла выполняется N раз (N — натуральное);
    5) определяется, сколько раз должен быть выполнен цикл, и далее цикл с предусловием сводится к циклу с параметром.
    Вопрос №4
    В текстовом файле каждая строка заканчивается
    1) числами 10 и 13;
    2) символами с кодами 10 и 13;
    3) символом с кодом 13;
    4) числом 0;
    5) символом с кодом 10.
    Вопрос №5
    Цикл во фрагменте программы
    P = 4; Повторить P = P * 0.1 До тех пор, пока не P 0.0001;
    будет исполнен
    1) 0 раз;
    2) 1 раз;
    3) 4 раза;
    4) 5 раз;
    5) бесконечное число раз.
    Вопрос №6
    Значение R после выполнения операции логического присваивания
    R = Not (A Or B Or (X 2) And (Y 0))
    при A = False, B = False, X = 3, Y = 2 будет равно
    1) –1;
    2) False;
    3) True;
    4) 0;
    5) 1.
    Вопрос №7
    Значения переменных a и b после выполнения следующих действий
    a = 15 Div (16 Mod 7); b = 34 Mod a * 5 – 29 Mod 5 * 2;
    будут равны
    1) a = 1, b = 160;
    2) a = 1, b = 4;
    3) a = 7, b = 25;
    4) a = 7, b = 22;
    5) a = 7, b = 28.
    Вопрос №8
    Во фрагмент алгоритма
    Цикл K = 10 До 99 Выполнить
    Начало P1 = K Div 10;
    P2 = K Mod 10;
    S = P1 + P2;
    Если ____ То Вывести K
    Конец;
    печатающий все двузначные числа, в записи которых есть цифра N или сумма цифр которых равна самим числам, нужно вписать логическое выражение
    1) (P1 = N) Or (P2 = N) And (S = K);
    2) (P1 = N) Or (P2 = N) Or (S = K);
    3) (P1 = N) And (P2 = N) Or (S = K);
    4) ((P1 = N) Or (P2 = N)) And (S = K);
    5) (P1 = N) And (P2 = N) And (S = N).
    Вопрос №9
    Значения переменных p и d после выполнения фрагмента алгоритма (алгоритм написан на абстрактном языке)
    k = 47; Case k Mod 9 Of
    5: Begin d = k; p = True End;
    0..2: Begin d = 2; p = False End;
    8: Begin d = 1; p = False End
    Else Begin d = 1; p = True End
    End;
    Равны
    1) p = True, d = 1;
    2) p = False, d = 2;
    3) p = False, d = 3;
    4) p = True, d = 47;
    5) p = True, d = 2.
    Вопрос №10
    Элементы массива p[1..5] равны соответственно 1, –1, 5, 2, 4. Значение выражения
    p[1] * p[3] – p[2 * p[2] + p[p[5] – p[2]]]
    равно
    1) 8;
    2) –8;
    3) 12;
    4) –12;
    5) 6.
    Вопрос №11
    Задан двумерный массив X[1..n, 1..m]. Процедура
    Процедура Sub (Переменные X: Myarray);
    Переменные i, j: Integer;
    Начало Цикл i := 1 До n Выполнить
    Цикл j := 1 До m Div 2 Выполнить X[i, 2 * j] := X[i, 2 * j] + X[i, 1];
    Конец;
    1) к элементам столбцов в первой половине матрицы прибавляет элементы первого столбца соответствующей строки;
    2) добавляет к матрице еще M столбцов с элементами, равными соответствующим элементам первого столбца;
    3) к элементам четных столбцов прибавляет элементы первого столбца соответствующей строки;
    4) к элементам четных строк прибавляет элементы первой строки соответствующего столбца;
    5) меняет порядок столбцов таблицы.
    Вопрос №12
    Какое значение будет принимать переменная после выполнения фрагмента кода на языке C:
    int i = 1;
    i = (i++) + (i++);
    1) 3
    2) 4
    3) 5
    4) Результат выполнения не определён
    Вопрос №13
    Что в языке C++ означает оператор?
    int * FFF(int x);
    1) Объявление указателя на функцию
    2) Объявление прототипа функции
    3) Объявление нового типа - указателя на функцию
    4) Недопустимый оператор
    Вопрос №14
    Символ комментария перед какими операторами printf надо убрать, чтобы было напечатано максимальное количество 200 (код на языке C++)?
    int data[3][7]={{1,2,3,4,5,6,7},
    {10,20,30,40,50,60,70},
    {100,200,300,400,500,600,700}};
    int *pi=&data[1][1], (*pd)[7]=data;
    .// printf(" %d
    ",data[2][1]);
    .// printf(" %d
    ",data[3][2]);
    .// printf(" %d
    ",*(*(pd+2)+1));
    .// printf(" %d
    ",*((*pd+2)+1));
    .// printf(" %d
    ",*(*(pd+1)+2));
    .// printf(" %d
    ",*(pi+7));
    .// printf(" %d
    ",*(*pi+7));
    1) перед первым и вторым
    2) только перед вторым
    3) перед первым и третим
    4) перед первым и четвертым
    5) перед первым, третим и шестым
    6) перед вторым и седьмым
    7) здесь нет правильного ответа
    Вопрос №15
    Что будет напечатано после выполнения кода на языке C++?
    #include stdio.h
    #include string.h
    void main()
    {
    char a[] = "123";
    printf( "%d", strlen(a) );
    }
    1) 6
    2) 3
    3) 4
    4) 8
    Вопрос №16
    Что напечатает приведенный фрагмент кода на языке С++?
    int x = 2, y = 5, z;
    z = x+++y++;
    printf("x = %d, y = %d, z = %d", x, y, z);
    1) x = 3, y = 6, z = 7 (то есть z = x++ +y++; )
    2) x = 2, y = 7, z = 8 (то есть z = x + ++y++; )
    3) x = 2, y = 6, z = 7 (то есть z = x + + +y++; )
    4) оператор вычисления z содержит ошибку
    Вопрос №17
    Чему равно значение переменной x после выполнения цикла for(i=0; i 10; x=i, i++);?
    1) Равно десяти
    2) Равно одиннадцати
    3) Равно девяти
    4) Зависит от начального значения переменной x

    ps прошу писать только по теме
    отвечать лучше так
    Вопрос №1 ответ:
    Вопрос №2 ответ:
    Вопрос №3 ответ:
    Вопрос №4 ответ:
    Вопрос №5 ответ:
    Вопрос №6 ответ:
    Вопрос №7 ответ:
    Вопрос №8 ответ:
    Вопрос №9 ответ:
    Вопрос №10 ответ:
    Вопрос №11 ответ:
    Вопрос №12 ответ:
    Вопрос №13 ответ:
    Вопрос №14 ответ:
    Вопрос №15 ответ:
    Вопрос №16 ответ:
    Вопрос №17 ответ:
     
    #1 Tikson, 14 Jan 2007
    Last edited: 14 Jan 2007
    1 person likes this.
  2. VampiRUS

    VampiRUS Elder - Старейшина

    Joined:
    31 Dec 2005
    Messages:
    210
    Likes Received:
    105
    Reputations:
    57
    думаю надо воспользоваться code, а то знак меньше съело
     
  3. Tikson

    Tikson Elder - Старейшина

    Joined:
    9 Oct 2005
    Messages:
    263
    Likes Received:
    42
    Reputations:
    14
    хочу так же заметить, что большинство примеров приведены на абстрактном языке
     
  4. VampiRUS

    VampiRUS Elder - Старейшина

    Joined:
    31 Dec 2005
    Messages:
    210
    Likes Received:
    105
    Reputations:
    57
    хотя Tikson утверждает что всё написано верно, но мне всё-таки кажется что кое-где знака "<" нету хотя должен быть, у меня получилось вот что
     
    #4 VampiRUS, 14 Jan 2007
    Last edited: 14 Jan 2007
    1 person likes this.
  5. Dude03

    Dude03 Elder - Старейшина

    Joined:
    5 Oct 2006
    Messages:
    49
    Likes Received:
    9
    Reputations:
    7
    Вопрос 3 ответ : 3 - типо цикл while
    Вопрос 4 ответ : 5 - 0x0a будет полюбому в конце

    Блин нажал случайно кнопку закрыть у браузера, когда дошел до 12=( Больше не буду делать.
     
    1 person likes this.
  6. nc.STRIEM

    nc.STRIEM Members of Antichat

    Joined:
    5 Apr 2006
    Messages:
    1,036
    Likes Received:
    347
    Reputations:
    292
    1 - 3
    2 -
    3 - 3
    4 - 5
    5 - 5
    6 - 3
    7 - 4
    8 -
    9 - 2
    10 - 5
    11 - 1
    12 - 3
    13 - 2
    14 - 1
    15 - 3
    16 - 2
     
    1 person likes this.
  7. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    729
    Reputations:
    266
    1) ошибка компиляции
    3) 3
    4) 2, 3, 5 - все три правильные. Я бы ответил 3, как наиболее универсальный(кто не верит - смотрит переводы строк конфига квейка 3, ибо сабж рулит).
    15) см. вопрос 1

    Остальные либоне читал, либо лень )
     
  8. Dude03

    Dude03 Elder - Старейшина

    Joined:
    5 Oct 2006
    Messages:
    49
    Likes Received:
    9
    Reputations:
    7
    хмм да сглупил, в досе же 0x0d заканчивается каждая строка.=( Получается может быть 2 правильных - 0x0d и 0x0a.
     
  9. nc.STRIEM

    nc.STRIEM Members of Antichat

    Joined:
    5 Apr 2006
    Messages:
    1,036
    Likes Received:
    347
    Reputations:
    292
    Аогументируй есле не сложно, почему это ошибка???
    то что нет:
    #include <iostream>
    using namespace std;
    дак это я думаю прост не стали писать
     
  10. Zadoxlik

    Zadoxlik рояль с сыром

    Joined:
    28 Feb 2005
    Messages:
    758
    Likes Received:
    216
    Reputations:
    257
    Почему ты решил что main подразумевается как (дефолтная) точка входа? Там четко спрашивается - что будет выведено на экран после исполнения функции?
     
  11. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    729
    Reputations:
    266
    гыгы, какая подъ**ка ) был неправ )