資源簡介 第十四屆全國青少年信息學奧林匹克聯賽初賽試題( 普及組 Pascal語言 二小時完成 )● 全部試題答案均要求寫在答卷紙上,寫在試卷紙上一律無效 ●●一、 單項選擇題 (共20題,每題1.5分,共計30分。每題有且僅有一個正確答案.)。1.微型計算機中,控制器的基本功能是( )。A. 控制機器各個部件協調工作 B. 實現算術運算和邏輯運算C. 獲取外部信息 D. 存放程序和數據2. 設A=true,B=false,C=true,D=false,以下邏輯運算表達式值為真的是( )。A. (A∧B)∨(C∧D∨A) B. ((A∧B)∨C)∧DC. (B∨C∨D)∧D∧A D. A∧(D∨C)∧B3. 在下列關于圖靈獎的說法中,不正確的是( )。A. 圖靈獎是美國計算機協會于1966年設立的,專門獎勵那些對計算機事業作出重要貢獻的個人B. 圖靈獎有“計算機界諾貝爾獎”之稱C. 迄今為止,還沒有華裔計算機科學家獲此殊榮D. 圖靈獎的名稱取自計算機科學的先驅、英國科學家阿蘭·圖靈4.計算機在工作過程中,若突然停電,( )中的信息不會丟失。A. ROM和RAM B. CPU C.ROM D. RAM5.完全二叉樹共有2*N-1個結點,則它的葉節點數是( )。A. N-1 B. N C. 2*N D. 2N-16. 在以下各項中,( )不是操作系統軟件。A. Solaris B. Linux C. Windows Vista D. Sybase7.設棧S的初始狀態為空,元素a,b,c,d,e,f依次入棧S,出棧的序列為b,d,f,e,c,a,則棧S的容量至少應該是( )。A. 6 B. 5 C. 4 D. 38. 與十進制數28.5625相等的四進制數是( )。A. 123.21 B. 131.22 C. 130.22 D. 130.219. 設字符串S=”Olympic”,S的非空子串的數目是( )。A. 28 B. 29 C. 16 D. 1710.Web2.0是近年來互聯網的熱門概念之一,其核心思想是互動與分享。下列網站中,( )是典型的Web2.0應用。A. Sina B. Flickr C. Yahoo D. Google11. 遞歸過程或函數調用時,處理參數和返回地址,通常使用一種稱為( )的數據結構。A. 隊列 B. 多維數組 C. 線性表 D. 棧12. (2008)10 + (5B)16的結果是( )。A. (833)16 B. (2089)10 C. (4163)8 D. (100001100011)213. 二叉樹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 1C. 7 4 2 5 6 3 1 D. 4 2 7 6 5 3 114.將數組{8, 23, 4, 16, 77, -5, 53, 100}中的元素按從大到小的順序排列,每次可以交換任意兩個元素,最少需要交換( )次。A. 4 B. 5 C. 6 D. 715. 對有序數組{5, 13, 19, 21, 37, 56, 64, 75, 88,92,100}進行二分查找,成功查找元素19的查找長度(比較次數)是( )。A. 1 B. 2 C. 3 D. 416. 面向對象程序設計(Object-Oriented Programming)是一種程序設計的方法論,它將對象作為程序的基本單元,將數據和程序封裝在對象中,以提高軟件的重用性、靈活性和擴展性。下面關于面向對象程序設計的說法中,不正確的是( )。A. 面向對象程序設計通常采用自頂向下設計方法進行設計。B. 面向對象程序設計方法具有繼承性(inheritance)、封裝性(encapsulation)、多態性(polymorphism)等幾大特點。C. 支持面向對象特性的語言稱為面向對象的編程語言,目前較為流行的有C++、JAVA、C#等。D. 面向對象的程序設計的雛形來自于Simula語言,后來在SmallTalk語言的完善和標準化的過程中得到更多的擴展和對以前思想的重新注解。至今,SmallTalk語言仍然被視為面向對象語言的基礎。17. 在32*32點陣的“字庫”中,漢字“北”與“京”的字模占用字節數之和是( )。A. 512 B. 256 C. 384 D. 12818. 設T是一棵有n個頂點的樹,下列說法不正確的是( )。A. T有n條邊 B. T是連通的C. T是無環的 D. T有n-1條邊19. 下列不屬于NOIP競賽推薦使用的語言環境的是( )。A. Dev-C++ B. Visual C++ C. free pascal D. Lazarus20.在PASCAL程序中,表達式(200 or 10)的值是( )A. 20 B. 1 C. 220 D. 202二.問題求解(共2題,每題5分,共計10分)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. vari,a,b,c,d:integer;f:array[0..3] of integer;beginfor i:=0 to 3 doread(f[i]);a := f[0] + f[1] + f[2] + f[3];a := a div f[0];b := f[0] + f[2] + f[3];b := b div a;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]) thenbegina := a + b;writeln(a);end elsebeginc := c + d;writeln(c);end;end.輸入:9 19 29 39輸出:_______________2.procedure foo(a,b,c:integer);beginif a>b then foo(c,a,b)else writeln(a, ',', b, ',', c);end;vara,b,c:integer;beginread(a, b, c);foo(a,b,c);end.輸入: 3 1 2輸出: __________3.typeTT= array[0..20]of integer;procedure func(var ary:TT; n:integer);vari,j,x:integer;begini:=0;j:=n-1;while iwhile (i0) do inc(i);while (iif ix:=ary[i];ary[i]:=ary[j];ary[j]:=x;inc(i);dec(j);end;end;end;vara:TT;i,m:integer;beginm:=10;for i:=0 to m-1 doread(a[i]);func(a,m);for i:=0 to m-1 dowrite(a[i], ' ');writeln;end.輸入:5 4 -6 -11 6 -59 22 -6 1 10輸出:____________________________________4.procedure solve(first:string; spos_f,epos_f:integer; mid:string;spos_m,epos_m:integer);vari,root_m:integer;beginif spos_f > epos_f then exit;for i:=spos_m to epos_m doif first[spos_f] = mid[i] then beginroot_m:=i;break;end;solve(first,spos_f+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;varfirst,mid:string;len:integer;beginreadln(len);readln(first);readln(mid);solve(first,1,len,mid,1,len);writeln;end.輸入: 7ABDCEGFBDAGECF輸出:____________________________________四.完善程序 (前4空,每空2.5分,后6空,每空3分,共28分)1.(字符串替換)給定一個字符串S(S僅包含大小寫字母),下面的程序將S中的每個字母用規定的字母替換,并輸出S經過替換后的結果。程序的輸入是兩個字符串,第一個字符串是給定的字符串S,第二個字符串S’由26個字母組成,它是a-z的任一排列,大小寫不定,S’規定了每個字母對應的替換字母:S’中的第一個字母是字母A和a的替換字母,即S中的A用該字母的大寫替換,S中的a用該字母的小寫替換;S’中的第二個字母是字母B和b的替換字母,即S中的B用該字母的大寫替換,S中的b用該字母的小寫替換;…… 以此類推。varchange:string;str:string;procedure CheckChangeRule;vari:integer;beginfor i:=1 to 26 do beginif ① thenchange[i]:= chr(ord(change[i]) - ord('A') + ord('a'));end;end;procedure ChangeString;varlen,i:integer;beginlen := length(str);for i:=1 to len do beginif ② thenbeginstr[i] := upcase(change[ord(str[i]) – ord(‘A’) + 1]);endelsebegin③end;end;end;beginreadln(str);readln(change);CheckChangeRule;④writeln(str);end.(找第k大的數) 給定一個長度為1,000,000的無序正整數序列, 以及另一個數n (1<=n<=1000000), 然后以類似快速排序的方法找到序列中第n大的數(關于第n大的數:例如序列{1,2,3,4,5,6}中第3大的數是4)。vara:array[1..1000000] of integer;n,m,ans:integer;procedure swap(var a,b:integer);var t:integer;beginif (a <> b) then begint := a;a := b;b := t;end;end;function FindKth(left,right,n:integer):integer;vartmp,value,i,j:integer;beginif left = right then exit(left);tmp:= random(right-left) + left;swap(a[tmp],a[left]);value := ① ;i := left;j := right;while ibeginwhile (iif ia[i] := a[j]; inc(i);end else break;while (iif ia[j] := a[i]; dec(j);end else break;end;④if iif i>n then begin dec(i); exit( ⑥ ); end;exit(i);end;vari:integer;beginrandomize;m:=1000000;for i:=1 to m doread(a[i]);read(n);ans:= FindKth(1,m,n);writeln(a[ans]);end. 展開更多...... 收起↑ 資源預覽 縮略圖、資源來源于二一教育資源庫