C++ while 循环语句题目
while 循环是 C++ 中最基本的循环结构之一,它会在条件为真时重复执行代码块。下面是一些关于 while 循环的练习题,帮助你掌握这个重要的控制结构。
基础题目
打印数字序列 √
// 使用 while 循环打印 1 到 10 的数字
计算数字之和 √
// 使用 while 循环计算 1 到 100 所有整数的和
倒序打印 √
// 使用 while 循环从 10 倒序打印到 1
偶数打印 √
// 使用 while 循环打印 1 到 100 之间的所有偶数
进阶题目
阶乘计算 √
// 使用 while 循环计算一个数的阶乘(从用户输入获取)
素数判断 √
// 使用 while 循环判断一个数是否为素数
斐波那契数列 √
// 使用 while 循环打印斐波那契数列的前20 项
数字位数统计
// 使用 while 循环统计一个整数的位数
挑战题目
数字反转
// 使用 while 循环将一个整数反转(如 12345 变为 54321)
最大公约数
// 使用 while 循环和欧几里得算法计算两个数的最大公约数
二进制转换 √
// 使用 while 循环将一个十进制数转换为二进制表示
猜数字游戏 √
// 使用 while 循环实现一个简单的猜数字游戏
// 程序随机生成一个数字,用户猜测,程序给出提示直到猜中
// 使用 while 循环打印 1 到 10 的数字
#include<iostream>
using namespace std;
int main() {
int shu=1;
while(shu<=10)
{
cout<<shu<<" ";
shu++;
}
return 0;//返回结束
}
// 使用 while 循环计算 1 到 100 所有整数的和
#include<iostream> //引入iostream库,才能使用输入输出流,cin和cout
using namespace std; //引入 std 命名空间
int main() //主函数,从这里开始运行代码
{
//定义变量
int shu;
int he=0;
//计算输出
while (shu<=100){
he=he+shu;
shu++;
}
cout<<"1+2+3+...+100="<<he;
return 0;//返回结束
}
// 使用 while 循环从 10 倒序打印到 1
#include<iostream> //引入iostream库,才能使用输入输出流,cin和cout
using namespace std; //引入 std 命名空间
int main() //主函数,从这里开始运行代码
{
//定义变量
int shu=10;
while (shu>=1){
cout<<shu<<" ";
shu--;
}
return 0;//返回结束
}
// 使用 while 循环打印 1 到 100 之间的所有偶数
#include<iostream> //引入iostream库,才能使用输入输出流,cin和cout
using namespace std; //引入 std 命名空间
int main() //主函数,从这里开始运行代码
{
int shu=1;
while (shu<=100){
if (shu%2==0){
cout<<shu<<" ";
}
shu++;
}
return 0;//返回结束
}
// 使用 while 循环计算一个数的阶乘(从用户输入获取)
#include<iostream> //引入iostream库,才能使用输入输出流,cin和cout
using namespace std; //引入 std 命名空间
int main() //主函数,从这里开始运行代码
{
int i=1;
int shu;
int daan=1;
cout<<"请输入需要阶乘的数:";
cin>>shu;
while (i<=shu){
daan=daan*i;
i++;
}
cout<<shu<<"阶乘"<<"="<<daan<<endl;
return 0;//返回结束
}
// 使用 while 循环判断一个数是否为素数
#include<iostream> //引入iostream库,才能使用输入输出流,cin和cout
using namespace std; //引入 std 命名空间
int main() //主函数,从这里开始运行代码
{
int shu;
bool a=1;
int i=2;
cout <<"请输入一个数";
cin>>shu;
while (i<shu){
if (shu%i==0){
a=0;
}
i++;
}
if (a==1){
cout<<shu<<"是素数。"<<endl;
}
else {
cout<<shu<<"不是素数。"<<endl;
}
return 0;//返回结束
}
// 使用 while 循环将一个十进制数转换为二进制表示
#include<iostream> //引入iostream库,才能使用输入输出流,cin和cout
using namespace std; //引入 std 命名空间
int main() //主函数,从这里开始运行代码
{
int decimalNum;
long long binaryNum = 0;
int placeValue = 1; // 当前位值(1, 10, 100...表示二进制位)
cout << "请输入一个十进制整数: ";
cin >> decimalNum;
// 处理0的特殊情况
if (decimalNum == 0) {
cout << "二进制表示为: 0" << endl;
return 0;
}
// 使用while循环进行转换
int temp = decimalNum;
while (temp > 0) {
int remainder = temp % 2; // 获取当前最低位
binaryNum += remainder * placeValue; // 将位值加到结果中
temp /= 2; // 去掉已处理的最低位
placeValue *= 10; // 位值乘以10(因为我们在构造一个"看起来"像二进制的十进制数)
}
cout << "二进制表示为: " << binaryNum << endl;
return 0;
}
// 使用 while 循环实现一个简单的猜数字游戏
// 程序随机生成一个数字,用户猜测,程序给出提示直到猜中
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main() {
// 初始化随机数种子
srand(time(0));
// 生成1-100之间的随机数
int secretNumber = rand() % 100 + 1;
int guess = 0;
int attempts = 0;
cout << "欢迎来到猜数字游戏!\n";
cout << "我已经准备好了一个1到100之间的数字,请猜猜是多少。\n";
// 使用while循环让用户反复猜测
while (guess != secretNumber) {
cout << "请输入你的猜测: ";
cin >> guess;
attempts++;
if (guess < secretNumber) {
cout << "太小了!再试一次。\n";
} else if (guess > secretNumber) {
cout << "太大了!再试一次。\n";
}
}
cout << "恭喜你!你猜对了!\n";
cout << "你总共尝试了 " << attempts << " 次。\n";
return 0;
}