Главная / Программирование /
Структуры и алгоритмы компьютерной обработки данных / Тест 14
Структуры и алгоритмы компьютерной обработки данных - тест 14
Упражнение 1:
Номер 1
В программе объявлен и проинициализирован массив int a[]={9,8,7,6,5,4,3,2,1,0}
. Укажите значение a[a[a[9]]]
.
Ответ:
 (1) 9 
 (2) 0 
 (3) 1 
 (4) элемент с таким индексом в данном массиве не определен 
Номер 2
В программе объявлен и проинициализирован массив int a[]={2,4,6,8,10,12,14,16}
. Укажите значение *(a+a[2])
.
Ответ:
 (1) элемент с таким индексом в данном массиве не определен 
 (2) 2 
 (3) 10 
 (4) 14 
Номер 3
В программе объявлен и проинициализирован массив int a[]={1,3,8,5,0,4,9,2,13}
. Укажите значение a(a[7]+a[1])
.
Ответ:
 (1) элемент с таким индексом в данном массиве не определен 
 (2) 8 
 (3) 4 
 (4) 13 
Упражнение 2:
Номер 1
Укажите название алгоритма сортировки, фрагмент кода которой представлен ниже.
void Sort (int k,int x[max]) {
int i,j,min,temp;
for (i=0;i<k-1;i++) {
min=i;
for (j=i+1;j<k;j++){
if (x[j]<x[min])
min=j;
}
temp=x[i];
x[i]=x[min];
x[min]=temp;
}
}
Ответ:
 (1) пузырьковая сортировка 
 (2) шейкерная сортировка 
 (3) сортировка методом простого выбора 
 (4) сортировка методом простого включения 
Номер 2
Укажите название алгоритма сортировки, фрагмент кода которой представлен ниже.
void Sort (int k,int x[max]) {
int i,j, temp;
for (i=0;i<k;i++) {
temp=x[i];
for (j=i-1; j>=0 && x[j]>temp; j--)
x[j+1]=x[j];
x[j+1]=temp;
}
}
Ответ:
 (1) пузырьковая сортировка 
 (2) шейкерная сортировка 
 (3) сортировка методом простого выбора 
 (4) сортировка методом простого включения 
Номер 3
Укажите название алгоритма сортировки, фрагмент кода которой представлен ниже.
void Sort (int k,int x[max]) {
int i,j,buf;
for (i=k-1;i>0;i--)
for (j=0;j<i;j++)
if (x[j]>x[j+1]) {
buf=x[j];
x[j]=x[j+1];
x[j+1]=buf;
}
}
Ответ:
 (1) пузырьковая сортировка 
 (2) шейкерная сортировка 
 (3) сортировка методом простого выбора 
 (4) сортировка методом простого включения 
Упражнение 3:
Номер 1
Укажите обращение, аналогичное обращению mas[i][j]
к элементу двумерного массива размерности MN
.
Ответ:
 (1) mas[i,j]
 
 (2) *(*(mas+i)+j)
 
 (3) mas[N*i+j]
 
 (4) mas[0][0]+ N*i+j
 
Номер 2
Укажите обращение, аналогичное обращению *(*(mas+i)+j)
к элементу двумерного массива размерности MN
.
Ответ:
 (1) *(mas+N*i+j)
 
 (2) mas[i][j]
 
 (3) mas[0][0]+ N*i+j
 
 (4) mas[i,j]
 
Номер 3
Укажите обращение, аналогичное обращению (*(arr+i))[j]
к элементу двумерного массива размерности MN
.
Ответ:
 (1) *(mas+N*i+j)
 
 (2) mas[i][j]
 
 (3) *(*(mas+i)+j)
 
 (4) mas[i,j]
 
Упражнение 4:
Номер 1
Укажите в байтах размер памяти, занимаемой массивом, который объявлен так:
int m[][5][3]={{{1,2,3},{1}},{{4},{7,8}}};
Ответ:
 (1) 28 
 (2) 32 
 (3) 120 
 (4) для безразмерного массива размер не определен 
Номер 2
Укажите в байтах размер памяти, занимаемой массивом, который объявлен так:
float m[][6]={{6.2},{14.3,0.3},{7.0,1.0,5.5,7.8}};
Ответ:
 (1) 28 
 (2) 48 
 (3) 72 
 (4) для безразмерного массива размер не определен 
Номер 3
Укажите в байтах размер памяти, занимаемой массивом, который объявлен так:
int m[][7]={{6,2,4,8},{13},{5,6,7}};
Ответ:
 (1) 84 
 (2) 32 
 (3) 48 
 (4) для безразмерного массива размер не определен 
Упражнение 5:
Номер 1
Укажите неверные варианты объявления и/или инициализации массива.
Ответ:
 (1) int mas[];
 
 (2) int mas[]={1,2,3,4,5};
 
 (3) int mas[][]={1,2,3,4,5};
 
 (4) int mas[2][3]={1,2,3,4,5};
 
Номер 2
Ответ:
 (1) int mas[3]={2.3,4.5,5};
 
 (2) int mas[3]={{1},{2},{3}};
 
 (3) int mas[][3]={{1,2,3},{4,5}};
 
 (4) int mas[5][3]={{1,2,3},{4,5}};
 
Номер 3
Укажите неверные варианты объявления и/или инициализации массива.
Ответ:
 (1) int mas[3]={2+5,7,8};
 
 (2) int mas[9]={1,2,3,4};
 
 (3) int mas[2][]={{1,2,3},{4,5}};
 
 (4) int mas[2][3]={1,2,3,4,5,6,7,8,9};
 
Упражнение 6:
Номер 1
Укажите верные аналогичные обращения к элементу одномерного массива в присваивании mas[i]=3
.
Ответ:
 (1) mas+i=3;
 
 (2) &mas+i=3;
 
 (3) *mas+i=3;
 
 (4) *(mas+i)=3;
 
Номер 2
Укажите верные аналогичные обращения к указателю на одномерный массив в присваивании int *p; p=mas;
Ответ:
 (1) int *p; p=mas[0];
 
 (2) int *p; p=&mas[0];
 
 (3) int *p; p=*mas[0];
 
 (4) int *p; p=*mas;
 
Номер 3
Укажите верные аналогичные обращения к элементу одномерного массива в присваивании *(mas+i)=8;
Ответ:
 (1) *mas+i=8;
 
 (2) mas+i=8;
 
 (3) mas[i]=8;
 
 (4) &mas+i=8;
 
Упражнение 7:
Номер 1
Укажите, что возвращает функция, фрагмент кода которой представлен ниже:
int f (int k,int x[max]) {
int i,m=x[0];
for (i=1;i<k;i++)
if (m>x[i]) m=x[i];
return m;
}
Ответ:
 (1) максимальный элемент двумерного массива 
 (2) максимальный элемент одномерного массива 
 (3) минимальный элемент одномерного массива 
 (4) минимальный элемент двумерного массива 
Номер 2
Укажите, что возвращает функция, фрагмент кода которой представлен ниже:
float a (int k, float x[max]) {
int i;
float s=0.0;
for (i=0;i<k;i++)
s+=x[i];
return s/k;
}
Ответ:
 (1) сумму элементов одномерного массива 
 (2) среднее арифметическое элементов одномерного массива 
 (3) результат деления каждого элемента одномерного массива на k
 
 (4) сумму элементов одномерного массива, равных заданному 
Номер 3
Укажите, какие действия с массивом выполняет функция, фрагмент кода которой представлен ниже:
void z (int k,int x[max]){
int i;
for (i=0;i<k;i++)
if (x[i]<0) x[i]=-x[i];
}
Ответ:
 (1) переставляет отрицательные элементы по убыванию 
 (2) находит разность всех отрицательных элементов 
 (3) находит минимальный отрицательный элемент в массиве 
 (4) заменяет значения отрицательных элементов их модулями 
Упражнение 8:
Номер 1
Укажите, какие действия с массивом выполняет функция, фрагмент кода которой представлен ниже:
void t(int str,int slb, int m[max][max],int min[max]){
int i,j;
for (j=0;j<slb;j++){
min[j]=0;
for (i=1;i<str;i++)
if (m[i][j]<m[min[j]][j]) min[j]=i;
}
}
Ответ:
 (1) поиск номеров минимальных элементов в каждом столбце двумерного массива 
 (2) поиск минимальных элементов в каждом столбце двумерного массива 
 (3) поиск суммы элементов в каждом столбце двумерного массива 
 (4) поиск номера минимального элемента двумерного массива 
Номер 2
Укажите, какие действия с массивом выполняет функция, фрагмент кода которой представлен ниже:
void p(int strslb, int m[max][max]) {
int i,buf,t;
for (i=0;i<strslb;i++){
buf= m[i][i];
t= abs(strslb-i-1);
m[i][i]= m[i][t];
m[i][t]=buf;
}
}
Ответ:
 (1) поиск номеров минимальных элементов в каждом столбце двумерного массива 
 (2) циклический сдвиг столбцов квадратной матрицы 
 (3) обмен значениями элементов диагоналей квадратной матрицы, расположенных в одной строке 
 (4) замена значений всех элементов главной диагонали на модуль максимального элемента 
Номер 3
Укажите, что возвращает функция, фрагмент кода которой представлен ниже:
int d(int str,int slb, int m[max_x][max_y]){
int i,j,mm=m[0][0];
for(i=0;i<str;i++)
for(j=0;j<slb;j++)
if((i==j)&&(m[i][j]>mm))
mm=m[i][j];
return mm;
}
Ответ:
 (1) максимальный элемент двумерного массива 
 (2) максимальный элемент главной диагонали двумерного массива 
 (3) количество элементов главной диагонали 
 (4) количество элементов главной диагонали, превосходящих заданное число