Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Сборник тестовых вопросов и задач по языку программирования Си. В 2 частях. Ч. 1. Практикум

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
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.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]