% llu ожидает 64-битное целое число. Но вы дали ему только 32-разрядное целое число.
Эффект в том, что то, что printf читает, «сдвигается» на 32 бита относительно того, что вы передали. Следовательно, ваша «1» не читается в правильном месте.
EDIT:
Теперь объясним вывод:
a
и 1
хранятся с разницей в 32 бита, поскольку оба являются 32-разрядными целыми числами.
Однако printf ожидает, что первый аргумент будет 64-разрядным целым числом. Следовательно, оно читается как a + 2^32 * 1
, что в вашем случае равно 4294967296
. Второе значение, которое напечатано, не определено, потому что оно прошло 1
.