БИЛЕТ 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));
}