当前位置:首页 >> 学科竞赛 >>

noip2007初赛试题


2007 年 NOIP 初赛试题 一、 单项选择题 (共 10 题,每题 1.5 分,共计 15 分。每题有且仅有一 个正确答案.)。 1. 在以下各项中。( )不是 CPU 的组成部分。 A. 控制器 B. 运算器 C. 寄存器 D. 主板 2. 在关系数据库中, 存放在数据库中的数据的逻辑结构以( )为主。 A. 二叉树 B. 多叉树 C. 哈希表 D. 二维表 3.在下列各

项中,只有( )不是计算机存储容量的常用单位。 A. Byte B. KB C. UB D. TB 4.ASCII 码的含义是( )。 A. 二—十进制转换码 B. 美国信息交换标准代码 C. 数字的二 进制数码 D. 计算机可处理字符的唯一编码 5.一个完整的计算机系统应包括( ) A.系统硬件和系统软件 B. 硬件系统和软件系统 C.主机和外部设备 D.主机、键盘、显示器和辅助存储器 6.IT 的含义是( ) A.通信技术 B. 信息技术 C. 网络技术 D. 信息学 7. LAN 的含义是( )。 A. 因特网 B. 局域网 C. 广域网 D. 城域网 8. 冗余数据是指可以由以他数据导出的数据,例如,数据库中已存放了学生的 数学、语文、和英语的三科成绩,如果还存放三科成绩的总分,则总分就可以看 做冗余数据。 冗余数据往往会造成数据的不一致,例如上面 4 个数据如果都是输 入的,由于操作错误使总分不等于三科成绩之和,就会产生矛盾。下面关于冗余 数据的说法中, 正确的是( )。 A. 应该在数据库中消除一切冗余数据 B.用高级语言编写的数据处理系统, 通常比用关系数据库编写的系统更容易消 除冗余数据 C. 为了提高查询效率, 在数据库中可以适当保留一些冗余数据, 但更新时要 做相容性检验 D. 做相容性检验会降低效率, 可以不理睬数据库中的冗余数据 9. 在下列各软件中, 属于 NOIP 竞赛 (复赛) 推荐使用的语言环境有 ( ) 。 A. gcc B. g++ C. Turbo C D. free pascal 10. 以下断电之后将仍能保存数据的有( )。 A. 硬盘 B. 高速缓存 C. 显 存 D. RAM 11. 在下列关于计算机语言的说法中,正确的有( )。 A. 高级语言比汇编语言更高级, 是因为它的程序的运行效率更高 B. 随着 Pascal、 等高级语言的出现, 机器语言和汇编语言已经退出了历史舞 C 台 C. 高级语言程序比汇编语言程序更容易从一种计算机移植到另一种计算机上 D. C 是一种面向过程的高级计算机语言

12. 近 20 年来, 许多计算机专家都大力推崇递归算法,认为它是解决较复杂问 题的强有力的工具. 在下列关于递归的说法中, 正确的是( )。 A. 在 1977 年前后形成标准的计算机高级语言"FORTRAN77"禁止在程序使用递 归, 原因之一是该方法可能会占用更多的内存空间. B. 和非递归算法相比, 解决同一个问题, 递归算法一般运行得更快一些 C. 对于较复杂的问题, 用递归方式编程往往比非递归方式更容易一些 D. 对于已定义好的标准数学函数 sin(x), 应用程序中的语句 “y=sin(sin(x));”就是一种递归调用 13. 一个无法靠自身的控制终止的循环称为“死循环”,例如在 C 语言程序中, 语句“while(1)printf("*");”就是一个死循环,运行它将无休止地打印*号。 下面关于死循环的说法中, 只有( )是正确的。 A. 不存在一种算法, 对任何一个程序及相应的输入数据, 都可以判断是否会出 现死循环, 因而, 任何编译系统都不做死循环检查 B. 有些编译系统可以检测出死循环 C. 死循环属于语法错误, 既然编译系统能检查各种语法错误, 当然也能检查 出死循环 D. 死循环与多进程中出现的“死锁”差不多,而死锁是可以检测的,因而,死 循环也是可以检测的 14. 在 Pascal 语言中,表达式 (23 or 2 xor 5)的值是( ) A. 18 B. 1 C.23 D.32 15. 在 Pascal 语言中,判断整数 a 等于 0 或 b 等于 0 或 c 等于 0 的正确的 条件表达式是( ) A. not ((a<>0) or (b<>0) or (c<>0)) B. not ((a<>0) and (b<>0) and (c<>0)) C. not ((a=0) and (b=0)) or (c=0) D.(a=0) and (b=0) and (c=0) 16. 地面上有标号为 A、B、C 的 3 根细柱, 在 A 柱上放有 10 个直径相同中间有 孔的圆盘, 从上到下次依次编号为 1, 2, 3, ??,将 A 柱上的部分盘子经过 B 柱移入 C 柱, 也可以在 B 柱上暂存。如果 B 柱上的操作记录为:“进,进,出, 进,进,出,出,进,进,出,进,出,出”。那么, 在 C 柱上, 从下到上的盘 子的编号为( )。 A. 2 4 3 6 5 7 B. 2 4 1 2 5 7 C. 2 4 3 1 7 6 D. 2 4 3 6 7 5 17. 与十进制数 1770 相对应的 8 进制数是( )。 A. 3350 B. 3351 C. 3352 D. 3540 18. 设 A=B=true,C=D=false,以下逻辑运算表达式值为真的有( )。 A. (﹁A∧B)∨(C∧D∨A) B. ﹁ ( ( (A∧B)∨C)∧D) C. A∧(B∨C∨D)∨D D. (A∧(D∨C)) ∧B 19. (2070)16+(34)8 的结果是( )。 A. (8332)10 B. (208C)16 C. (100000000110)2 D. (20214)8 20. 已知 7 个节点的二叉树的先根遍历是 1 2 4 5 6 3 7(数字为结点的编号, 以下同), 后根遍历是 4 6 5 2 7 3 1, 则该二叉树的可能的中根遍历是 ( )

A. 4 2 6 5 1 7 3 B. 4 2 5 6 1 3 7 C. 4 2 3 1 5 4 7 D. 4 2 5 6 1 7 3 二.问题求解(共 2 题,每题 5 分,共计 10 分) 1.(子集划分)将 n 个数{1,2,3,?,n}划分成 r 个子集。每个数都恰好属 于一个子集,任何两个不同的子集没有共同的数,也没有空集。将不同划分方法 的总数记为 S(n,r)。例如,S(4,2)=7,这 7 种不同的划分方法依次为{(1), (234)},{(2),(134)},{(3),(123)},{(4),(123)}, {(12),(34)},{(13),(24)},{(14),(23)}。当 n=6, r=3 时,S(6,3)= 。 (提示:先固定一个数,对于其余的 5 个数考虑 S(5,3)与 S(5,2),再分这 两种情况固定的数进行分析。 2.(最短路线)某城市的街道是一个很规整的矩形网络(见下图),有 7 条南 北向的纵街,5 条东西向的横街。现要从西南的 A 走到东北角的 B,最短的走法 共有多少种? 。 三.阅读程序写结果(共 4 题,每题 8 分,共计 32 分)
1.program j301;

var i,a,b,c,x,y:integer; p:array[0..4] of integer; begin y:=20; for i:=0 to 4 do read(p[i]); readln; a:=(p[0]+p[1])+(p[2]+p[3]+p[4]) div 7; b:=p[0]+p[1] div ((p[2]+p[3])div p[4]); c:=p[0]*p[1] div p[2]; x:=a+b-p[(p[3]+3)mod 4]; if(x>10) then y:=y+ (b*100-a) div(p[p[4] mod 3]*5) else y:=y+20+(b*100-c)div (p[p[4] mod 3]*5); writeln(x,',',y); end.

{注:本例中,给定的输入数据可以避免分母为 0 或下标越界。} 输入:6 6 5 5 3 输出:_______________
2.program j302;

var a,b:integer; var x,y:^integer; procedure fun(a,b:integer); var k:integer; begin k:=a;a:=b;b:=k; end;

begin a:=3;b:=6; x:=@a;y:=@b; fun(x^,y^); writeln(a,',',b); end.

输出:_____________________________
3.program j303;

var a1:array[1..50] of integer; var i,j,t,t2,n,n2:integer; begin n:=50; for i:=1 to n do a1[i]:=0; n2:=round(sqrt(n)); for i:=2 to n2 do if(a1[i]=0) then begin t2:=n div i; for j:=2 to t2 do a1[i*j]:=1; end; t:=0; for i:=2 to n do if (a1[i]=0) then begin write(i:4); inc(t); if(t mod 10=0) then writeln; end; writeln; end.

输出:
4.program j304;

type str1=string[100]; str2=string[200]; var s1:str1; s2:str2; function isalpha(c:char):boolean; var i:integer; begin i:=ord(c); if ((i>=65) and (i<=90)) or ((i>=97) and (i<=122)) then isalpha:=true

else isalpha:=false; end; function isdigit(c:char):boolean; var i:integer; begin i:=ord(c); if (i>=48) and (i<=57) then isdigit:=true else isdigit:=false; end; procedure expand(s1:str1;var s2:str2); var i,j:integer; a,b,c:char; begin j:=1; c:=char(1); i:=0; while(i<=ord(s1[0])) do begin inc(i); c:=s1[i]; if c='-' then begin{1} writeln('i=',i); a:=s1[i-1]; b:=s1[i+1]; if (isalpha(a) and isalpha(b))or (isdigit(a) and isdigit(b)) then begin writeln('*****',a,'&',b); dec(j); while(ord(upcase(a))<ord(upcase(s1[i+1])))do begin s2[j]:=a;inc(j);inc(a); end; end else begin s2[j]:=c;inc(j); end; end{1} else begin s2[j]:=c;inc(j); end; end; s2[0]:=char(j-2); end; begin writeln('input s1:'); readln(s1); expand(s1,s2);

writeln(s2); end.

输入:wer2345d-h454-82qqq 输出: 四.完善程序 (前 4 空,每空 2.5 分,后 6 空,每空 3 分,共 28 分) 1.(求字符串的逆序) 下面的程序的功能是输入若干行字符串,每输入一行, 就按逆序输出该行,最后键入-1 终止程序。 请将程序补充完整。
program j401; type str1=string[100]; var line:str1; 2 2 3 kz:integer; procedure reverse(var 2 -1 1 var i,j:integer; 4 1 1 t:char; begin 4 4 5 i:=1; j:=length(s); while (i<j) do begin t:=s[i]; s[i]:=s[j]; s[j]:=t; ①; ② ; end; end; begin writeln('continue? -1 for end.'); readln(kz); while ( ③ ) do begin readln(line); ④; writeln(line); writeln('continue? -1 for end.'); readln(kz); end; end.

3 3 5 5
s:str1);

2.(棋盘覆盖问题)在一个 2K×2K 个方格组成的棋盘中恰好有一个方格与 其他方格不同(图中标记为-1 的方格),称之为特殊方格。现用 L 型(占有 3 个小格)纸片覆盖棋盘上除特殊方格的所有部分,各纸片不得重叠,于是,用到 的纸片数恰好是(4K-1)/3.在下表给出的一个覆盖方案中,K=2,相同的 3 个数字构成一个纸片。 下面给出的程序是用分治法设计的,将棋盘一分为四,依次处理左上角、右 上角、左下角、右下角,递归进行。请将程序补充完整。

program j402; type arr1=array[1..65] of integer; arr2=array[1..65] of arr1; var board:arr2; tile:integer; size,dr,dc:integer; procedure chessboard(tr,tc:integer;dr,dc:integer;var size:integer); var t,s:integer; begin if (size=1) then ⑤; t:=tile; inc(tile); s:=size div 2; if ⑥then chessboard(tr,tc,dr,dc,s) else begin board[tr+s-1][tc+s-1]:=t; ⑦; end; if(dr<tr+s) and (dc>=tc+s) then chessboard(tr,tc+s,dr,dc,s) else begin board[tr+s-1][tc+s]:=t; ⑧; end; if(dr>=tr+s) and(dc<tc+s) then chessboard(tr+s,tc,dr,dc,s) else begin board[tr+s][tc+s-1]:=t; ⑨; end; if (dr>=tr+s) and (dc>=tc+s) then chessboard(tr+s,tc+s,dr,dc,s) else begin board[tr+s][tc+s]:=t;

⑩; end; end; procedure prt1(n:integer); var i,j:integer; begin for i:=1 to n do begin for j:=1 to n do write(board[i][j]:3); writeln; end; end; begin writeln('input size(4/8/16/64):'); readln(size); writeln('input the position of special block(x,y):'); readln(dr,dc); board[dr][dc]:=-1; tile:=1; chessboard(1,1,dr,dc,size); prt1(size); end.


相关文章:
NOIP2007普及组初赛试题答案
NOIP2007普及组初赛试题答案_IT/计算机_专业资料。这是noip历年题目,有助于你的noip初赛,下载吧!2007 年 noip 普及组初赛试题一、 单项选择题(共 20 题,每题 ...
NOIP2007提高组初赛试题
NOIP2007提高组初赛试题_其它考试_资格考试/认证_教育专区。第十三届全国青少年信息学奥林匹克联赛初赛试题提高组 C 语言 一、单项选择题(共 10 题,每题 1.5 分...
noip2007初赛试题
noip2007初赛试题_学科竞赛_高中教育_教育专区。2007 年 NOIP 初赛试题 一、 单项选择题 (共 10 题,每题 1.5 分,共计 15 分。每题有且仅有一 个正确答案...
NOIP2007提高组试题及解析
NOIP2007提高组试题及解析_IT/计算机_专业资料。NOIP2007 提高组试题和题解NOIP...2.字符串的展开 (expand.pas/c/cpp) 【问题描述】 在初赛普及组的“阅读...
NOIP2007 普及组初赛试题
NOIP2007 初赛试题(普及组 Pascal) 第十三届全国青少年信息学奥林匹克联赛初赛试题( 普及组 Pascal 语言 二小时完成)● 全部试题答案均要求写在答卷纸上,写在试卷...
noip初赛试题1
noip初赛试题1_从业资格考试_资格考试/认证_教育专区。NOIP 普及组(初赛)试题精选一、计算机系统 1. 在以下各项中,( )不是 CPU 的组成部分。(NOIP2007) A....
noip2007题解
noip2007题解_学科竞赛_高中教育_教育专区。解题报告 第一个题目 count [题目转述] 给定 n 个自然数,统计不同的自然数出现的个数,按照从小到大的顺序输出。其...
NOIP2007初赛模拟试题
NOIP2007 初赛模拟试题-4 一、选择题(共 20 题,每题 1.5 分,共计 30 分。每题有 5 个备选答案,前 10 个题为单选 题,即每题 有且只有一个正确答案,...
NOIP2007(pascal)第十三届全国青少年信息学奥林匹克联赛初赛试题
NOIP2007(pascal)第十三届全国青少年信息学奥林匹克联赛初赛试题_学科竞赛_高中教育_教育专区。NOIP2007(pascal)第十三届全国青少年信息学奥林匹克联赛初赛试题 ...
NOIP2007初赛试题c语言答案
NOIP2007初赛试题c语言答案 Noip2007 c语言答案Noip2007 c语言答案隐藏>> Noip2007 c 答案: 一,单项选择题: (每题 1.5 分) 1. D 2. E 3. D 4. B 5...
更多相关标签:
noip2016初赛试题 | noip初赛试题 | noip2015初赛试题 | noip提高组初赛试题 | noip2007普及组初赛 | noip普及组初赛试题 | noip2007提高组初赛 | noip初赛试题c |