В соответствии с разделом 4.9.6.1 C89 черновик ,% d является символом, который указывает тип преобразования , которое будет применено.
Слово преобразование подразумевает, на мой взгляд, printf("%d", 1.0)
определено.
Пожалуйста, подтвердите или опровергните это.