2道C语言选择题目,看不明白???

来源:百度知道 编辑:UC知道 时间:2024/06/27 05:38:12
*52、B
已有定义int x; f1oat y;且执行scanf("%3d%f",&x,&y);语句,若从第一列开始输入数据12345 678(回车),则x 的值为
A)12345 B)123 C) 45 D) 345
*53、B
已有定义int x; f1oat y;且执行scanf("%3d%f",&x,&y);语句,若从第一列开始输入数据12345 678(回车),则y 的值为:
A)无定值 B)45.0000 C) 678.000000 D) 123.00000

详细解释一下

%3d就是输入3位的整型,
所以,12345只取前3位,x值为123。
此时x输入完毕。
之后的45放入y,
之后一个空格表示输入完毕,
678是无效输入。
而y以浮点型输出,所以值为45.0000

呵呵 %3d 指明整数接受三位 大于三位的舍去后面的数值,小于三位的从左面排列。
所以答案为B
同上,由于第一个整数输入的位数大于规定的存储空间,他会 溢出到临近的存储空间 所以后面一题选B