#include <stdio.h> main( ) { int a=2,c=5; printf("a=%d,b=%d \n",a,c); } 为什么不选A?

A、a=%2,b=%5 B、a=2,b=5
C、a=d,b=d D、a=%d,b=5d

这说明你对C语言的输入输出还不是很了解。

对于

printf("a=%d,b=%d \n",a,c);

来说,

%d表示格式化输出,其中d表示按int类型输出,输出的变量就是后面的a和c。

所以,最后的结果中是不包含%号的。

选B才是对的。

追问

#include
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
那这题为什么不选A呢?

追答

程序在解释的时候是从左到右,首先%%就被翻译成%,剩下的d就看成字符了。

所以输出就成了%d,选D。
建议你把printf的格式化输出那一块的内容看一看。

追问

好的,O(∩_∩)O谢谢~

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-02-07


如上即是答案,%d是用来输出十进制整型数据的实际长度输出,是表示整型数据的实际长度输出,所以(“a=%d,b=%d\n”,a,c)引号里的内容只是为了运算结果显示“a= ,b= ",后面的a,c就是要输出的值