这一题正确答案是B。
请问为什么不是C呢?fprintf不是可以由用户(用%d,%c啥的)决定输出格式吗?
另外,fwrite函数说只能打开二进制文件,那它是不是也只能以二进制存储数据呀?
很明显是fwrite,而不是fprintf。因为fprintf会格式化字符串,所谓格式化字符串,是人可以理解的文本串,就是要将二进制ASCII码转化为可显示的打印字符,比如'A'对应ASCII码是65(0x41),在文件中存储的数据就是0x41(对应二进制为0b100 0001)。如果你用格式化串"123"写入文件,那文件内容就是0x31,0x32,0x33。
而fwrite是直接将缓冲区内容原模原样的写入文件,比如字节数组char buff[] = {1,2,3},写入文件,那文件的内容就是0x01,0x02,0x03。