执行语句printf("2:%d,",printf("1:%d",scanf("%d",&x)));以后的输出结果是

来源:百度知道 编辑:UC知道 时间:2024/05/27 09:33:39
讲解的详细点,谢谢

简单的说,楼主的指令行涉及到两个库函数printf()和scanf()的返回值问题;另外,在正常情况下,这条指令执行过程中,还需要用户输入一个整型数值,才能得出结果。
首先,库函数scanf()从标准输入抽取一个整型数值,并放到变量x当中,并返回输入的数据个数。正常情况下,当用户输入一个整型数值之后,函数返回1。
其次,库函数printf()向标准输出打印格式串,并返回打印的总字符数。假设scanf()返回1,那么第一次输出(也就是后面的printf)结果为“1:1”,此时printf返回3;第二次输出(也就是前面的printf)结果为“2:3,”;因此,最后的结果为“1:12:3,”。
最后补充一下,如果在非正常情况下,当用户输入一个非整型数值,函数scanf()返回0,根据上述规则,最后的结果则为“1:02:3,”。

从这个问题看来,我对C研究得还不够深入,因为这个题我如果回答一定是从编译中得到的结果,还不如不回答。失败。

1:12:3,