地址、& 和 * 第一次见

p 里存的是 x 的地址,*p 就是 x 本身 执行 *p = 9; 改的是 x &x ──→ 5 9 指针变量 p 变量 x 每个变量都放在内存里的某个位置,这个位置的编号叫地址。专门用来存地址的变量叫指针变量: int *p;:

开始练习 →

宿舍电费记到谁头上

宿舍电费余额:你(me)50 元,室友(mate)80 元。这次是室友交了 20 元,程序用指针 p 给「p 指向的人」加钱。 运行一次,看画布上 p 指向谁。只改一处,让程序输出: me=50 mate=100 代码里以 @youci 开

开始练习 →

母题:指针指向较大的数

输入两个整数 a、b。让指针 pmax 指向其中较大的那个,再通过 *pmax 输出它。例如输入 12 5,输出: max=12 程序有一处写错了,b 更大时也输出 a。

开始练习 →

变式 1:给余额少的饭卡充值

两张饭卡的余额 a、b(整数)。让 p 指向余额较少的那张(一样多就指 a),然后通过 p 给它充 50 元,最后输出 a 和 b。例如输入 8 15,输出: 58 15

开始练习 →

变式 2:三次跳远取最好成绩

体测立定跳远跳三次,成绩 a、b、c(厘米,整数)。让 pmax 指向最好的一次(一样好取前面那次),再用 pmax == &a 这样的比较判断是第几次。例如输入 210 226 219,输出: 第2次 226

开始练习 →

变式 3:交换的是指针还是内容

输入两个整数 a、b,要求排好后 a 是小的、b 是大的,输出 a 和 b。例如输入 20 15,输出: 15 20 程序让 p 指向 a、q 指向 b,a 大时交换了 p 和 q——可输出的 a、b 还是没变。看画布:交换后 p 指向谁?

开始练习 →

变式 4:测验加分要封顶

两次随堂测验成绩 x、y(实数)。老师给较高的那次加 5 分附加分(一样高就加给 x),但不能超过 100。用 double *pbest 指向较高的那次,通过它加分,最后输出 x、y,保留一位小数。例如输入 98 80,输出: 100.0

开始练习 →

二级 · 程序填空:通过指针交换 a 和 b

下面的程序通过指针交换 a 和 b 的值,输出 9 5。请在【】处填入正确的内容。 #include <stdio.h> int main(void) { int a = 5, b = 9, t; int *p

开始练习 →

二级 · 选择:定义里的 * 和表达式里的 *

设有定义 int a = 5, *p = &a;,则: 值为 5 的表达式是【0】;值为 a 的地址的表达式是【1】;定义里 int *p 的 * 表示【2】。

开始练习 →

二级 · 程序设计:三个评委取中间分

三位评委打分,取中间那个分数(不是最高、也不是最低)作为成绩。main 把三个分数的地址传给 fun,fun 里用 *a、*b、*c 就能拿到分数。 请编写函数 fun,返回三个数中大小居中的那个。例如三个分数是 85 92 78,输出:

开始练习 →