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

1、第57题 (1.0分) 题号:558 int a[10]={1,2,3,4,5,6,7,8};int *p;p=&a[5];p[-3]的值是()。

A
2
B
3
C
4
D
 不一定

答案解析

正确答案:B

解析:

**解析:** 1. **数组初始化分析**: 代码 `int a[10]={1,2,3,4,5,6,7,8};` 定义了一个长度为 10 的整型数组 `a`。 根据 C 语言规则,未显式初始化的元素自动补 0。因此数组 `a` 的内容如下: * `a[0] = 1` * `a[1] = 2` * `a[2] = 3` * `a[3] = 4` * `a[4] = 5` * `a[5] = 6` * `a[6] = 7` * `a[7] = 8` * `a[8] = 0` * `a[9] = 0` 2. **指针赋值分析**: 语句 `p = &a[5];` 将指针 `p` 指向数组 `a` 的第 6 个元素(下标为 5 的元素)。 此时,`p` 指向的值是 `6`,即 `*p == a[5] == 6`。 3. **指针运算分析**: 表达式 `p[-3]` 等价于 `*(p - 3)`。 * `p` 指向 `a[5]`。 * `p - 3` 表示指针向前移动 3 个 `int` 单位的位置。 * 从下标 5 向前移动 3 位,对应的下标为 $5 - 3 = 2$。 * 因此,`p[-3]` 等同于访问 `a[2]`。 4. **最终结果**: 查看数组初始化内容,`a[2]` 的值为 **3**。 故正确答案为 **B**。
题目纠错
c语言选择判断题库

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

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