Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Сборник тестовых вопросов и задач по языку программирования Си. В 2 частях. Ч. 1. Практикум
.pdf
81
20. Какой объем памяти будет выделен массиву arr, который объявлен
следующим образом: сhar arr [30];?
• 30.
21. Пусть объявлен массив int arr[2] [4] = {1, 2, 3, 4, 5, 6, 7, 8};. Какой
оператор осуществляет доступ к элементу массива со значением 4?
• arr[0][3].
22. Какие границы для размерностей должны быть заданы при объ-
явлении двумерного массива?
• обязательна только граница второй размерности.
Для многомерных массивов должны быть заданы границы для всех раз-
мерностей за исключением первой.
23. Укажите правильные высказывания:
• элементы массива обязательно должны занимать смежные области памяти;
• в Си допускается индексация элементов за пределами границ размерности
массива.
24. Пусть arr — это двумерный массив из 7 строк и 9 столбцов. На ка-
кую строку массива указывает arr[3] ?
• 3 ряд.
Индексация массива в Си начинается с 0.
25. Каково логически обоснованное максимальное количество элемен-
тов в объявленном массиве int arr[4][7]?
• 28.
26. Как разрешается противоречие, при котором явно объявленный
размер массива меньше, чем количество элементов в списке инициализирующих элементов?
• генерируется сообщение об ошибке.

82
27. Какие способы инициализации массива являются правильными?
• int arr[5] = { 5, 7, 10, 15, 25};
• int arr[] = { 5, 7, 10, 15, 25 };
28. Что произойдет, если в программе на языке Си присвоить значе-
ние элементу массива, подстрочный индекс которого превышает размер
массива?
• программа может аварийно завершить работу, если некоторые важные
данные будут перезаписаны.
29. Какие классы хранения могут использоваться для массива, если
они явно не определены при инициализации массива?
• auto;
• external.
В зависимости от места объявления массива. Если класс хранения отсутствует в определении массива, по умолчанию он будет считаться либо auto, либо external. Если массив объявляется внутри функции, то класс хранения будет
auto. В противном случае класс хранения будет external.
30. Какие из следующих высказываний являются верными?
• в определении массива индексом может быть любое выражение, дающее
ненулевое целочисленное значение;
• все элементы массива должны иметь одинаковый тип данных и класс
хранения;
• количество индексов определяет размерность массива.

83
ТЕМА 8. СТРОКИ
1. Какие из примеров инициализации символьного массива являются
неверными?
• char k[7]; k='Привет!';
• char j[7]='Привет';
• char i[6]='Привет';
• char h[]='Привет!';
2. Какое из нижеследующих описаний символьного массива не соот-
ветствует синтаксису языка Си?
• char g[ ] = {'H', 'e', 'l', 'l', 'o', '\0'};
• char f[4 ]= 'Hello';
• int k=5; char e[k] ={'H', 'e', 'l', 'l', 'o', '\0'};
• char d[10] ={'H','e', 'l', 'l', 'o', '\0'};
3. Какое из следующих высказываний является неверным?
• в Си строки можно обрабатывать как обычные массивы;
• в Си для работы со строками не определено специальных операций;
• в Си строка является стандартным типом данных.
4. Какой ASCII-код у ноль-символа или '\0'?
• 0;
• 1;
• 127;
• 255.
5. Какие из следующих высказываний является верными?
• если строка определена с помощью двойных кавычек, то в конце авто-
матически добавляется ноль-символ '\0';
• размер строки определяется без учета ноль-символа '\0' в конце;
• если инициализировать посимвольно массив, то ноль-символ '\0' вручную
добавлять не надо.
6. Как размещается в памяти Cи-строка?
• в последовательных адресах памяти;
• в произвольных доступных адресах памяти.

84
7. Соединение двух строк выполняется с помощью функции:
• strstr()
• strchr()
• strlen()
• strcat()
• strcpy()
• strcmp()
8. Копирование одной строки в другую выполняется с помощью
функции:
• strstr()
• strchr()
• strlen()
• strcat()
• strcpy()
• strcmp()
9. Сравнение двух строк выполняется с помощью функции:
• strstr()
• strchr()
• strlen()
• strcat()
• strcpy()
• strcmp()
10. При помощи какой функции можно ввести строку, представляю-
щую собой предложение из нескольких строк?
• puts()
• gets()
• getch()
• scanf()
11. Какой результат даст функция strcpm(), если две строки являются
одинаковыми?
• -1;
• 0;
• 1.

85
12. Каков вывод программы на языке Си с использованием следующих
строк?
#include<stdio.h>
#include<string.h>
int main()
{
char str1[15] = "Имя", str2[15] = " Фамилия";
printf("\n\t%s", strcpy(str2, strcat(str1, str2)));
return 0;
}
• Имя;
• ИмяФамилия;
• Имя Фамилия.
13. Каков вывод программы на языке Си с использованием следующих
строк?
#include<stdio.h>
#include<string.h>
int main()
{
char str1[] = "флейта";
char str2[20];
char str3[] = "Волшебная";
int cmp = strcmp(strcat(str3, strcpy(str2, str1)), "Волшебнаяфлейта");
printf("\n\t%d", cmp);
return 0;
}
• -1;
• 0;
• 1.

86
14. Дан код:
int main(void)
{
char str[X];
printf('Введите строку -> ');
scanf('%s', str);
return 0;
}
Чему должен быть равен Х, чтобы обеспечить корректный ввод строки
длиной 10?
15. Строка может быть определена как массив символьного типа, ко-
торый завершается символом:
• амперсанд;
• запятая;
• ноль-символ;
• точка с запятой.
16. Какой спецификатор формата используется для печати строки или
массива символов в функциях printf или scanf?
• %c
• %C
• %s
• %w
17. Каков вывод программы на языке Си с использованием следующих
строк?
include <stdio.h>
int main()
{
char str[]="Большие надежды";
printf("\n\t%s",str);
return 0;
}

87
• Большие надежды;
• Большие;
• Б;
• ошибка компиляции.
18. Каков вывод программы на языке Си с использованием следующих
строк?
#include <stdio.h>
int main()
{
char str[]={'П', 'р', 'и', 'в', 'е', 'т', '\0'};
printf("\n\t%s",str);
return 0;
}
• П;
• Привет;
• Привет\0;
• ошибка компиляции.
19. Укажите правильные способы преобразования данного символьного
массива в Си-строку:
char str[]={'В','о','й','н','а',' ','и', ' ', 'м','и','р'};
• str[11] = 0;
• str[11] = '\0';
• str[]={'В','о','й','н','а',' ','и', ' ', 'м','и','р','\0'};
20. Каков вывод программы на языке Си с использованием следующих
строк?
#include <stdio.h>
int main()
{
int str[]={'-','a','-','a','-','a'};
printf("\n\tУра%c ", str);
printf(" Ура%s ", str);
printf(" Ура%c%c \n", str[0], str[1]);
return 0;
}

88
• Ура Ура Ура;
• Ура Ура- Ура-а;
• Ура *код случайного символа* Ура- Ура-а;
• ошибка компиляции.
21. Каков вывод программы на языке Си с использованием следующих
строк?
#include<stdio.h>
int main()
{
char str[35] = "Под насыпью, во рву некошенном";
int i=4;
printf("\n\t%c", str[++i]);
printf("%c", str[i++]);
printf("%c", i++[str]);
printf("%c\n", ++i[str]);
return 0;
}
22. Какая функция используется для считывания строк с пробелами?
23. Какое значение должно быть присвоено константе shift, чтобы на
печать вывелась подстрока «счастье»?
#include <stdio.h>
int main()
{
const int shift = ?;
char arr[] = "Дамское счастье";
printf("%s", shift+arr);
return 0;
}
24. Каково будет содержимое строки s1 в результате выполнения сле-
дующей программы?
#include <stdio.h>
#include <string.h>
int main()
{

89
char s1[] = "xyz";
char s2[3];
strcpy(s2,s1);
strcat (strcat(s1,s2),"z");
printf("\n\t s1= %s", s1);
return 0;
}
25. Функции strcpy и strcat копируют исходную строку в часть мас-
сива назначения. Чем они отличаются друг от друга?
• функция strcpy оставляет исходную строку как есть, а функция strcat
перезаписывает ее;
• функция strcat оставляет исходную строку как есть, а функция strcopy
перезаписывает ее.
26. Что будет выведено в результате выполнения следующей про-
граммы?
#include <stdio.h>
int main(void)
{
char str1[ ]=”ABCDE”;
char str2[ ]=”ABCDE”;
return 0;
}
• 0;
• -1;
• 1;
• ошибка компиляции
27. Что будет выведено в результате выполнения следующей про-
граммы?
#include <stdio.h>
int main(void)
{
char str1[ ]=”ABCDE”;
char str2[ ]=”BACDE”;
return 0;
}

90
• 0;
• -1;
• 1;
• ошибка компиляции.
28. Что будет выведено в результате выполнения следующей про-
граммы?
#include <stdio.h>
int main(void)
{
char str1[ ]=”BACDE”;
char str2[ ]=”ABCDE”;
return 0;
}
• 0;
• -1;
• 1;
• ошибка компиляции.
29. Что будет выведено в результате выполнения следующей про-
граммы?
#include <stdio.h>
int main(void)
{
char str1[ ]=”New”;
char str2[ ]=”Year”;
strcpy(str1,str2);
printf(”%s”,str1);
return 0;
}
• New;
• New Year;
• Year;
• Year New.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
