игра брюс 2048
Главная / Программирование / Язык программирования C++ / Тест 5

Язык программирования C++ - тест 5

Упражнение 1:
Номер 1
Прототип функции задает

Ответ:

 (1) тип функции, включая количество и тип аргументов и тип результата 

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

 (3) имя функции и минимальное количество параметров 


Номер 2
Сколько функций может быть в программе С++?

Ответ:

 (1) ни одной 

 (2) минимум одна 

 (3) не больше 100 


Номер 3
Отметьте истинное высказывание, если вызываются подряд несколько функций:

Ответ:

 (1) все функции выполняются одновременно 

 (2) после выполнения одной функции управление переходит к следующей 

 (3) последовательность выполнения функций определяется компилятором 


Упражнение 2:
Номер 1
Отметьте, какому определению функции может соответствовать вызов func(5.98):

Ответ:

 (1) int func(double x = 0, double y); 

 (2) void func(double x); 

 (3) double func(double x, int y = 12, int z = 5); 

 (4) void func(float arg1, float arg2 = 0); 

 (5) float func(float g, float f); 


Номер 2
Если в программе уже имеется функция с прототипом int func(int k, double f), то какое из следующих объявлений не вызовет ошибки компиляции?

Ответ:

 (1) double func(int m, double g) 

 (2) int func(double x, int y) 

 (3) void func(int m, double g = 3.14) 


Номер 3
Отметьте допустимые имена функций:

Ответ:

 (1) _This_Function_12_x_ 

 (2) ax%u7 

 (3) fffffffAAAAAA 

 (4) 3_pi 

 (5) calculateIt 

 (6) thisname_is_too_long_forafunction 


Упражнение 3:
Номер 1
Если функция вычисления суммы целых чисел от 1 до n имеет прототип int sum(int n), запишите определение функции, используя рекурсию:

Ответ:

 (1) {if (n == 1) return 1; else return n + sum (n – 1);} 

 (2) {if (n == 1) return 1; else return sum(n);} 

 (3) {if (n == 1) return 1; else return sum(n) + (n – 1);} 

 (4) {if (n == 1) return 1; else return sum(n) + sum (n-1);} 


Номер 2
Если функция вычисления факториала n имеет прототип int fact(int n), отметьте код, использующий рекурсию и правильно вычисляющий значение факториала:

Ответ:

 (1) {if (n == 0 || n==1) return 1; else return n * fact (n -1);} 

 (2) {if (n == 0 || n==1) return 1; else return fact(n);} 

 (3) {if (n == 0 || n==1) return 1; else return fact(n) * fact(n-1);} 

 (4) {if (n == 0 || n==1) return 1; else return fact(n)*(n-1);} 


Номер 3
Если функция вычисления суммы целых чисел, находящихся между двумя заданными (начальное и конечное включительно), имеет прототип int sum(int start, int end), запишите определение функции, используя рекурсию:

Ответ:

 (1) {if (end == start) return 1; else return end + sum(start, end -1);} 

 (2) {if (end == start) return start; else return end + sum(start, end -1);} 

 (3) {if (end >= start) return 0; else return end + sum(start, end -1);} 


Упражнение 4:
Номер 1
Совокупность типов формальных параметров, их порядка и имени функции определяет:

Ответ:

 (1) тип возвращаемого функцией значения 

 (2) сигнатуру (подпись) функции 

 (3) идентификатор функции 

 (4) последовательность описаний и определений функции 


Номер 2
Если функция имеет тип void, то неверно, что

Ответ:

 (1) она не может содержать оператор return 

 (2) оператор return в теле функции необязателен 

 (3) функция не возвращает никакого значения 


Номер 3
Отметьте ошибочное утверждение:

Ответ:

 (1) Си++ обеспечивает строгий контроль типов 

 (2) строгое согласование по типам между формальными и фактическими параметрами требует, чтобы в модуле до первого обращения к функции было помещено либо ее описание, либо определение 

 (3) при обращении к функции фактические параметры заменяются формальными 


Упражнение 5:
Номер 1
Что вычисляет эта функция:
 double func(double x, int n) {
      if (n == 0) return 1;
      if (x == 0) return 0;
      if (n > 0) return x * func(x, n-1);
      if (n < 0) return func(x, n+1) / x;
 }

Ответ:

 (1) дробную степень вещественного ненулевого числа 

 (2) целую степень любого числа 

 (3) факториал 

 (4) любую степень любого числа 


Номер 2
Как называется функция, которая  вызывает саму себя?

Ответ:

 (1) конструктором 

 (2) деструктором 

 (3) подставляемой 

 (4) рекурсивной 


Номер 3
В чем разница между фактическими и формальными параметрами?

Ответ:

 (1) формальные параметры могут использоваться только вне тела функции, а фактические - используются как вне функции, так и внутри ее 

 (2) формальные параметры определены в заголовке функции, а фактические - значения, с которыми функция вызывается 

 (3) нет различий 


Упражнение 6:
Номер 1
Какое из следующих утверждений об операторе return является верным?

Ответ:

 (1) оператор return должен стоять последним в теле функции 

 (2) оператор return завершает выполнение функции 

 (3) в теле функции должен присутствовать только один оператор return 


Номер 2
Укажите правильный вызов функции, объявленной следующим образом: void Iterat(int a, float b, short c);
  

Ответ:

 (1) int res = 0; res = res + Iterat(2,4,34); 

 (2) int k = 1; float l = 3; short m = 4; Iterat(k,l,m); 

 (3) float d = Iterat(2,3.2,6); 


Номер 3
Укажите правильное объявление функции

Ответ:

 (1) int MyFunc(double x, y, int i); 

 (2) void correct(double d = 3.14, double a); 

 (3) int sum(int j, int k, int x = 0); 


Упражнение 7:
Номер 1
Если функция вычисления суммы целых чисел от 1 до n имеет прототип int sum(int n), то как будет выглядеть запись определения функции с использованием рекурсии?
  
1.{if (n == 1) return 1;  
else return n + sum (n - 1);}
2. {if (n == 1) return 1;  
else return sum(n);}
  
  

Ответ:

 (1) первый вариант 

 (2) второй вариант 

 (3) оба верны 

 (4) оба ошибочны 


Номер 2
Если функция вычисления факториала n имеет прототип int fact(int n), то как будет выглядеть запись определения функции с использованием рекурсии?
  
1.{if (n == 1 || n == 0) return 1;  
else return n * fact (n -1);}
2.{if (n == 1 || n == 0) return 1;  
else return fact(n);}
  
  

Ответ:

 (1) первый вариант 

 (2) второй вариант 

 (3) оба верны 

 (4) оба ошибочны 


Номер 3
В каких случаях произойдет ошибка компиляции?

Ответ:

 (1) void f(int i) { return i++;}  

 (2) int ZZ(float i, int w = 2) { i += w; return; }  

 (3) int x(int w) { int x = w; return w; return x++; }  


Упражнение 8:
Номер 1
Имеется функция
  
int sum(int a,int a1=2,int a2,int a3,int a4)
{return a+a1+a2+a3+a4;}
  
  что будет выведено на экран после выполнения кода cout<<sum(9,8,7,6);

Ответ:

 (1) ничего,будет ошибка компиляции 

 (2) 30 

 (3) 32 


Номер 2
Произойдет ли ошибка компиляции если функцию
int sum(int a, int a1, int a2, int a3, int a4=2)
{return a+a1+a2+a3+a4;}
вызвать в функции main следующим образом
int main()
{
  int z=1,b=1,c=1,d=1,e=1;
  sum(z,b,c,d,e);
  ....
}

Ответ:

 (1) нет 

 (2) да, потому что значение возвращаемое функцией не присваивается никакой переменной 

 (3) да, потому что мы пытаемся изменить значение аргумента по умолчанию 


Номер 3
В какой строке будет ошибка компиляции
  
1  int sum(int a,int b,int c,int d=4){
2    int result;
3    result=128*a+b-c*d;
4    d=25;
5    a=d;
6    return res;
7  }
  

Ответ:

 (1) ошибок нет,все верно 

 (2) в 4 

 (3) в 5 

 (4) в 6 




Главная / Программирование / Язык программирования C++ / Тест 5