Главная / Программирование /
Структуры и алгоритмы компьютерной обработки данных / Тест 3
Структуры и алгоритмы компьютерной обработки данных - тест 3
Упражнение 1:
Номер 1
Укажите допустимые присваивания для переменной ch
символьного типа.
Ответ:
 (1) ch=55;
 
 (2) ch=5.5;
 
 (3) ch='&';
 
 (4) ch='&&&';
 
Номер 2
Укажите допустимые присваивания для переменной m
вещественного типа.
Ответ:
 (1) m='f';
 
 (2) m=.5e-04;
 
 (3) m=float(47)/4;
 
 (4) m=5,5;
 
Номер 3
Укажите допустимые присваивания для переменной b
логического типа.
Ответ:
 (1) b='true';
 
 (2) b=true;
 
 (3) b=1;
 
 (4) b=5>6;
 
Упражнение 2:
Номер 1
Укажите для целого знакового 4-байтного типа преобразования к целевому типу без потери информации:
Ответ:
 (1) к плавающему типу 
 (2) к целому беззнаковому 4-байтному типу 
 (3) к символьному типу 
 (4) к целому знаковому 2-байтному типу 
Номер 2
Укажите для плавающего 4-байтного типа преобразования к целевому типу без потери информации:
Ответ:
 (1) к плавающему 8-байтному типу 
 (2) к целому беззнаковому 8-байтному типу 
 (3) к целому знаковому 8-байтному типу 
 (4) к целому беззнаковому 4-байтному типу 
Номер 3
Укажите для целого беззнакового 4-байтного типа преобразования к целевому типу без потери информации:
Ответ:
 (1) к плавающему типу 
 (2) к целому знаковому 4-байтному типу 
 (3) к логическому типу 
 (4) к целому беззнаковому 8-байтному типу 
Упражнение 3:
Номер 1
Укажите ситуации, когда функция со спецификатором inline
будет трактоваться как обычная не подставляемая функция.
Ответ:
 (1) всегда используется как подставляемая функция 
 (2) никогда не используется как подставляемая 
 (3) функция является рекурсивной 
 (4) вызывается более одного раза в выражении 
Номер 2
Укажите достоинства использования подставляемых функций в программе.
Ответ:
 (1) уменьшается время, затрачиваемое на вызов функции 
 (2) уменьшается объем памяти под программный код 
 (3) функция становится доступной в любом программном коде 
 (4) быстрее выполняются рекурсивные вызовы подставляемой функции 
Номер 3
Укажите возможные недостатки использования подставляемых функций в программе.
Ответ:
 (1) увеличивается время, затрачиваемое на вызов функции 
 (2) увеличивается объем памяти под программный код 
 (3) функция доступна для подстановки только один раз 
 (4) компилятор не всегда может выполнить подстановку из-за контекста 
Упражнение 4:
Номер 1
Укажите, какое значение возвращает функция f(a,b,c)
, если объявлены int a=3,b=5,c=18;
и функция перегружена следующим образом:
float f(int a, int b, int c){
return float((a+b+c)/3);
}
float f(float a, float b, float c){
return a+b+c;
}
Ответ:
 (1) ошибка вызова функции 
 (2) 26 
 (3) 8.66667 
 (4) 8 
Номер 2
Укажите, какое значение возвращает функция g(a,b,c)
, если объявлены int a=3,b=5,c=18;
и функция перегружена следующим образом:
float g(int a, int b, int c,int d){
return float(a+b+c)/4;
}
float g(float a, float b, float c){
return a+b+c;
}
Ответ:
 (1) ошибка вызова функции 
 (2) 6.5 
 (3) 8.5 
 (4) 8 
Номер 3
Укажите, какое значение возвращает функция h(a,b,c)
, если объявлены int a=3,b=6;float c=4.5
; и функция перегружена следующим образом:
int h(int a, float b, int c){
return int(a+b+c)/3;
}
float h(float a, int b, float c){
return a+b+c;
}
Ответ:
 (1) ошибка вызова функции 
 (2) 13.5 
 (3) 4.5 
 (4) 4 
Упражнение 5:
Номер 1
Каково назначение типа void
?
Ответ:
 (1) используется для определения функций, которые не возвращают значения 
 (2) указывает о пустом списке аргументов функции 
 (3) указание об ошибке вызова функции 
 (4) используется в операции приведения типов 
Номер 2
Какой тип имеет переменная перечисляемого типа, который объявлен так: enum year {winter, spring, summer, autumn};
?
Ответ:
 (1) строковый 
 (2) целочисленный 
 (3) символьный 
 (4) тип void
 
Номер 3
Укажите случаи допустимого неявного преобразования типов в выражениях, если выполнено объявление int s;
:
Ответ:
 (1) s=20/6;
 
 (2) s=4.5%8;
 
 (3) s=int(48.6/4);
 
 (4) s=48.6/4;
 
Упражнение 6:
Номер 1
Что возвращает функция, фрагмент кода которой приведен ниже?
int Rec(int n) {
if (n<10) return n;
return Rec(n/10)+n%10;
}
Ответ:
 (1) количество цифр числа n
 
 (2) количество всех делителей числа n
 
 (3) сумму цифр числа n
 
 (4) сумму всех делителей числа n
 
Номер 2
Что возвращает функция, фрагмент кода которой приведен ниже?
long int Rec(int n) {
if (n<2) return 1;
return Rec(n-1)*n;
}
Ответ:
 (1) произведение цифр числа n
 
 (2) количество цифр числа n
 
 (3) количество делителей числа
n 
 (4) факториал числа
n 
Номер 3
Что возвращает функция, фрагмент кода которой приведен ниже?
int Rec(int n, int p) {
if (n%p!=0) return 0;
return Rec(n/p,p)+1;
}
Ответ:
 (1) количество цифр числа n
, кратных p
 
 (2) p
-ичный порядок числа n
 
 (3) сумму цифр числа n
, кратных p
 
 (4) сумму всех делителей числа n
, не превосходящих p
 
Упражнение 7:
Номер 1
Формирование какой последовательности описывает рекурсивная функция Rec
, код которой приведен ниже?
int Rec(int n) {
if (n<3) return n;
return Rec(n-1)*Rec(n-2);
}
Ответ:
 (1) 1, 1, 2, 2, 3, 3, ... 
 (2) 1, 2, 3, 4, 5, 6, ... 
 (3) 1, 2, 2, 4, 8, 32, ... 
 (4) 1, 2, 2, 4, 4, 8, 8, ... 
Номер 2
Формирование какой последовательности описывает рекурсивная функция Rec
, код которой приведен ниже?
int Rec(int n) {
if (n<5) return n;
return Rec(n-1)+Rec(n%4);
}
Ответ:
 (1) 1, 2, 3, 4, 1, 2, 3, 4, ... 
 (2) 1, 2, 3, 4, 6, 8, 10, 12, ... 
 (3) 1, 2, 3, 4, 5, 6, 7, 8, ... 
 (4) 1, 2, 3, 4, 5, 7, 10, 10, ... 
Номер 3
Формирование какой последовательности описывает рекурсивная функция Rec
, код которой приведен ниже?
int Rec(int n) {
if (n<4) return n;
return Rec(Rec(n-3));
}
Ответ:
 (1) 1, 2, 3, 1, 2, 3, 1, 2, 3, ... 
 (2) 1, 2, 3, 4, 5, 6, 7, 8, 9, ... 
 (3) 1, 2, 3, 3, 2, 1, 1, 2, 3, ... 
 (4) 1, 2, 3, 3, 3, 3, 3, 3, 3, ... 
Упражнение 8:
Номер 1
Какое значение возвращает рекурсивная функция Rec(8)
, код которой приведен ниже?
int Rec(int n) {
if (n<1) return 0;
if (n%3==0) return n/3;
return Rec(n-1)+Rec(n-2);
}
Ответ:
 (1) 0 
 (2) 6 
 (3) 13 
 (4) 45 
Номер 3
Какое значение возвращает рекурсивная функция Rec(108,72)
, код которой приведен ниже?
int Rec(int n,int k) {
if (n%k==0) return k;
return Rec(k,n%k);
}
Ответ:
 (1) 1 
 (2) 12 
 (3) 36 
 (4) 72