can there be less number of fomat specifier than the number of variables in a printf statement
Answer is yes. From the C Standard:
(c99, 7.19.6.1p2) "If the format is exhausted while arguments remain, the excess arguments are evaluated (as always) but are otherwise ignored."