在C语言中,while循环是一种常用的控制结构,用于重复执行一段代码,直到指定的条件不再满足为止。以下是一些关于while循环的练习题,以及相应的答案和解析。
练习题1:计算1到100之间所有整数的和
题目描述: 编写一个C语言程序,使用while循环计算从1到100之间所有整数的和。
答案:
#include <stdio.h>
int main() {
int sum = 0;
int i = 1;
while (i <= 100) {
sum += i;
i++;
}
printf("The sum of numbers from 1 to 100 is: %d\n", sum);
return 0;
}
解析: 这个程序初始化一个变量sum来存储总和,以及一个变量i来作为循环的计数器。while循环会一直执行,直到i的值超过100。在每次循环中,i的值会被加到sum上,并且i本身也会递增。
练习题2:打印星号图案
题目描述: 编写一个C语言程序,使用while循环打印一个由星号组成的直角三角形图案。
答案:
#include <stdio.h>
int main() {
int i, j, rows;
printf("Enter the number of rows: ");
scanf("%d", &rows);
i = 1;
while (i <= rows) {
j = 1;
while (j <= i) {
printf("* ");
j++;
}
printf("\n");
i++;
}
return 0;
}
解析: 这个程序首先要求用户输入行数,然后使用两个嵌套的while循环来打印直角三角形。外层循环控制行数,内层循环控制每行打印的星号数量。
练习题3:判断一个数是否为素数
题目描述: 编写一个C语言程序,使用while循环判断一个整数是否为素数。
答案:
#include <stdio.h>
#include <stdbool.h>
int main() {
int num, i;
bool isPrime = true;
printf("Enter a number: ");
scanf("%d", &num);
if (num <= 1) {
isPrime = false;
} else {
i = 2;
while (i * i <= num) {
if (num % i == 0) {
isPrime = false;
break;
}
i++;
}
}
if (isPrime) {
printf("%d is a prime number.\n", num);
} else {
printf("%d is not a prime number.\n", num);
}
return 0;
}
解析: 这个程序首先检查输入的数是否小于或等于1,因为素数定义为大于1的自然数。然后,它使用while循环检查从2到输入数的平方根之间的所有数,看是否有任何数可以整除输入的数。如果没有,则输入的数是素数。
练习题4:计算Fibonacci数列的前N项
题目描述: 编写一个C语言程序,使用while循环计算并打印Fibonacci数列的前N项。
答案:
#include <stdio.h>
int main() {
int n, first = 0, second = 1, next;
printf("Enter the number of terms: ");
scanf("%d", &n);
printf("Fibonacci Series: %d, %d", first, second);
int i = 2;
while (i < n) {
next = first + second;
printf(", %d", next);
first = second;
second = next;
i++;
}
printf("\n");
return 0;
}
解析: 这个程序使用while循环来生成Fibonacci数列。它初始化两个变量first和second来存储数列的前两个数,然后计算下一个数,更新变量,并继续循环,直到打印出所需的项数。
通过这些练习题,你可以加深对while循环的理解和应用。记住,实践是学习编程的关键,多写代码,多练习,你会变得更加熟练。
