1
STEMA 考试 C++ 中高级试卷( 1月)
一、选择题
第一题
表达式 117 % 16 的结果是( )。
A、 0
B、 5
C、 7
D、 10
第二题
下列选项中,字符数组定义正确的是( )。
A、 char a[5] = "hello";
B、 char a[ ] = "hello";
C、 char a = "hello";
D、 char a[6] = 'hello';
第三题
定义 int i = 0, a = 10 ; 执行表达式 a = (i <= 0 ? 1 : 2) 后 , a 的值是( )。
A、 1
B、 2
C、 10
D、随机值
第 四 题
十进制数 22.5625 转换成 十六进制数是( )。
A、 16.7
B、 16.8
C、 16.9
D、 17.1
第 五 题
2
定义 int a[5] = {1, 2, 3, 4, 5} , *p = a, *q = p++; 那么 *p 和 *q 的值 分别 是( )。
A、 2、 3
B、 3、 2
C、 1、 2
D、 2、 1
二、编程题
第 一 题
编程实现:第二大的数
题目描述:
给定 三 个 不同的 整数,请找出 其中第二大的 数。
例如: 三 个整数分别为 30 、 20 、 25 ,其中 第二大的 数 是 25。
输入描述:
一行输入 三 个不同的 整数 a, b, c( 1≤ a, b, c≤ 100 0) ,整数之间以一个空格隔开
输出描述:
输出 一个整数,表示三个整数中第二大的 数
样例输入:
30 20 25
样例输出:
25
第 二题
编程实现: 奇妙 数
提示信息:
如果一个整数能够被它的 各位上的非零数字 整除,则称该数为 奇妙 数 。
例如:
整数 102 ,它的各位上的非零数字为 1 和 2, 102 既 能被 1 整除,也能被 2 整除, 所以 102 是 奇妙 数;
3
整数 456 ,它的各位上的非零数字为 4、 5 和 6, 456 能被 4 和 6 整除,但 不能被 5 整除, 所以 456
不是 奇妙 数。
题目描述:
给定两个整数 n 和 m,请输出 n 到 m 之间(包含 n 和 m)所有的 奇妙 数;若 不存在奇妙数 ,则输出 -1 。
输入描述:
一行 输入 两个整数 n 和 m( 1≤ n≤ m≤ 100000 ) ,整数之间以一个空格隔开
输出描述:
按照从小到大的顺序输出 n 到 m 之间(包含 n 和 m)所有的 奇妙 数 , 整数之间以一个空格隔开;若 不存
在奇妙数 ,则输出 -1
样例输入:
10 20
样例输出:
10 11 12 15 20
第 三 题
编程实现:字符矩阵
题目描述:
给定一个仅包含小写字母的字符串 S,用这些字符恰好排成一个 n 行 m 列的矩阵( m≥ n),请找出所有符
合要求的矩阵中最接近于正方形的那个矩阵。然后从第一列开始,逐列按照从 上 到 下 的顺序输出矩阵 中的字
符 。
例如:
S = "abcdefgh" 。按要求 m≥ n 有如下两种矩阵:
第一种: 第二种:
最接近正方形的矩阵是第一种。从第一列开始,逐列按照从 上 到 下 的顺序输出矩阵 中的字符 ,结果为:
aebfcgdh 。
4
输入描述:
输入一个字符串,仅包含小写字母 且 长度不超过 200
输出描述:
请找出符合题目要求的最接近正方形的字符矩阵,从第一列开始,逐列按照从 上 到 下 的顺序输出矩阵 中的字
符
样例输入:
abcdefgh
样例输出:
aebfcgdh
第 四 题
编程实现: 走 楼梯
题目描述:
一段楼梯共有 n 阶,小明每 次 最少 走 1 阶,最多 走 k 阶,请问小明共有多少种不同的 走 法可以 走 完这 n
阶楼梯 。
例如: n = 4, k = 2;楼梯 共 有 4 阶,小明 每次 最多 走 2 阶 ;
有如下 走 法:
第一种:第一次走 1 阶 ,第二次走 1 阶 ,第三次走 1 阶 ,第四次走 1 阶 ;
第二种:第一次走 1 阶 ,第二次走 1 阶 ,第三次走 2 阶 ;
第三种:第一次走 1 阶 ,第二次走 2 阶 ,第三次走 1 阶 ;
第四种:第一次走 2 阶 ,第二次走 1 阶 ,第三次走 1 阶 ;
第五种:第一次走 2 阶 ,第二次走 2 阶 。
所以 小明共有 5 种不同的 走 法可以 走 完 4 阶楼梯。
输入描述:
一行输入 两个整数 n( 1≤ n≤ 5000 )和 k( 1≤ k≤ 10 ) ,分别表示这段楼梯的阶数及每次最多可以走的楼
梯阶数,整数之间以一个空格隔开
输出描述:
输出 一个整数 ,表示 小明 走完 n 阶楼梯 共有多少种不同 的 走 法
5
样例输入:
4 2
样例输出:
5
第 五 题
编程实现:均分糖果
题目描述:
有 n 个小朋友站成一排 ,起初,从左到右每个小朋友分别有 a1、 a2、 a3、 ... 、 an颗糖果。
接下来每一轮老师都会选择一个或多个有糖果的小朋友,他们会将自己的 一颗糖果, 送 给 一个 与他相邻的小
朋友 (左边或者右边的小朋友)。
请计算 最少需要经过多少轮 ,才能使所有小朋友的糖果数量都相等?如果做不到, 则 输出 -1 。
例 1:
n = 3,表示有 三 个小朋友,他们 起 初的糖果数量分别为 1、 0、 5;
以下是一种最少轮次的情况 :
第一轮,选择第三个小朋友,将 1 颗糖送给第二个小朋友,之后三个小朋友的糖果数量依次为 1、 1、 4:
1 0 <-- 5 => 1 1 4
第二轮,选择第二个和第三个小朋友,第二个小朋友将 1 颗糖送给第一个小朋友,第三个小朋友将 1 颗糖
给第二个小朋友,之后三个小朋友的糖果数量依次为 2、 1、 3:
1 <-- 1 <-- 4 => 2 1 3
第三轮,选择第三个小朋友,将 1 颗糖送给第二个小朋友,之后三个小朋友的糖果数量依次
2024年1月蓝桥杯青少组STEMA测评第四轮C++中高级真题试卷,2024年1月第十五届蓝桥杯青少组STEMA测评C++中高级真题试卷