2.3 循环嵌套与字符练习题一
一、填空题:输出奇数数字
【题目描述】
请在以下 C++ 代码的 if (______) 处填写合适的条件表达式,使得程序输出从字符 '1' 到 '9' 中所有奇数字符的个数(即 '1', '3', '5', '7', '9')。
#include <iostream>
using namespace std;
int main() {
int cnt = 0;
for (char ch = '1'; ch <= '9'; ch++)
if (______) // 在此处填入代码
cnt++;
cout << cnt << endl;
return 0;
}
二、字符矩形
【问题描述】
根据输入参数,画出一个矩形图案。
- 前两个参数为整数,依次表示矩形的高(行数)和宽(列数);
约定:高 ∈ [3, 10],宽 ∈ [5, 10]。 - 第三个参数是一个字符,表示用于绘制矩形的符号。
- 第四个参数为
1或0:1表示实心矩形;0表示空心矩形(仅边界有符号,内部为空格)。
【输入格式】
一行,包含四个参数,以空格分隔:
高 宽 符号 实心标志
【输出格式】
输出绘制的矩形图形。
⚠️ 注意:
- 每行末尾不能有多余空格;
- 行与行之间用换行符分隔;
- 空心矩形的内部用空格填充,且每行宽度严格等于“宽”。
【样例输入 1】
7 7 @ 0
【样例输出 1】
@@@@@@@
@ @
@ @
@ @
@ @
@ @
@@@@@@@
🔍 说明:7 行 × 7 列,符号
@,空心(仅首尾行全为@,中间行首尾为@,中间为 5 个空格)。
【样例输入 2】(补充:实心示例)
3 5 # 1
【样例输出 2】
#####
#####
#####
三、累加和之和
【问题描述】
输入一个正整数 ,计算以下累加和之和:
即:第 项为前 个自然数之和(),求这 项的总和。
约定:。
【输入格式】
一行,一个整数 。
【输出格式】
一行,一个整数 。
【样例输入 1】
6
【样例输出 1】
56
【样例解释】
各项分别为:
求和:
四、百钱百鸡变形
小明很喜欢这个故事,他决定对这个问题进行扩展,并使用编程解决:如果每只公鸡 x 元,每只母鸡 y 元,每 z 只小鸡 1 元;现在有 n 元,买了 m 只鸡,共有多少种方案?
【输入描述】
输入一行,包含五个整数,分别为问题描述中的 x、y、z、n、m。约定 1 ≤ x, y, z ≤ 10,1 ≤ n, m ≤ 1000。
【输出描述】
输出一行,包含一个整数 C,表示有 C 种方案。
【样例输入 1】
5 3 3 100 100
【样例输出 1】
4
【样例解释 1】
这就是问题描述中的“百鸡问题”。4 种方案分别为:
- 公鸡 0 只、母鸡 25 只、小鸡 75 只;
- 公鸡 4 只、母鸡 18 只、小鸡 78 只;
- 公鸡 8 只、母鸡 11 只、小鸡 81 只;
- 公鸡 12 只、母鸡 4 只、小鸡 84 只。
【样例输入 2】
1 1 1 100 100
【样例输出 2】
5151
五、画三角形
【问题描述】
输入一个正整数 n,请使用大写字母拼成一个这样的三角形图案(参考样例输入输出):三角形图案的第 1 行有 1 个字母,第 2 行有 2 个字母,以此类推;在三角形图案中,由上至下、由左至右依次由大写字母 A-Z 填充,每次使用大写字母 Z 填充后,将从头使用大写字母 A 填充。
【输入描述】
输入一行,包含一个正整数 n。约定 2 ≤ n ≤ 40。
【输出描述】
输出符合要求的三角形图案。注意每行三角形图案的右侧不要有多余的空格。
【样例输入 1】
3
【样例输出 1】
A
BC
DEF
【样例输入 2】
7
【样例输出 2】
A
BC
DEF
GHIJ
KLMNO
PQRSTU
VWXYZAB
六、统计方形(数据加强版)
题目背景
1997年普及组第一题
题目描述
有一个 方格的棋盘,求其方格包含多少正方形、长方形(不包含正方形)。
输入格式
一行,两个正整数 ()。
输出格式
一行,两个正整数,分别表示方格包含多少正方形、长方形(不包含正方形)。
输入输出样例 #1
输入 #1
2 3
输出 #1
8 10