单选题
1、下面四个选项中,均是不合法的浮点数的选项是()。
A
160. 0.12 e3
B
123 2e4.2 .e5
C
-.18 123e4 0.0
D
-e3 .234 1e3
答案解析
正确答案:B
解析:
这道题考查的是编程语言(通常指 C 语言或类似语法的语言)中**浮点数常量**的合法表示形式。
### 核心知识点
在 C 语言等常见编程语言中,合法的浮点数有两种表示形式:
1. **十进制小数形式**:由数字和小数点组成,必须包含小数点(如 `123.`, `.123`, `123.456`)。
2. **指数形式(科学计数法)**:由尾数、字母 `e` 或 `E`、指数部分组成。格式为 `尾数 e 指数`。
- **规则 1**:`e` 或 `E` 之前必须有数字(尾数不能为空)。
- **规则 2**:`e` 或 `E` 之后的指数部分必须是**整数**(可以是正整数、负整数或零,但不能是小数或空)。
---
### 选项逐一分析
#### **A. `160.` `0.12` `e3`**
- `160.`:合法。这是十进制小数形式,等价于 160.0。
- `0.12`:合法。标准的十进制小数。
- `e3`:**不合法**。`e` 前面没有数字(尾数缺失)。
- **结论**:该选项中包含合法和不合法的项,不符合“均是不合法”的要求。
#### **B. `123` `2e4.2` `.e5`**
- `123`:**不合法**作为浮点数。这是一个整型常量(int),虽然它可以被赋值给浮点变量,但它本身不是浮点数的字面量表示形式(没有小数点,也没有 e/E)。*注:在某些严格语境下,题目问的是“浮点数常量”,整数常量不属于浮点数常量。*
- `2e4.2`:**不合法**。指数部分 `4.2` 是小数,而指数部分必须是整数。
- `.e5`:**不合法**。`e` 前面没有数字(尾数缺失,只有一个点是不够的,必须有数字如 `1.e5` 或 `.1e5`)。
- **结论**:这三项均不符合浮点数常量的规范。**符合题意。**
#### **C. `-.18` `123e4` `0.0`**
- `-.18`:合法。等价于 `-0.18`,是合法的十进制小数形式。
- `123e4`:合法。指数形式,尾数 123,指数 4(整数)。
- `0.0`:合法。标准的十进制小数。
- **结论**:三项均合法,不符合题意。
#### **D. `-e3` `.234` `1e3`**
- `-e3`:**不合法**。`e` 前面没有数字。
- `.234`:合法。等价于 `0.234`,是合法的十进制小数形式。
- `1e3`:合法。指数形式,尾数 1,指数 3。
- **结论**:包含合法项,不符合题意。
---
### 最终结论
只有 **选项 B** 中的三个表达式均不是合法的浮点数常量表示:
1. `123` 是整数常量。
2. `2e4.2` 指数部分为小数,非法。
3. `.e5` 尾数部分缺失数字,非法。
因此,正确答案是 **B**。
题目纠错
c语言选择判断题库
