2024年信息素养大赛C++智能算法应用挑战赛小学组(全年级)初赛真题
剩余时间 --:--:--
单选题 共 15 题
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;
}
2.
下列事件中的必然事件是
3.

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

4.

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

5.

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

6.

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

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

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

8.

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

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

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

int fun1 (int x)
{
    x ++;
    fun2(x);
    return x;
}
void fun2 (int x)
{
    x ++;
}
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;


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;
}
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;
}
13.

斐波那契数列的第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;
}
14.

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

#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;
}
15.

下面程序运行后输入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;
}
判断题 共 5 题
1.

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

2.

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

3.

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

int i = 0;
do
    i ++;
while (i*i < 10);
4.

有以下程序段

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

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

5.

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

C++ 编辑器
输入
输出