【正确答案】
D
【答案解析】[解析] C语言算术表达式的计算,在计算过程中,每一步计算所得结果的数据类型由参与运算的运算对象决定,相同数据类型的两个对象运算,结果数据类型不变,不同数据类型的运算对象进行运算,结果的数据类型由高精度的运算对象决定。精度的高低:double>float>int。
本题中强制类型转换,从精度低的数据类型转换为精度高的数据类型,不会发生溢出,反之就会发生溢出,如从double或float转换为int时,小数部分被截断。
故本题Ⅰ中,int类型的x转换为float后没有发生溢出,且没有发生数据舍入。再由。float类型转换为int类型,也保留了x原来的值2013,故Ⅰ正确。
本题Ⅱ中,float类型的y转换为int后,小数部分被截断,值为201。再转换为float类型后值还是为201,与201.3不等,故Ⅱ错误。
本题Ⅲ中,float类型的y转换为double后,值还是为201.3。再转换为double类型后值还是为201.3,故Ⅲ正确。
综上,本题选D。