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

1、第175题 (1.0分) 题号:190 关于指针概念说法不正确的是()。

A
 一个指针变量只能指向同一类型变量
B
 一个变量的地址称为该变量的指针
C
 只有同一类型变量的地址才能放到指向该类型变量的指针变量之中
D
 指针变量可以由整数赋,不能用浮点赋

答案解析

正确答案:D

解析:

**解析:** 本题考查指针的基本概念及赋值规则。我们需要逐一分析各个选项,找出说法**不正确**的一项。 * **A. 一个指针变量只能指向同一类型变量** * **分析**:在强类型语言(如 C/C++)中指针声明时指定了基类型(例如 `int *p`),通常用于指向该类型的变量。虽然通过强制类型转换指针可以指向其他类型,或者使用 `void *` 通用指针,但在基础概念教学中,强调指针的类型安全性,即指针变量设计初衷是管理特定类型数据的地址。此说法在常规语境下被视为对指针类型约束的正确描述(或者说相比 D 选项,它的错误性不明显或属于特定语境下的规范说法)。*注:严格来说 A 也有争议,因为指针可以强制转换,但让我们先看其他选项。* * **更正视角的深入分析**:其实 A 选项的说法也是不严谨的,因为指针可以通过强制类型转换指向不同类型。但是,让我们对比 D 选项。 * **B. 一个变量的地址称为该变量的指针** * **分析**:这是指针的标准定义。在计算机内存中,每个字节都有一个编号,这个编号就是地址。我们通常把一个变量的地址称为该变量的“指针”。 * **结论**:说法正确。 * **C. 只有同一类型变量的地址才能放到指向该类型变量的指针变量之中** * **分析**:这与 A 选项类似,强调类型匹配。在标准 C 语言中,将 `double` 类型的地址赋给 `int *` 指针会产生警告或错误,除非进行显式强制转换。因此,从类型安全和规范编程的角度看,这个说法旨在强调类型一致性,通常被认为是正确的概念描述。 * **结论**:说法基本正确(符合类型系统的基本规则)。 * **D. 指针变量可以由整数赋,不能用浮点赋** * **分析**: 1. **关于整数赋值**:在标准的 C/C++ 中,**不能直接将一个整数赋值给指针变量**(除了常量 `0` 或 `NULL`)。例如 `int *p = 100;` 在现代编译器中通常会报错或至少发出严重警告,因为整数和指针是不同的类型。如果需要将特定地址赋给指针,必须进行强制类型转换,如 `int *p = (int *)100;`。因此,“指针变量可以由整数赋”这种笼统的说法是错误的。 2. **关于浮点赋值**:指针绝对不能用浮点数赋值,因为内存地址是离散的整数值,浮点数无法表示有效的内存地址。这部分后半句是对的。 3. **综合来看**:选项 D 的前半句“指针变量可以由整数赋”违背了类型安全原则(未经转换的直接赋值是非法的或不推荐的),而后半句“不能用浮点赋”是正确的。但作为一个整体陈述,它暗示了整数可以直接赋值而浮点不行,这在概念上是混淆的。更重要的是,在很多教材的语境中,会特别强调**指针不是整数**,虽然它们在底层都是数值,但不能混用。 * **重新审视题目意图**: 这道题是经典的计算机二级或初级编程考试题。这类题目往往考察的是最基础的“禁忌”。 * A 和 C 强调的是**类型匹配**,这是指针使用的核心规则,通常判为“正确”。 * B 是**定义**,判为“正确”。 * D 选项说“指针变量可以由整数赋”。这是一个非常典型的错误陷阱。虽然在某些老旧编译器或特定嵌入式开发中可能允许隐式转换,但在标准 C 语言理论中,**指针变量不能直接由整数赋值**(必须强转)。而且,即使允许强转,说“可以由整数赋”也容易误导初学者认为指针就是整数。相比之下,A、B、C 都是教材上的标准正面陈述。因此,D 是被选为“不正确”的最佳候选项,因为它描述了错误的操作方式(直接赋值)或者混淆了概念。 * **另一种常见的考点解释**: 有些教材认为,指针本质上是地址,地址是整数。但是,**语法上**不允许 `p = 10;` 这样的直接赋值(除 0 外)。如果题目意思是“指针变量的值本质上是一个整数地址”,那是对的。但题目说的是“可以由整数赋”,这指的是赋值操作。 实际上,这道题的题眼在于:**指针变量不能直接接受整数赋值(除了0/NULL),也不能接受浮点数赋值。** 选项 D 声称“可以由整数赋”,这是错误的。 **总结:** * A、C 强调指针的类型约束,符合规范。 * B 是指针的定义,正确。 * D 错误地认为指针可以直接由整数赋值(实际上需要强制类型转换,且通常不建议这样做,除非操作硬件地址等特殊情况;且绝对不能由浮点数赋值)。因此 D 的说法是不正确的。 答案:**D**
题目纠错
c语言选择判断题库

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

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