Главная / Программирование /
Структуры и алгоритмы компьютерной обработки данных / Тест 9
Структуры и алгоритмы компьютерной обработки данных - тест 9
Упражнение 1:
Номер 1
Укажите пример некорректной инициализации строки
Ответ:
 (1) char text[]="Язык программирования";
 
 (2) char text[]={"Язык", "программирования"};
 
 (3) char text[]='Язык программирования';
 
 (4) char text[5]="Язык программирования";
 
Номер 2
Укажите пример корректной инициализации строки
Ответ:
 (1) char text[100]="Редактор";
 
 (2) char text[]={'Р','е','д','а','к','т','о','р','\0'};
 
 (3) char text[]={"Р","е","д","а","к","т","о","р","\0"};
 
 (4) char text[100]='Редактор';
 
Номер 3
Укажите пример некорректной инициализации строки
Ответ:
 (1) char text[]={'Р','е','д','а','к','т','о','р'};
 
 (2) char text[]={'Р','е','д','а','к','т','о','р','\0'};
 
 (3) char text[8]={'Р','е','д','а','к','т','о','р','\0'};
 
 (4) char text[]={"Р","е","д","а","к","т","о","р","\0"};
 
Упражнение 2:
Номер 1
Укажите длину строки char text[]={'Р','е','д','а','к','т','о','р','\0'};
Ответ:
 (1) длина не определена 
 (2) 10 
 (3) 9 
 (4) 8 
Номер 2
Укажите в байтах объем памяти, выделяемой под строку char text[]="Программа";
Ответ:
 (1) 9 
 (2) 10 
 (3) 11 
 (4) объем не определен 
Номер 3
Укажите длину строки char text[]="Программа";
Ответ:
 (1) 9 
 (2) 10 
 (3) 11 
 (4) длина не определена 
Упражнение 3:
Номер 1
Укажите результат выполнения функции сравнения строк в приведенном фрагменте кода (элементы строки – символы латинского алфавита):
char ch[]="abcd",sh[]="abc";
int i;
i=strcmp(ch,sh);
printf ("%d",i);
Ответ:
 (1) 1 
 (2) 0 
 (3) -1 
 (4) над строками сравнение не определено 
Номер 2
Укажите результат выполнения функции сравнения строк в приведенном фрагменте кода (элементы строки – символы латинского алфавита):
char ch[]="aacd",sh[]="abc";
int i;
i=strcmp(ch,sh);
printf ("%d",i);
Ответ:
 (1) 1 
 (2) 0 
 (3) -1 
 (4) над строками сравнение не определено 
Номер 3
Укажите результат выполнения функции сравнения строк в приведенном фрагменте кода (элементы строки – символы латинского алфавита):
char ch[]="abd",sh[]="abc";
int i;
i=strcmp(ch,sh);
printf ("%d",i);
Ответ:
 (1) 1 
 (2) 0 
 (3) -1 
 (4) над строками сравнение не определено 
Упражнение 4:
Номер 1
В каких строках будут выведены одинаковые результаты, если ранее выполнены следующие инициализации:
char ch[]="abd",*pch;
pch=ch;
Ответ:
 (1) printf ("%p %p\n",&ch,&pch);
 
 (2) printf ("%p %p\n",ch,pch);
 
 (3) printf ("%s %s\n",ch,pch);
 
 (4) printf ("%p %p\n",&ch,pch);
 
Номер 2
В каких строках будут выведены разные результаты, если ранее выполнены следующие инициализации:
char ch[]="abd",*pch;
pch=ch;
Ответ:
 (1) printf ("%p %p\n",&pch,pch);
 
 (2) printf ("%p %p\n",&ch,ch);
 
 (3) printf ("%s %s\n",&ch,ch);
 
 (4) printf ("%p %p\n",&ch,pch);
 
Номер 3
В каких строках будут выведены одинаковые результаты, если ранее выполнены следующие инициализации:
char ch[]="abd",*pch;
pch=ch;
Ответ:
 (1) printf ("%p %s\n",&pch,pch);
 
 (2) printf ("%p %s\n",&ch,ch);
 
 (3) printf ("%s %s\n",pch,&ch);
 
 (4) printf ("%p %p\n",pch,&ch);
 
Упражнение 5:
Номер 1
Какие действия со строками происходят в ходе выполнения фрагмента кода:
char * str (char *s1, char *s2){
char *ps1 = s1;
while ((*s1++ = *s2++) != 0);
return ps1;
}
Ответ:
 (1) из строки s1
удаляются все вхождения строки s2
 
 (2) происходит сравнение строк 
 (3) содержимое строки s2
побайтово копируется в строку s1
 
 (4) содержимое строки s1
побайтово копируется в строку s2
 
Номер 2
Какие действия со строками происходят в ходе выполнения фрагмента кода:
char * str (char *s1, char *s2) {
char *p1, *p2;
p1 = s1; p2 = s2;
while ( *p1) p1++;
while ((*p1++ = *p2++) != 0);
return s1;
}
Ответ:
 (1) из строки s1
удаляются все вхождения строки s2
 
 (2) конкатенация строк s1
и s2
с сохранением результата в s1
 
 (3) содержимое строки s2
побайтово копируется в строку s1
 
 (4) содержимое строки s1
побайтово копируется в строку s2
 
Номер 3
Какие действия со строками происходят в ходе выполнения фрагмента кода:
char * str (char *s) {
int i;
char *p;
for(i=0; s[i] && s[i]==' '; i++);
p = &s[i];
return p;
}
Ответ:
 (1) из строки s
удаляются все левые пробелы 
 (2) из строки s
удаляются все правые пробелы 
 (3) к строке s
добавляются слева пробелы 
 (4) вычисляется длина строки 
Упражнение 6:
Номер 1
Укажите действия, эквивалентные по значению следующей инициализации: char c='\0';
Ответ:
 (1) char c="0";
 
 (2) char c=0;
 
 (3) char c='\n';
 
 (4) char c='\x000';
 
Номер 2
Укажите действия, эквивалентные по значению следующей инициализации: char c='\x000';
Ответ:
 (1) char c="0";
 
 (2) char c='0';
 
 (3) char c='\0';
 
 (4) char c=0;
 
Номер 3
Укажите действия, эквивалентные по значению следующей инициализации: char c=0;
Ответ:
 (1) char c="0";
 
 (2) char c='0';
 
 (3) char c[]={'0'};
 
 (4) char c='\0';
 
Упражнение 7:
Номер 1
Укажите корректные способы конкатенации строк s1
и s2
в строку s3
. Считать, что размер s3
позволяет выполнить это действие.
Ответ:
 (1) s3=s1+s2;
 
 (2) s3=s1; s3=s3+s2;
 
 (3) s3= strcat(s1,s2);
 
 (4) *s3=*s1+*s2
 
Номер 2
Укажите корректное усечение начала строки s
на n
символов и вывод результата. Считать, что такое действие со строкой s
возможно.
Ответ:
 (1) char *p; p=s[n]; printf ("%s",p);
 
 (2) char *p; p=&s[n]; printf ("%s",p);
 
 (3) char *p; p=*s[n]; printf ("%s",p);
 
 (4) char *p; p=s+n; printf ("%s",p);
 
Номер 3
Укажите корректное формирование пустой строки в переменной char s[10];
.
Ответ:
 (1) strcpy(s, "");
 
 (2) s="";
 
 (3) *s=0;
 
 (4) s='\0';
 
Упражнение 8:
Номер 1
Укажите результат вывода на экран после выполнения фрагмента кода, если с клавиатуры введена строка: Я скоро завершу тестирование
.
char str[100];
cin >> str;
cout << str;
Ответ:
 (1) Я 
 (2) Я скоро завершу тестирование 
 (3) "Я скоро завершу тестирование" 
 (4) Я скоро завершу тестирование\0 
Номер 2
Укажите результат вывода на экран после выполнения фрагмента кода, если с клавиатуры введена строка: Я скоро завершу тестирование
.
char str[100];
gets(str);
puts(str);
Ответ:
 (1) Я 
 (2) Я скоро завершу тестирование 
 (3) "Я скоро завершу тестирование" 
 (4) Я скоро завершу тестирование\n 
Номер 3
Укажите результат вывода на экран после выполнения фрагмента кода, если с клавиатуры введена строка: Я скоро завершу тестирование
.
char str[100];
scanf("%s", str);
printf("%s", str);
Ответ:
 (1) Я 
 (2) Я скоро завершу тестирование 
 (3) "Я скоро завершу тестирование" 
 (4) Я скоро завершу тестирование\0