首页 > 试题广场 >

设变量 a 是整型, f 是实型, i

[单选题]

设变量a是整型,f是实型,i是双精度型,则表达式10+ 'a' +i*f值的数据类型为()

  • int
  • float
  • double
  • 不确定
答案:C double
由于运算符*的优先级比+,-的优先级高,而且算术运算是左结合性,所以先做i*f。在C语言中,不同类型的变量在进行算术运算时,float型的变量要无条件的转化为double型。这样f转化为double(双精度型)型并与也为double(双精度型)的i相乘,得到double(双精度型)的值。之后,算10+‘a"。由于'a'为字符型,C语言规则,字符型数据在参加算术运算是要无条件的转化为int(整形)。这样10+’a'就为整型。最后10+'a'的值与i*f相加。10+‘a'为整型,i*f为double(双精度型)。由于double(双精度型)比整形高,所以整型变量自动变为double型。两个double(双精度型)的数相加,和仍为double(双精度型)。类型char->int->unsigned->long->double<-float这样转换的原因是为了尽可能的使得到的结果精度高。
一言以蔽之:C语言运算,自动往高精度数据类型转换。
编辑于 2018-08-17 12:34:30 回复(0)
更多回答

double float选double

int char 选int

int double选double

发表于 2019-06-21 23:20:57 回复(0)
char->int->unsigned->long->double<-float
发表于 2020-09-24 19:52:54 回复(0)

设变量 a 是整型, f 是实型, i 是双精度型,则表达式 10+ a +i*f 值的数据类型为( )。

字符‘a’和变量a没有半毛钱关系 double

发表于 2017-11-04 13:15:20 回复(1)
考察不同类型的变量在进行算术运算时,各类型变量的转化规则。
发表于 2021-05-22 17:21:58 回复(0)