C++指针基础练习:初学者的选择题解析

5星 · 超过95%的资源 需积分: 45 182 下载量 164 浏览量 更新于2024-11-13 13 收藏 46KB DOC 举报
"C++指针练习题(适合初学者的练习题)Word格式" 这篇资料是一份针对C++初学者的指针练习题集,旨在帮助学习者加深对C++指针的理解和运用。指针是C++语言中的重要概念,能够直接操作内存地址,对于理解和编写高效代码至关重要。下面是对这些练习题中涉及的知识点的详细解释: 1. 指针运算:题目中的选项涉及到数组与指针的关系。`a[p-a]` 和 `*(a+i)` 是访问数组元素的两种方式,而 `&a[i]` 获取的是数组元素的地址。选项D `*(*(a+i))` 也是正确的,等同于 `*(a+i)`,因此错误的答案可能是A或D,具体要看其他选项设置。 2. 指针与数组:`int *p=&a[3]` 创建了一个指向数组第三个元素的指针,`p[5]` 等同于 `*(p+5)`,即访问数组的第8个元素(在C++中,数组下标从0开始),所以 `b` 的值应为9,答案是C。 3. 指针比较与算术运算:`a=p1==&m` 会比较 `p1` 是否等于 `&m`,如果相等,`a` 被赋值为1,否则为0。接下来的 `b=(*p1)/(*p2)+7;` 进行了指针解引用并进行算术运算,因为 `k=4` 和 `m=6`,所以 `b` 的值为 `4/6+7`,结果是7。因此,输出应该是 `0,7`,答案是C。 4. 函数指针声明:`void*fun();` 表示 `fun` 函数返回一个 `void` 指针,可以指向任何数据类型,答案是B。 5. 函数参数传递:`prt` 函数接受一个整型指针和一个整数,它通过指针增加数组中的每个元素。在 `main` 函数中调用 `prt(a,5)` 后,数组 `a` 的所有元素都会加1。因此,输出应该是 `2,3,4,5,6`,答案是B。 6. 字符串比较函数:`fun` 函数通过比较两个指针所指向的字符,直到遇到不同或者遇到空字符 `\0`。它的功能是判断两个字符串是否相等或哪个字符串在字典序上更靠前。由于它返回 `*a-*b`,当两个字符串不同时,返回第一个不同的字符的ASCII值之差,因此这个函数是用于比较字符串的大小,答案是D。 7. 交换函数:`f` 函数接收两个整型指针,交换它们所指的值。在 `main` 函数中,数组 `a` 的首尾元素被交换,然后每次迭代都将相邻的元素交换,最后数组 `a` 的顺序将会反转。因此,输出的结果取决于数组 `a` 的初始值,但应该呈现倒序排列。 这些练习题涵盖了指针的基础操作,包括指针的初始化、解引用、算术运算、比较、以及通过指针进行数组和字符串操作等核心概念。通过解答这些题目,初学者可以进一步巩固对C++指针的理解。