试卷 2023年广西中小学生程序设计挑战赛初赛(进阶组)C++试题
2023年广西中小学生程序设计挑战赛初赛(进阶组)C++试题
选择题
第 1 题    单选题

1946ENIAC计算机问世, 计算机的发展经历了四个时代, 第二个时代计算机的特征是(   )

A.

电子管计算机

B.

小规模集成电路计算机

C.

晶体管计算机

D.

大规模集成电路计算机

第 2 题    单选题

对于递归,以下说法错误的是()。

A.

递归适合解决数据的定义是按递归定义的问题

B.

递归算法用递归函数来实现,可以直接或者间接地调用函数自身

C.

递归函数不需要终止条件,可以无限调用自身

D.

递归函数需要调用栈,注意防止栈溢出。

第 3 题    单选题

下列(   ) 算法的时间复杂度为 o(nlogn)。

A.

选择排序

B.

归并排序

C.

冒泡排序

D.

插入排序

第 4 题    单选题

在一篇文章中,字母“a”、“b”、“c”、“d”出现的次数分别为 700、600、300、200,要通过二进制哈夫曼编码对它们进行压缩,那么,字母“d”的编码长度是()。

A.

1

B.

2

C.

3

D.

5

第 5 题    单选题

原字符串中任意一段连续的字符组成的新字符串称为子串。则字符串“AABCABC”共有(   ) 个不同的非空子串。

A.

20

B.

21

C.

22

D.

23

第 6 题    单选题

有向图G入度是2023,则出度是(   )。

A.

0

B.

2023

C.

2022

D.

2024

第 7 题    单选题

对一个n个顶点、m条边的带权有向简单图,用 Diikstra 算法计算单源最短路时,如果使用二叉堆进行优化,则其时间复杂度为(   )。

A.

O(mn + n3)

B.

o(n2)

C.

o((m + n2) log n)

D.

O((m + n) log n)

第 8 题    单选题

在 C++中,设 x=12,y=20,则以下表达式值为真的是(   )。

A.

(-12+20>x)&&(y>0)

B.

(x<0)1I(!(y>0))

C.

(x>y)ll(y>0)

D.

x>=y&&y>10

第 9 题    单选题

如图所示数据库中的一行称为(   )。

A.

一个数据库

B.

一个字段

C.

一条记录

D.

一个数据表

第 10 题    单选题

把 8个同样的球放在 5个同样的袋子里,允许有的袋子空着不放,问共有 (   ) 个不同的分法。(提示:如果8个球都放在一个袋子里,无论是哪个袋子,都只算同一种分法)

A.

22

B.

24

C.

18

D.

20

第 11 题    单选题

数组 a和数组 b 的数据存放情况如下表,则 a[a[b[4]+1]]的值是 (   )。

A.

2

B.

3

C.

5

D.

4

第 12 题    单选题

在 C++中,若n=3,下面程序段执行后,变量 s 的值是(   )。

int s=0;
for(int i=1;i<=n;i++) {
    for(int j=1;j<=i;j++) {
        if(i%j==0) s++;
    }
}


A.

4

B.

5

C.

6

D.

7

第 13 题    单选题

运行下列程序时,则程序的输出结果是()。

#include<bits/stdc++.h>
using namespace std;
int main ()
{
    string s,t;
    s="abcababc";
    t=s. substr(3,3);
    cout<<t;
    return 0:
}
A.

abc

B.

bca

C.

cab

D.

aba

第 14 题    单选题

在 C++中,若m=5,n=2,下面程序段执行后,变量t的值是(   )。

int m,n,t=0;
while(m>0){
    m=m-n;
    t++;
}
A.

0

B.

1

C.

2

D.

3

第 15 题    单选题

当a=3,b=6,c=7 时,表达式axb? ((axc) ?a: c):((b>c) ?: c) 的值是(   )。

A.

3

B.

6

C.

7

D.

0

第 16 题    单选题

在 C++中,下面程序段执行后,输出结果是(

int a=1,b=2,c;

printf("%d+%d=%d"a,b,a+b);

A.

a b c

B.

a+b a+b

C.

1 2 3

D.

1+2 3

第 17 题    单选题

已知一个栈的入栈序列是 a,c,e,h,r,t,e,其出栈序列可能的是 (   )。

A.

c, h, e, a, t, e, r

B.

h, e, c, t, a, r, e

C.

t, e, a, c, h, e, r

D.

r, e, t, e, a, c, h

第 18 题    单选题

在 C++中,表达式 abs(2-3)的值是(   )。

A.

-1

B.

0

C.

1

D.

2

第 19 题    单选题

如图,在某城市中MN两地之间有整齐的方格形道路网,甲要沿着道路从M处到达N处,要求选择一条最短路径的走,甲总共有(   )种走法。

A.

12

B.

18

C.

20

D.

24

第 20 题    单选题

C++中,若x的数据类型为整型且值为9,表达式x/2的值是(   )。

A.

1

B.

4

C.

3

D.

4.5

第 21 题    单选题

变量a=7b=9,执行语句a+=a+b后,变量a的值为()

A.

23

B.

16

C.

7

D.

9

第 22 题    单选题

已知问题是“求1000以内能被11整除的整数个数”,解决该问题最合适的算法是(   )。

A.

枚举法

B.

贪心法

C.

动态规划

D.

二分查找法

第 23 题    单选题

下面四个数中,值与其他三个不同的是()

A.

(01010110)2

B.

126)8

C.

(54)16

D.

(86)10

第 24 题    单选题

下列选项中,属于计算机系统软件的是(   )

A.

IE浏览器

B.

键盘

C.

Linux

D.

显示器

第 25 题    单选题

C++中, char型数据通常占的字节数是(   )

A.

1

B.

2

C.

3

D.

4

第 26 题    单选题

算法的三种基本结构分别是顺序结构、选择结构和(   )

A.

分支结构

B.

循环结构

C.

树型结构

D.

重复结构

第 27 题    单选题

用一个字节表示整数,则12-12在计算机内部分别表示为(   )

A.

0000110011110100

B.

0000101111110101

C.

1111010111110100

D.

0000101111110110

第 28 题    单选题

C++中,下列选项可以用作变量名的是(   )

A.

char

B.

1a

C.

a1

D.

%a

第 29 题    单选题

下列关于计算机语言的说法中,不正确的是(   )

A.

机器语言是计算机唯一能直接识别并执行的语言

B.

与汇编语言相比,高级语言程序更容易阅读

C.

高级语言比机器语言更高级,是因为它的程序运行效率更高

D.

高级语言程序比汇编语言程序更容易从一种计算机移植到另一种计算机上

第 30 题    单选题

一棵二叉树,其先序遍历的结果是 ABDCE。中序历的结果是 BDAEC,其后序遍历的结果为 (   )。

A.

DBCEA

B.

BBDAEC

C.

CDBECA

D.

ABCDE

判断题
第 31 题    判断题

可以通过配置 IP 地址 192.168.19.266 使计算机接入网络。

A.
正确
B.
错误
第 32 题    判断题

设集合A={1,3,5,8},B={1,5,9},C={5,8},则AN(BUC)={1,5}。

A.
正确
B.
错误
第 33 题    判断题

对同一个图而言,拓扑排序的结构是唯一的。

A.
正确
B.
错误
第 34 题    判断题

80Mbps 的网络上传速度,理论上1秒可以上传 8MB 数据。

A.
正确
B.
错误
第 35 题    判断题

C++语言中,char(65)的结果为 a'。

A.
正确
B.
错误
第 36 题    判断题

C++中,a=/b 等价于 a=a/b。

A.
正确
B.
错误
第 37 题    判断题

C++中,函数 swap(a,b)是交换a和b的地址。

A.
正确
B.
错误
第 38 题    判断题

C++中,变量和常量的值都不可以通过赋值语句改变。

A.
正确
B.
错误
第 39 题    判断题

C++中,表达式 2023 % 109 的值是 23%。

A.
正确
B.
错误
第 40 题    判断题

递推在算法中的优点是可以减少栈空间的使用。

A.
正确
B.
错误
阅读程序
第 41-45 题    组合题

2023年广西中小学生程序设计挑战赛初赛(进阶组)阅读程序题1:


第41题 单选

数组a 最大的数组下标是()。

A.

100

B.

1000

C.

10000

D.

199004

第42题 单选

maxn 初始化的值是()。

A.

0

B.

100005

C.

maxint

D.

0x7f

第43题 单选

函数 check()的返回值是()类型。

A.

string

B.

boo1

C.

char

D.

int

第44题 单选

程序段 26行 31行用到的是()算法。

A.

搜索

B.

排序

C.

二分答案

D.

递推

第45题 单选

输入如下两行数据,运行程序输出结果为()。

75
199 499 399 199 599 191 499
A.

100

B.

400

C.

500

D.

101

第 46-50 题    组合题

2023年广西中小学生程序设计挑战赛初赛(进阶组)阅读程序题2:


第46题 单选

pd()函数的作用是 ()。

A.

判断所传入的参数是否为质数

B.

判断所传入的参数是否为完全平方数

C.

判断所传入的参数是否为偶数

D.

统计质数的个数

第47题 单选

库函数 sgrt() 的头文件名是 ()。

A.

cstdio

B.

iostream

C.

algorithm

D.

cmath

第48题 单选

void 代表()类型。

A.

char

B.

int

C.

空类型

D.

float

第49题 单选

程序使用的算法是 ()。

A.

贪心

B.

广度优先搜索

C.

深度优先搜索

D.

动态规划

第50题 单选

输入如下两行数据,输出结果是(   )。

53

1 3 9 2 5

A.

2

B.

5

C.

10

D.

4

完善程序
第 51-55 题    组合题

动物园里的动物房间一个紧挨着另一个排成一行,房间的门也是一个紧靠着一个,门的宽度都是一样的。有些房间里住着一个动物,有些没有。暴风雨把动物园的门都吹飞了。管理员现在的紧急任务是赶紧找些木板来坚立在那些住着动物的房间面前,防止他们溜出来。最直接的方式可以拿一块长长的木板直接横跨竖立在第一个房间到最后一个房间之间,但是这样太浪费木材长度了,因为有些房间没有动物在里面,可以不竖立木板在这些房间面前。木板供应商可以提供任意长度的木板,但是木板的块数是有限的,而且价格是按照所买的木板总长度计算的,不是按块数计算。管理员想买最小总长度的木板,把任务完成。(提示:例如长度为 3 的木板可以竖立在 3 个紧挨着的房间面前。)

给出 m(1<=m<=59)表示供应商能够提供的木板块数、s(1<=s<=209)表示房间总数、动物的总数n(1<=n<=s),以及每个动物所在房间编号(编号在1到s 之间,请算出拦住所有有动物的房间所需木板的最小总长度。输入: 第一行三个整 m,s,n,意义如题目描述。第二行输入n 个整数,表示动物所在的房间编号,编号并不一定按照从小到大。

输出:一行,一个整数,表示所需木板的最小总长度。

程序如下:

第51题 单选

1处应该填 (   )。

A.

return x!=y

B.

return x>y

C.

return x==y

D.

x<y

第52题 单选

2处应该填 (   )。

A.

a+1,a+n+1

B.

a,a+n+1

C.

a+1,a+n+1,cmp

D.

a,a+n,cmp

第53题 单选

3处应该填 (   )。

A.

a[i]-a[i-1]+1

B.

a[i]-a[i-1]

C.

a[i+1]-a[i]

D.

a[i+1]-a[i]-1

第54题 单选

4处应该填 (   )。

A.

a[n]-a[1]

B.

a[n]-a[1]+1

C.

a[n]-a[1]-1

D.

b[n-1]-b[1]

第55题 单选

5处应该填 (   )。

A.

i<=n-1

B.

i<=m

C.

i<=m-18&i<=n-1

D.

i<=m-1|li<=n-1

第 56-60 题    组合题

有n个城市,编号为 1,2,3,... ,n。城市之间有 m条双向的公路,每条公路连接着两个城市。从公路一端的城市走到另一端的城市,会损失力气。每次经过一个城市,都会被收取一定的过路费(包括起点和终点)。路上并没有收费站。小明从城市1出发,最终要到达地市n停下,而他的力气最多为 s,出发时他的力气是满的。如果他到达目的地,所剩力气值变成负数了,则他就无法到达城市 n,在旅途中力气是不会恢复的。小明不希望花很多钱,他想知道,在可以到达城市 n 的情况下,他所经过的所有城市中最多的一次收取的费用的最小值是多少。如果他无法到达城市 n,输出 NO。输入格式

第一行3个正整数n,m,s,表示有 n(n<=10099)个城市,mm<=50009)条公路,小明满额力气为 s(s<=le9)。

第二行 n个正整数,分别表示城市 1到城市 n 需要交的费用。再接下来有m行,每行3个正整数x,y(1=x,y<n),z(<=1000)。表示城市x和城市y之间有一条路,从x到y或者从y到x 都需要花费 z 的力气。可能有边连接着相同的城市。输出格式

输出一行,一个整数,表示小明能够到达城市 n 时交费最多的一次的最小值;如果他无法到达城市n,则输出NO

程序如下。

第56题 单选

1处应该填(   )。

A.

b[tnt].Next=head[x]

B.

b[tnt]. Next=x

C.

b[++tnt]. Next=head[x]

D.

b[tnt]. Next=head[y]

第57题 单选

2处应该填(   )。

A.

dis[y]>dis[x]+z

B.

dis[y]==dis[x]+z

C.

dis[y]>=dis[x]+z 8& f[y]<money

D.

dis[y]>dis[x]+z 8& f[y]<=money

第58题 单选

3处应该填(   )。

A.

return dis[n]>s

B.

return dis[n]<=s

C.

return dis[n]<s

D.

return dis[n]==s

第59题 单选

4处应该填(   )。

A.

spfa(left)

B.

spfa(right)

C.

!spfa(right)

D.

!spfa((left+right)/2)

第60题 单选

5处应该填(   )。

A.

left

B.

left+1

C.

right

D.

right-1

答题卡
选择题
判断题
阅读程序
完善程序
题目总数:44
总分数:100
时间:120分钟