蓝桥杯模拟赛C++初级组

初级组

编程题第一题

编程实现: 做统计。

输入 10 个正整数,以空格分隔。依次输出其中的最大值、最小值以及平均值,以逗号分隔。

样例输入:

1 2 3 4 5 6 7 8 9 10

样例输出:

10,1,5.5

#include

using namespace std;

int main()

{

    int maxNum = 0, minNum = 0x3f3f3f3f, sum = 0, x;

    for (int i = 0; i < 10; ++i)

    {

        cin >> x;

        sum += x;

        if (x > maxNum)

        {

            maxNum = x;

        }

        if (x < minNum)

        {

            minNum = x;

        }

    }

    cout << maxNum << "," << minNum << "," << sum / 10.0 << endl;

}


编程题第二题

编程实现: 比大小。

输入一个正方形的边长(a)及一个长方形的长与宽(b、c),然后比较两个图形的面积。如果长方形面积大, 输出“RECTANGLE”;如果正方形面积大,输出“SQUARE”;如果一样大,输出“SAME”。

输入描述:

输入正整数a、b、c(0 < a、b、c ≤ 1000),分别代表正方形的边长和长方形的长与宽。

输出描述:

如果长方形面积大,输出“RECTANGLE”;

如果正方形面积大,输出“SQUARE”;

如果一样大, 输出 “SAME”。

样例输入:

5 4 6

样例输出:

SQUARE

#include

using namespace std;

int main()

{

    int a, b, c, s1, s2;

    cin >> a >> b >> c;

    s1 = a * a;

    s2 = b * c;

    if (s2 > s1)

    {

        cout << "RECTANGLE" << endl;

    }

    else if (s1 > s2)

    {

        cout << "SQUARE" << endl;

    }

    else

    {

        cout << "SAME" << endl;

    }

}


编程题第三题

编程实现: 数单词。

编程统计输入句子中出现“lanqiao”字样的个数。(注意,“lanqiao”字样可以是不同大小写字母的组合,例如:LanQIAO、LanQiao 等)

输入描述:

输入一个字符串(0 ≤ 字符串长度 ≤ 100)。

输出描述:

输出该字符串中“lanqiao”字样出现的次数。(注意:“lanqiao”字样可以是不同大小写字母的组合)

样例输入:

Lanqiaoqingshao,lanqiaojingsai,Lanqiaoceping.

样例输出:

3

#include

#include

using namespace std;

int main()

{

    string s;

    cin >> s;

    int len = s.size();

    for (int i = 0; i < len; ++i)

    {

        s[i] = (char)tolower(s[i]); // 转换成小写字母

    }

    const string t = "lanqiao";

    int cnt = 0;

    for (int i = 0; i <= len - 7; ++i)

    {

        if (t == s.substr(i, 7))

        {

            cnt++;

        }

    }

    cout << cnt << endl;

    return 0;

}

编程题第四题

编程实现: 查找路径。

有一张 m×n 个小方格的地图,一个机器人位于地图的左上角(如图标记为 Start 的地方),它每步只能向右或者向下移动一格,如果走到右下角的终点(如图标记为 Finish 的地方),有多少种不同的方法?

例如,一个 3×2 的地图,行走的方法数是 3 种,分别是:

右 -> 右 -> 下

右 -> 下 -> 右

下 -> 右 -> 右

输入描述:

两个整数 m (m ≤ 100) 和 n ( n ≤ 100),代表地图的行数和列数。

输出描述:

一个整数,表示行走的方法数。

样例输入:

8 8

样例输出:

3432

#include

using namespace std;

const int N = 100;

long long roads[N + 2][N + 2] = {0}; // roads[i][j]: 从起点 (0, 0) 到 (i, j) 的路线总数

int main()

{

    int m, n;

    cin >> m >> n;

    // 第 0 行、第 0 列的格子都只有一条路线

    for (int i = 0; i < m; ++i)

    {

        roads[i][0] = 1;

    }

    for (int i = 0; i < n; ++i)

    {

        roads[0][i] = 1;

    }

    for (int i = 1; i < m; ++i)

    {

        for (int j = 1; j < n; ++j)

        {

            roads[i][j] = roads[i - 1][j] + roads[i][j - 1];

        }

    }

    cout << roads[m - 1][n - 1] << endl;

    return 0;

}

你可能感兴趣的:(蓝桥杯模拟赛C++初级组)