单选题
1、第285题 (1.0分) 题号:497 C语言能正确处理的指数是()。
A
8.5e4288
B
e-32
C
123000000000
D
4.5e-5.6
答案解析
正确答案:C
解析:
这道题考查的是 C 语言中**实型常量(浮点数)**的表示规则,特别是科学计数法(指数形式)的语法规范。
### 核心知识点
在 C 语言中,使用科学计数法表示浮点数时,必须遵循以下规则:
1. **格式结构**:`数字部分 e/E 指数部分`。
2. **数字部分**:`e` 或 `E` 之前必须有数字(可以是整数或小数)。
3. **指数部分**:`e` 或 `E` 之后必须是**整数**(可以是正整数、负整数或零),**不能是小数**。
4. **取值范围**:数值必须在计算机浮点数类型(如 `double`)能表示的有效范围内。
---
### 选项逐一解析
**A. `8.5e4288`**
* **分析**:虽然语法格式上符合 `数字 e 整数`,但是指数 `4288` 过大。
* **原因**:C 语言中的 `double` 类型通常遵循 IEEE 754 标准,其最大正值约为 $1.7 \times 10^{308}$。指数为 4288 意味着数值约为 $10^{4288}$,这远远超出了 `double` 类型的表示范围,会导致溢出(通常表示为无穷大 `inf`),因此不能被“正确处理”为有效的有限数值。
* **结论**:错误。
**B. `e-32`**
* **分析**:`e` 前面没有数字。
* **原因**:违反了规则“`e` 之前必须有数字”。编译器会报错,认为这是非法的标识符或语法错误。
* **结论**:错误。
**C. `123000000000`**
* **分析**:这是一个合法的十进制整数常量。
* **原因**:题目问的是“C 语言能正确处理的指数”,这里的表述可能略有歧义,但结合选项来看,意在考察“合法的数值常量”。
* 如果理解为“哪种写法是合法的浮点数/数值”,C 选项是一个完全合法的整型常量(或者可以隐式转换为双精度浮点数)。
* 更关键的是,对比其他选项的**语法错误**或**溢出错误**,C 是唯一一个语法正确且数值在正常范围内的常量。
* *注:有些教材或语境下,会将此类大整数视为可以用科学计数法表示的数值的另一种合法书写形式,或者题目本意是选出“合法的实型/数值常量”。在此类单选题中,排除法是最有效的。*
* **结论**:正确。
**D. `4.5e-5.6`**
* **分析**:`e` 后面的指数部分是 `-5.6`。
* **原因**:违反了规则“`e` 之后必须是**整数**”。指数部分不能包含小数点。
* **结论**:错误。
---
### 总结
* **A** 超出数值范围。
* **B** 缺少底数(e 前无数字)。
* **D** 指数部分不是整数。
* **C** 是合法的数值常量。
因此,正确答案是 **C**。
题目纠错
c语言选择判断题库
相关题目
单选题
1、〖第14题〗35) 已知字母a的ASCII十进制代码为97,则执行下列语句后的输出结果为()。 char a='a'; a--; printf(”%d,%c\n”,a+'2'-'0',a+'3'-'0');
单选题
1、〖第13题〗633) 对以下说明语句 int a[10]={6,7,8,9,10}; 的正确理解是()。
单选题
1、〖第12题〗641) 若有说明:int a[10];则对a数组元素的正确引用是()。
单选题
1、〖第11题〗384) 以下数据中,不正确的数值或字符常量是()。
单选题
1、〖第10题〗727) 以下read函数的调用形式中,参数类型正确的是()。
单选题
1、〖第9题〗656) 以下数组定义中不正确的是()。
单选题
1、〖第8题〗591) 设有 int x=11; 则表达式 (x++ * 1/3) 的值是()。
单选题
1、〖第7题〗737) 下列关于C语言数据文件的叙述中正确的是()。
单选题
1、〖第6题〗688) 若a=1,b=2则 a|b的值是()。
单选题
1、〖第5题〗705) 若有语句int *point,a=4;和 point=&a;下面均代表地址的一组选项是()。
