2025年 全国青少年信息素养大赛 算法创意挑战赛C++ 初中组 初赛真题

发布于:2025-05-22 ⋅ 阅读:(10) ⋅ 点赞:(0)

        需要免费获取 参考答案 和 详细解析 的同学,可前往 ET答题 (etdati.cn)免费阅览。
        ET答题 是专注青少年编程教育的在线平台,其中主要以C++编程为主(可在线提交编程题代码验证答案 OJ系统),图形化、Python为辅,收录有近几年各大青少年编程竞赛的真题,并且每道题都配有详细解析。

单选题(15题,共75分)

第1题

以下关于变量定义的C++语句中存在编译错误的是哪项?

A.long long pi=3.14;

B.int a=27,b[10],c[3][3];

C.int x,y, z=10,11,12;

D.bool f=false;

第2题

执行下列代码,输入"hello world"(不带引号),输出结果为?

	string s;
	cin >> s;
	cout << s;

A.hello world

B.空字符串

C.world

D.hello

第3题

C++程序流程控制的基本结构不包括以下哪项?

A.分支结构

B.循环结构

C.数据结构

D.顺序结构

第4题

找出以下代码中哪一行是C++中合法的注释?

A.//注释此条语句

B.#注释此条语句

C.("注释此条语句")

D.<!--注释此条语句-->

第5题

在C++中,以下哪条语句可以正确输出“Hello,World!”?

A.print("Hello, world!");

B.cout <<"Hello, World!";

C.include("Hello, World!");

D.cin >> "Hello, World!";

第6题

执行下列C++代码后,计算s[0].d+s[1].i,结果是多少?

	struct S { double d; int i; };
	S s[2]={{1.5,1), (2.5,2});

A.4

B.4.5

C.3.5

D.3

第7题

补全以下代码,将数组a按升序排列。下列选项中哪一项正确?

	int a[7]= {7, 1, 4, 2, 2, 3, 6};
	int N =7;
	for (int i=0; i<N-1; i++) {
		for (int j=0; j<_①_; j++) {
			if (a[j] > a[j+1]) swap(a[j], a[j+1]);
		}
	}

A.N-i-1

B.i-1

C.i

D.N

第8题

以下说法正确的?

A.执行代码 cout<<13.8%2;会输出1.8

B.将一个浮点数赋值给一个char类型的变量会出现运行时错误

C.如果代码中不含有#include<iostream>将无法通过编译

D.C++可以定义无返回值且无参数函数

第9题

下列C++代码中哪个语句运行结果是7?

A.cout << (char)7;

B.cout<<int(4.3333333+2.6666666);

C.cout<<66/9;

D.cout<<15/2.0;

第10题

输入一个DNA序列:由字符A、C、G和T组成的字符串。补充下列代码找到最长的连续相同字符子串。下列选项中哪一项正确?

string s;
cin>> s;
int len=_①_, ans = l;
for(int i=_②_; i<s.size(); i++) {
	if(s[i]=s[_③_]) len++;
	else len = 1;
	if(_④_) ans=len;
}
cout<< ans;

A.1,1,i-1,len>ans

B.0,0,i+1,len>ans

C.1,1,i- 1, len<ans

D.0,0,i+ 1,len<ans

第11题

想要打印等腰三角形,输入n=4时,输出如下:

*
**
* *
* *
* *
**
*

代码空白处应该填入( )。

int n;
cin >> n;
for (int i= 1; i <= n; i++) {
	if(i == 1) cout << "*" << endl;
	else {
		cout << "*";
		for (int j= 1; j<=i-2; j++) cout << " ";
		cout << "*" << endl;
	}
}
for (int i=_①_; i>= 1; i--) {
	if(i== _②_) cout << "*" <<endl;
	else {
		cout << "*";
		for (int j=1; j<=i-2; j++) cout << " ";
		cout << "*" << endl;
	}
}

A.n-1, n-1

B.n, n-1

C.n, 1

D.n-1, 1

第12题

从一个2x2网格的左上角出发,若只允许向右或向下移动,恰好有如下6条路径可以到达右下角:
补全以下代码,计算对于9x9的网格,有多少条路径可以到达右下角?

int g[10][10]= {};
_①_;
for (int i=0; i<10; i++) {
	for (int j=0; j<10; j++) {
		if(i-1>=0) g[i][j] += g[i-1][j);
		_②_ g[i][j] += g[i][j-1];
	}
}
cout << g[9][9];

A.g[0][0]=1,if(j-1>=0)

B.g[1][1]= 1,if(j-1>=0)

C.g[0][0]= 1, else if(j- 1 >=0)

D.g[1][1]= 1, else if(j-1>= 0)

第13题

有n个人,第i个人的当前头发长度为Li(1≤i≤N)。
每个人的头发每天增长1。请计算并输出从第一天开始,第一次出现头发长度至少为t的人数>=p是第几天?

int n,t,p,L[100],cnt;
cin >> n >> t>> p;
for (int i=0; i<n; i++) cin>>L[i];
for (int i=1; i<t; i++) {
	cnt=0;
	for (int j=0; j<n; j++) {
		if(_①_)cnt++;
	}
	if(_ ②_ ) {
		cout << i<< endl;
		break;
	}
}

A.L[i]+j>=t,cnt>=p

B.L[]+i>t,cnt>p

C.L[j]+ i>= t,cnt>=p

D.L[i]+j>t,cnt>p

第14题

执行下列程序,输出结果为?

#include <iostream>
using namespace std;
int main() {
	int i=1, j=1;
	int x=i++, y=++j;
	cout<<i<<" "<<j<<" "<<x<<" "<<y;
	return 0;
}

A.1 2 2 1

B.2 2 1 2

C.1 2 2 2

D.2 2 2 2

第15题

补全下列代码,计算n(1≤n≤1x109)的阶乘中后缀0的个数。下列选项中哪一项正确?
例如
5!=1*2*3*4*5=120,它有1个后缀0
20!=2432902008176640000,它有4个后缀0。
提示:
n!中每个后缀0都是由一个因子2和一个因子5相乘得到的,而在阶乘中因子2的个数远多于因子5的个数,因此只需统计因子5的个数。
一个5的倍数可以提供至少1个因子5;
一个 25 的倍数可以提供至少2个因子5;
一个125 的倍数可以提供至少3个因子5;
以此类推。

int n,i= _①_,ans =0;
cin >> n;
while (_②_ ) {
	i*=5;
	ans+= _③_;
}
cout << ans;

A.5,i<=n,i

B.1,i<=n/5,n/i

C.1,i<n/5,n/i

D.5,i<n,i

判断题(5题,共22分)

第1题
C++中,逻辑与&&的优先级高于逻辑或||,因此true||false&&true等价于true||(false&&true)。

第2题
ASCII码表中,所有数字字符('0'到'9')是连续的。

第3题
max(1,max(2,3))是合法的表达式,返回值为3。

第4题
选择排序的时间复杂度在最好的情况下是0(n)。

第5题
二维数组int a[2][3],则数组a一共有6个元素。


网站公告

今日签到

点亮在社区的每一天
去签到