Boas, o operador % em C é o resto da divisão inteira (e.g.: 100 % 3 = 1, pois 33*3 + 1 = 100). O módulo que referiste (|x|) é o valor absoluto, sendo que a função em C denomina-se de abs para inteiros e fabs para floats.
Quanto ao loop, basicamente tens um ciclo exterior que vai iterar de 1 a 5, e que guarda o valor da iteração actual na variável loop, enquanto que o ciclo interior vai iterar de 1 até à variável loop. Ou seja, caso estejas na 3ª iteração do ciclo exterior (caso em que a variável loop é igual 3), o ciclo interno vai ser executado 3 vezes, ou seja, vai efectuar 3 printf's.
Espero que ajude.