C语言初学者while循环语句练习题
时间: 2025-05-02 09:23:46 浏览: 26
<think>好的,我现在需要帮助用户找到关于C语言while循环的练习题。首先,用户提到他们之前的问题是关于快速排序和CyYan的信息,但这次他们转向了C语言的基础练习,特别是while循环。用户是初学者,所以需要简单易懂的题目和示例。
先回顾用户提供的引用内容。引用1是一个简单的字符输入输出程序,引用2是关于比较三个数大小和打印3的倍数数字的循环练习题。用户现在明确要求while循环的练习题,所以需要基于这些引用中的例子,设计类似的题目,但专注于while循环结构。
用户上一次的问题涉及代码示例,比如快速排序的实现,所以可能需要提供类似的代码示例,但用while循环来解决。同时,用户希望练习题尽可能多,因此需要设计多个不同难度的题目,从基础到应用逐步深入。
接下来,我需要确保练习题覆盖while循环的基本用法,比如计算累加、处理数字位数、判断素数等。同时,结合引用中的例子,比如输入处理和条件判断,可以设计需要用户输入数据并使用while循环处理的题目。
还要注意代码的正确性和简洁性,确保示例代码符合C语言标准,并且适合初学者理解。可能需要添加注释或分步骤解释,帮助用户理解每个练习题的目的和解决思路。
最后,生成相关问题,引导用户进一步练习,比如优化代码或扩展功能,这样可以帮助他们巩固知识并挑战更高难度的问题。确保所有数学表达式和代码块格式正确,符合用户之前提到的系统级指令。</think>### C语言while循环基础练习题(含代码示例)
根据您提供的引用内容和需求,以下是5个适合初学者的`while`循环练习题,涵盖基础语法和实际应用场景:
---
#### **题目1:计算1-100的累加和**
```c
#include <stdio.h>
int main() {
int sum = 0, i = 1;
while (i <= 100) {
sum += i;
i++;
}
printf("1+2+...+100 = %d\n", sum);
return 0;
}
```
**目标**:理解循环变量自增和累加逻辑[^2]
---
#### **题目2:输入正整数,逆序输出各位数字**
```c
#include <stdio.h>
int main() {
int num, digit;
scanf("%d", &num);
while (num > 0) {
digit = num % 10; // 取最后一位
printf("%d", digit);
num /= 10; // 去掉最后一位
}
return 0;
}
```
**示例输入**:`1234` → **输出**:`4321`
---
#### **题目3:统计输入字符的个数(以#结束)**
```c
#include <stdio.h>
int main() {
char ch;
int count = 0;
printf("输入字符(以#结束):");
while ((ch = getchar()) != '#') {
count++;
}
printf("总字符数:%d\n", count);
return 0;
}
```
**技巧**:`getchar()`与结束符条件判断[^1]
---
#### **题目4:判断素数(优化版)**
```c
#include <stdio.h>
#include <math.h>
int main() {
int n, i = 2, flag = 1;
scanf("%d", &n);
while (i <= sqrt(n)) { // 减少循环次数
if (n % i == 0) {
flag = 0;
break;
}
i++;
}
printf("%d %s素数\n", n, (flag && n>1) ? "是" : "不是");
return 0;
}
```
**数学原理**:若$n$不是素数,必有一个因子$\leq \sqrt{n}$[^2]
---
#### **题目5:斐波那契数列前N项(动态输出)**
```c
#include <stdio.h>
int main() {
int n, a=0, b=1, cnt=2;
scanf("%d", &n);
printf("0 1 ");
while (cnt < n) {
int next = a + b;
printf("%d ", next);
a = b;
b = next;
cnt++;
}
return 0;
}
```
**输入示例**:`5` → **输出**:`0 1 1 2 3`
---
阅读全文
相关推荐

















