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

1946年在美国宾夕法尼亚大学问世的ENIAC计算机主要由(   )器件组成。

A.

晶体管

B.

电子管

C.

小规模集成电路

D.

大规模集成电路

第 2 题    单选题

以下 C++程序,调用 f(9)后返回结果为(。

long long f(int n){
    if(n==1) return @;
    if(n==2) return 1;
    return f(n-1)+f(n-2);
}
A.

3

B.

5

C.

13

D.

21

第 3 题    单选题

下列()排序算法的时间复杂度为 0(n^2)。

A.

快速排序    

B.

归并排序

C.

堆排序

D.

冒泡排序

第 4 题    单选题

在一定情况下,下列(   )语句属于多分支选择结构语句。

A.

for

B.

do-while

C.

switch-case

D.

while

第 5 题    单选题

C++语言用于文件操作的标准函数包含于标准库()中。

A.

iostream

B.

cstdio

C.

cstdlib

D.

math

第 6 题    单选题

无向完全图是图中每对顶点之间都恰有一条边的简单图。已知无向完全图G有5个顶点,则它共有()条边。

A.

5

B.

10

C.

20

D.

25

第 7 题    单选题

下面流程图中是双分支结构的是()。

A.

B.

C.

D.

第 8 题    单选题

某学校选拔身高T不超过1.6米的啦啦操队员,该条件的关系表达式为()。

A.

T>=1.6

B.

T<=1.6

C.

T>1.6

D.

T<1.6

第 9 题    单选题

下列关系或逻辑表达式的结果为“True”的是()。

A.

2*2<2+2

B.

143+45<178

C.

6!=11

D.

6==11

第 10 题    单选题

下列整数中,是质数的是(   )。

A.

21

B.

22

C.

23

D.

24

第 11 题    单选题

a数组定义如下:int a[6] ={2, 5, 0, 3, 6, 8} ; 则运算表达式“a[1] +a[3] +a[5] ”的结果为(   )

A.

16

B.

8

C.

10

D.

13

第 12 题    单选题

在C++中,若n=2,m=3,下面程序段中语句“s=s+j”重复执行(   )次。

for(inti=0; i<n; i++) {

    for(intj=1; j<=m; j++) {

        s=s+j;

    }

}

A.

1

B.

2

C.

3

D.

6

第 13 题    单选题

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

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

0

B.

4

C.

5

D.

6

第 14 题    单选题

在C++中,若a=4,b=2,下面程序段执行后,输出的结果是()。

c=a;
while(a%c ll b%c) {
    c=c-1;
    }
    cout<<c<<end1;
A.

0

B.

1

C.

2

D.

3

第 15 题    单选题

运行下列程序时, 若从键盘上输入“8<enter>”, 则程序的输出结果是(   )。

#include<bits/stdc++.h>
using namespace std;
main()
{
    int a=3, b=5, c;
    a++;
    --b;
    c=a*b;
    cout<<c;
    return 0;
}
A.

15

B.

16

C.

12

D.

10

第 16 题    单选题

在C++中,下面程序段执行后,变量a和b的值是(   )。

a=3;
b=4;
a=a+b;
b=a-b;
A.

3 4

B.

4 3

C.

7 1

D.

7 3

第 17 题    单选题

有1个队列,队首到队尾的元素依次为8,3,2,9,5。约定:T操作是指队列中1个元素出队后再入队, Q操作是指队列中1个元素出队。则经过TTT QT TQ系列操作后, 队列中队首到队尾的元素依次为()。

A.

2,9,5

B.

2,5,8

C.

5,8,2

D.

8,3,2

第 18 题    单选题

在C++中, 表达式int(sqrt(5) ) 的结果是(.  )。

A.

2

B.

2.23607

C.

3

D.

5

第 19 题    单选题

某校为促进拔尖人才培养开设了数学、物理、化学、生物、信息学五个学科竞赛课程,现有甲、乙、丙、丁四位同学要报名竞赛课程,由于精力和时间限制,每人只能选择其中一个学科的竞赛课程,则恰有两位同学选择信息竞赛课程的报名方法数为(.  )


A.

98

B.

96

C.

100

D.

80

第 20 题    单选题

在C++中,把代数式(x+1)²写成C++表达式,正确的是(  )。

A.

(x+1)²

B.

(x+1)*2

C.

2(x+1)

D.

(x+1)*(x+1)

第 21 题    单选题

如果a,b,c均为整型变量,其中a=7,b=8,执行以下语句后,变量a,b的结果与其它几项不同的是(   )。

A.

a=a+b;b=a-b;a=a-b;

B.

c=a+b;a=c-a;b=c-b;

C.

c=a*b;a=c/a;b=c/b;

D.

c=a;b=c;a=b;

第 22 题    单选题

下列选项中,能用枚举算法求解的是(   )。

A.

计算平行四边形面积

B.

求100以内的素数

C.

求一个四位数的个位

D.

将二进制转换为十进制

第 23 题    单选题

十进制数3.75转成二进制数是(   )。

A.

10.01

B.

11.11

C.

10.11

D.

11.101

第 24 题    单选题

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

A.

IE浏览器

B.

QQ

C.

Word

D.

显示器

第 25 题    单选题

下列各种基本数据类型说明符中表示单精度实型数的是(   )。

A.

int

B.

bool

C.

float

D.

char

第 26 题    单选题

下列选项中,说法错误的是(   )。

A.

算法是指解决问题的方法和步骤

B.

算法的描述方法有多种

C.

算法是唯一的

D.

算法的步骤是有限的

第 27 题    单选题

4KB的内存能存储(   )个汉字的机内码。

A.

1024

B.

2048

C.

512

D.

4096

第 28 题    单选题

在C++中,要定义一个存储字符型数据的变量,其合适的数据类型是(   )。

A.

char

B.

float

C.

double

D.

bool

第 29 题    单选题

下列哪一个程序设计语言不支持面向对象程序设计(   )。

A.

.C++

B.

Java

C.

PHP

D.

C

第 30 题    单选题

求右图所示的二叉树,其后序遍历的结果为(   )。

A.

ABDCE

B.

BDAEC

C.

DBECA

D.

ABCDE

判断题
第 31 题    判断题

同一个网络中的两台计算机的 IP 地址不允许重复。()

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

集合中的元素具有确定性、互异性、有序性等特点。(   )

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

有n个顶点的无向连通图,至少有 n-1条边。(   )

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

16GB 的内存是指 16*1024*1024 字节大小的内存。(   )

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

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

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

C++中,语句 s=s+i++和语句 s=++i+s 是等价的。(   )

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

C++中,函数 max(a,b)是取 a和b 的最大值。()

A.

正确

B.
错误
第 38 题    判断题

C++中,变量的值可以改变。()

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

C++中,表达式 23 % 10 的值是 2。()

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

插入排序一般情况下时间复杂度为 0(n^2)。(   )

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

广西中小学生程序设计挑战赛初赛(入门组)程序阅读题:

01 #include<iostream>
02 #include<cstdio>
03 #include<cmath>
04 using namespace std;
05 int n;
06 bool isprime(int x)
07 {
08    for(int i=2;i*i<=x;i++)
09         if(x%i==9) return false;
10    return true;
11 }
12 int main()
13 {
14    freopen("prime . in","r",stdin);
15    freopen("prime . out","w" ,stdout);
16    cin>>n;
17    for(int i=2;i<=n;i++)
18        if(isprime(i))
19            cout<<i<<" ";
29    return @;
21 }
第41题 单选

如果输入n为20,那么输出的第3个数为(   ).

A.

2

B.

3

C.

4

D.

5

第42题 单选

程序第8行i*i<=x,与下列那段代码等价(   ).

A.

i<=x

B.

i<=x/2

C.

i<=x*x

D.

i<=sqrt(x)

第43题 单选

第 6 行函数类型为 bool 类型,下列哪个选项是 bool常量(   )。

A.

true

B.

prime

C.

int

D.

string

第44题 单选

如果输入n为 100,那么第 18 行代码会运行(   )次。

A.

100

B.

99

C.

50

D.

10

第45题 单选

如果传递给子函数 isprime 的参数为 100,第 9 行代码运行(   ) 次。

A.

1

B.

9

C.

10

D.

100

第 46-50 题    组合题

广西中小学生程序设计挑战赛初赛(入门组)程序阅读题2:

01 #include<iostream>
02 #include<c stdio>
03 using namespace std;
04 int main()
05 {
06     freopen("cap.in", "r", stdin) ;
07     freopen("cap.out", "w", stdout) ;
08     strings;
09     while(c in>>s)
10{
11     int len=s.size() ;
12     if(s[0]>='a’&&s[0]<='z')
13        s[0]-=32;
14     for(inti=1; i<=len-1; i++)
15         if(s[i]>='A'&&s[i]<='z')
16             s[i]+=32;
17     cout<<S<<"";
18 }
19 return 0;
20 }
第46题 单选

该程序运行后,在哪里查看运行结果(   )。

A.

桌面

B.

cap.in

C.

cap.out

D.

cap.cpp

第47题 单选

如果输入的数据为“this is my first PROMGRAM”,第9行的while 循环一共执行(   )次。

A.

0

B.

3

C.

4

D.

5

第48题 单选

如果输入数据同 47 题,那么输出结果是(   )。

A.

this is my first PROGRAM!

B.

this is my first program!

C.

This Is My First Program!

D.

THIS IS MY FIRST PROGRAM!

第49题 单选

字符’A’的ASCII值为 65,那么b’的ASCII值为 (   )。

A.

66

B.

96

C.

97

D.

98

第50题 单选

如果输入数据同 47 题,第 13 行代码一共运行了(   ) 次。

A.

0

B.

3

C.

4

D.

5

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

(字母加密)有一种最简单的字母加密算法如下:将该字符向右移动 3个字符即为加密字符即'a'->d’b'-'e'...’x'->a’ y’-》'b’'z'->'c',大写字母同理,标点符号保持不变。读入原始字符串,输出加密后的字符串,字符串保证只有大小写字母和标点符号。

试补全程序。

#include<bits/stdc++.h>
using namespace std;
into main()
{
    string s;
    __1__;
    for(int i=0;i< __2__ ;++i)
    {
        if( ___3__ )s[il='a';
        else if(s[i]=='y')s[i]='b';
        else if(s[i]=='z')s[i]='c';
        else if(s[i]=='x')s[i]='A';
        else if(s[il== y')s[i]='B';
        else if(s[il=='z')s[i]='c';
        else if( __4__ )__5__ ;
     }
    cout<<s;
    return 0;
}
第51题 单选

1处应该填 (   )。

A.

cin>>s

B.

scanf(“%s”,s)

C.

scanf( “%s” ,&s)

D.

cout<<s

第52题 单选

2处应该填 (   )。

A.

size(s)

B.

strlen(s)

C.

s.size

D.

s.size()

第53题 单选

3处应该填 (   )。

A.

s[i]=x

B.

s[i]==x

C.

s[i]==’x’

D.

s[i]=’x'

第54题 单选

4处应该填 (   )。

A.

isalpha(s[i])

B.

isdigit(s[i])

C.

isalpnum(s[i])

D.

islower(s[i])

第55题 单选

5处应该填 (   )。

A.

s[i]=s[i]-3

B.

s[i]=s[i]+3

C.

s[i]=s[i]-32

D.

s[i]=s[i]+32

第 56-60 题    组合题

(插入排序)插入排序也叫直接插入排序,是一种最简单的排序方法,它的基本思想是将待排序的序列分为已排序的序列和未排序的序列,每一次从未排序的序列中取出一个元素X,在已排序的序列中查找一个合适的位置 j(满足a[j]<=x),在 j+1处插入该元素,从而得到一个更长的已排序序列。

试补全代码。

#include<bits/stdc++.h>
using namespace std;
void insertionSort(int al], int n)
{
    for (int i=2;___1___;j++i)
    int x ___2___ ;
    int j;
    for (j=i-1;j>=1 and ____3____; --j)
    ____4____;
    a[j+1]=x;
  }
}
int main()
{
    int a[100l,n;
    cin>>n;
    for(int i=1;i<=n;++i)
        cin>>a[il;
    insertionSort( ____5____ );
    for(int i=1;i<=n;++i)
        cout<<a[i]<<"";
    return 0;
}
第56题 单选

1处应该填 (   )

A.

i<=n

B.

i<n

C.

i>=n

D.

i>n

第57题 单选

2处应该填 (   )

A.

a[i-1]

B.

a[i+1]

C.

a[i]

D.

a[i+2]

第58题 单选

3处应该填 (   )

A.

a[j]<x

B.

a[j]>x

C.

a[j]<=x

D.

a[j]>=x

第59题 单选

4处应该填 (   )

A.

a[j+1]=a[j]

B.

a[j]=a[j+1]

C.

a[j]=x

D.

a[j+1]=x

第60题 单选

5处应该填 (   )

A.

n,a

B.

a,n+1

C.

a,n

D.

n+1,a

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