在C语言学习中,循环语句是编程的基础,而while循环作为一种常用的循环结构,对于初学者来说尤为重要。本文将针对一些经典的while循环练习题进行解析,并提供详细的答案,帮助读者更好地理解和掌握while循环的使用。
1. 打印1到100的整数
题目描述: 使用while循环打印从1到100的整数。
解析: 这个题目相对简单,主要是考察while循环的基本使用。通过初始化一个变量,然后在循环体内逐步增加这个变量的值,直到达到终止条件。
#include <stdio.h>
int main() {
int i = 1;
while (i <= 100) {
printf("%d\n", i);
i++;
}
return 0;
}
答案: 上述代码将会依次打印出1到100的整数。
2. 计算阶乘
题目描述: 编写一个程序,使用while循环计算给定整数的阶乘。
解析: 阶乘的定义是一个正整数n的阶乘是所有小于及等于n的正整数的积,即n! = n × (n-1) × (n-2) × … × 1。在while循环中,需要初始化一个变量来存储阶乘的结果,并在循环体内逐步计算。
#include <stdio.h>
int main() {
int n, i = 1, factorial = 1;
printf("Enter a positive integer: ");
scanf("%d", &n);
while (i <= n) {
factorial *= i;
i++;
}
printf("Factorial of %d = %d\n", n, factorial);
return 0;
}
答案: 输入一个正整数,程序会计算并打印出该整数的阶乘。
3. 判断一个数是否为素数
题目描述: 编写一个程序,使用while循环判断一个数是否为素数。
解析: 素数是只能被1和自身整除的大于1的自然数。要判断一个数是否为素数,可以使用while循环从2开始,一直除到该数的平方根。如果在过程中没有找到除数,则该数为素数。
#include <stdio.h>
#include <math.h>
int main() {
int num, i, isPrime = 1;
printf("Enter a positive integer: ");
scanf("%d", &num);
if (num <= 1) {
isPrime = 0;
} else {
for (i = 2; i <= sqrt(num); i++) {
if (num % i == 0) {
isPrime = 0;
break;
}
}
}
if (isPrime) {
printf("%d is a prime number.\n", num);
} else {
printf("%d is not a prime number.\n", num);
}
return 0;
}
答案: 输入一个正整数,程序会判断该数是否为素数,并打印结果。
4. 打印斐波那契数列的前n项
题目描述: 使用while循环打印斐波那契数列的前n项。
解析: 斐波那契数列是一个无理数数列,其中每一项(从第三项起)都是前两项的和。在while循环中,需要初始化两个变量来存储前两项的值,并在循环体内逐步计算下一项。
#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;
}
答案: 输入数列的项数,程序会打印出斐波那契数列的前n项。
通过以上几个经典的while循环练习题,读者可以加深对while循环的理解和应用。在实际编程中,while循环可以用于解决各种问题,掌握它对于提高编程能力至关重要。
