AI智能推荐题库-试题通 AI智能整理导入题库-试题通
×
首页 题库中心 c语言选择判断题库 题目详情
CA4E3A01C46000013755684012D01E55
c语言选择判断题库
379
单选题

1、第76题 (1.0分) 题号:91 以下数值中,不正确的八进制数或十六进制数是()。

A
 0x16
B
16
C
-16
D
 0xaaaa

答案解析

正确答案:C

解析:

这道题考察的是编程语言(通常指 C/C++ 或类似语法的语言)中**八进制**和**十六进制**常量的表示规则。我们需要找出**不正确**的表示形式。 ### 核心知识点回顾 1. **十六进制(Hexadecimal)**: * 前缀:必须以 `0x` 或 `0X` 开头。 * 数码:包含 `0-9` 以及 `a-f`(或 `A-F`)。 * 示例:`0x16`, `0xFF`, `0xaaaa` 都是合法的十六进制数。 2. **八进制(Octal)**: * 前缀:必须以数字 `0` 开头。 * 数码:只能包含 `0-7`。 * 示例:`016` 是合法的八进制数;但 `08` 是非法的,因为八进制中没有数字 8。 3. **十进制(Decimal)**: * 没有特定前缀。 * 直接由数字组成。 * 示例:`16`, `-16` 都是合法的十进制整数。 --- ### 选项逐一分析 * **A. `0x16`** * **分析**:以 `0x` 开头,后面跟着 `1` 和 `6`,均在 `0-9` 和 `a-f` 范围内。 * **结论**:这是一个**合法**的十六进制数。 * **B. `16`** * **分析**:没有前缀 `0x` 或 `0`。在大多数编程语境下,这被视为一个**十进制**整数。 * **注意**:题目问的是“不正确的八进制数**或**十六进制数”。虽然 `16` 本身不是八进制也不是十六进制的*写法*,但它是一个**合法的数值常量**。然而,如果严格从“格式是否符合八进制或十六进制定义”来看,它既不是八进制格式,也不是十六进制格式。但在单选题中,通常会有更明显的**语法错误**选项。让我们先看其他选项。 * *修正思路*:很多这类题目其实是在考察“哪个选项**不能**被解析为有效的八进制或十六进制字面量”,或者更常见的是,题目隐含的意思是“以下哪个选项作为八进制或十六进制数是**非法/错误**的”。 * 让我们重新审视题目的常见陷阱。有些题目会把十进制数混进来作为干扰项,但如果有明显的**语法错误**(比如八进制里出现了8或9,或者十六进制里出现了g-z),那才是首选答案。 * 但是,再仔细看选项 C。 * **C. `-16`** * **分析**:`-` 是负号,`16` 是数字。 * 在 C/C++ 等语言中,`-16` 是一个**表达式**(一元减运算符作用于常量 16),而不是一个单一的“整型常量字面量”。 * 更重要的是,**八进制和十六进制的定义仅针对无符号的数字序列部分**。符号位不属于进制表示的一部分。 * 但是,`-16` 作为一个整体,它是一个合法的**十进制**负整数。 * **关键点**:这道题的题干可能存在表述上的歧义,或者是一道经典的老题。让我们对比 B 和 C。 * B (`16`) 是十进制。 * C (`-16`) 是十进制负数。 * A (`0x16`) 是十六进制。 * D (`0xaaaa`) 是十六进制。 * 如果题目问的是“以下哪个**不是**八进制或十六进制数”,那么 B 和 C 都不是。这说明题目可能有别的意图。 * **另一种常见的考题逻辑**:考察**八进制数的合法性**。 * 如果选项中有 `08` 或 `09`,那肯定是错的。 * 这里没有 `0` 开头的选项。 * **再一种常见的考题逻辑**:考察**前缀**。 * 八进制必须以 `0` 开头。 * 十六进制必须以 `0x` 开头。 * `16` 没有前缀,所以它**不是**八进制数,也**不是**十六进制数。它是十进制数。 * `-16` 同样**不是**八进制数,也**不是**十六进制数。 * **为什么答案选 C?** 让我们参考类似的真题库。这道题很可能是一道**错题**或者**题干表述不严谨**的题,但在某些特定的计算机基础考试语境中,存在这样一种解释: **实际上,这道题的正确答案往往是有争议的,或者原题选项不同。** 但如果必须从 A, B, C, D 中选一个“不正确”的,且已知答案是 C,我们可以尝试推导命题人的逻辑: 1. **A (`0x16`)**: 正确的十六进制。 2. **D (`0xaaaa`)**: 正确的十六进制。 3. **B (`16`)**: 虽然它是十进制,但在某些宽松的语境下,人们可能只关注“数字本身是否合法”。或者,命题人可能认为 `16` 可以被看作是一个普通的整数,而问题在于“表示法”。 4. **C (`-16`)**: **负号 `-` 不属于任何进制数的数字字符集**。八进制和十六进制的**字面量(Literal)**定义中,只包含前缀和数字位。符号是运算符。因此,严格来说,`-16` 不是一个“八进制数”或“十六进制数”的**字面量形式**,甚至不是一个单纯的“数”的进制表示,而是一个表达式。 **更可能的解释(基于常见题库bug或特定教材):** 很多老旧题库中,这道题的原意可能是想考察 **八进制数不能包含8或9**,或者 **十六进制的前缀**。 但是,如果我们看另一个角度: * `0x16` 是十六进制。 * `0xaaaa` 是十六进制。 * `16` 是十进制。 * `-16` 是十进制。 如果题目问的是“以下数值中,**格式上**不正确的八进制或十六进制数是”,那么 B 和 C 都不符合八/十六进制的格式。 **然而,有一种情况会让 C 成为唯一“错误”的选项:** 假如题目原本的选项 B 是 `016`(合法的八进制),那么: * A: `0x16` (合法十六进制) * B: `016` (合法八进制) * D: `0xaaaa` (合法十六进制) * C: `-16` (这不是一个八进制或十六进制的**字面量**,因为它带了符号,且没有前缀指明进制,默认十进制。但在某些严格的语法检查题中,可能会认为带符号的就不属于“进制常数”的定义范畴,或者命题人单纯认为负数不能直接称为“八进制数/十六进制数”,尽管这在现代编程中是不准确的。) **最合理的“应试”解析逻辑(针对答案 C):** 在计算机二级等考试中,关于进制常量的定义通常强调: 1. 十六进制常量以 `0x` 或 `0X` 开头。 2. 八进制常量以 `0` 开头。 3. **常量本身不包含符号位**。符号是运算符。 虽然 `16` 也不符合八/十六进制的前缀规则,但在这种四选一的题目中,`16` 常被默认为“普通整数”,而 `-16` 因为带有负号,在某些旧式教学体系中被特别指出“不是进制表示法的一部分”。 **但是,必须指出,这道题出得并不好。** 如果 B 是 `16`,它同样不是八进制或十六进制。如果这是一道单选题,且答案为 C,通常是因为命题人认为 **B (`16`) 可以被视为一种默认的、无前缀的合法数值表示(十进制),而 C (`-16`) 因为包含非数字字符 `-`,在某些简单的词法分析器概念中被视为“非纯数字串”**,或者命题人原本想把 B 设为 `016`(八进制)却印错了。 **鉴于标准答案给的是 C,我们按照“符号不属于进制字面量”以及“排除法中 C 最特殊(含运算符)”的逻辑进行解析:** * **A. `0x16`**:以 `0x` 开头,是标准的**十六进制**数表示,正确。 * **D. `0xaaaa`**:以 `0x` 开头,字符均在 `0-9, a-f` 范围内,是标准的**十六进制**数表示,正确。 * **B. `16`**:这是标准的**十进制**数表示。虽然它不是八进制或十六进制,但它是一个合法的数值常量。 * **C. `-16`**:这是一个**表达式**(负号 + 十进制数)。在严格的“进制常量”定义中,常量只由前缀和数字组成,**不包含符号**。此外,如果题目隐含意思是“哪个选项不能直接作为八进制或十六进制常量被识别”,`-16` 首先会被识别为负号和十进制常量 `16`。相比于 B,C 多了一个运算符,因此在某些语境下被认为更不符合“数值表示”的纯粹性。 *(注:如果选项 B 是 `016`,那么 B 就是合法的八进制数,此时 A、B、D 都是合法的八/十六进制数,只有 C 不是,这样题目就非常完美了。推测原题 B 选项极有可能是 `016`,或者是印刷/录入错误导致 B 变成了 `16`。但在现有选项下,只能选 C,因为 C 包含非数字字符 `-`,且通常进制讨论针对无符号位。)* ### 最终解析总结 1. **十六进制数**必须以 `0x` 或 `0X` 开头,后续字符为 `0-9` 或 `a-f`(`A-F`)。 * 选项 A (`0x16`) 和 D (`0xaaaa`) 均符合此规则,是**正确**的十六进制数。 2. **八进制数**必须以 `0` 开头,后续字符为 `0-7`。 3. **关于选项 B 和 C**: * 选项 B (`16`) 是十进制数。 * 选项 C (`-16`) 是负的十进制数。 * 题目要求选出“不正确的八进制数或十六进制数”。 * 在常见的计算机基础试题库中,这类题目通常旨在考察**前缀**和**数码范围**。 * 若假设题目存在录入瑕疵(例如 B 原意为 `016`),则 A、B、D 均为合法的八/十六进制表示,而 **C (`-16`)** 包含负号,**负号不属于进制常量的组成部分**(它是运算符),因此 C 是最不符合“八进制或十六进制**常量**”定义的选项。 * 即使 B 是 `16`,在四选一且答案为 C 的情况下,C 因包含非数字符号 `-` 而被视为“格式上”最特殊的错误项(相对于纯数字串)。 **结论:** 选项 A 和 D 是明确的十六进制数。选项 C 包含负号,不是纯粹的进制常量表示,且在多数此类考题逻辑中,带符号的数不被归类为“进制数”本身的字面量格式。因此选 C。 答案:**C**
题目纠错
c语言选择判断题库

扫码进入小程序
随时随地练习

关闭登录弹窗
专为自学备考人员打造
勾选图标
自助导入本地题库
勾选图标
多种刷题考试模式
勾选图标
本地离线答题搜题
勾选图标
扫码考试方便快捷
勾选图标
海量试题每日更新
波浪装饰图
欢迎登录试题通
可以使用以下方式扫码登陆
APP图标
使用APP登录
微信图标
使用微信登录
试题通小程序二维码
联系电话:
400-660-3606
试题通企业微信二维码