• C++
  • STEMA考试 C++ 真题试卷1

  • @ 2024-2-22 14:35:02

STEMA考试 C++ 真题试卷

一、选择题

第一题

以下哪个选项可以作为变量名称?( )

A、float B、_5b C、2_ab D、n!c

第二题

已知:char str[] ="Hello World"; 以下哪个函数可以正确输出 str 的长度?( )

A、sizeof() B、strlen() C、size() D、length()

第三题

以下字符数组初始化正确的是( )。

A、char a[3]={“a”,“b”,“c”};

B、char b[3]={‘a’};

C、char c[]={‘abc’};

D、char d[3]=“abc”;

第四题

关于结构体,以下说法正确的是( )。

A. 结构体的成员变量默认可以在结构体外部访问

B. 结构体的成员变量不能是结构体类型

C. 结构体类型的变量不能充当函数的参数

D. 当结构体的成员变量含有数组时,不能直接对结构体变量进行赋值

第五题

已知:int m = 8; 下列正确的引用方法是( ) 。

A、float *b=&m;

B、int *b=8;

C、int &m;

D、int *b=&m;

二、 编程题

第一题

编程实现:求和

题目描述:有一组 1 到 100000 的正整数数据,当给定一个正整数 N(1<N<100000),求出其左右相邻的两个正整数的和。

例如:N = 6,6 左边相邻的正整数为 5,6 右边相邻的正整数为 7,两个正整数的和为 12(12=5+7)。

输入描述:输入一个正整数 N(1<N<100000)

输出描述:输出一个正整数,表示 N 左右相邻的两个正整数的和

样例输入:6

样例输出:12

第二题

编程实现:数字判断

题目描述:给定两个正整数 N 和 M(10≤N<M≤10000),请计算出 N 到 M 之间(包含 N 和 M)的所有正整数中,各位上的数字都为奇数的正整数有多少个。

例如:N = 110,M = 119,

110 到 119 之间的所有正整数有 110、111、112、113、114、115、116、117、118、119;

其中各位上的数字都为奇数的正整数有 111、113、115、117、119,共 5 个。

输入描述:输入两个正整数 N 和 M(10≤N<M≤10000),正整数之间以一个空格隔开

输出描述:输出一个整数,表示 N 到 M 之间(包含 N 和 M)的所有正整数中,各位上的数字都为奇数的正整数的个数

样例输入:110 119

样例输出:5

第三题

编程实现:扑克牌

题目描述:有 N(3≤N≤50)张反面朝上的扑克牌排成一排,每次可以翻转任意 3 张扑克牌(正面翻转后为反面,反面翻转后为正面,且不考虑正面花色和点数),请问最少翻转几次可以将 N 张扑克牌全部翻转为正面。

image image image image

输入描述:输入一个正整数 N(3≤N≤50),表示扑克牌的数量

输出描述:输出一个整数,如果可以将 N 张反面朝上的扑克牌全部翻转为正面朝上,输出最少需要翻转的次数,否则输出-1

样例输入:5

样例输出:3

第四题

编程实现:最大空白区

题目描述:

小明有一张 N*M 的方格纸,且部分小方格中涂了颜色,部分小方格还是空白。给出 N(2≤N≤30)和 M(2≤M≤30)的值,及每个小方格的状态(被涂了颜色小方格用数字 1 表示,空白小方格用数字 0 表示),请帮助小明找出最大的矩形空白区域,并输出矩形空白区域由多少个小方格组成。

例如:N=4,M=5,4*5 的方格纸中每个小方格的状态如下图: image

最大的空白区域由 6 个小方格组成(红色框区域)。

输入描述:第一行输入两个正整数 N 和 M(2≤N≤30,2≤M≤30),分别表示方格纸的行数和列数,两个正整数之间以一个空格隔开

第二行开始输入 N 行,每行 M 个整数(整数为 1 或者 0),1 表示涂色方格,0 表示空白方格,整数之间以一个空格隔开

输出描述:输出一个整数,表示最大矩形由多少个小方格组成(如果没有空白小方格,输出 0)

样例输入:

4 5

1 1 0 0 0

1 0 1 0 0

0 0 0 1 1

0 0 0 1 0

样例输出:

6

第五题

编程实现:机甲战士

题目描述:潘多拉星球上的基地指挥官准备派遣一名机甲战士外出执行任务,为了完成任务,机甲战士需要随身携带足够的生存装备。生存装备里存储着氧气和燃料,且每个装备有一定的重量。机甲战士完成任务所需要携带的氧气和燃料都有最低限量,绝对不能少于这个最低限量,一次任务可以携带多个生存装备备用。

当给出最低氧气限量值 M(1≤M≤30)和最低燃料限量值 N(1≤N≤80),生存装备的数量 K(1≤K≤1000)及每个生存装备中氧气值 a(1≤a≤30)、燃料值 b(1≤b≤80)及装备重量 c(1≤c≤100),请计算出机甲战士要完成任务所需要携带的生存装备的总重量最低是多少,并输出这个最低值。

例如:M=6,N=40,K=5,5 个生存装备中的氧气值、燃料值及装备重量分别如下: image

可以满足要求的携带方法有:

2 号和 4 号装备的组合(总重量为 120);

2 号和 5 号装备的组合(总重量为 130);

3 号和 4 号装备的组合(总重量为 130);

......

其中,生存装备的总重量最低为 120.

输入描述:

第一行输入两个正整数 M(1≤M≤30)和 N(1≤N≤80),分别表示氧气和燃料的最低限量值

第二行输入一个正整数 K(1≤K≤1000)表示生存装备的个数

第三行开始输入 K 行,每行包括 3 个正整数 a,b,c(1≤a≤30,1≤b≤80,1≤c≤100),分别表示生存装备中氧气值和燃料值及装备的重量

输出描述:

输出一个整数,为机甲战士完成工作所需的生存装备的总重量最低值;如果携带所有的生存装备仍满足不了最低氧气限量值或最低燃料限量值,那么输出-1。

样例输入:

6 40

55 5 30

7 15 40

4 20 50

3 25 80

2 30 90

样例输出:

120

0 条评论

目前还没有评论...