Misspelling of keywords mean it will be treated as an identifier by a compiler..As there is only change in spelling of keyword , so it is considered to be a valid token because this satisfies the pattern as needed by dfa of lexical analyser..
It is not a syntax error either as syntax error is something which is related to violation of grammar by any of the statements..
Now say int is mistakeably written as 'inta' ..Now it is identified as an identifier..But its type is not mentioned as there is no "int" in declaration part..Hence it will be a type checking error which is related to semantic phase..
As far as the statement "printf("%d)" is concerned , it will neither give compilation error nor give runtime error. It will give a valid output..For more clarification on this query , plz check the following :
https://stackoverflow.com/questions/437816/behaviour-of-printf-when-printing-a-d-without-supplying-variable-name