Си: 16 - Символьные строки

1. Отметьте все правильные объявления символьных строк.
char s = "Привет!";
char s[80];
char s[80] = "Привет!";
char s[] = "Привет!";
char s[];
2. Что будет выведено на экран после выполнения программы?
  char s[80] = "123", s1[80];
strcat ( s, "0" );
strcpy ( s1, s );
strcat ( s, s1 );
printf ( "%s", s );
Ответ: 
3. Что будет выведено на экран после выполнения этой программы?
  char s[80] = "123", s1[10] = "0", s2[80];
strcpy ( s2, s );
s1[0] = s[1];
strcat ( s, s1 );
strcat ( s, s2 );
s1[0] = s[2];
strcat ( s, s1 );
puts ( s );
Ответ: 
4. Что будет выведено на экран после выполнения этой программы?
  
char s[80] = "12345";
int n;
n = strlen(s) + strlen("456");
printf ( "%d", n );
Ответ: 
5. Что будет выведено на экран после выполнения программы?
  char s[80] = "123456789";
char s1[80] = "abcdef";
strcpy ( s, s+4 ); s[2] = '\0';
strcat ( s, "0" );
strcpy ( s1, s1+2 ); s1[3] = '\0';
strcat ( s, s1 );
puts ( s );
Ответ: 
6. Что будет выведено на экран после выполнения этой программы?
  char s[80] = "123456";
char q[80] = "abc";
strcpy ( s+1, s+4 );
strcat ( s, q+1 );
strcpy ( q+1, s );
puts ( q );
Ответ: 
7. Что будет выведено на экран после окончания работы программы?
  char s[80] = "123456789";
int n;
strcpy ( s, s+2 );
n = strchr ( s, '6' ) - s;
printf ( "%d", n );
Ответ: 
8. Что будет выведено на экран после выполнения этой программы?
  char s[80] = "123456789";
char *p;
p = strstr ( s, "456" );
strcpy ( p+2, p+5 );
puts ( s );
Ответ: 
9. Сколько единиц будет выведено на экран?
  char s[80] = "123456";
while ( strlen(s) > 0 )
{
strcpy ( s, s+2 );
printf ( "1" );
}
Ответ: 
10. Программа должна считать, сколько раз в строке S встречается подстрока "12". Какой оператор надо вставить вместо многоточия? Вводите ответ без пробелов.
  int c = 0;
char *p;
while ( 1 ) {
...
if ( ! p ) break;
c ++;
strcpy ( S, p+2 );
}
Ответ: 
11. Программа должна считать, сколько раз в строке S встречается цифра '0'. Какой оператор надо вставить вместо многоточия? Вводите ответ без пробелов.
  c = 0;
for ( k=0; k<strlen(S); k++ )
if ( S[k] == '0' )
{
...
}
Ответ: 
12. Какой оператор надо вставить вместо многоточия, чтобы в строке S были записаны символы строки Q в обратном порядке? Вводите ответ без пробелов.
  char Q[] = "0123456789";
char S[20] = "0000000000";
int k;
for ( k=0; k<10; k++ )
{
...
}
Ответ: