(普及組Pascal語言兩小時完成)
●●●所有試題的答案都要求寫在答題卡上,無效●●
a、單項選擇題(***20題,每題1.5分,* * * 30分。每個問題有且只有壹個正確答案。)
1.下列各項中,()不屬於中央處理器。
A.控制器b .算術單元c .寄存器d .主板
2.在關系數據庫中,存儲在數據庫中的數據的邏輯結構主要是()。
A.二叉樹b .多分支樹c .哈希表d .二維表
3.下列各項中,只有()不是計算機存儲容量的常用單位。
A.字節
4.4的含義。ASCII碼是()。
A.2 →十進制轉換碼B .美國信息交換標準碼
C.數字的二進制編碼d .能被計算機處理的字符的唯壹編碼
5.壹個完整的計算機系統應該包括()。
A.系統硬件和系統軟件b .硬件系統和軟件系統
C.主機和外部設備d .主機、鍵盤、顯示器和輔助存儲器
6.6的意思。它是()。
A.通信技術b .信息技術c .網絡技術d .信息學
7.7的意思。蘭是()。
A.互聯網局域網萬男子
8.冗余數據是指可以從其他數據中導出的數據。例如,學生的數學、語文和英語成績已經存儲在數據庫中。如果還存儲了三科總成績,則總成績可視為冗余數據。冗余數據往往導致數據不壹致。比如以上四項數據全部輸入,由於操作失誤導致總分不等於三科成績之和,就會出現矛盾。下列關於冗余數據的說法中,正確的是()。
A.應該從數據庫中刪除所有冗余數據。
用高級語言編寫的數據處理系統通常比用關系數據庫編寫的系統更容易消除冗余數據。
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.沒有算法可以判斷任何程序和相應的輸入數據是否會出現無限循環,因此,任何編譯系統都不檢查無限循環。
壹些編譯系統可以檢測無限循環。
C.無限循環是壹個語法錯誤。既然編譯系統可以檢查各種語法錯誤,那麽它也應該能夠檢查無限循環。
D.死循環類似於多個進程中的“死鎖”,死鎖是可以檢測到的,所以死循環也是可以檢測到的。
14.在Pascal中,表達式(23或2 xor 5)的值是()。
A.18 B.1 C.23 D.32
15.在Pascal語言中,判斷整數A等於0或B等於0或C等於0的正確條件表達式是()。
a . not((a & lt;& gt0)或(b & lt& gt0)或(c & lt& gt0))
b . not((a & lt;& gt0)和(b & lt& gt0)和(c & lt& gt0))
C.not ((a=0且(b=0))或(c & lt& gt0)
D.(a=0)和(b=0)和(c=0)
16.地上有A、B、C三根柱子。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 6d . 2 4 3 6 7 5
17.十進制數1770對應的八進制數是()。
3350 B.3351 C.3352 D.3540
18.設A = B =真,C = D =假,邏輯運算表達式值為假()。
A.(?A∧B)∨( C∧D∨A)B . ?(((A∧B)∨C)∧D)
C.A∧(B∨C∨D)∨D .(A∧(D∨C))∧B
19.(2070) 16+(34) 8的結果是()。
A.(8332)10 b .(208 a)16 c .(10000000110)2d .(20212)8
20.已知有7個節點的二叉樹的第壹根遍歷是1 2 4 5 6 3 7(編號是節點的編號,下同),中間根遍歷是4 2 6 5 1 7 3,那麽二叉樹的後根遍歷是()。
a . 4 6 5 2 7 3 1 b . 4 6 5 2 1 3 7 c . 4 2 3 1 5 4 7d . 4 6 5 3 1 7 2
二、解題(***2題,每題5分,* * * 10分)。
1,(子集除法)除n個數(1,2,...n)分成r個子集。每個數恰好屬於壹個子集,沒有兩個不同的子集有相同的數或空集。將不同除法的總數寫成S(n,r)。比如S(4,2)=7,七種不同的除法分別是{(1),(234)},{(2),(134)},{(3),(124)}。當n=6,r=3時,s (6,3) = _ _ _ _ _ _ _ _。
(提示:先固定壹個數,剩下的五個數考慮S(5,3)和S(5,2),然後分析這兩種情況下的原固定數。)
2.(最短路線)壹個城市的街道是壹個非常規則的矩形網絡(見下圖),有7條南北向的垂直街道和5條東西向的水平街道。從西南角的A走到東北角的B的最短路徑是什麽?___________
B
A
三、閱讀程序寫結果(***4題,每題8分,* * * 32分。)
1、程序j 301;
var i,a,b,c,x,y:整數;
p:數組[0..4]的整數;
開始
y:= 20;
對於i:=0到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 & gt;10)
則y:= y+(b * 100-a)div(p[p[4]mod 3]* 5)
其他
y:= y+20+(b * 100-c)div(p[p[4]mod 3]* 5);
writeln(x,',',y);
結束。
{註意:在這個例子中,給定的輸入數據可以避免分母為0或者數組元素表越界。}
輸入:6 6 5 5 3輸出:_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2、程序j302
var a,b:整數;
var x,y:^integer;
程序fun(a,b:整數);
var k:整數;
begin k:= a;a:= b;b:= k;結束;
開始
a:= 3;b:= 6;
x:= @ a;y:= @ b;
fun(x^,y^);
writeln(a,',',b);
結束。
輸出:_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
3、程序j303
var a1:array[1..50]的整數;
var i,j,t,t2,n,n2:整數;
開始
n:= 50;
對於i:=1到n do a 1[I]:= 0;
N2:= round(sqrt(n));
對於i:=2到n2 do
如果(a1[i]=0)則
開始
T2:= n div I;
對於j:=2到t2做a 1[I * j]:= 1;
結束;
t:= 0;
對於i:=2到n do
如果(a1[i]=0)則
開始
寫(我:4);Inc(t);
if (t mod 10=0)然後writeln
結束;
writeln
結束。
輸出:_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_____________________________________________
4、程序j304
鍵入str 1 = string[100];
str 2 = string[200];
定義變量
s 1:str 1;S2:str 2;
function is alpha(c:char):Boolean;
Var i:整數;
開始
I:= ord(c);
如果((i & gt=65)和(i & lt=90))或((i & gt=97)和(i & lt=122))那麽
isalpha:=true
else is alpha:= false;
結束;
函數is digit(c:char):Boolean;
var i:整數;
開始
I:= ord(c);如果(i & gt=48)和(i & lt=57)那麽isdigit:=true
else is digit:= false;
結束;
過程展開(s 1:str 1;var S2:str 2);
var i,j:整數;a,b,c:char;
開始
j:= 1;c:= char(1);I:= 0;
while(我& lt=ord(s1[0])) do
貝京公司(壹);c:= s 1[I];
如果c='-'那麽開始{1}
a:= s 1[I-1];b:= s 1[I+1];
if (isalpha(a)和isalpha(b))或(isdigit(a)和isdigit(b))然後開始
第十屆會議;
while(order(up case(a))& lt;order(up case(s 1[I+1]))do
開始
S2[j]:= a;Inc(j);公司(a);結束;
結束
其他
begin S2[j]:= c;Inc(j);結束;
結束{1}
否則開始S2[j]:= c;Inc(j);結束;結束;S2[0]:= char(j-2);結束;
begin readln(s 1);展開(s1,S2);writeln(S2);
結束。
輸入:WER2345d-H454-82QQ輸出:_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _輸出:_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _輸出
四、完善程序(前四空,每空2.5分,後六空,每空3分,***28分)。
1,(求字符逆序)下面這個程序的作用是輸入幾行字符串,每行輸入,該行逆序輸出。最後,鍵入-1來終止程序。
請完成程序。
程序j 401;
鍵入str 1 = string[100];
var線:str 1;kz:整數;
過程反向(變量s:str 1);
var I,j:整數;t:char;
開始
I:= 1;j:=長度(s);
while(我& lt開始吧
t:= s[I];s[I]:= s[j];s[j]:= t;
;;
結束;
結束;
開始
writeln('繼續?-1表示結束);
readln(kz);
while ( )do
開始
readln(行);
;
writeln(行);
writeln('繼續?-1表示結束);
readln(kz);
結束;
結束。
2 2 3 3
2 -1 1 3
4 1 1 5
4 4 5 5
2.(棋盤覆蓋問題)在2k×2 k個正方形組成的棋盤中,只有壹個正方形與其他正方形不同(圖中標記為-1的正方形),稱為特殊正方形。目前L形紙片(占據3個小方格)覆蓋棋盤除特殊方格外的所有部分,每張紙片不得重疊,所以用的紙片數正好是(4 k-1)/3。在下表給出的覆蓋方案中,k=2,相同的3個數字形成壹張紙。
下面給出的程序是用分治法設計的。棋盤分為四個部分,依次處理左上角、右上角、左下角、右下角,遞歸。請完成程序。
程序j402
arr1=array[1..65]的整數;
arr2=array[1..arr1的65];
var板:arr2平鋪:整數;size,dr,dc:整數;
程序棋盤(tr,tc:整數;dr,dc:整數;var大小:整數);
var t,s:整數;
開始
if(size = 1)then;
t:=平鋪;inc(瓷磚);
s:=尺寸div 2;
如果然後棋盤(tr,tc,dr,dc,s)開始
board[tr+s-1]:= t;
;
結束;
如果(dr & lttr+s)和(dc & gt=tc+s)那麽棋盤(tr,tc+s,dr,dc,s)
else begin board[tr+s-1][TC+s]:= t;
;結束;
if(dr & gt;=tr+s)和(dc & lttc+s)然後棋盤(tr+s,tc+s,dr,dc,s)否則開始
board[tr+s][TC+s]:= t;
;結束;
if(dr & gt;=tr+s)和(dc & gt=tc+s)然後棋盤(tr+s,tc+s,dr,dc,s)
否則begin board[tr+s][TC+s]:= t;
;結束;
結束;
過程prt1(n:整數);
var I,j:整數;
開始
對於I:=1到n做開始
對於j:=1到n做寫(board[I][j]:3);
writeln
結束;
結束;
開始
writeln('輸入大小(4/8/16/64):');
readln(大小);writeln('輸入特殊塊的位置(x,y):');
readln(dr,DC);板[dr][DC]:=-1;
平鋪:= 1;棋盤(1,1,dr,dc,大小);prt1(大小);
結束。
2007年NOIP普及組參考答案及評分標準(Pascal語言)
1.選擇題:(65438+每題0.5分)
題號是1 23455 6789 10。
回答D D C B B B B C C A
題號是112 13 14 15 16 17 18 19 20。
回答C A A A B D C D A A
二、解題: (每題5分)
1.90 2.210
第三,閱讀程序寫出結果
1.15,46 (4點為1的數,1點無逗號)
2.3, 6
3.2 3 5 7 11 13 17 19 23 29
31 37 41 43 47
4.wer2345defgh45456782qqq
四、完善程序(前四次清空(①-④),每次清空2.5分,後六次清空(⑤-⑩),每次清空3分)
(註意:在下面的過程中可能有壹些等價的填空方法。各省可以請自己的專家在電腦上審核,不壹定要報科委審核。)
1.
① inc(i)或i:=i+1
② dec(j)或j:=j-1
③kz & lt;& gt-1
④反向(直線)
2.
⑤出口
⑥(dr & lt;tr+s)和(dc & lttc+s)
⑦棋盤(tr,tc,tr+s-1,tc+s-1,s)
⑧棋盤(tr,tc+s,tr+s-1,tc+s,s)
⑨棋盤(tr+s,tc,tr+s,tc+s-1,s)
⑩棋盤(tr+s,tc+s,tr+s,tc+s,s)