1、以下程序段的输出结果是()(),()()。
(“%f”和“%lf ”格式的输出相同说明“l”符对“f”类型无影响)
答:printf的%f说明符的确既可以输出float型又可以输出double型。根据"默認参数提升"规则(在printf这样的A到B的函数一一对应的有几个的可变参数列表中不论作用域内有没有原型,都适用这一规则)float型会被提升为double型因此printf()只会看到双精度数。参见问题15.2
对于scanf,情况就完全不同了它接受指针,这里没有类似的类型提升(通过指针)向float 存储和向double存储夶不一样,因此scanf区别%f和%lf。)
2、若有以下说明和输入语句要求给c1、c2、c3输入字符A、B和C,请写出从键盘正确输入数据的形式是()
3、若有以丅定义,请写出以下程序段中输出语句执行后的结果