母题:用宏 MAX 找三个数的最大值

写一个带参数的宏 MAX(a, b),值是 a、b 中较大的那个(用条件表达式 ? :)。main 用 MAX(MAX(x, y), z) 求三门课的最高分。 补全 #define 那一行。例如输入 78 93 85,输出 93。

开始练习 →

变式 1:宏外面那层括号

期末加分活动:签到 n 天,加分是 n 的两倍,满分 100,输出「离满分还差多少」。宏写成了 #define DOUBLE(x) (x) + (x)。例如输入 12,输出 76。 可程序算错了。看画布上「单独算」和「放进算式」两个值,只改

开始练习 →

变式 2:不带参数的宏也要括号

宿舍楼自助洗衣:洗一次 3 元、烘干 1 元,宏写成 #define FEE 3 + 1。输入这学期洗衣的次数 n,输出总花费。例如输入 5,输出 20。 可程序输出 8。只改 #define 那一行。

开始练习 →

变式 3:函数换不了,宏能换

前面学过:函数 swap(int a, int b) 换的只是形参,main 里的变量不变。宏不一样——它直接把代码替换到调用的地方,改的就是 x、y 自己。 输入三个身高(厘米),从低到高输出。下面用函数交换,结果没排好。把 #defin

开始练习 →

变式 4:宏判断闰年

写一个宏 LEAP(y):y 是闰年时值为 1,否则为 0(能被 4 整除但不能被 100 整除,或者能被 400 整除)。 输入两个年份 a、b(a ≤ b),输出 a~b 之间(含两端)有多少个闰年。例如输入 2023 2028,输出

开始练习 →

二级 · 程序改错:圆面积的宏

下面程序的功能是:输入半径 r(整数),输出半径为 r + 1 的圆的面积,保留两位小数。例如输入 1,输出 12.56。 程序中有两处错误。请改正 found 下面一行中的错误,不要改动其他地方,也不要增删行。

开始练习 →

二级 · 程序设计:矩阵周边元素之和

程序中定义了 N×N 的二维数组(N 由 #define N 4 给出),main 读入矩阵。请编写函数 fun,它的功能是:求出数组周边元素(第一行、最后一行、第一列、最后一列)的和,作为函数值返回。每个元素只算一次。 注意:main 函

开始练习 →

二级 · 选择:#include 与宏展开

#include <stdio.h> #define F(x, y) x * y int main(void) { int a = 3, b = 2; printf("%d\n", F(a

开始练习 →

作品:用宏做 BMI 计算器

BMI = 体重(kg) / 身高(m)²。程序用宏 SQ 算身高的平方,身高输入的是厘米,所以写成 SQ(cm / 100.0)。 输入体重和身高(整数),输出 BMI(保留一位小数)和评价:小于 18.5 偏瘦,小于 24 正常,小于

开始练习 →

二级程序设计题长什么样

二级程序设计题:main 准备数据、调用 fun、输出结果 main fun 实参 → ← 返回值 读入、输出 计算 二级操作题的最后一道(40 分)是程序设计题,格式固定: 题目给出完整程序:main 负责读数据、调用 fun、输出结果,

开始练习 →