БИЛЕТ 11.
1)Операция арифметический if.
выр? выр1:выр2
действия: вычисляется выр, если оно true (не ноль), то вычисляется и считается результатом выр1, иначе вычисляется и считается результатом выр2.
a=1; b=2;
a>b ? a=2 : b=1
2) Строки в С++: объявление, расположение в памяти, инициализация, передача функциям в качестве параметра.
Строка символов хранится в памяти как массив и заканчивается нулевым символом, доступ к ней осуществляется с помощью указателя типа char. Указатель указывает на соответствующий строке массив символов.
Char s[длина строки+1]; 0 или ‘\0’. Если 0 в конце не присутствует, то считается, что строка начинается с адреса s и до первого 0 символа, который найдется в строке. Const строки заключается в кавычки. «Hello» длина- 5, sizeof- 6. Длина строк в Си не ограничена. Единственное требование: строка не должна выходить за один сегмент данных. Спецификатор %s.
3. Найти два самых маленьких элемента в массиве. Указать их значения и индексы.
# include <stdio.h>
# include <stdlib.h>
int mas[10];
int min1,min2,ind1,ind2;
void main()
{ randomize();
for (int i=0;i<10;mas[i]=1+random(30),i++);
min1=(mas[0]<mas[1])?mas[0]:mas[1];
min2=(mas[0]>mas[1])?mas[0]:mas[1];
ind1=(mas[0]<mas[1])?0:1;
ind2=(mas[0]>mas[1])?0:1;
for (i=2;i<10;i++)
if (min1>=mas[i])
{ min2=min1;
ind2=ind1;
min1=mas[i];
ind1=i;
}
else if (min2>=mas[i])
{ min2=mas[i];
ind2=i;
}
}
4. Найти все простые делители заданного натурального числа n.
# include <stdio.h>
void main()
{
const N=15120;
long int n=N;
int mas[10];
int kol=0;
for (int i=2;i<=n;)
{
if ((n%i)==0)
{
mas[kol]=i;
kol++;
while ((n%i)==0) n/=i;
}
else i++;
}
}