Não vou dar o codigo porque se não o desafio não tem piada.
1- Receber a string com uma função de leitura (fgets, p.e.), e depois utilizar a função strchr que retorna a primeira ocorrência de um caracter que neste caso seria um espaço em branco. Depois apartir daí verificar se ambas as strings (a partir dessa posição são iguais).
2- Podes fazer isto recursivamente ou iterativamente. Vou-te falar na forma recursiva. Basicamente a cada chamada recursiva aumentas a linha e a coluna, quando chegas ao final vais retornando a soma dos elementos. É um bocado dificil de explicar mas basicamente seria:
Código:
int sum(int line, int column) {
if(column == MAX || line == MAX) return matrix[line][column];
return matrix[line][column] + sum(line+1,column+1);
}
Assim que se perceberes o que aquilo faz vais adorar recursividade.
3- Este é trivial por isso vou-te deixar pensar um bocado sobre ele :P