母题:是不是素数

输入正整数 n(n ≥ 2),从 2 开始试到 n - 1,只要有一个能整除 n,就不是素数,马上 break。是素数输出 是素数,否则输出 不是素数。例如输入 97,输出: 是素数 程序的循环范围多了一个数。运行后看画布:循环停下时 i

开始练习 →

变式 1:跳过 3 的倍数

输入 n,求 1~n 中不是 3 的倍数的数之和。例如输入 10,输出: 37 遇到 3 的倍数只是跳过这一个,程序却把整个循环停了。运行后看画布上「跳过」了几次。 代码里以 @youci 开头的 printf 只负责运行后在画布上显示中间

开始练习 →

变式 2:遇到负数就停

输入一串整数,求和,遇到第一个负数就停止(负数和它后面的都不算)。例如输入 3 5 -1 7 2,输出: 8 程序用 while (scanf(...) == 1) 一直读到输入结束,遇到负数时用错了语句。

开始练习 →

变式 3:2、3、5 的公倍数

输入 n,输出大于 n 的、能同时被 2、3、5 整除的最小的数。用一个不写条件的 for(for (k = n + 1; ; k++)),找到就 break。例如输入 100,输出: 120

开始练习 →

变式 4:加到超过上限

输入上限 m,求最小的 n,使得 1 + 2 + … + n 超过 m。例如输入 100,输出: 14 (1 + … + 13 = 91,1 + … + 14 = 105。)程序先判断、再加,顺序反了。

开始练习 →

二级 · 程序填空:判断素数

下面的程序判断 n 是否为素数,n 为 29 时输出 yes。请在【】处填入正确的内容。 #include <stdio.h> int main(void) { int n = 29, i; for (i =

开始练习 →

二级 · 程序改错:奇数之和

下面程序的功能是:求 1~10 中所有奇数之和,输出 25。 程序中有两处错误(都能通过编译)。请改正 found 下面一行中的错误,不要改动其他地方,也不要增删行。

开始练习 →

二级 · 选择:continue 和 break 同在一个循环

下面的程序输出【0】。 #include <stdio.h> int main(void) { int i = 0, s = 0; while (i < 10) { i++;

开始练习 →

作品:逢 7 过

聚会游戏「逢 7 过」:大家轮流从 1 往上数,遇到 7 的倍数、或者数字里带 7 的,不能说出来,要喊「过」。输入 n(n ≤ 99),从 1 数到 n,每行一个:数字或者 过。例如输入 15,输出: 1 2 3 4 5 6 过 8 9

开始练习 →

外层走一步,内层走一圈

外层 i 每走一步,内层 j 就从头走一圈 j=1 j=2 j=3 i = 1 i = 2 i = 1 i = 2 循环体里还可以再写一个循环,这叫循环嵌套: 外层循环每走一步,内层循环就从头到尾完整走一圈; 打印图形时,外层管「第几行」,

开始练习 →