C语言指针练习题解析
版权申诉
11 浏览量
更新于2024-08-23
收藏 13KB DOCX 举报
"8 指针作业.docx"
这些题目涉及到C语言中的指针基础知识,包括指针的赋值、解引用、数组与指针的关系以及指针在数组排序和字符串处理中的应用。让我们逐一解析每个问题:
1. 题目中,程序创建了一个整型数组`x`并初始化,然后定义了一个指向整型的指针`s`,将其指向数组的第四个元素(即`x[3]`,值为5)。`s[2]`实际上是访问`x`数组中下标为5的位置,也就是`x[5]`,由于数组在内存中是连续的,所以`x[5]`的值是0。因此,执行后输出结果是B) 0。
2. 在这个程序中,定义了两个整型变量`a`和`b`,一个整型指针`p1`,并将其初始化为`a`的地址。`p1==`是一个未完成的表达式,可能是想表示`p1 = &a`。接下来的`b=(-*p1)/(*p2)+7;`中,`*p1`表示`a`的值(假设为4),`*p2`未初始化,按照题目要求应该视为错误。如果`p2`也被初始化为`&b`,那么`b`的计算会是非法的。因此,无法确定`a`和`b`的具体值,答案无法给出。
3. 这个程序是进行三个整数的交换操作。输入481后,指针`p1`、`p2`、`p3`分别指向这三个数字。通过指针交换,原来的1、4、8变成了1、8、4。因此,输出结果是B) 184。
4. 该程序尝试通过指针`p`来输入`a`的值。错误在于`scanf("%d", *p);`,这里的`*p`表示的是变量`a`的值,而非地址。正确的做法应该是`scanf("%d", p);`。因此,错误原因是B) *p表示的是变量a的值,而不是变量a的地址。
5. 这个程序用于打印字符串`str`的倒序。`while(*ps)ps++;`用于找到字符串末尾,`for`循环则从末尾开始逐个打印字符。最后输出的结果是C) z yz xyz。
6. 这个题目询问哪些选项代表地址。A) 中`a`是变量,不是地址;B) 是字符数组,但不是地址;C) `s`是一个指向字符串常量的指针,代表地址;D) 定义了`s`为指向字符的指针,并让`scanf`读取字符串到`s`所指向的内存,这里`s`代表地址。因此,正确选项是D)。
7. 程序中,`s`初始化为字符串"abcde"的地址,`s+=2`之后,`s`指向'c'。`printf("%d", s);`试图打印`s`的值,这里`s`是一个指针,不能用 `%d` 打印,应该用 `%p` 打印地址。因此,这个程序有编译错误,没有确定的输出结果。正确答案是D) 无确定的输出结果。
以上就是对8个指针作业题目的解析,它们涵盖了指针的基础概念和操作,以及指针在实际编程中的应用。
359 浏览量
2022-12-06 上传
428 浏览量
594 浏览量
732 浏览量
212 浏览量
629 浏览量
579 浏览量
533 浏览量
mair123456
- 粉丝: 6
- 资源: 6万+
最新资源
- 大学生创业实训体会
- arcolinuxd-iso-dev
- ical-generator:ical-generator是一小段代码,可生成ical日历文件
- 清华同方电脑bois ip41m v1.0
- sparta-clb:MapleStory Europe的无客户端机器人
- Download Procreate For PC [Window 10]-crx插件
- 打造团队领导力DOC
- tarch-based-volatility-model:基于 T-GARCH 的非对称金融过程波动率模型。 这个 repo 包含我正在为我的硕士论文开发的研究代码
- MindShare_PCI Express Technology 3.0.zip
- 电信设备-基于傅立叶梅林变换和最大互信息理论的图像配准方法.zip
- Multimedia_Library:ENSAte GI2中的Java项目
- 任务2-K均值
- Granola:美味造型的基础
- TCP中上报与监听线程动态库.zip
- redis-desktop-manager-0.9.3.817.zip
- java简易小游戏.zip