试卷 第十四届蓝桥杯青少年组11月STEMA考试C++组
第十四届蓝桥杯青少年组11月STEMA考试C++组
选择题
第 1 题    单选题

C++中,已知:int a, b = 5, *p = &a ,下列表达式哪一个可以将 b 赋值给 a ?

A.

*p = *&b

B.

a = *p

C.

a = &b

D.

a = **p

第 2 题    单选题

C++中,以下关于 while 和 do...while 循环语句描述不正确的是

A.

do...while 的循环条件可以是 1

B.

while 的循环体可以是复合语句

C.

do...while 的循环体至少执行一次

D.

执行 do...while 语句,首先判断循环条件,当满足循环条件,开始执行循环体

第 3 题    单选题

关于C++中的一维数组,以下描述正确的是(   )

A.

数组中的元素类型可以不相同

B.

数组在内存中有一段连续的单元

C.

数组中的最后一个元素的下标(索引)为 -1

D.

静态数组中的元素的个数可以大于数组初始时设定的长度

第 4 题    单选题

执行以下C++代码,输出的结果是(   )。

char a[6] = {'a', 'b', 'c', 'd'};
cout << sizeof(a);
A.

4

B.

6

C.

8

D.

12

第 5 题    单选题

执行 cout << 5 / 3; 语句后,输出的结果是(   )。

A.

0

B.

1

C.

2

D.

3

编程题
第 6 题    问答题

C++编程:最大乘积

【题目描述】

小明有N(4≤N≤60)个玻璃球,他想将N个玻璃球拆分成若干份(份数≥2,且每份中的数量互不相等),从而使拆分后的每份玻璃球数量的乘积最大。请你编写程序帮助小明计算出最大乘积是多少。

例如:N = 5,5个玻璃球有2种符合条件的拆分方法:(4,1)、(3,2);

其中,能得到最大乘积的拆分方法为(3,2),最大乘积为6(6=3*2)。

【输入格式】

输入一个正整数N(4≤N≤60),表示玻璃球的总数量

【输出格式】

输出一个整数,表示最大乘积

【输入样例1】

5

【输出样例1】

6

第 7 题    问答题

C++编程:找路线。

【题目描述】

现有 22 名小朋友,依次编号 1  2222 名小朋友分别按照下图的位置站好。

每名小朋友只能按照图中箭头指向的方向移动。给出两名小朋友的编号 N  M1≤ N  M ≤ 22),请你找出从编号 N 到编号 M 共有多少条不同的路线。

例如:N = 3M = 7,从编号 3 的位置到编号 7 的位置共有 5 条路线,分别为:(3->5->7),(3->5->6->7),(3->4->5->7),(3->4->5->6->7),(3->4>6->7)。

 【输入格式】

输入两个正整数 N  M1 ≤ N < M ≤ 22),分别表示两名小朋友的编号,之间以一个空格隔开。

【输出格式】

输出一个整数,表示从编号 N 到编号 M 共有多少条不同的路线。

【输入样例1

 3 7

【输出样例1

5

第 8 题    问答题

C++编程:业务办理时间

【题目描述】

某服务大厅同时开放3个窗口为客户办理业务,窗口编号分别为123

现有N2≤N≤50)位客户需要办理业务,客户编号为1~N,作为办理业务的先后顺序。

起初三个窗口为空闲状态,空闲的窗口会按照客户编号顺序呼叫下一位客户。如果多个窗口同时为空闲状态,按照窗口编号顺序呼叫(1优先于22优先于3)。

现给出每位客户办理业务的时间(单位:分钟),请计算出N位客户全部办理完业务后,哪一个窗口合计办理业务的时间最短,并输出最短时间。

例如:N=77位客户编号分别为1234567,客户办理业务时间分别为3524716,(如下图):

初始客户编号为 12的客户分别在 12窗口同时办理业务;

窗口 3 用时 2 分钟办理完 3 号客户的业务,变为空闲状态,并按顺序呼叫 4 号客户,号客户用时 4 分钟。

窗口 1 用时 3 分钟办理完 1 号客户的业务,变为空闲状态,并按顺序呼叫 5 号客户,号客户用时 7 分钟。

窗口 2 用时 5 分钟办理完 2 号客户的业务,变为空闲状态,并按顺序呼叫 6 号客户,号客户用时 1 分钟。

分钟后,窗口 2  3 同时变为空闲状态,按顺序窗口 2 呼叫 7 号客户,号客户用时 6分钟。

全部客户办理完业务后,三个窗口总用时分别为 10分钟、12分钟、6分钟,用时最短的是窗口 3,最短时间为 6 分钟。

 【输入格式】

第一行输入一个正整数 N2 ≤ N ≤ 50),表示办理业务的客户数。

第二行输入 N 个正整数(1 ≤ 正整数 ≤ 50),依次表示每位客户办理业务的时间,正整数之间以一个空格隔开。

【输出格式】

输出一个整数,表示客户全部办理完业务,用时最短的窗口所用时间。

【输入样例1

7

3 5 2 4 7 1 6

【输出样例1

6

第 9 题    问答题

C++编程:拼写单词

【题目描述】

      四种水果的英文单词,分别为 Apple、Banana、Orange、Pear。老师通过提示每个单词的首字母,让同学将对应的单词拼写下来。

      请编写程序:

      当输入的大写字母为 "A" 时,则输出 "Apple";

      当输入的大写字母为 "B" 时,则输出 "Banana";

      当输入的大写字母为 "O" 时,则输出 "Orange";

      当输入的大写字母为 "P" 时,则输出 "Pear"。

【输入格式】

输入 A、B、O、P 中任意一个大写字母。

【输出格式】

输出一个字符串,表示大写字母对应的英文单词(单词首字母大写)。

【输入样例1】

A

【输出样例1】

Apple

第 10 题    问答题

C++编程实现:切割蛋糕。

【题目描述】

      有一块矩形蛋糕,小明从蛋糕的正上方横向和纵向各切 N 刀(1 < N < 100),每刀互不重合。计算出蛋糕被切割成了几块。

      例如:N = 2,蛋糕被切割成 9 块。

图片

 【输入格式】

输入一个正整数 N(1 < N < 100),表示蛋糕被横向和纵向各切割的刀数。

【输出格式】

输出一个整数,表示蛋糕最后被切割成了几块。

【输入样例1】

2

【输出样例1】

9

【题目描述】

      有一块矩形蛋糕,小明从蛋糕的正上方横向和纵向各切 N 刀(1 < N < 100),每刀互不重合。计算出蛋糕被切割成了几块。

      例如:N = 2,蛋糕被切割成 9 块。

 【输入格式】

输入一个正整数 N(1 < N < 100),表示蛋糕被横向和纵向各切割的刀数。

【输出格式】

输出一个整数,表示蛋糕最后被切割成了几块。

【输入样例1】

2

【输出样例1】

9

答题卡
选择题
1 2 3 4 5
编程题
6 7 8 9 10
题目总数:10
总分数:100
时间:60分钟