二级 · 只写 fun:3 或 7 的倍数有几个

二级的程序设计题是这个样子:main 已经写好,不许改,你只写 fun 函数的函数体。 函数 fun(n) 的功能:返回 1 到 n(含 n)之间能被 3 整除或能被 7 整除的整数个数。例如输入 10,有 3、6、7、9 四个,输出: 4

开始练习 →

作品:体测 BMI 计算器

体测要算 BMI:BMI = 体重(kg) ÷ 身高(m)²。为了只用整数,程序让 bmi10(kg, cm) 返回 BMI 的 10 倍(小数第二位直接舍去),打印时拆成「整数部分.一位小数」。 另一个函数 level(b) 按 BMI

开始练习 →

传值:函数改的是复印件

传值:把实参的值复印一份交给形参 main 里的 a 函数里的 x 3 3 x = 4 函数里改 x,main 里的 a 不受影响 先认两个词:定义函数时括号里的变量叫形参(下面的 x),调用时括号里给的值叫实参(下面的 a)。 #incl

开始练习 →

加分了,可返回值没人接

平时成绩加 5 分。函数 bonus 把形参 s 加了 5,还 return s; 交了回来,可 main 输出的还是 80。 先运行,看画布上函数里的 s 是几;然后改一行,让程序输出: 85 代码里以 @youci 开头的 printf

开始练习 →

母题:三门课平均分(返回 double)

函数 avg3(a, b, c) 返回三门课成绩的平均分,返回类型写的是 double,main 用 %.2f 打印。可结果的小数总是 .00。例如输入 88 90 93,应该输出: 90.33

开始练习 →

变式 1:公斤换斤,返回类型写错了

函数 to_jin(kg) 把公斤换成斤(乘 2)。式子没错,可 52.3 公斤换出来是 104.0 斤。 这次函数定义写在 main 前面:先定义后调用,就不用另写原型了。输入体重(公斤),输出斤数,保留一位小数。例如输入 65.4,输出

开始练习 →

变式 2:return 一执行,函数就结束

函数 point(s) 把百分制成绩换成绩点:90 及以上 4,80 及以上 3,70 及以上 2,60 及以上 1,其余 0。 可是 95 分也只拿到 1 个绩点。return 一执行,函数立刻结束,后面的判断就没机会了。例如输入 85,

开始练习 →

变式 3:交给函数,n 就不会被改掉

输入一个正整数 n,输出它有几位,格式是 12345 有 5 位。 main 里直接用循环数位数,结果把 n 自己除成了 0,打印出来是 0 有 5 位。上面已经写好了函数 digits(n),它里面也在除 n——换成调用它试试。例如输入

开始练习 →

变式 4:实参的顺序要对上形参

一张纸对折 n 次,会叠成 2 的 n 次方层。函数 power(base, e) 返回 base 的 e 次方。 实参是按位置交给形参的:第 1 个实参给第 1 个形参,第 2 个给第 2 个,和变量叫什么名字无关。先运行看画布上 bas

开始练习 →

二级 · 程序改错:调和级数的返回类型

下面程序中,函数 fun 的功能是:计算 s = 1 + 1/2 + 1/3 + … + 1/n 并作为函数值返回。例如输入 3,输出 1.8333。 程序中有两处错误(都能通过编译)。请改正 found 下面一行中的错误,不要改动 mai

开始练习 →