栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++刷题——C++程序的流程控制

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++刷题——C++程序的流程控制

文章目录
    • 1、下列程序的运行结果为?
    • 2、已定义: char grade; ,若成绩为 A、B、C 时输出合格,成绩为 D 时输出不合格,其他情况提示重新输入。请编写程序实现以上功能(使用switch语句)。
    • 3、以下程序有bug吗?在哪?
    • 4、循环语句 for(int i=0;i<=5&&!i;i++)
    • 5、与下列程序段不等价的是?
    • 6、运行下列程序的结果为?
    • 7、请编写程序实现:输出 1 到 100 之间每位数的乘积大于每位数的和的数, 如对数字 12 有 1*2<1+2,所以不输出这个数;对数字 23 有 2*3>2+3 所以输出这个数。
    • 8、请编写程序实现:判断一个数是否为素数
    • 9、编写一个程序,输入一个正整数,判断它是否能被 3,5,7 同时整除。
    • 10、编写一个程序,让用户输入年和月,然后判断该月有多少天
    • 11、编写一个程序。计算若一头母牛,它每年年初生一头小母牛,每头小母牛从出生起第四个年头开始每年也生一头小母牛,按此规律,第 10 年时有多少头母牛?
    • 12、计算一个多项式
    • 13、 选择题
    • 14、填空题
    • 15、编程题
    • 先到这了,有啥错误欢迎指正!谢谢!

1、下列程序的运行结果为?
#include 
using namespace std;

void main()
{
	char c = '@';
	if (c >= 'A' && c <= 'Z') cout << " 是大写字母 ";
	else if (c >= 'a' && c <= 'z') cout << " 是小写字母 ";
	else cout << " 是其它字符 ";
}

答案:是其它字符

2、已定义: char grade; ,若成绩为 A、B、C 时输出合格,成绩为 D 时输出不合格,其他情况提示重新输入。请编写程序实现以上功能(使用switch语句)。
//若成绩为 A、B、C 时输出合格,成绩为 D 时输出不合格,其他情况提示重新输入
#include 
using namespace std;

int main()
{
	char grade;
	cout << "请输入grade,A/B/C/D:t";
	cin >> grade;
	switch (grade)
	{
		case 'A':
		case 'B':
		case 'C':cout << "合格" << endl; break;
		case 'D':cout << "不合格" << endl; break;
		default:cout << "请重新输入:";
	}
	return 0;
}

解析:在 switch 语句执行过程中, 找到第一个相匹配的表达式后,转去执行该case 后的语句,直到遇到 break 语句后跳出 switch 语句执行其后的语句。

3、以下程序有bug吗?在哪?


while 后没有加分号,即应该为while(i<=100);

4、循环语句 for(int i=0;i<=5&&!i;i++)

cout<

(a) 1 次== (b)3 次 (c)5 次 (d)6 次

解析:i++是先运算再自加
执行 for 循环 i 的初值为 0,第一次循环时表达式 0<=5&&!0
结果为 1 所以执行循环体输出 0;然后 i 自加为 1,计算表达式 1<=5&&!1 结果为 0,所以退出循环。答案为: a。

5、与下列程序段不等价的是?

(a) int sum = 0, i = 1;
do {
	sum += i++;
} while (i <= 100);
(b) int i = 1, sum = 0;
while (i <= 100)
{
	sum += i++;
}
(c) int i = 1, sum = 0;
while (1)
{
	if (i > 100)
		break;
	sum += i++;
}
(d) int i, sum = 0;
for (i = 1; i <= 100; i++, sum += i);

答案:d

6、运行下列程序的结果为?

(1)运行下列程序的结果为?
输入:24 7

#include 
using namespace std;

void main()
{
	int x, y, cmultiple;
	cout << " 输入两个整数 :";
	cin >> x >> y;
	cmultiple = x;
	while (1)
	{
		if (cmultiple % y == 0)break;
		cmultiple += x;
	}
	cout << " 最小公倍数 :" << cmultiple << endl;
}

解答:结果为168,重要突破点:break

(2)运行下列程序的结果为?
输入:24 7

#include 
using namespace std;

void main()
{
	int x, y, var1;
	cout << " 输入两个整数: ";
	cin >> x >> y;
	if (x < y)var1 = x, x = y, y = var1;
	var1 = x % y;
	while (var1)
	{
		x = y; y = var1; var1 = x % y;
	}
	cout << "最大公约数 :" << y << endl;
}

解答:1

7、请编写程序实现:输出 1 到 100 之间每位数的乘积大于每位数的和的数, 如对数字 12 有 12<1+2,所以不输出这个数;对数字 23 有 23>2+3 所以输出这个数。

#include 
using namespace std;

int main()
{
	int num, ten, one;
	cout << "请输入1到100之间的两位数:";
	cin >> num;
	ten = num / 10;
	one = num % 10;
	if (ten * one > ten + one)
		cout << "这个数为:" << num << endl;
	else
		cout << "此数不符合输出条件";
}


8、请编写程序实现:判断一个数是否为素数
//判断一个数是否为素数
#include 
using namespace std;

int main()
{
	int i, j=0, num;
	cout << "请输入需要判断的整数:";
	cin >> num;
	for (i = 2; i <= num; i++)
	{
		if (num % i == 0)
		{
			j += 1;
		}
	}
	if (j < 2)  cout << "该整数是素数";
	else cout << "该整数不是素数";
}



OMG 我的return 0; 又忘记了!!!

9、编写一个程序,输入一个正整数,判断它是否能被 3,5,7 同时整除。
//编写一个程序,输入一个正整数,判断它是否能被 3,5,7 同时整除。
#include 
using namespace std;

int main()
{
	int pinteger;
	cout << "请输入一个正整数:";
	cin >> pinteger;//3,5,7的最小公倍数为105,所以偷个懒应该没事吧呜呜
	if (pinteger < 0)  cout << "是输入一个正整数喔!";
	else
	{
		if (pinteger % 105 == 0)  cout << "该数可以同时被3,5,7整除";
		else cout << "该数不能同时被3,5,7整除";
	}
	return 0;
}



10、编写一个程序,让用户输入年和月,然后判断该月有多少天
#include
using namespace std;

void main()
{
	int year, month, days, leap;
	cout << " 请输入年月 :";
	cin >> year >> month;
	switch (month)
	{
	case 1:
	case 3:
	case 5:
	case 7:
	case 8:
	case 10:
	case 12:days = 31; break;
	case 4:
	case 6:
	case 9:
	case 11:days = 30; break;
	case 2:
		if (year % 400 == 0)leap = 1;
		else if (year % 4 == 0 && year % 100 != 0)leap = 1;
		else leap = 0;
		if (leap) days = 29;
		else days = 28;
	}
	cout << year << " 年" << month << " 月的天数为 :" << days << endl;
}



11、编写一个程序。计算若一头母牛,它每年年初生一头小母牛,每头小母牛从出生起第四个年头开始每年也生一头小母牛,按此规律,第 10 年时有多少头母牛?
//计算若一头母牛,它每年年初生一头小母牛,每头小母牛从出生起第四个
//年头开始每年也生一头小母牛,按此规律,第 10 年时有多少头母牛?
#include
using namespace std;

void main()
{
	int sum1 = 2, sum2 = 3, sum3 = 4, sum = 0;
	for (int i = 4; i <= 10; i++)
	{
		sum = sum1 + sum3;
		sum1 = sum2;
		sum2 = sum3;
		sum3 = sum;
	}
	cout << " 第十年有 " << sum << " 头牛 !" << endl;
}


12、计算一个多项式


只是看起来难而已,其实~

#include
using namespace std;

int main()
{
	double e = 1.0;
	double x = 1.0;
	int i = 1;
	while (x >= 1.0e-7)
	{
		x = x / i;
		e = e + x;
		i = i + 1;
	}
	cout << "e = " << e << endl;
	return 0;
}


13、 选择题

(1) 在循环语句中使用 break 语句的作用是( )。
(a) 结束本次循环 (b) 结束该层循环 (c)结束所有循环 (d) 结束程序执行

(2) 对 if 后的括号中的表达式,要求 i 不为 0 的时候表达式为真,该表达式表示正确的为( )。
(a)i (b)!i (c)i<>0 (d)i=0

(3)下列循环语句的执行次数是( )。
while(!1) cout<< ”ok! ”;
(a)0 次 (b)1 次 (c)2 次 (d) 无数次

(4)运行下列程序结果为

#include
using namespace std;

void main()
{
	int i;
	for (i = 0; i <= 10; i++) 
	{
		if (i % 2) cout << i;
		else continue;
	}
}

(a)246810 (b)12345 (c)678910 (d)13579

14、填空题

(1) 结构化程序设计的三种基本结构是 顺序结构、选择结构(分支结构)、循环结构
(2)continue 语句实现的作用是跳出本次循环
(3)若输入” china 2008! ”运行下列程序的输出结果为

#include
using namespace std;

void main()
{
	char c;
	int letters = 0, digits = 0, others = 0;
	cout << "Please input a line charaters" << endl;
	while ((c = getchar()) != 'n')
	{
		if (c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z')
			letters++;
		else
			if (c >= '0' && c <= '9')
				digits++;
			else
				others++;
	}
	cout << "letters:" << letters << endl
		<< "digits:" << digits << endl
		<< "others:" << others << endl;
}

这个空格其实我也看不清是几个~

15、编程题

(1)请编写程序完成程序完成 1!+2 !+… +18! 的计算

//编写程序完成程序完成 1!+ 2 ! + ... + 18!的计算
#include
using namespace std;

int main()
{
	int i;
	double result = 0, n = 1;
	for (i = 1; i <= 18; i++)
	{
		n *= i;
		result += n;
	}
	cout << "1!+ 2 ! + ... + 18!的值为:" << result << endl;
	return 0;
}


(2)在 100~200 中找出同时满足用 3 除余 2,用 5 除余 3 和用 7 除余 2 的所有整数。

//在 100~200 中找出同时满足用 3 除余 2,
//用 5 除余 3 和用 7 除余 2 的所有整数
#include
using namespace std;

int main()
{
	cout << "在 100~200 中同时满足用 3 除余 2,用 5 除余 3 和用 7 除余 2 的整数为: ";
	for (int i = 100; i <= 200; i++)
	{
		if (i % 3 == 2 && i % 5 == 3 && i % 7 == 2)
			cout << i << 't';
	}
	cout << endl;
	return 0;
}


(3)求 1000 之内的所有完数。所谓完数是指一个数恰好等于它的所有因子之和。例如, 6=1+2+3,所以 6 为完数。
解答:

//求 1000 之内的所有完数。所谓完数是指一个数恰好等于它的所有因子之和。
//例如, 6=1+2+3,所以 6 为完数。
#include
using namespace std;

int main()
{
	int sum;
	for (int i = 1; i <= 1000; i++)
	{
		sum = 0;
		for (int j = 1; j <= i / 2; j++)
		{
			if (i % j == 0)  sum += j;
		}
		if (i == sum) cout << i << "是完数" << endl; 
	}
	return 0;
}


(4)求 100~999 中的。所谓水仙花数是指一个三位数,它的每位数字的立方之和等于该数。例如,因为

所以 153 为水仙花数。

//求 100~999 中的水仙花数。
//所谓水仙花数是指一个三位数,它的每位数字的立方之和等于该数。
#include
using namespace std;

int main()
{
	int num, hundred, ten, one, sum;
	for (num = 100; num <= 999; num++)
	{
		hundred = num / 100;
		ten = num % 100 / 10;
		one = ten % 10;
		sum = pow(hundred, 3) + pow(ten, 3) + pow(one, 3);
		if (num == sum)  cout << num << "是水仙数" << endl;
	}
	return 0;
}


(5)打印九九乘法表
小cakes

//打印九九乘法表
#include
using namespace std;

int main()
{
	int i, j, result, count;
	for (i = 1; i <= 9; i++)
	{
		count = 0;
		for (j = 1; j <= i; j++)
		{
			result = i * j;
			cout << j << "*" << i << "=" << result << "t";
			count++;
		}
		cout << endl;
	}
	return 0;
}


(6)编程序模拟剪刀,石头和纸游戏。游戏规则为:剪刀剪纸,石头砸剪刀,纸包石头.玩游戏者从键盘上输入S(表示剪刀)或R(表示石头)或P(表示纸),要求两个游戏者交替输入,计算机给出输赢的信息。

//编程序模拟剪刀,石头和纸游戏。
//游戏规则为:剪刀剪纸,石头砸剪刀,纸包石头.玩游戏者从键盘
//上输入S(表示剪刀)或R(表示石头)或P(表示纸),
//要求两个游戏者交替输入,计算机给出输赢的信息。
#include
using namespace std;

int main()
{
	char A, B;
	cout << "请A,B两位玩家顺序输入S(表示剪刀)或R(表示石头)或P(表示纸): ";
	cin >> A >> B;
	if ((A == 'S' || A == 'R' || A == 'P') && (B == 'S' || B == 'R' || B == 'P'))
	{
		if ((A == 'S' && B == 'P') || (A == 'R' && B == 'S') || (A == 'P' && B == 'R')) cout << "A玩家赢" << endl;
		else if ((A == 'P' && B == 'S') || (A == 'S' && B == 'R') || (A == 'R' && B == 'P')) cout << "B玩家赢" << endl;
		else cout << "平局啦!";
	}
	else cout << "输入错误,请输入S/R/P!";
	return 0;
}




(7)猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第 10 天早上想再吃时,发现只剩一个桃子了,求猴子第一天究竟摘了多少个桃子?

//猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。
//第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
//以后每天早上都吃了前一天剩下的一半零一个。
//到第 10 天早上想再吃时,发现只剩一个桃子了,求猴子第一天究竟摘了多少个桃子?

#include
using namespace std;

int main()
{
	int total = 1;
	for (int i = 1; i <= 9; i++)
	{
		total = 2 * (total + 1);
	}
	cout << "猴子第一天摘了" << total << "个桃子" << endl;
	return 0;
}


(8)编一程序显示如下图案(有点歪,不过不影响~)

//编一程序显示如下图案
#include
using namespace std;

int main()
{
	int i, j;
	char x;
	for (i = 1; i <= 4; i++)
	{
		x = 'A';
		for (j = 1; j <= 2 * (4 - i); j++)  cout << ' ';
		for (j = 1; j <= 2 * i - 1; j++)
		{
			cout << setw(2) << x;
			x += 1;
		}
		cout << endl;
	}
	return 0;
}


先到这了,有啥错误欢迎指正!谢谢!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/296234.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号