变式 1:static 是初始化不是赋值

函数 avg 每收到一个成绩,就返回「目前为止所有成绩的平均分」。输入 n 和 n 个成绩,每次输出一行,保留一位小数。例如输入 2 和 80 91,输出: 80.0 85.5 sum 和 cnt 明明写了 static,可每次输出的都是刚

开始练习 →

变式 2:体测破纪录提醒

体测练习 50 米跑,每跑一次调用 check(t)(t 是用时,单位 0.1 秒,例如 72 表示 7.2 秒)。 比之前所有成绩都快就返回 1 并记住新纪录,否则返回 0。第一次跑一定算破纪录。 补全 check。例如输入 3 和 80

开始练习 →

变式 3:extern 先借用后面的全局变量

全局变量的作用域从定义处开始。下面的 total 定义在文件最后,排在前面的 main 看不见它,编译会报错。 不要挪动 total 的定义,在 main 里加一句 extern 声明,告诉编译器「total 在后面定义」。程序功能:输入

开始练习 →

变式 4:食堂两个窗口各自叫号

食堂 A、B 两个窗口各自叫号:A 窗口叫 A1、A2……,B 窗口叫 B1、B2……。全局变量 served 记两个窗口一共服务了几人。 输入一串只含 A、B 的字符(不超过 50 个),按顺序输出每次叫到的号,最后一行输出总人数。win

开始练习 →

二级 · 程序填空:static 求阶乘

下面程序依次输出 1!~5! 的值(每次调用 fac 只乘一次,靠 f 记住上一次的结果)。请在【】处填入正确的内容。 #include <stdio.h> long long fac(int n) { 【0】 lon

开始练习 →

二级 · 程序设计:阶乘之和

请编写函数 fun,它的功能是:计算并返回 s = 1! + 2! + 3! + … + n! 的值(1 ≤ n ≤ 15)。例如 n = 4 时,函数返回 33。 注意:main 函数和其他已给出的内容不许改动,只在 fun 的花括号中填

开始练习 →

二级 · 选择:存储类别的初值

以下叙述中: ① 在函数中定义的 static 局部变量,每次调用函数时都重新赋初值; ② 未赋初值的 static 变量和全局变量,初值自动为 0; ③ register 变量可以用 & 取地址; ④ static 局部变量在函数

开始练习 →

作品:背单词连续打卡天数

背单词 App 的打卡统计:输入天数 n 和每天是否打卡(1 打卡、0 没打),每天调用一次 day(done),它返回到今天为止最长连续打卡天数。 最后输出当前连续天数和最长连续天数。例如输入 5 1 1 1 0 1 输出: 当前连续 1

开始练习 →

宏只是原样替换文字

#define S(x) x*x:预处理只做「文字替换」,不先算括号 写的是 S(x+y) 替换成 x+y*x+y 乘号先算! 加括号 ((x+y)*(x+y)) 以 # 开头的行叫预处理命令,在编译之前就处理掉: #include <

开始练习 →

给宏加上括号

两块正方形地砖并排拼成一个大正方形,边长是 a + b。输入 a、b,用宏 SQ 算大正方形的面积。例如输入 1 2,输出 9。 可现在输出的是 5。只改 #define 那一行,让它变对。

开始练习 →