首页 > 试题广场 >

若以下说明语句:char x; float y; doubl

[单选题]

若以下说明语句:char x; float y; double z;

则表达式x-y+z的类型为()

  • int
  • double
  • float
  • char
推荐

本题选B


整型,字符型,浮点型的数据在混合运算中相互转换,转换时遵循以下原则:

1. 容量小的类型可自动转换为容量大的数据类型:

byte,short,char → int → long → float → double

2. byte,short,char之间不会相互转换,他们在计算时首先会转换为int类型。

3.boolean 类型是不可以转换为其他基本数据类型。

编辑于 2020-03-05 14:20:59 回复(2)
这三种类型的转化由低到高为char,float,double,即char和float运算时会转化成float;float和double运算时会转化成double......
规律:占用字节数小的类型在与占用字节数大的类型运算时会被转化为占用字节数大的类型。
因此本题选B
发表于 2020-03-04 15:32:15 回复(0)
B,转换从低到高 char-->float-->short-->int-->double
发表于 2020-03-04 15:15:10 回复(1)
在C语言中,常见的类型可以从低到高排列如下: 1. char:用于表示字符类型。 2. short:用于表示短整数类型。 3. int:用于表示整数类型。 4. long:用于表示长整数类型。 5. float:用于表示单精度浮点数类型。 6. double:用于表示双精度浮点数类型。 7. long double:用于表示扩展精度浮点数类型。 请注意,这只是一种常见的类型排序方式,并且在特定的编译器和平台上可能会有所不同。此外,还有其他类型修饰符和用户自定义的类型,但以上列出的是基本的内置类型。
发表于 2023-11-22 21:03:31 回复(0)
隐式类型转换图:
                                                                        float      ---->     double
                                                                                                    /|\
                                                                                                     |
                                                                                                  long
                                                                                                    /|\
                                                                                                     |
                                                                                             unsigned int
                                                                                                    /|\
                                                                                                     |
(unsigned/signed)char、(unsigned/signed)short      ---->     (signed) int

横向箭头:无论是否参与混合运算,都会自动进行转换
纵向箭头:只有参与混合运算,才会进行转换
隐式类型转换时,会由小内存向大内存转换。
发表于 2022-10-15 15:16:19 回复(0)
位数少的转为位数大的(这样可以不丢失精度)。
32位系统里
char只有1字节,最小。
float有4字节,double有8字节。所以转换为位数大的,也就是double。
发表于 2020-03-04 17:32:04 回复(0)

正确答案

B.double

类型自动转换时是精度低的转为精度高的

发表于 2020-03-07 23:00:46 回复(0)
B double 
C语言程序设计 谭浩强版的有这方面的介绍,(不过前面几位讲的原因很详细了鸭
这种还有个考试时的小套路,遇见转换,看见double直接选哈哈
发表于 2020-03-05 11:12:35 回复(0)