第十六届绍兴市少儿信息学竞赛
初赛试题
(小学组C++语言 二小时完成)
●●全部试题答案都要求写在答卷纸上,写在试卷上一律无效●●
一、选择一个正确答案代码(A/B/C/D),填入每題的括号内(每题2分,每题 只有一个正确答案,多选无分。共20分)
1、人工智能英文缩写为( )。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。他是计算机科学的一个分支,它企图了解智能 的实质,并生尸出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包 括机器人、语言识别、图像识别、自然语言处理和专家系统等。
A. AT B. ALBB C. AM D. AI
2、下列存储器按存取速度由快至慢排列,正确的是( ) A.硬盘 〉RAM 〉高速缓存〉U盘 B.高速缓存 〉RAM 〉硬盘 〉U盘 C.髙速缓存 〉硬盘 〉RAM 〉U盘 D. U盘 〉硬盘 〉RAM 〉高速缓存 3、下列属于输入设备的是( )
A.显示器 B.触摸屏 C.音响 D.打印机
4、小写字母“a”的ASCII码为97,小写字母i的ASCII码的值是( ) A. 72 B. 73 C. 105 D. 106
5、IP地址是每个上网的电脑必须的,下列IP地址中合法的是( )
A. 225.225. 225.225 B. 200.256.192. 8 C. 192.168.1.1. 2 D.0.0.0 6、下列描述计算机病毒的特性中,( )不是正确的。 A、潜伏性 B、传染性 C、智能性 D、危害性 7、己知一个栈的入栈顺序是1, 2, 3, n,其输出序列为P1,P2, P3,……,pn, 如果P1是n,则Pi是( ) A、不确定 B、n-i+1 C.n-1 D.i
8、若设二叉树的深度为h,除第层外,其它各层(1?h-1)的结点数都达到最大个数, 第h层所有的结点都连续集中在最左边,这就是完全二叉树。如图1所示,共有10个结点,5个叶子结点,深度为4, 1~3层的结点数都达到了最大个数。那么如果完全二叉树共计39个点,那么他的叶子结点的数量是( )。 A.20 B.21 C. 19 D. 23 9、有一下程序:
int i, x1, x2, x3, x4, s; for(i=1800;i<=2000;i++){ x4=i % 10; x3=i / 10 ; x2=i / 100 ; x1=i / 1000 ;
if ((x1==x4) && (x2==x3)) then s++;
图1 }
cout<
程序运行结果是( ): A. 1 B.2 C.3 D. 10
10、哥德巴赫猜想是一个数学界非常有名的猜想,他的意思是任何大于等于4的偶数都可以 表示成为两个质数之和,例如5=2+3, 8=3+5, 4=2+2。那么把112分解成两个质数之和有 ( )种方法。
A. 14 B. 16 C.18 D. 20 二、根据要求回答问題:(2+3+2+3=10分)
1、在数学王国中,数字6和8称吉祥数字,而其他数字都是不怎么吉祥。如果一个整数是 吉祥数字,当且仅当它的每一位只能包含吉祥数字。现在让你求出第K个吉祥数字。例如:前八个吉祥数字为:6,8,66,68,86,88,666,668,第10个吉祥数字为 。第29个吉祥数字为 。 2、魔术是很神奇的!瞧,泽泽同学最近又迷恋上了一款新的魔术。魔术刚开始前,魔术纸上 的4个点形成一个完美的正方形(见图2)。经过1次魔法后,在每两个相邻点中心会产生一个新点,并且在每个正方形的正中心也会产生一个新点。经过第1次的魔法,会产生5 个新点,共有9个点(见图3)。再经过一次魔法(总共2次魔法),此时共有25个点(见图4) 。现在请你帮助算出,经过3次魔法一共有 个点,经过7次魔法一共有 个点。
三、阅读程序并写出运行结果(4+4+8+8+4+4+8=40分)
20 37 8 9 1.
输出2: #include
2、 using namespace std;
int main(){ #include
int n, i, a, b, c, d; using namespace std; cin>>a>>b>>c>>d; int main(){
if( a>b) a=a / 10; int i, j, n, s, x; if (d>c) int f[101]; cout<<\ else cin>>n;
if (a>x; if (a==b) cout<<\; f[x]=f[x]+1; return 0; for(j=x+1;j<=100;j++) } if (f[j]>0) s=s+1; } 输入1: cout<
输入:
输入2:
6
12 19 14 17 16 16 3、
#include
bool f[10001]; int n, k, i, j, s;
cin>>n>>k;
for(i=2;i<=n;i++) if(f[i]==false) for(j=1;j<=n / i) if (f[i*j]==false) {
s=s+1;
f[i*j]=true; if(s==k) {
cout<
输入: 40 31 输出:
4. #include
int n, m, i, j; char a[51][51]; int b[6]; cin>>n>>m; n= n*5+1; m=m*5+1l;
for(i=1;i<=n;i++) {
for(j=1;j<=m;j++) cin>>a[i][j]; }
for(i=1;i<=n;i++) for(j=1;j<=m;j++)
输出:
if ((a[i][j]!='#')&& (i %5==2) && (j %5==2)) {
if (a[i][j]== ’.’) b[1]=b[1]+1;
else if ((a[i][j]==’*’)&& (a[i+1][j]==’.’)) b[2]++; else if ((a[i+1][j]== ’*’)&& (a[i+2][j]==’.’)) b[3]++; else if ((a[i+2][j] ==’*’)&& (a[i+3][j]==’.’) b[4]++; else if ((a[i+3][j]== ’*’) && b[5]++; }
for(i=1;i<=5;i++)cout<
输入1: 1 2
########### #....#****# #....#****# #....#****# #....#****# ########### 输出1:
输入2: 2 4
##################### #****#****#****#****# #****#....#****#****# #....#....#****#****# #....#....#....#****# ##################### #****#****#****#....# #****#****#....#....# #....#....#....#....# #....#....#....#....# ##################### 输出2: 5.
#include
int s(int n, int t) {
if(n==0) return(1);
else if (t==0) return s(n-l, t+1);
else return s(n-l, t+l)+s(n, t-1);
相关推荐: