.微型计算机中,控制器的基本功能是:
A.控制机器各个部件协调工作
B.实现算术运算和逻辑运算
C.获取外部信息
D.存放程序和数据
2.设A=TRUE B=fALSE C=TRUE D=fALSE 以下逻辑运算中表达式值为真的是:
A.(A∧B)∨(C∧D∨┐A)
B. ((┐A∧B)∨C)∧┐D)
C. (B∨C∨D)∧D∧A
D. A∧(D∨┐C)∧Bliyilong.net
3.在下列关于图灵奖的说法中,不正确的是:
A. 图灵奖是美国计算机协会于1966年设立的,专门奖励那些对计算机事业做出重要贡献的个人
B. 图灵奖有计算机界诺贝尔奖的称号
C. 迄今为止,还没有华裔计算机科学家获此殊荣
D. 图灵奖的名称曲子计算机科学的先驱、英国科学家阿兰·图灵
4.计算机在工作过程中,若突然停电,( )中的信息不会丢失。liyilong.net
A.ROM 和 RAM B.CPU
C.ROM D.RAM
5.完全二叉树共有2n-1个节点,则它的叶节点数为:
A. N-1 B.N
C. 2*N D.2^N-1
6.在下列各项中,( )不是操作系统软件。
A. Solaris B.linux C.Windows Vista D.Sybase
7.设栈S的初始状态为空,元素A,B,C,D,E,f依次入栈S,出栈的序列为B,D,f,E,C,A,则栈S的容量至少应该是:
A.6 B.5 C.4 D.3
8.与十进制数28.5625相等的四进制数是:
A.123.21 B.131.22 C.130.22 D.130.21
9.设字符串S="Olympic",S的非空字串的数目为
A.28 B.29 C.16 D.17
10.Web2.0是近年来互联网的热门概念之一,其核心思想是互动与分享,下列网站中,( )是典型的Web2.0应用。
A.Sina B.flickr C.Yahoo D.google
11.递归过程或函数调用时,处理参数和返回地址,通常使用一种称为( )的数据结构
A.队列 B.多维数组 C.线性表 D.栈
12.(2008)10+(5B)16的结果是:liyilong.net
A.(833)16 B.(2089)10 C.(4163)8 D.(100001100011)2
13.二叉树T,已知其先根遍历为1 2 4 3 5 7 6,中根遍历为2 4 1 5 7 3 6,后跟遍历是:
A. 4 2 5 7 6 3 1
B. 4 2 7 5 6 3 1
C.7 4 2 5 6 3 1
D. 4 2 7 6 5 3 1
14.将数组{8,23,4,16,77,-5,53,100}中元素从大到小按顺序排序,每次可以交换任意两个元素,最少要交换()次。
A.4 B.5 C.6 D.7 E.8
15.对有序数组{5,13,19,21,37,56,64,75,88,92,100}进行二分查找,成功查找元素19的比较次数是:
A.1 B.2 C.3 D.4
16.面向对象的程序设计(Object-Oriented Programming)是一种程序设计的方法论,它将对象作为程序设计的基本单元,将数据和程序封装在对象中,以提高软件的重用性、灵活性、和扩展性。下面关于面向对象的程序设计说法中正确的是()。
A.面向对象的程序设计方法通常采用自顶向下的设计方法进行设计。
B.面向对象的程序设计方法具有继承性(inheritance)、封装性(encapsulation)、多态性(polymorphism)等几大特点。
C.支持面向对象特性称为面向对象的编程语言,目前较为流行的有C++,JAVA,C#等。
D.面向对象的程序设计的雏形来自于Simula语言,后来在Smalltalk语言的完善和标准化的过程中得到更多的扩展和对以前的思想的重新注解。至今,Smalltalk语言任然被视为面向对象的基础。
17.设T是一棵有n个定点的树,以下说法正确的是()。
A.T有n条边
B.T是联通的
C.T是无环的
D.T有n-1条边。
19.NOIP竞赛不推荐使用的语言环境有()。liyilong.net
A.Dev-C++ B.Visual C++ C. free pascal D.lazarus
20.在pascal程序中,表达式(200 or 10)的值是:
A.20 B.1 C.220 D.202
二、问题求解(共2题,每题五分,共计十分):
1.书架上有4本不同的书A、B、C、D,其中A和B是红皮的,C和D是黑皮的,把这4本书摆放在书架上,满足:所有的黑皮书排在一起的方法有:( )种,满足A必须比C靠左,所有红皮书都要放在一起,黑皮书要放在一起,共有( )种摆法。
2.有6个城市,任何两个城市之间有一条道路连接,6个城市之间两两之间的距离如下表表示,则城市1到城市6的最短距离为( )。
城市1 城市2 城市3 城市4 城市5 城市6
城市1 0 2 3 1 12 15
城市2 2 0 2 5 3 12
城市3 3 2 0 3 6 5
城市4 1 5 3 0 7 9
城市5 12 3 6 7 0 2
城市6 15 12 5 9 2 0三、阅读程序写结果(共4题,每题8分,共计32分):
1.var
i,a,b,c,d:integer;
f:array[0..3] of integer;
begin
for i:=0 to 3 do
read(f);
a:=f[0]+f[1]+f[2]+f[3];
a:=a div f[0];
b:=f[0]+f[2]+f[3];
c:=(b*f[1]+a) div f[2];
d:=f[(b div c) mod 4];
if (f(a+b+c+d) mod 4]>f[2]) then
begin
a:=a+b;
writeln(a)
end else
beginliyilong.net
c:=c+d;
writeln(c);
end;
end.
输入: 9 19 29 39
输出:
2.procedure foo(a,b,c:integer);
begin
if a>b then foo(c,a,b)
else
writeln(a,',',b,',',c)
end;
var a,b,c:integer;
begin
readln(a,b,c);
foo(a,b,c);
end.
输入:2 1 3
输出:3.type
TT=array[0..20]of integer;
prodecure func(var ary:TT;n:integer);
var i,j,x:integer;
begin
i:=0;j:=n-1;
while i<j do begin
while (i<j) and (ary>0) do inc(i);
while (i<j) and (ary[j]<0) do dec(j);
if i<j then begin x:=ary;
ary:=ary[j];
ary[j]:=x;
inc(i);
dec(j);
end;
end;
end;
var
a:TT;
i,m:integer;
begin
m:=10;
for i:=0 to m-1 do
read(a);
func(a,m);
for i:=1 to m-1 do
write(a,' ');liyilong.net
writeln;
end.
输入:5 4 -6 -11 6 -59 22 -6 1 10
输出:
prodecure solve(first:string;spos_f,epos_f:integer;mid:string;spos_m,epos_m:integer);
var i,root_m:integer;
begin
if spos_f > epos_f the nexit;
for i:=spos_m to epos_m do
if first[spos_f] = mid then begin
root[m]:=i;
break;
end;
solve(first,spos_s+1,spos_f+(root_m-spos_m),mid,spos_m,root_m-1);
solve(first,spos_f+(root_m-spos_m)+1,epos_f,mid,root_m+1,epos_m);
write(first[spos_f]);
end;
var first,mid:string;
len:integer;
begin
readln(len);
readln(first);
readln(mid);
solve(first,1,len,mid,1,len);
writeln;
end.
输入:7
ABDCEGF
BDAGECF
输出:四、完善程序
1.字符串替换
给定一个字符串S(仅包含大小写字母),下面的程序将S中的每个字母用规定的字母替换,并输出S经过替换后的结果,程序的输入是两个字符串,第一个是给定的字符串S,第二个字符串S’有26个字母组成,他是a-z的唯一排列,大小写不定,S’规定了每个字母对应的替换字母:S’中的第一个字母是字母A和a的替换字母,及S中的A用该字母的大写替换,S中的a用该字母的小写替换;S’中的第二个字母是B和b的替换字母……以此类推。
var
change,str:string;
procedure CheckChangeRule;
var i:integer;
begin
for i:=1 to 26 do begin
__________1___________
change:=chr(ord(change)-ord('A')+ord('a'));
end;
end;
procedure ChangeString;
var len,i:integer;
begin
len:=length(str);
for i:=1 to len do begin
if ____________2___________ then
begin
str[ui]:=upcase(change[ord(str)-ord('A')+1);
end;
else begin
________________3______________
end;
end;
end;
begin
readln(str);
readln(change);
CheckChangeRule;
__________4__________;
writeln(str);
end.2.找第k大的数
给定一个长度为1000000的无序正整数数列,以及另一个数n(1<=n<=1000000),然后以类似快速排序的方法找到序列中第n大的数(例:序列{1,2,3,4,5,6}中第3大得数是4)
复制内容到剪贴板代码:
var
a:array[1..1000000]of integer;
n,m,ans:integer;
procedure swap(var a,b:integer);
var t:integer;
begin
if (a<>b) then begin
t:=a;
a:=b;
b:=t;
end;
end;
function FindKth(left,right,n:integer):integer;
var
tmp,value,i,j:integer;
begin
if left=right then exit(left);
tmp:=random(right-left) + left;
swap(a[tmp],a[left]);
value:= ______1______
i:=left;
j:=right;
while i<j do
begin
while (i<j) and (______2_______) do dec(j);
if i<j then begin
a[i]:=a[j]; inc(i);
end else break;
while (i<j) and (_______3_______) do inc(i);
if i<j then begin
a[j]:=a[i]; dec(j);
end else break;
end;
_______4________;
if i<n then begin inc(i);exit(FindKth(______5________));end;
if i>n then begin dec(i);exit(________6_________);end;
exit(i);
end;
var i:integer;
begin
randomize;
m:=1000000;
for i:=1 to m do read(a[i]);
read(n);
ans:=FindKth(1,m,n);
writeln(a[ans]);
end.
温馨提示:答案为网友推荐,仅供参考