需要免费获取 参考答案 和 详细解析 的同学,可前往 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个元素。