C语言while循环代码填空题

练习1:计算1到100之间所有奇数的和

请补全下面的代码,计算1到100之间所有奇数的和:

#include <stdio.h> int main() { int sum = ______; int i = 1; while(______) { if(______) { // 判断i是否为奇数 sum += i; } ______; } printf("1到100之间所有奇数的和为:%d\n", sum); return 0; }

完整代码如下:

#include <stdio.h> int main() { int sum = 0; // 初始化sum为0 int i = 1; while(i <= 100) { // 循环条件:i <= 100 if(i % 2 != 0) { // 判断i是否为奇数 sum += i; } i++; // i自增 } printf("1到100之间所有奇数的和为:%d\n", sum); return 0; }

练习2:逆序输出一个整数的各位数字

请补全下面的代码,逆序输出一个整数的各位数字:

#include <stdio.h> int main() { int num = 12345; printf("原始数字:%d\n", num); printf("逆序输出:"); while(______) { int digit = ______; // 获取最后一位数字 printf("%d ", digit); num = ______; // 去掉最后一位数字 } return 0; }

完整代码如下:

#include <stdio.h> int main() { int num = 12345; printf("原始数字:%d\n", num); printf("逆序输出:"); while(num != 0) { int digit = num % 10; // 获取最后一位数字 printf("%d ", digit); num = num / 10; // 去掉最后一位数字 } return 0; }

练习3:判断一个数是否为素数

请补全下面的代码,判断一个数是否为素数:

#include <stdio.h> #include <stdbool.h> bool isPrime(int n) { if(n <= 1) return false; int i = 2; while(______) { if(______) { // 判断n是否能被i整除 return false; } ______; } return true; } int main() { int num = 17; if(isPrime(num)) { printf("%d是素数\n", num); } else { printf("%d不是素数\n", num); } return 0; }

完整代码如下:

#include <stdio.h> #include <stdbool.h> bool isPrime(int n) { if(n <= 1) return false; int i = 2; while(i <= n/2) { // 循环条件:i <= n/2 if(n % i == 0) { // 判断n是否能被i整除 return false; } i++; // i自增 } return true; } int main() { int num = 17; if(isPrime(num)) { printf("%d是素数\n", num); } else { printf("%d不是素数\n", num); } return 0; }

练习4:打印星号图案

请补全下面的代码,打印如下图案:

* ** *** **** *****
#include <stdio.h> int main() { int rows = 5; int i = 1; while(______) { // 总行数控制 int j = 1; while(______) { // 星星数量控制 printf("*"); ______; } printf("\n"); ______; } return 0; }

完整代码如下:

#include <stdio.h> int main() { int rows = 5; int i = 1; while(i <= rows) { // 循环条件:i <= rows int j = 1; while(j <= i) { // 循环条件:j <= i printf("*"); j++; // j自增 } printf("\n"); i++; // i自增 } return 0; }

预习:do_while循环和for循环

请思考并回答以下问题:

  1. while循环和for循环各有什么优缺点?
  2. 在什么情况下应该选择使用while循环?

参考答案:

  1. while循环优点:适用于循环次数不确定的情况,语法简单;缺点:循环控制变量需要在循环体外初始化,循环体内更新。
  2. for循环优点:循环控制变量初始化、条件判断和更新都在一个地方,结构清晰;缺点:适用于循环次数确定的情况。
  3. 当循环次数不确定时(如读取输入直到特定条件满足),应优先使用while循环;当循环次数确定时,使用for循环更合适。