2024年
信息素养大赛
智能算法应用挑战赛小学组(全年级)初赛
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;
}(5 分)
A.3
B.9
C.27
D.71
2、下列事件中的必然事件是(5分)
A.小A同学参加下周的数学考试,一定能考100分
B.射击运动员射靶10次,必定能有1次正中靶心
C.打开电视机,正好在播放新闻联播
D.口袋中有2个红球和1个白球,从中摸出2个球,必定至少有1个红球
3、二进制数0.101转换为十进制数为(5分)
A.0.5
B.0.625
C.0.2
D.0.75
4、有A、B、C、D、E五个同学站成一排,如果A和B必须站在一起,则有多少种不同的排法。(5分)
A.24
B.48
C.60
D.120
5、在DevC++中,C++源程序文件的默认扩展名为______,C++目标文件连接而成的可执行文件的默认扩展名为______(5分)
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;
}(5 分)
A.45
B.55
C.66
D.1
7、下面哪种循环语句在条件判断之前至少会执行一次循环体?(5分)
A.for
B.while
C.do-while
D.switch
8、填写以下程序,使其输出"Hello World!",横线处应填写
#include<iostream>
using namespace std;
int main() {
_____<< "Hello, world!" << endl;
return 0;
}(5 分)
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 ++;
}(5 分)
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;(5 分)
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;
}(5 分)
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;
}(5 分)
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);用来返回a和b中较小的数,那么,想求15、26、47三个数中最小的数,用int m = min (15, min (26, 47));这种调用形式。(5分)
正确
错误
14、continue语句只能出现在循环体中。(5分)
正确
错误
15、在下面程序段中,循环体的循环次数为4次。
int i = 0;
do
i ++;
while (i*i < 10);(5 分)
正确
错误
16、有以下程序段
for(int i=10;i>0;i-=2)
{
cout<<i<<" ";
}
它的输出结果是10 8 6 4 2 0(5 分)
正确
错误
17、C++函数参数的作用域是函数体内。(5分)
正确
错误18、斐波那契数列的第1和第2个数分别为0和1 ,从第三个数开始,每个数等于其前两个数之和,即F(0) = 0, F(1) = 1,F(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;
}(5 分)
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*
2024年信息素养大赛智能算法应用挑战赛小学组(全年级)初赛