Вторник, 21.05.2024, 07:59
Приветствую Вас, Гость

БИЛЕТ 2.

1. Беззнаковые целочисленные типы данных, представление в памяти.

int - целое, обычно отображающее естественное представление целых в машине.

Имеется также несколько квалификаторов, которые можно использовать вместе с указанными базовыми типами. Например, квалификаторы short (короткий) и long (длинный) применяются к целым: short int sh; long int counter;

Int  занимает 2-4 байта. Спецификатор %i или %d. Перед i(d) может стоять ширина поля вывода. (%3d)

Квалификаторы signed (со знаком) или unsigned (без знака) можно применять к любому целочисленному типу. Значения unsigned всегда положительны или равны нулю и подчиняются законам арифметики по модулю 2n, где n - количество бит в представлении типа.

Отриц. значение представляется в дополнительном коде. Все переполнения сбрасываются.
Операции: =, присвоить =:, -,*,/,побитовые оп-ции, оп-ции отношения, имя ф-ии, адрес ф-ии.

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

Цикл do-while имеет следующий синтаксис:

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

Сначала выполняется оператор, затем вычисляется выражение. Если оно истинно, то оператор выполняется снова и т. д. Когда выражение становится ложным, цикл заканчивает работу.

Выход из цикла осуществляется если:

1)выр. оказалось =0; 2)встретился break; 3)встретился return.


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]=-5;

  b[0]= 5;

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

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

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

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

  int x=N-1,y=0;

  i=0;

  while ((x>=0)|(y<M))

    {

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

            {

              if (c[i-1]!=a[x]) { 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()

{ const n=20;

  printf("\n%d",fib(n));

}