变式 3:第一个不及格改成补考 60

写 int *find_fail(int a[], int n):返回第一个不及格(小于 60)成绩的地址,全都及格返回 NULL。 main 用返回的指针把那一门改成补考成绩 60,再输出全部成绩。例如输入: 4 80 55 59 90

开始练习 →

变式 4:条件也当参数传进去

把「找什么」也交给调用的人决定:int *find_first(int a[], int n, int (*ok)(int)),返回第一个让 ok(a[i]) 为真的元素地址,没有返回 NULL。 main 已经写好,分别传入 is_fai

开始练习 →

二级 · 程序填空:用函数指针决定升序还是降序

sort 用传进来的比较函数决定顺序,下面的程序要输出 5 4 3 1 1。请在【】处填入正确的内容。 #include <stdio.h> int up(int x, int y) { return x - y; }

开始练习 →

二级 · 程序改错:50 米谁跑得最快

体测 50 米成绩以 0.1 秒为单位存成整数(72 表示 7.2 秒)。函数 find_min 返回最快(数值最小)那个成绩的地址, main 输出是第几个同学(从 1 数,一样快取前面的)和成绩。例如输入: 4 75 68 70 68

开始练习 →

二级 · 选择:不能返回局部数组的地址

greet 想返回拼好的问候语。原来 buf 前面什么都没写,程序有时输出乱码。在【0】处加一个关键字就能修好: #include <stdio.h> #include <string.h> char *greet

开始练习 →

二级 · 程序设计:返回较长的那个字符串

函数 fun 的功能:比较字符串 s 和 t 的长度,返回较长的那个;一样长时返回 s。例如输入 apple banana,输出: banana main 已经写好,不要改动,只在 fun 的花括号里写代码。

开始练习 →

作品:体测长跑评分器

体测长跑男生跑 1000 米、女生跑 800 米,评分标准不一样(下面是简化版)。程序用函数指针 rate 选评分函数: 男生(M)指向 boy,女生(F)指向 girl,然后统一用 rate(t) 打分。 输入性别和用时(秒),例如输入

开始练习 →

指针数组:换的是箭头不是字符串

交换指针数组的两格:换的是箭头,字符串一个字也没搬 p[0] p[1] p[2] → cat → dog → pig cat dog pig 字符串(不动) 好几个字符串要一起管时,可以用指针数组:char *name[3]; 因为 []

开始练习 →

二级指针:通过 pp 让 p 改指向

指针变量 p 自己也有地址,存这个地址的变量叫指向指针的指针(二级指针): int **pp = &p;:pp 指向 p; *pp 就是 p 本身,*pp = &b; 等于 p = &b;; **pp 是 p 指向的

开始练习 →

母题:选课名单按字典序排

选课系统要把名单按字典序(a 到 z)排好。名字存在 buf 里,指针数组 p 的每一格指向一个名字,排序时只交换 p 里的指针。 输入人数 n(不超过 10)和 n 个名字,每行输出一个。例如输入: 3 lucy amy tom 输出:

开始练习 →