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

1、第194题 (1.0分) 题号:549 若有double *p,x[10];int i=5;使指针变量p指向元素x[5]的语句为()。

A
 p=&x[i];
B
 p=x;
C
 p=x[i];
D
 p=&(x+i)

答案解析

正确答案:A

解析:

**解析:** 本题考查的是 C 语言中指针与数组的关系以及指针的赋值操作。 1. **题目分析**: * 已知条件:`double *p` 是一个指向 double 类型数据的指针变量;`x[10]` 是一个包含 10 个 double 类型元素的数组;`int i = 5`。 * 目标:使指针 `p` 指向数组元素 `x[5]`。这意味着 `p` 中存储的值应该是 `x[5]` 这个变量在内存中的地址。 2. **选项逐一分析**: * **A. `p=&x[i];`** * `x[i]` 即 `x[5]`,表示数组中的第 6 个元素(下标从 0 开始)。 * `&` 是取地址运算符。`&x[i]` 表示获取元素 `x[5]` 的地址。 * `p` 是指针变量,可以接收地址值。因此,`p = &x[5]` 正确地将 `p` 指向了 `x[5]`。 * **该选项正确。** * **B. `p=x;`** * 在 C 语言中,数组名 `x` 代表数组首元素 `x[0]` 的地址。 * 执行 `p = x;` 后,指针 `p` 将指向 `x[0]`,而不是 `x[5]`。 * **该选项错误。** * **C. `p=x[i];`** * `x[i]` 即 `x[5]`,它是一个 `double` 类型的数值(数据本身),而不是地址。 * `p` 是一个指针变量,只能存储地址。将一个 `double` 类型的值直接赋给指针变量会导致类型不匹配错误(编译错误或警告,且逻辑上完全错误)。 * **该选项错误。** * **D. `p=&(x+i)`** * `x` 是数组名,在表达式中退化为指向首元素的指针。 * `x + i` 是指针运算,结果是一个地址(即 `&x[5]` 的地址值),它本身已经是一个右值(地址)。 * `&(x+i)` 试图对一个表达式的结果(非左值)取地址,这在 C 语言中是非法的。我们不能对“地址的计算结果”再次取地址,只能对具体的变量或内存单元取地址。正确的写法应该是 `p = x + i;` 或者 `p = &x[i];`。 * **该选项语法错误。** 3. **结论**: 要使指针 `p` 指向 `x[5]`,需要获取 `x[5]` 的地址并赋给 `p`。只有选项 A 正确地使用了取地址运算符 `&` 作用于数组元素 `x[i]`。 **正确答案:A**
题目纠错
c语言选择判断题库

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

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