求解,为什么不是选a呢

以下程序的输出结果是

include < stdio . h > main ()

{ int a =2, c =5;
printf (" a =%% d , b =% %d \ n ", a , c );
A 、 a =%2, b =%5 B 、 a =2, b =5
C 、 a =%% d , b =%% d D 、 a =% d , b =% d 答案: D

因为在C语言里,%是转义字符,%%表示%。输出语句相当于:printf("a=%%d, b=%%d\n"); 没有a、c对应的输出格式符,所以a、c不输出

选B,%d代表输出格式

a =% d, b =%d

a =%% d中, %%是输出%号。%是转义符。%d 输出整型。因为中间有个空格,所以当成字符串输出了,没有当成输出控制,
b =% %d 中虽然%中间有空格但和%% 作用一样,所以同样输出%d

%%代表打印一个%(注意是打到屏幕上)然后d原样输出