Пятница, 17.05.2024, 03:25
Приветствую Вас, Гость

БИЛЕТ 1.

1.     Язык С++ и его характеристики.

     1). Поддерживает характерные для типовой системы объекты: числа, строки, структуры, различные данные…

     2). Имеет хорошо развитые средства управления ходом программы: блочная структура ветвления, циклы, области видимости. Поэтому - язык высокого уровня.

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

     4) Обладает машинно-зависимыми свойствами.

     5). Отличие от "Классического Си”:

       - структура (struct) получила ряд свойств базового типа данных;

       - введено понятие элемента-функции. Элементы-функции играют роль своеобразного интерфейса для использования структурированной переменной;

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

2.     Оператор цикла while.

while (выражение) оператор

    Он работает следующим образом. Проверяется условие в скобках. Если оно истинно, то выполняется тело цикла. Затем опять проверяется условие, и если оно истинно, то тело цикла выполняется снова. Когда условие становится ложным, цикл завершается, и вычисления продолжаются с оператора, следующего за циклом.

    Телом цикла while может быть один или несколько операторов, заключенных в фигурные скобки, или один оператор без скобок.

Если условие истинно (принимает не нулевое значение), то выполняется блок из одного или нескольких операторов и происходит возврат на проверку условия. Если условие ложно, происходит выход из цикла. Условие может быть составлено из нескольких выражений, с использованием || (логическое сложение "или") и &&(логическое умножение "и")

Оператор while удобно использовать для проверки ввода пользователя.

Цикл while исп-ся в след. случаях:

-обратилось в 0 выр. в заголовке

-в теле цикла встретился оператор break

-в теле цикла встретился оператор return

 Предостережение. При использовании цикла типа while случаются ошибки, связанные с лишним шагом при выполнении цикла.

В сумму войдет один лишний элемент (мусор). Попытка обратиться к сотому элементу может обойтись без последствий, если использовать его значение, при этом, лишь ошибка в вычислении. Однако, если что-то присваивается этому элементу с номером size, то последствия могут быть серьезными (зависание проги).


3.  Даны два массива. Массив А состоит из N элементов и отсортирован по возрастанию. Массив В состоит из М элементов и отсортирован по убыванию. Разработать программу для слияния этих массивов в отсортированный по возрастанию массив С.

 

# include <stdio.h>

# include <stdlib.h>

 

  const N=10,M=10;

  int a[N],b[M],c[N+M];

 

void main()

{

  randomize();

  a[0]=-20;

  b[0]= 20;

  for (int i=1;i<N;i++)

    a[i]=a[i-1]+random(10);

  for (i=1;i<M;i++)

    b[i]=b[i-1]-random(10);

  int x=0,y=M-1;

  i=0;

  while (!c[N+M-1])

    {

      if (((a[x]>=b[y])|(x>N-1))&(y<=M-1))

            {

              c[i]=b[y];

              i++;

              y--;

            }

      else if (((a[x]<=b[y])|(y<0))&(x>=0))

            {

              c[i]=a[x];

              i++;

              x++;

            }

    }

}

 

4.   Предложите два варианта функции вычисления суммы первых n чисел Фибоначчи.                                                                                    

 

# include <stdio.h>

 

int fib(int x)

{

  if ((x==1)|(x==2)) return 1;

  else return (fib(x-1)+fib(x-2));

}

void main()

{ int sum=0;

  const n=7;

  for (int i=1;i<=n;i++)

    sum+=fib(i);

  printf("%d",sum);

}