2017年小学生甲组程序设计试题

姓名:
班别:
一、单选题(每题1.5分)
1.
操作系统是一种重要的系统软件,下列不是操作系统的是( ) A.Linux B.Sybase C.Windows D.Android
A
B
C
D
2.
网址http://www.dgjy.net中的http指的是( ) A.命令 B. URL C.主机名 D.协议
A
B
C
D
3.
一个字节(Byte)是由( )个二进制位组成。 A.8 B.16 C.32 D.以上都有可能
A
B
C
D
4.
.C++源程序文件的扩展名是( )A.cpp B.c++ C .exe D .c
A
B
C
D
5.
右图是一张黑白两色位图,假如使用0表示白色,1表示黑色那么这幅黑白两色位置对应的二进制编码为( ) A.0100011 B.1011100 C.1000011 D.0100001
A
B
C
D
6.
编号为1到13的纸牌顺时针排成一圈,现从编号为1的牌从数字1开始顺时针数下去,1,2,3,„„,一圈又一圈,问当数到数字n ,所在的纸牌编号为多少? ( )A.n%13 B.1+(n-1)%13 C.(n+1)% 13-1 D.(n+1)%13
A
B
C
D
7.
“A、B不能同时大于C”的C++表达式为( ) A.(A>C)&&(B>C) B.(A<=C)&& (B<=C)C.(A<C)||(B<C) D.!((A>C)&&(B>C))
A
B
C
D
8.
设a、b、c、d、e均为整型变量,且a=13、b=2、c=10、d=3、e=2,则表达式a-b*c/d%e的值是( ) A.0  B.-7  C.11  D.13
A
B
C
D
9.
字符“3”的ASCII码为51,则字符“9”的ASCII值为( ) A.56 B.9 C.57 D.58
A
B
C
D
10.
定义二维数组int a[5][6],则该二维数组可存储( )个元素。 A.15 B.20 C.25 D.30
A
B
C
D
11.
已知一个数字方阵,共M排(1—M),每排N个(1—N)。现要求将这个数字方阵存放到一个长条形盒中(盒中长度不限),且盒中原来从头已经放有K个数字。如果按排取数存放,则数字方阵中第I排第J个数字,应该放在盒中的( )位置 A.(I-1)*N+J-1     B.K+(I-1)*N+J   C.K+(J-1)*M+I    D.(J-1)*M+I-1
A
B
C
D
12.
数组value中连续存放15个数,采用顺序查找法查找一个数的平均比较次数是( )A.16 B.7.5 C. 8 D.15
A
B
C
D
13.
十进制数127转换成十六进制数是( ) A.F7 B.7F C.E7 D.715
A
B
C
D
14.
一个程序中有如下的函数说明:int fn(int n){ if(n==1) return 0; else return f(n-1)+2;}则fn(100)的值为( )A.200 B.98 C.101 D.198
A
B
C
D
15.
设a[1]=1,a[2]=2,a[3]=3,a[4]=4,a[5]=5,a[6]=6,且i=1,j=2,k=3,m=4,下列变量的值等于3的是( )A.a[i*j] B.a[a[k-i]+3] C.a[m/ j] D.a[a[j+k-2]]
A
B
C
D
16.
地面上有标号为A、B、C的三根细柱,一开始A柱上穿有5个直径相同中间有孔的圆盘,从上到下依次编号为1,2,3,4,5,将A柱上的盘子经过B柱移入C柱,也可以在B柱上暂存,但最终都要移入C柱。每次只能移动一个盘(不能多个盘叠在一起移)。那么C柱上的盘子从下到上编号不可能出现的是( ) A.1 2 3 4 5 B.5 4 3 2 1 C.1 4 5 3 2 D.1 5 4 2 3
A
B
C
D
17.
在利用数组存储数据时,各下标变量的值在内存中是连续存放的。假定数组a的第一个变量a[1]的存储地址是0,每个a[I]需要占据二个位置(说明a[2]的开始位置是2),则变量a[50]的开始位置是多少( )A.100 B.50 C.48 D. 98
A
B
C
D
18.
现在由整数组成的数列,465,978,486,476,324,575,384,278,214,657,218,445,123,其数列的最长不上升序列的长度(如,465,324,278是一个不上升序列,长度为3,但不是最长的长度)( )A.6 B.7 C.8 D.9
A
B
C
D
19.
“校运会”团体操在表演过程中,要求在队伍变换成10行、15行、18行、24行时,队形都能成为长方形。这样,参加团体操表演的最少需要有( )人? A.180 B.240 C.360 D.540
A
B
C
D
20.
给定一个正整数N=893461632178,现决定依次删除其中的6个数位上的数字(每次依次删除一个数位上的数字),每次删除后,按原来的次序组成一个新数,每次得到的新数M的值是当前状态下最小数,则第4次应该删除的数字是( )A.6 B.8 C.7 D.4
A
B
C
D
二、数学计算题:(每题5分)
21.
一个家具公司生产桌子和椅子。现有113个单位的木材,每张桌子需要使用20个单位的木材,售价是30元;每张椅子要用16个单位的木材,售价是20元。使用已有的木材生产桌椅(不一定要用完木材)最多可以卖(   )元钱。
22.
现在市场上有一款汽车A很热销,售价2万美元。汽车A每加仑汽油可以行使20英里。普通汽车每年大约行使12000英里。油价是每加仑1美元。不久J公司就研发出新款节油车型汽车B,该汽车每加仑汽油可以行使30英里。现在J公司要为B制定价格(略高于A):预计用户能在两年内通过节省的油钱把B高于A的价钱弥补回来,则他们就会购买B,否则不会购买B。那么B的最高价格应为 (     )万美元。
三、看程序写结果:(每题8分)
23.
#include <iostream>
using namespace std; 
int main{
int x=4,y=5,z;z=y+6;
while((z-x)%4!=0){ 
 cout<<z<<" ";
 z+=7;}
cout<<endl;
}
输出:
24.
#include <iostream>
using namespace std;
int main{
 char c[10]="f xj lfbo";
 int key=3;
 for(int i=0;i<strlen(c);i++) 
 if(c[i]!=' ') c[i]=(c[i]-'a'+key)%26+'a';
 cout<<c[i]; 
}
}
 输出:
25.
#include <iostream>
using namespace std;
const int n1=4,n2=5;
int main{
 int max,s=0,k,t;
 int a[n1][n2]; 
 for(int i=0;i<n1;i++) {
 for(int j=0;j<n2;j++) cin>>a[i][j];
 } 
 for(int j=0;j<n2;j++) {
 max=0;
 for(int i=0;i<n1;i++) 
 if(max<a[i][j]) max=a[i][j]; s+=max; 
 }
 cout<<s;
}
输入:
1 2 3 4 5
6 9 13 5 7
11 12 8 15 14
21 20 18 16 17
输出:
26.
#include<iostream>
#include<cstdio>
using namespace std;
const int m[5]={2,3,5,7,13};
int main{ 
int i,j,t; 
for(int i=0;i<5;i++) {
 t=1;
 for(int j=1;j<m[i];j++) t*=2;
 t*=2*t-1; 
 cout<<t<<" ";
 }
}
输出:
四、完善程序:(每空3分)
27.
 1.【排队打水】
有N个人排队到M个水龙头去打水,他们装满水桶的时间T1,T2,┄,Tn为整数且各不相等,应如何安排他们的打水顺序才能使他们花费的总时间最少?
【输入格式】
 第1行:两个整数n和m,n表示人的个数,m表示水龙头的个数;
 第2行:n个整数,分别表示n个人装水的时间;
【输出格式】
一个整数,表示总花费的最少时间。
【完善程序】
#include<iostream>
using namespace std;
int main()
{
   int n,m,x,len=0,s,k,i,sum=0;
   int a[10000],b[10000];
   cin>>n>>m;
   for(int i=1;i<=n;i++)
   {
  cin>>x;
;
  if(x>len)  ②   ;
   }
  s=0;
  for(int i=1;i<=len;i++)
    while(a[i]>0)
    {
s=s%m+1;
③   ;
sum+=b[s];
④      ;
    }
 cout<<sum;
}
[1]:
[2]:
[3]:
[4]:
28.
【小明的发现】
小明发现一个有趣的现象:除2这个特别的素数外,所有的素数都能分成两类:第一类是被4除余1 的素数,如5、13、17、29、37、41;第二类是被4除余3的素数,如3、7、11、19、23、31。
小明感到很奇怪的是:第一类素数都能表示成两个整数的平方和,第二类则不能。如:
5=1×1+2×2
13=2×2+3×3
17=1×1+4×4
29=2×2+5×5
更有趣的是:上述有些等式右侧的数又恰恰是两个素数,如上面13和29两个数所在式子的等号右侧就是素数,小明把这样的数取名为“奇妙素数”。既:一个素数F能够表示成两个素数的平方和形式
F=X×X+Y×Y,其中X、Y都是素数,那么它就是奇妙素数。
请你帮助小明把所有不大于N的奇妙素数打印出来。
【输入格式】
 只有一个整数N(3≤N≤108)。
【输出格式】
 第1到N行:输出不大于N的所有奇妙素数。每行输出一个,并把平方和的形式输出:F=X*X+Y*Y;
 第N+1行:输出不大于N的所有奇妙素数的总数。
【完善程序】
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int i,j,k,count=0,f,maxy,n;
bool yes,prime[45000];;
cin>>n;
maxy=sqrt(n);
    memset(prime,true,sizeof(prime));
for(int i=2;i<=sqrt(maxy);i++)
  if(⑤  )
    for(int j=2;⑥    ;j++)
⑦      ;
   for(int i=3;;i++)
     if(prime[i])
     {
f=2*2+i*i;
if()
{
yes=true;
for(int j=2;j<= sqrt(f);j++)
 if(      ⑩     )
   yes=false;
if(yes)
  {
count++;
cout<<f<<"=2*2+"<<i<<"*"<<i<<endl;
  }
}
     }
   cout<<count;
}
[5]:
[6]:
[7]:
[8]:
[9]:
[10]:
问卷星提供技术支持
举报