不是VIP会员,不能显示答案,请在后台“我的信息” 在线升级 VIP

一、选择一个正确答案代码(A/B/C/D),填入每题的括号内(每题2分,每题只有一个正确答案,多选无分。共20分)

1. 某算法的流程图如下所示: 依次输入x的值为5、3、0、6后,该算法的输出结果为

  • A.6
  • B.3
  • C.14
  • D.8

2. 某用户电子邮箱收件夹中的内容如图所示: 从图中可以看出该收件夹内

  • A.全部邮件有6封。
  • B.未读的邮件有4封。
  • C.带附件的邮件有5封。
  • D.当天收到的邮件有3封。

3. 笑笑的爷爷最近在学电脑,现在已经会上网了,但总是记不住网址,每次上网时都要问笑笑该输什么网址,后来笑笑略施小“技”,帮爷爷解决了这个难题。之后爷爷再上网时,不仅不用记住网址就能快速地访问自己常去的一些网站,而且每次一启动IE就可以直接打开新华网浏览新闻,笑笑采用的方法是( ) ①将爷爷常用的网址都添加到IE的收藏夹中 ②将爷爷常用的网址都添加到IE的临时文件夹中 ③将新华网的网址设置为IE的主页 ④将爷爷常用的网址都添加到IE的历史记录中

  • A.①②
  • B.①③
  • C.②③
  • D.②④

4. 下列有关信息学名词解释中,错误的是( )

  • A.Online Judge:简称OJ,信息学在线评测系统
  • B.Excel:Microsoft公司开发的电子表格处理软件。
  • C.Flash:Micromedia公司开发的三维动画制作软件。
  • D.LOGO语言:内置一套海龟绘图系统,通过向海龟发送命令,用户可以直观地学习程序的运行过程,是适合于儿童学习的入门级语言。

5. 单字节5和-5在计算机内部分别表示为( )

  • A.00000101 10000101
  • B.00000101 11111010
  • C.11111011 11111011
  • D.00000101 11111011

6. 2名驾驶员和6名空中小姐分别上二架不同型号的旅游直升飞机,每机1名驾驶员及3名空中小姐,则上机方法共有多少种?

  • A.60
  • B.80
  • C.40
  • D.20

7. 如图有两个栈s1,s2,有一数字序列2 3 4 1,依次进入其中任意一个栈,任一个数字入栈后也可随时出栈,则不可能的出栈序列是:

  • A.1 3 2 4
  • B.2 1 3 4
  • C.4 2 3 1
  • D.1 2 3 4

8. 寄存器是( )的重要组成部分。

  • A.硬盘
  • B.高速缓存
  • C.内存
  • D.中央处理器(CPU)

9. 在一个果园里,笑笑将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。笑笑决定把所有的果子合成一堆。 每一次合并,笑笑可以把任意两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过n-1次合并之后,就只剩下一堆了。笑笑在合并果子时总共消耗的体力等于每次合并所耗体力之和。 假定有5堆果子,每堆果子的数量为12,4,20,15,10,每个果子重量都为2,笑笑想知道最小的体力耗费值是多少。

  • A.272
  • B.284
  • C.164
  • D.136

10. 下面是信息学的相关知识,哪一句是正确的:( )

  • A.图灵,美国数学家,1936年设计并成功实现了图灵机,鉴于他巨大的贡献,ACM于1966年以他的名字命名设立了图灵奖,图灵在人工智能方面也有重要的研究,被誉为人工智能之父。
  • B.Dos、Win7、safari、Unix、Photoshop都是操作系统。
  • C.信息学奥林匹克竞赛活动有NOIP、NOI、冬令营、IOI等,其中NOI是全国青少年信息学奥林匹克竞赛,它最早起源于1984年全国青少年程序设计竞赛。
  • D.计算机语言分为机器语言、汇编语言和高级语言,高级语言由解释、编译两种方式翻译执行,第一个计算机高级语言是basi

二、根据要求回答问题:(5+5=10分)

1. 中午,笑笑到花鸟市场闲逛,看到有位叔叔在买金鱼,笑笑就蹲在鱼缸边看金鱼吹泡泡,卖金鱼的叔叔看笑笑半天没动弹,还以为笑笑没钱买又很喜欢金鱼,就对笑笑说:“上午我第一次卖出了全部金鱼的一半加2分之一条金鱼;第二次卖出剩余金鱼的三分之一加三分之一条金鱼;第三次卖出剩余金鱼的四分之一加四分之三条金鱼;第四次卖出剩余金鱼的八分之一加八分之一条金鱼;最后还剩下13条。问原来有多少条金鱼?如果你答对了,我免费送你两条金鱼。”可怜的笑笑当场就糊涂了,请你帮帮她吧!(每次卖出的都是整数条金鱼) 问:原来一共有 条金鱼。
答案:65

2. XXX是一座风景秀丽,气候宜人,历史悠久的的城市,笑笑想到那儿去旅游向往已久。这个暑假,爸爸决定亲自驾车带她到XXX城游玩,这可把笑笑高兴坏了。出发前,爸爸通过网络在XXX城市的中心预订了酒店。XXX城总共有5个景点,爸爸决定每天从酒店出发玩一个景点,晚上回酒店休息,为了节约汽车油费,爸爸事先对酒店及5个景点之间的道路及距离作了了解,如图(单位:公里),也就是如果笑笑他们想到景点B游玩,可以选择酒店->景点B,也可以选择酒店->景点A->景点B,当然还有其它的选择。爸爸想知道5天游完所有景点心爱的汽车最少需要跑多少公里? 问:游完所有景点最少需要跑 公里?
答案:140

三、阅读程序并写出运行结果(8+8+8+8+8=40分)

1.

program test_2012_1;
var x,a,b,c,d,z:integer;
begin
  readln(x);
  a:=x mod 10;
  b:=(x mod 100) div 10;
  c:=(x mod 1000) div 100;
  d:=x div 1000;
  z:=a*a+b*b+c*c+d*d;
  if trunc((c*d)/(a*b))=(c*d)/(a*b) then inc(z,a*b) else inc(z,c*d);
  writeln(z); 
end.
输入:1234
输出:32

2.

program test_2012_2;
var m,n,i,j,s:integer;
d:array[0..100] of integer;
begin
  readln(n);
  for m:=10 TO n DO
  begin
    s:=m*m;
    j:=0;
    while  s>0 DO
    begin
      j:=j+1;
      d[j]:=s mod 10;
      s:=s div 10;
    end;
    i:=1;
    while (d[i]=d[j] ) and ( i<j) DO
    begin
      i:=i+1;
      j:=j-1;
    end;
    IF i>=j then writeln(m);
  end;
end.
输入:30

输出:11 22 26

3.

program test_2012_3;
var  a, b: String;
     i : Integer;
begin
    a:= 'AABBCCDKKRRSSXX';
    readln(b);
    for i := 1 to length(b) Do
        If (b[i] >= '0') AND (b[i] <= '9')
            then write(b[i])
            else 
                if (b[i] >= 'A') and (b[i] <= 'Z')
                    then write(a[ord(b[i]) - ord('A') ]);
End.
输入:NOIP-2012

输出:SXKX2012

4.

program test_2012_4;
var x:integer;
procedure add(var z:integer);
begin
writeln(‘z=',z);z:=z+10;writeln('z=',z);
end;
begin
x:=5;writeln(‘x=',x);add(x);writeln(‘x=',x);
end.

输出:x=5 z=5 z=15 x=15

5.

program test_2012_5;
var j,k:integer;
function pr(n:integer):boolean;
var i:integer;t:boolean;
begin 
t:=true;i:=2;
while t and (i<=sqrt(n)) do
if   n mod i=0  then t:=false
else i:=i+1;
pr:=t;
end;
begin 
k:=0;j:=11;
while j<=99 do
begin 
if pr(j) and pr(j+2) then 
begin writeln(j:4,j+2:4);k:=k+1;end;
j:=j+2;
end;
writeln(‘total:',k);
end.

输出:11 13 17 19 29 31 41 43 59 61 71 73 total:6

四、完善程序(根据问题要求和已有程序,在程序空格处填入适当的语句或符号,使程序完整。本题共15+15=30分)

1. 【成绩处理】(3+3+3+3+3=15分)
笑笑最崇拜她的信息学Mr chen,这不,Mr chen正在教笑笑pascal语言中的记录类型:
有时候我们会遇到这种数据,它由性质各不相同的成分组成,例如:
学号 字符串类型
姓名 字符串类型
年龄 整型
性别 字符型
成绩 实型
如果用5个变量来存储,就失去了一个整体性,Pascal给我们提供了一种叫做记录的结构类型。在一个记录中,可以包含不同类型的并且互相相关的一些数据。
记录的定义:(如上面的数据定义如下)
type node=record
num:string;{学号}
name:string;{姓名}
age:integer;{年龄}
sex:string[6];{性别}
score:real;{成绩}
end;
var student:array[1..100] of node;{定义student数组的每个元素为node这种记录类型,该记录类型包含5个域}
记录的引用:
对记录中每个域的引用,如输入第i个学生的学号,有两种方法:(1)可以写出记录变量名和域名,pascal语言表示为readln(student[i].num);(2)使用开域语句with…do,pascal语言表示为 with student[i] do
Readln(num)
笑笑立马就掌握了这种数据结构,为了在你面前炫耀,她出了一个记录类型的题目考考你,给出n(1<=n<200)个同学m(1<=m<=5)科的考试成绩,按总分找出前十名是哪些同学。规定:总分相同名次相同,且占用后面的名次,例如:第2名有两个同学,那么将没有第3名,后面的同学将从第4名算起。
Input
第一行为n和m,下面n行为每个同学的成绩描述: 每行有m+1个数,其中第一个数为学号(小于等于200),后面为各科成绩,成绩为0~100之间的实数,中间用一个空格隔开。
Output
一行,成绩名次在前10的同学学号,不足10名全部输出。当第10名有多个同学时,输出有可能超过10名同学的学号。同名次按学号由小到大输出。输出的各个学号之间用一个空格隔开。
【输入样例】
17 2
1 7 13
2 18 54
3 47 91
4 65 86
5 44 48
6 92 88
7 80 36
8 76 68
9 54 21
10 65 11
11 61 69
12 78 32
13 0 81
24 93 32
15 42 97
16 28 9
17 65 55
【输出样例】
6 4 8 15 3 11 24 17 7 12

program test_2012_6;
type cj=array[1..5] of real;
     rec=record
          num:integer;  //学号
          s:cj;         //考试科目成绩
          m1:integer;   //名次
          sum:real;     //总分
       end;
var a:array[1..200] of rec; i,j,n,m,k:integer;t:rec;
begin
   readln(n,m);
   for i:=1 to n do
     with a[i] do
     begin
         read(num)  ;sum:=0;
       for j:=1 to m do begin read(s[j]);sum:=  sum+s[j]  end;
       m1:=0;
       readln;
     end;
   for i:=1 to n-1 do 
     for j:=1 to n-i do   
 if   (a[j].sum<a[j+1].sum)or
(  a[j].sum=a[j+1].sum  )and(a[j].num>a[j+1].num) 
then begin t:=a[j]; a[j]:=a[j+1]   ;a[j+1]:=t; end;
   a[1].m1:=1;k:=1;
   for i:=2 to n do
     if a[i].sum=a[i-1].sum then a[i].m1:=k
                    else begin inc(k);a[i].m1:=k; end;
   for i:=1 to n do
     if i<=10 then write(a[i].num,' ')
       else if a[i].sum=a[i-1].sum then  write(  a[i].num   ,' ')
                                else break;
end.

2. 【布置新房】(3+3+3+3+3=15分)
笑笑今天很开心,家里购置的新房领到钥匙了,新房里有一间笑笑自己专用的很宽敞的房间。更让她高兴的是,妈妈昨天对她说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过m元钱就行”。笑笑怀里揣着m元RMB到了商场,商场里的物品真多啊,让人眼花缭乱。笑笑想买的东西很多,于是,她把想买的每件物品规定了一个重要度,用整数表示,数值越大越重要,当然每件物品都有价格,笑笑经过仔细观察,发现这个商场很奇特,所有物品的价格都是整数。笑笑希望在不超过m元(可以等于m元)的前提下,买回去布置新房的物品的重要度之和最大。
比如想买有4件物品,价格分别为3,4,5,8,对应的重要度分别为4,5,7,10,笑笑总共有12元钱,则取编号为1,2,3的物品,得到最大的重要度之和为16。
Input
第一行为m和n,中间用空格隔开,表示m元RMB和商场中有n件物品。
下面n行依次为每件物品的价格和重要度,中间用一个空格隔开。
Output
一行,表示在不超过m元的前提下笑笑购买物品的最大重要度之和。
【输入样例】
12 4
3 4
4 5
5 7
8 10
【输出样例】
16
算法思路:
穷举。用一个b数组来存放物品选取的情况,当b[i]=0时表示第i件物品不取,当b[i]=1时表示第i件物品已取,初始化全部取0,可以从后面的物品开始取起,通过b数组的取值把15种取法全部穷举出来,重要度之和max初始化为0。
b[0] b[1] b[2] b[3] b[4]
0 0 0 0 0 {初始化}
0 0 0 0 1 {取第4件物品,价格为8,不超,重要度为10,将max替换为10}
0 0 0 1 0 {取物品3,价格为5,不超,重要度为7,小于max,不换}
0 0 0 1 1 {取物品3,4,价格为13,超}
0 0 1 0 0 {取物品2,价格为4,不超,重要度为5,不换}
0 0 1 0 1
0 0 1 1 0
0 0 1 1 1

0 1 1 1 0{取物品1,2,3,价格为12,重要度为16,将max替换为16}
0 1 1 1 1
1 0 0 0 0{当b[0]=1时停止,b[0]称为哨兵}

 program test_2012_7;
var v,p:array[1..100]of integer; //物品的价格和重要度
    b:array[0..100]  of 0..1;   //表示物品的选取情况
i,j,m,n,max,vsum,psum:integer;
begin
readln(m,n);
 for i:=1 to n do
    readln(v[i],p[i])   ;
fillchar(b,sizeof(b),0);
 max:=0;
 while b[0]=0 do
  begin
   j:=n;
   while b[j]=1 do dec(j);
   b[j]:=1;
   for i:=j+1 to n do b[i]:=0  ;
    vsum:=0;psum:=0;
    for j:=1 to n do
       if b[j]=1 then begin  vsum:=vsum+v[j] ;psum:=psum+p[j]; end;
    if vsum<=m then if max<psum then max:=psum ;
 end;
  writeln( max  );
end.