试卷 2024年信息素养大赛C++智能算法应用挑战赛小学组(全年级)初赛真题
2024年信息素养大赛C++智能算法应用挑战赛小学组(全年级)初赛真题
客观题(每题5分)
第 1 题    单选题

有以下函数,当调用语句为long p = fun (3, 3);时,返回的p

long fun (int x, int y)
{
    int i;
    long p = 1;
    for (i = 0; i < y; i ++)
        p *= x;
    return p;
}
A.

3

B.

9

C.

27

D.

71

第 2 题    单选题
下列事件中的必然事件是
A.

A同学参加下周的数学考试,一定能考100

B.

射击运动员射靶10次,必定能有1次正中靶心

C.

打开电视机,正好在播放新闻联播

D.

口袋中有2个红球和1个白球,从中摸出2个球,必定至少有1个红球

第 3 题    单选题

二进制数0.101转换为十进制数为

A.

0.5

B.

0.625

C.

0.2

D.

0.75

第 4 题    单选题

有A、B、C、D、E五个同学站成一排,如果A和B必须站在一起,则有多少种不同的排法。

A.

24

B.

48

C.

60

D.

120

第 5 题    单选题

DevC++中,C++源程序文件的默认扩展名为______C++目标文件连接而成的可执行文件的默认扩展名为______

A.

.c.exe

B.

.cpp.exe

C.

.exe.cpp

D.

.exe.c

第 6 题    单选题

有以下函数定义,当n传入数为10时,返回值应为

int func (int n)
{
  if (n == 1)
     return 1;
  else
     return func (n - 1) + n;
}
A.

45

B.

55

C.

66

D.

1

第 7 题    单选题

下面哪种循环语句在条件判断之前至少会执行一次循环体?

A.

for

B.

while

C.

do-while

D.

switch

第 8 题    单选题

填写以下程序,使其输出"Hello World!",横线处应填写

#include<iostream>
using namespace std;
int main() {
_____<< "Hello, world!" << endl;
return 0;
}
A.

cin

B.

cout

C.

std::cin

D.

std::cout

第 9 题    单选题

有两个函数fun1()fun2()定义如下,在主函数中有:int x = 1; x = fun1(x);调用,此时x的值为

int fun1 (int x)
{
    x ++;
    fun2(x);
    return x;
}
void fun2 (int x)
{
    x ++;
}
A.

1

B.

2

C.

3

D.

4

第 10 题    单选题

以下程序段运行后,输出应为

int a, b;
for (a = 1, b = 1; a <= 100; a ++)
{
 if (b > 20)
  break;
 if (b % 4 == 1)
 {
  b = b + 4;
  continue;
 }
 b = b - 5;
}
cout << a;


A.

100

B.

20

C.

9

D.

6

第 11 题    单选题

以下程序段运行后,输入:ABCdef,输出应为

char ch;
while ((ch = getchar ()) != '\n')
{
   if (ch >= 'A' && ch <= 'Z')
      ch = ch + 32;
  else if (ch >= 'a' && ch <= 'z')
      ch = ch - 32;
  cout << ch;
}
A.

ABCdef

B.

abcdef

C.

ABCDEF

D.

abcDEF

第 12 题    单选题

下列代码中,哪一个选项正确的输出了num的值。

int main() {
  int num = 10;
  cout << num++ << endl; ///10 num=11
 
cout << ++num << endl;//12 num=12
  cout << num-- << endl;//12 num=11
  cout << --num << endl;//10num=10
  return 0;
}
A.

10 12 12 10

B.

10 12 11 9

C.

11 12 12 10

D.

11 12 11 9

第 13 题    判断题

如果定义了一个函数int min (int a, int b);用来返回ab中较小的数,那么,想求152647三个数中最小的数,用int m = min (15, min (26, 47));这种调用形式。

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

continue语句只能出现在循环体中。

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

在下面程序段中,循环体的循环次数为4次。

int i = 0;
do
    i ++;
while (i*i < 10);
A.
正确
B.
错误
第 16 题    判断题

有以下程序段

for(int i=10;i>0;i-=2)
{
 cout<<i<<" ";
}

它的输出结果是10 8 6 4 2 0

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

C++函数参数的作用域是函数体内。

A.
正确
B.
错误
第 18 题    单选题

斐波那契数列的第1和第2个数分别为0,从第三个数开始,每个数等于其前两个数之和,即F(0) = 0,   F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1为求斐波那契数列中的前20个数,要求每行输出5个数编写了以下程序,在3个空格处应填写哪些内容?

#include<iostream>
using namespace std; 
int main() {
 int n = 20;  // 需要计算的项数
   int f1 = 0, f2 = 1;   // 前两项
   int fn;  // 第n项
   cout << "斐波那契数列前" << n << "个数为:" << endl;
   // 计算斐波那契数列前n项并输出
   for (int i = 1; i <= n; i++) {
       // 计算第i项
       if (i == 1) {
           fn = f1;
       }
       else if (i == 2) {
           fn = f2;
       }
       else {
           fn =____f1+f2_________; 0 1 2 3 5 5
           f1 = f2;
           f2 =________fn_____;
       }
       // 输出第i项
       cout << fn << "\t";
 
       // 每行输出5个数
       if (_____i%5==0______) {
           cout << endl;
       }
   }
   return 0;
}
A.

f1, fn, i==5

B.

fn, f1+fn, i/5==0

C.

f1+f2, fn, i%5==0

D.

f1+f2, f1, i%5==0

第 19 题    单选题

以下程序输出多组数字,其中包括下列选项中的哪个选项

#include<iostream>
using namespace std;
int main()
{
  int g,s,b;
    for(int n=100;n<1000;n++)
    {
         b = n / 100;
         s = n / 10 % 10;
         g = n % 10;
         if(g*g*g+s*s*s+b*b*b==n)
         {
              cout<<n<<endl;
         }
    }
    return 0;
}
A.

407,153

B.

408,154

C.

408,153

D.

407,159

第 20 题    单选题

下面程序运行后输入4,输出结果应是

#include <iostream>
using namespace std;
int fac (int n)
{
  if (n <=1)
        return 1;
    else
        return n * fac (n - 1);
}
int main ()
{
    int n = 0;
    cin >> n;
    int ret = fac (n);
    cout << ret;
    return 0;
}
A.

4

B.

12

C.

24

D.

48

答题卡
客观题(每题5分)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
题目总数:20
总分数:100
时间:60分钟