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

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

1. 为了表彰为计算机科学作出突出贡献的科学家,计算机界设立了一项素有“计算机界届的诺贝尔奖”美誉的著名奖项,该奖项名称是为了纪念一位英国计算机科学家而以他的名字命名的,这位科学家是( )

  • A.冯•诺依曼
  • B.比尔•盖茨
  • C.帕斯卡
  • D.图灵

2. 我们编程使用的PASCAL语言虽然由瑞士一位教授设计并创立,但它的名字却是为了纪念一位法国的数学家,这位数学家的名字是( )

  • A.冯•诺依曼
  • B.托马斯•库茨
  • C.帕斯卡
  • D.图灵

3. 当我们在PASCAL编程系统中刚编写完成一个程序(期间没有进行过存盘操作),此时,我们从键盘输入的PASCAL程序被保存在计算机的( )中

  • A.硬盘
  • B.内存
  • C.光盘
  • D.显示器

4. 下列常量或表达式中,数值最大的是( )

  • A.(257)10
  • B.(1000)2+(10)2
  • C.(110011)2
  • D.(250)10+(11)2

5. 某公司正在开发一套校园消费卡系统,公司计划在卡上穿孔来进行消费卡的身份识别。具体的做法是在卡的某个区域确定若干个预留位置,在该预留位置上可以穿孔,也可以不穿孔(即使不穿孔,该位置也必须预留),以此来区分不同的卡。该校一共有2000名人员,则每张消费卡上预留位置数量最少应该为( )

  • A.11
  • B.10
  • C.2000
  • D.14

6. 国庆长假期间,凯月跟着爸爸去了九寨沟。听爸爸说九寨沟风景优美,凯月就打算多拍一些照片回来。凯月的数码相机一般每张照片需要占用存储卡980KB的空间,现在凯月带了一张容量为256MB的存储卡。则从理论上讲,凯月最多能拍的照片张数为( )。

  • A.261
  • B.267
  • C.130
  • D.131

7. 图-1所示为某文件的属性窗口,根据该属性窗口显示的信息,下列说法中错误的是( )

  • A.该文件可以用暴风影音软件正常打开
  • B.该文件占用硬盘空间是4.05M字节
  • C.该文件是一个经过MP3压缩技术产生的音频文件
  • D.该文件只能用媒体播放器才能正常打开

8. 金明用图像处理软件设计了一副图像参加少儿想象画设计大赛,这幅图像的文件名是“未来的飞机.bmp”,大小是10.34MB。金明现在想通过电子邮件进行投稿,可是发现邮箱发送的附件不能超过6MB。对于金明来说,在不影响原作图像质量的前提下,下列做法中最合适的是( )

  • A.利用WinRAR软件将图像压缩后再以附件发送
  • B.通过软件将该图像的分辨率设置为640*480
  • C.在该图像中截取最精华的部分,然后将该部分作为图像文件发送
  • D.将该图像的颜色由32位彩色图像修改为8位彩色图像

9. 为了从图-2所示的图像中截取得到如图-3所示的鸟巢图像,应选择下列软件中的( )来完成此操作

  • A.PASCAL
  • B.PhotoShop
  • C.QBASIC
  • D.Access

10. 信息时代的我们有很多的网上密码,如QQ、电子邮箱、电子公告板等应用都需要用到密码。从网络安全的角度来选择,下列密码中相对最安全的密码是( )

  • A.123456
  • B.20090901
  • C.zjsxZHANG&8002
  • D.wangjiegang

11. 计算机系统中的“防火墙”主要作用是( )

  • A.从一定程度上抵御来自网络的非法入侵和攻击
  • B.检测网络中的所有电脑是否感染病毒
  • C.通过在线升级可以达到杀除所有的计算机网络病毒
  • D.网络中心用来防御火灾的隔离设备的总称

12. 人们在为自己的网站设置域名时总是让域名与网站的功能、内容特点相吻合。下列网络域名中,最有可能是网上电子公告板的域名是( )

  • A.www.cctv.com
  • B.club@sohu.com
  • C.bbs.sina.com.cn
  • D.Dzggb.163.com

13. 有如图-4所示的流程图,则变量S保存的数值是( )

  • A.N的所有约数的个数
  • B.N的约数中,所有大于1且小于N的约数的个数
  • C.N的约数中,所有大于1且小于N的约数的对数
  • D.N的所有约数的总和

14. 若对一棵完全二叉树按从上到下,从左到右进行编号,设根节点所在层为第1层,且根节点编号为1,则该树的第i层第j个节点的编号为( )

  • A.2^(i-1)+j
  • B.2i+j
  • C.2i+j-1
  • D.2^(i-1)+j-1

15. 设栈S的初始状态为空,现有5个元素组成的队列{1,2,3,4,5},对该序列在S栈上依次进行如下操作(从队首元素1开始进行操作,出栈后不再进栈):进栈,进栈,进栈,出栈,进栈,出栈,进栈,则先后出栈的元素序列是( )

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

二.问题求解:(5+5=10分)

1. 杰克在A地,他要坐着马车前往B地(从A地出发到达B地或从B地出发到达A地都需要10小时)。已知AB两地之间每隔1小时都有一辆马车准点出发前往对方(24小时不间断),现在杰克坐着马车前往B地,他在途中一共可以看到多少辆从B地出发前往A地的马车?(包括在出发地A看到的那辆马车和在目的地B看到的那辆马车)
答案:11

2. KAD部落的数字。KAD部落是个奇怪的部落,他们认为在数字“0、1、2、3、4、5、6、7、8、9”中,“9”是个不吉利的数字,于是在他们的数字使用中,总是会排除这个数字。现在KAD部落想给一批人群按照1、2、3、4、5、……、i-1、i、i+1、……的顺序编号(当然任何编号中不会出现数字“9”)。问,现在一共有200个人参与编号,那么最后那个人的编号是什么?
答案:242

三.阅读程序并写出运行结果(8+8+8+8=32分):

1.

program test_0901;
var
 x,y,z,a:integer;
begin
 x:=123;y:=232;
 z:=x div 10;a:=y mod 15;
 x:=z+a;
 z:=x-z;a:=x-z;
 write(z,'  ',a);
end.
输出:7 12

2.

program test_0902;
var
 s,i,j:integer;
 a:array[1..10] of integer;
begin
 s:=0;
 i:=0;
 for  j:=1 to 10 do a[j]:=1;
 while i<10 do
 begin
  i:=i+1;
  s:=s+a[i];
  for j:=i+1 to 10 do  a[j]:=a[j]+1
 end;
 writeln('s=',s);
end.
输出:s=55

3.

program test_0903;
var i,a,b:integer;
function f(i:integer):integer;
begin
 if (i=0) or (i=1) then f:=3  else f:=i-f(i-2)
end;
begin
 i:=103;a:=i div 10;b:=i mod 10;
 write(f(a),'  ',f(b));
end.
输出:3 0

4.

program test_0904;
const n=1000000;
const max=16;
var
 i,j:longint;
 a:array[1..n] of integer;
 x:longint;
begin
 for i:=1 to max do
 begin
  read(x);
  a[x]:=a[x]+1;
 end;
 for j:=n downto 1 do if a[j]<>0 then for i:=1 to a[j] do write(j,'  ');
end.
输入:1  2  3  4  100  200  300  400  1  2  3  4  1000  2000  3000  4000
输出:4000 3000 2000 1000 400 300 200 100 4 4 3 3 2 2 1 1

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

1. 【国庆长假】(2+2+2+2+2=10分)
味子有8天的国庆长假。8天长假听起来很美,可是味子却颇感头痛。因为在这个长假里,味子既想完成老师布置的total项作业(每项作业都需要1个小时来完成),又想在假期里好好玩玩。
味子也不知道这两个事情是否能两全其美,于是她编写了一个程序来进行判断。如果程序输出“Yes”,说明味子既可以享受自己设想的所有玩耍活动,又可以完成老师布置的所有作业。如果程序输出“No”,说明如果想享受全部玩耍,味子必定不能完成所有作业。在后者这种情形下,作为好学生的味子必定会砍掉一些玩耍而保证作业的完成。
下列程序中的数组a用来保存8天中所有时刻的情况,a[I,j]表示第i天时刻j开始的1小时是否安排了玩耍,1表示有安排,0表示没有安排玩耍。按照味子的生活规律,每天从早上8点到17点之间的9个小时可以用来安排玩耍或做作业。
程序首先读入的一行包含两个整数n和total,表示味子设想的玩耍活动会在n天中有安排,total表示味子所有作业的数量。接下来是n行,每行第一个整数表示当天是长假的第几天,后面是若干对整数st和de,分别表示当天从时刻st(都为整点时刻)开始有一项玩耍,该玩耍会持续de小时,也就是说,在st到st+de的这段时间内,味子是不能做任何作业的。每行最后是一对用空格分隔的0,表示该行数据输入的结束。这两个零的作用仅仅用来表示该行输入数据的结束,没有其他含义。
程序输出只有一行。如果在享受n天内设想的所有玩耍的前提下,味子还能完成所有作业,则输出“Yes”,否则输出“No”。
请你帮助味子完成下面的程序。
输入样例: 输入样例数据说明
4 5 //共有4天安排了玩耍,共有5项作业
1 8 2 12 2 16 1 0 0
4 8 8 0 0
7 8 5 13 1 0 0 //长假第7天设想了2项玩耍。第1项从8点开始持续5小时
8 8 1 9 1 11 3 14 1 0 0
输出样例:
Yes

program test_0905;
var
 i,j,i1,j1,st,de,n,total:integer;
 a:array[1..8,8..17] of integer;
begin
 for i:=1 to 8 do
  for j:=8 to 17 do
   a[i,j]:=0;
 readln(n,  total  );
 for i:=1 to n do
 begin
  read(i1);read(st,de);
  repeat
   for j1:=st to st+de do a[i1,j1]:=   1  ;
   read(st,de);
  until ((st=0) and (de=0));
 end;
 for i:=1 to 8 do
   for j:=8 to 17 do
    if a[i,j]=0 then total:=total-1;
 if    total<=0   then write(' Yes ') else write(' No ');
 end.
 

2. 【傻瓜电梯】(3+3+3+3+3+3=18分)
所谓傻瓜电梯指的是在响应用户请求时缺乏相应的“智商”,在上升或下降的过程中不能把中途的乘客捎带入电梯,而只会严格按照用户发出请求的先后顺序依次完成任务。
比如,原来电梯在1楼,首先6楼有一位乘客发出请求,要求由6楼乘坐到10楼去,此时电梯马上会上去,但在电梯上升到3楼时,另外一位乘客发出请求由5楼乘坐到8楼去,傻瓜电梯却不会在上升途中把5楼的乘客捎带上去,而只会先把6楼的乘客送到10楼,然后再下来把5搂的乘客送到8楼。
傻瓜电梯由i楼上升到i+1楼(或下降1楼)的时间都是3秒,每到达一个楼层,不管进出乘客有多少,所耽搁的时间都是6秒。现在告诉傻瓜电梯n个用户请求,计算傻瓜电梯把所有乘客送到目标楼层时总共所需要的时间。
输入的第一行包含两个整数x(1<=x<=50)和n(1<=n<=100),分别表示傻瓜电梯开始所在的楼层和一共所有的请求数目。下面有n行,每行包含3个整数,依次表示该请求发出的时刻、乘客目前所在的楼层和将要去的目标楼层。其中请求发出的时间以秒为时刻单位,最大可能的值是2000。如果某两个请求的发出时间相同,则按照输入时的先后顺序依次处理。
输出只包含一行一个整数,表示傻瓜电梯把所有乘客送到目标楼层后总共所需要的时间(从得到第一条请求时开始计算时间),单位是秒。
下列是用来解决该问题的程序,请将程序补充完整。
输入样例:
3 4
10 10 2
18 1 9
2 1 12
8 6 10
输出样例:
162

program test_0906;
const
	maxn= 100 + 5;
var
	n,start: longint;
	ti,st,sf: array[1..maxn] of longint;

procedure inputdata;
var
	i: longint;
begin
	readln(start,n);
	for i:= 1 to n do readln(ti[i],st[i],sf[i]);
end;

procedure solveprob;
var
	i,j,k,tmp,ans: longint;
begin
	for i := 1 to n-1 do
	begin
		k :=  i  ;
		for j := i+1 to n do
			if ti[k] > ti[j] then k := j  ;
		if k <> i then
		begin
			tmp := ti[k];
			ti[k] := ti[i];
			ti[i] := tmp;
			tmp := st[k];
			st[k] := st[i];
			st[i] := tmp;
			tmp := sf[k];
			sf[k] := sf[i]  ;
			sf[i] := tmp;
		end;
	end;
        ans := 0;
	for i := 1 to n do
	begin
		if (i > 1) and (ti[i] > ans) then ans := ti[i];
		ans := ans + abs(st[i] - start) * 3;
		ans := ans +  abs(sf[i]-st[i])*3 ;
		if start <> st[i] then ans :=  ans+6  ;
		ans := ans + 6;
		start := sf[i];
	end;
	writeln(ans);
end;

begin
		inputdata  ;
		solveprob;
end.