资源描述
全国青少年人工智能创新设计大赛测评试卷(C++)一、单项选择题(共20题,每题2.5分,共50分) 姓名:【填空题I*
1. 运行下方代码段,输出正确的选项是()。
cout«l+13; | 单项选择题]*A : 14(正确答案)
B : 13C : 12
D : -12运行下方代码段,输出正确的选项是()。
cout«(l«3);[单项选择题]*A : 1
B : 3C : 8(正确答案)
D : 13运行下方代码段,输出正确的选项是()。
cout«(ll+25-20)%9/3;[单项选择题]*A : 1
B : 2(正确答案)C : 4
D : 2.333变量名可以以数字开头。[判断题]*
对错.「确答案)
28. C++通过〃实现多行注释。[判断题]*对
错(正确答案)数组的索引值是从I开始的。【判断题]*
对错(正确答案)
四、阅读程序写结果。(每题5分,共10分)#includc<iostrcam>
using namespace std;int main()
f
int t[256];
string s;
int i;
cin » s;
for (i = 0; i < 256; i++)
t[i] = 0;
for (i = 0; i < s.length(); i++)
t[s[i]]++;
for (i = 0; i < s.length(); i++)
if(t[s[i]] ==1)
cout « s[i] « endl;
return 0;
)
cout « "no" « endl;
return 0;
1输入:xyzxyw
输出:[填空题]*(答案:z)
29. #include<iostream>using namespace std;
bool prime(int m)(
if(m==l) return false;
for(int i=2;i<m;++i)(
if(m%i==0) return false;
}
return true;)
bool check(int m)(
int t=m;
int sum=0;
while(t>0)(
sum二sum* 10+t% 10;
l/=10;
1
if(sum==m) return true;
return false;)
int main()(
int a[10]={2,3,5,7,11,13,17,19,31,33}
for(int i=O;ivl();++i){
if(prime(i) && check(i))
cout«i«',
}
return 0;)
输出:[填空题1 *答案:01234)
五、完善程序(共1题,每空2分,共10分)幻方是一种很神奇的N*N的矩阵:它由数字1,2,3,……,N*N构成,且每行、每列及 两条对角线上的数字之和都相同。当N为奇数时,我们可以通过下方法构建一个 幻方:首先将1写在第一行的中间。之后,按如下方式从小到大依次填写每个数 K(K=2,3,-,N*N):
假设(K-1)在第一行但不在最后一列,那么将K填在最后一行,(K-1)所在列的右一列; 假设(K-1)在最后一列但不在第一行,那么将K填在第一列,(K-1)所在行的上一行; 假设(K-1)在第一行最后一列,那么将K填在(K-1)的正下方;假设(K-1)既不在第一行,也不在最后一列,如果(K-1)的右上方还未填数,那么将K填 在(K-1)的右上方,否那么将K填在(K-1)的正下方。
如N=3,构造的幻方为8 1 6
357492
现给定N.请按上述方法构造N*N的幻方(下标从0开始)。
#include <iostream>#include <iomanip>
using namespace std;int a[40][40];
int main() {int n;
cin»n;int x=0, y=n/2;
①for(int num=2; num<=n*n; num++) (
int nx = (x+n-1 )%n, ny = (y+ l)%n;if ((x==0 && y==n-l) ||②) {
nx = (x+l)%n;③
)a|nx]|ny] = num;
—④—⑤
1for(int i=0; i<n; i++) {
for(int j=0; j<n; j++)cout «a[i][j] « ” ”;
cout« endl;)
return 0;)
30. ①处应填()Aa[x][y]=l;
Ba|x+l]|yl=l;Ca[x][y+l]=l;
Da[x+l][y+l]=l;[单项选择题]*A(正确答案)
D②处应填()
A a[x][y]==O;Ba[x][y]!=O;
C a[nx][ny]==O;D a|nx||ny]!=O;[单项选择题]*
AB
CD(正确答案)
31. ③处应填()A y=ny;
B ny=y;C ny=(y+ l)%n
D ny=(y-l)%n;[单项选择题]*A
B(正确答案)C
D④处应填()
A nx=xB x=nx;
C nx=x+l;D nx=x+2;[单项选择题]*
B(正IC
D⑤处应填()
A ny=y;B y=ny;
C ny=y+l;D ny=y-l;[单项选择题]*
AB(正确答案)
CD
2. 以下变量名中,合法的是()1单项选择题]*while
A. Iday_day(正确答案)
B. da&y以下选项中和表达式!(av2 || a>10)意思相同的是()。|单项选择题]*
A : a>=2 || a>=10B : a<2 &&a>IO
C : a<2||a>10D : a>=2 && a<=10(正确答言
3. 以下数字和其它三项不同的是()。I单项选择题1 *A : 35D
B : 100011BC : 23H
D : 420(正确答案) 运行下方代码段,输出的是()。
coutvvl+7 ;[单项选择题]*A: 56正确答案)
B : 8C : 17
D : 6 运行下方代码段,输出的是()。
cout«setiosflags(ios::fixed)«setprecision(3)<< 11/3.0;[单项选择题]
A : 3.667(正确答案)B : 3.67
C : 3.000D : 3.666
4. 运行下方代码段,输出的是()。
int sum=0,i=0;while(i<=10)(
++i;
if(i%5==0) continue;
sum+=i;)
cout«sum«" "«i«endl;[单项选择题]*A : 51 11(正确答案)
B : 55 10C : 56 11
D : 50 9 运行下方代码段,输出的是()。
int a[5]={0』,2,3,5};for(int i=0;iv5;++i){
sum+=a|i];}[单项选择题1 *
A: 4B: 11(正确答案)
5. 运行下方代码段,输出的是()。
string s="rg4znl23M;int sum=O;
for(int i=O;ivs.length();++i){
if(s[i]>=rO' && s[i]<=*9')
sum=sum+(s|i]-,O');)
cout«sum;[单项选择题]*A : 4123
B : 412C : 10(正确答案)
D : 1234 计算机的存储器中,组成一个字节(Byte)的二进制位(bit)个数是()。[单项选择
题]*A : 4
B : 8(正确答案)C : 16
D : 32运行下方代码段,输出的是()o
cout«max( 10,min( 12,7));[单项选择题]*A : 10(正确答案)
B : 12C : 13
6. 运行下方代码段,输出的是()。
int a=2;if(a<3) cout«"yes";
else cout«"no";[单项选择题]*A : yes(正确答案)
B : noC : 2
D : 3运行下方代码段,输出的是()。
int a=2;if(a>3) a+=2;
else if(a>=l) a+=5;else a-=l;[单项选择题]*
A : 2B : 4
C : 1D : 7(正确答案)
7. 运行下方代码段,输出的是()。
string s=”123”;coutvvs.length。;[单项选择题]*
A : 123B : 2
C : 3(正确答案)仔细观察下面的数列,根据数列的规律写出第2011个分数()。
1. 3/4, 2/3, 5/8. 3/5, 7/12, 4/7, [单项选择题]*A : 1/2
B : 1005/2011C : 2011/2012
D : 1006/2011(正确答案)体育课的铃声响了,同学们都陆续地奔向操场,按老师的要求从高到矮站成一 排,每个同学按顺序来到操场是,都从排尾走到排头,找到第一个比自己高的同 学,并站在他的后面,这种站队的方法类似于0算法。【单项选择题1*
A:快速排序B :插入排序:正成答案)
C:冒泡排序D:归并排序
8. 使用二分法猜1-100之间的数,最多需要猜多少次()。I单项选择题]*A : 100
B : 50C : 6
D : 7(正确答案)
9. 当输入的n和m分别是6和28时,输出的结果是()。
I单项选择题]*
C : 2(正确答案)
二、多项选择题(共5题,每题4分,
共20分。少选得一半分,多项选择或错选不得
分)运行以下代码段,输出结果为3的是()
A : cout«3;(U 确答案)B : coutvv2+('c'>'t');
C : cout«5%3+(5>4);(jfD : cout«(4+3)*3/15;
10. 以下循环中循环体会执行三次的是()A: for(int i=l;i<=3;++i) cout«i«"
B: for(int i=l;i<=5;i+=2) coutvvivv” ”;C: for(int i=0;iv=3;++i) cout«i«"
D: for(int i=l;i<3;++i) cout«i«"*A: for(int i=l;iv=3;++i) cout«i«"(正 1
B: for(int i=l;i<=5;i+=2) cout«i«H ";(jC: for(int i=0;iv=3;++i) cout«i«"
D: for(int i=l;i<3;++i) cout«i«"3 T列代码段中循环无法终止的是()。
A : int i=l;
B: int i=l;
while(i>=l)(
cout«i«n
while(i<=10)(
cout«i«M
++i;
++i;
}
1
C: int i=10;
D: int i=10;
while(i>=l)( cout«i«" ”;
while(true)(
cout«i«"
--i;
}
}*A(正确答案)
B
C以下选项中,对于字符串”asd”定义并初始化正确的选项是()
A : string s="asd";B : char s[3]=nasdn;
C : char s[4]=”asd”;D : char s[3]={'a','s','d'}; *
A(正确答案)B
C(正确答案)D(正确答案)
11. 以下数字和5进制数1221相等的是()oA : OxBA
B : 0272C : OblOlllOlO
D : 187*A(正确答案)
B]正确答案)C(正确答案)
D三、判断题(共5题,每题2分,共10分)
12. C++程序基本结构分为顺序结构,分支结构和循环结构。[判断题]*对(正确答案)
错bool类型的值只有true和false。[判断题]*
展开阅读全文