2010年小学生甲组程序设计竞赛初赛试题

您的姓名:
班别:
单选题:(每题1.5分)
1.
十进制算术表达式 :3*512 + 7*64 + 4*8 + 5的运算结果,用二进制表示为( )
A、 10111100101 B、11111100101 C、11110100101 D、11111101101
A
B
C
D
2.
在外部设备中,绘图仪属于( )。
A、输入设备 B、主(内)存储器 C、辅(外)存储器 D、输出设备
A
B
C
D
3.
Email邮件本质上是一个(   )
 A、文件  B、电报  C、电话  D、传真
A
B
C
D
4.
一台计算机如果要利用电话线上网,就必须配置能够对数字信号和模拟信号进行相互转换的设备,这种设备是( )。
A、调制解调器 B、路由器 C、网卡 D、网关
A
B
C
D
5.
用静电吸附墨粉后转移到纸张上,是哪种输出设备的工作方式( )。
A、针式打印机 B、喷墨打印机 C、激光打印机 D、喷墨绘图仪
A
B
C
D
6.
在以下各项中,( )不是 CPU 的组成部分。
A、控制器 B、运算器 C、寄存器 D、RAM
A
B
C
D
7.
为确保企业局域网的信息安全,防止来自Internet的黑客入侵或病毒感染,采用( ) 可以实现一定的防范作用。
A、网管软件 B、邮件列表 C、防火墙软件 D、防病毒软件
A
B
C
D
8.
微型计算机中,控制器的基本功能是( )。
A、控制机器各个部件协调工作 B、实现算术运算和逻辑运算
C、获取外部信息 D、存放程序和数据
A
B
C
D
9.
设A=true,B=false,C=true,D=false,“∧”表示“与”运算,“∨”表示“或”运算,以下逻辑运算表达式值为真的是( )。
A、(( A∧B)∨C)∧ D B、 (A∧B)∨(C∧D∨ A)
C、(B∨C∨D)∧D∧A D、 A∧(D∨ C)∧B
A
B
C
D
10.
计算机在工作过程中,若突然停电,( )中的信息不会丢失。
A、 ROM和RAM B、 CPU C、ROM D、RAM
A
B
C
D
二、数学题:(每题5分)
11.
已知一列数前四项分别为5,15,45,135,...,请写出这个数列的第六项是多少。
12.

由数字0,1,2,3,4,5可以组成多少个十位数字大于个位数字的两位数?

13.

5个男同学和3个女同学排成一排,3个女同学都不能相邻的排列有多少种?

三、写出下列程序的运行结果(共36分,每小题6分)

14.
1、#include <bits/stdc++.h>
using namespace std;
int main() {
string a,s ;
int i,j ;
s="20100425";
a=s.substr(0,4)+"yy"+s.substr(4,2)+"mm"+s.substr(6,2)+"dd";
cout<<"today is:"<<a;
return 0;


}

输出结果为_________________
15.
#include <bits/stdc++.h>
using namespace std;
int main() {
int a,s,i,j,bj;
s=0;a=50;
do{
bj=1;
for (i=2;i<=a-1;i++)
if (a%i==0)bj=0;
if (bj==1) s++;
a++;
}while(a<=100) ;
cout<<s<<endl;
return 0;
}
输出结果为______________________
16.
#include <bits/stdc++.h>
using namespace std;
int main() {
string a;
int b,i,j,k=0,t ;
int c[11]={0};
cin>>a;
b=a.length();
k=0;
for (i=0;i<=b-1;i++)
if (a[i]-'0'!=0)
c[k++]=a[i]-'0';

for(i=0;i<=k-2;i++)
for (j=i+1;j<=k-1;j++)
if (c[i]>c[j]) {
t=c[i]; c[i]=c[j]; c[j]=t;
}
for(i=0;i<k;i++) cout<<c[i];
return 0;
}

输入:231050986
输出结果为_________________________
17.

#include <bits/stdc++.h>

using namespace std;

int main() {

int m,n,i,p,k ;

   int  r[201]={0};

    bool b;

  m=6;n=2;

  for (i=1;i<=m-1;i++)r[i]=i+1;

  r[m]=1;i=0;p=1;b=true;

  while(b)

  {

    i=i+1;

k=p;

p=r[p];

    if (k==p) { cout<<p<<endl;  b=false; }

    else if (i==n+1) {

cout<<p<<" ";

        i=0;p=r[p];r[k]=p;

        }

  }

 return 0;

}

输出结果为_______________________

18.
#include <bits/stdc++.h>
using namespace std;
int main() {
int i,a,b,c,d ;
int f[4]={0};
for (i=0;i<=3;i++)cin>>f[i];

a=f[0]+f[1]+f[2]+f[3];
a=a /f[0];
b=f[0]+f[2]+f[3];
b=b/a;
c=(b*f[1]+a)/f[2];
d=f[(b/c)%4];
if (f[(a+b+c+d)%4]>f[2]){
a=a+b;
cout<<a<<endl;
} else
{
c=c+d;
cout<<c<<endl;
}

return 0;
}
输入:9 19 29 39
输出结果为______________________
19.
#include <bits/stdc++.h>
using namespace std;
int main() {
int i,k,n ;
int x[501]={0},w[501]={0} ;

cin>>n;
for (i=1;i<=n;i++) {
x[i]=0;
w[i]=1;
}

for (i=2;i<=n;i++)
if (!x[i]) {
k=i*i;
while (k<=n) {
x[k]=i;
k=k+i;
}
}
for (i=n;i>=1;i--)
if (x[i]!=0) {
w[x[i]]=w[x[i]]+w[i];
w[i / x[i]]=w[i / x[i]]+w[i];
w[i]=0;
}
cout<<w[2]<<" "<<w[3]<<" "<<w[5]<<endl;
return 0;
}

输入:20

输出结果为______________________
四、程序填空(每空3分,共39分)
20.
1. [问题描述]
小明是路灯管理人员,非常喜欢关灯和开灯,有一天他要检查路灯是否正常,他把200个路灯(编号为1到200),全部打开。然后每隔一个路灯关闭一个(2,4,6,…)。然后每隔两个路灯进行检查(3,6,9,…),若开着,则关上;若关着,则打开,接着再每隔3个(4,8,12,…)作类似工作。问最后结果哪些路灯开着,哪些路灯关着。输出开着的路灯的编号。
#include <bits/stdc++.h>
using namespace std;
int main() {
Int maxn=200; 
int i,j ; 
 int open[maxn+1]={0}; 
 for (i=1;i<=maxn;i++)open[i]=1;
for(i=2;i<=maxn;i++){ 
 j=i;
while ( 【1】 ){
open[j]= 【2】   ;
j=【3】;
};
}
for (i=1;i<=maxn;i++)
if ( 【4】 )cout<<setw(4)<<i;
Return 0;
}
【1】:【2】:【3】:【4】:
21.
[问题描述]
小张非常喜欢玩数字矩阵,她编写了一个程序将自然数1,2,……,N*N(N≥2)按顺时针方向依次写在N阶方阵中。如N=5时方阵如下:
1    2   3   4    5
16 17 18 19  6
15 24 25 20  7
14 23 22 21  8
13 12 11 10  9
请填好程序中的空。
#include <bits/stdc++.h>
using namespace std;
int main() {
Int maxn=10;
Int i,j,k,m,n ;
Int a[maxn+1][maxn+1]={0} ;
Cout<<”Input n:”;
Cin>>n;
5】;
k=1;
Do{
i=【6】;
j=k;
do{
a[i][j]=m;
j=j+1;
m=m+1;
}while( 【7);
do{
a[i][j]=m;
i=i+1;
8】;
}while( 【9) ;
do{
a[i][j]=m;
j=j-1;
m=m+1;
}while( 【10);
do{
a[i][j]=m;
i=i-1;
m=m+1;
}while( 【11);
k=k+1;
}while (k<=n /2);
if(【12)a[(n+1) / 2][(n+1)/ 2]=【13】;
for(i=1;i<=n;i++)
{
for(i=1;i<=n;i++) cout<<setw(3)<<a[i,j];
Cout<<endl;
}
【5】:【6】:
【7】:【8】:
【9】:【10】:
【11】:【12】:
【13】:
问卷星提供技术支持
举报