資源簡介 第九屆全國青少年信息學奧林匹克聯賽初賽試題(普及組PASCAL語言 二小時完成) ●● 全部試題答案均要求寫在答卷紙上,寫在試卷紙上一律無效 ●● 一.選擇一個正確答案代碼(A/B/C/D/E),填入每題的括號內(每題1.5分,共30分) 1.下列計算機設備中,既是輸入設備,又是輸出設備的是( )。 A)鍵盤 B)觸摸屏 C)掃描儀 D)投影儀 E)數字化儀 2.下列分辨率的顯示器所顯示出的圖像,最清晰的是( )。 A)800*600 B)1024*768 C)640*480 D)1280*1024 E)800*1000 3.下列說法中,正確的是( )。 A)在內存中,可執行程序用二進制碼表示,源程序用八進制表示。 B)程序和數據在內存中都是用二進制碼表示的。 C)內存中數據的存取是以二進制位為單位的。 D)中央處理器CPU執行的每條指令的長度都不同。 E)一般來說,在計算機內部,中文信息用十六進制表示,英文信息用八進制表示。 4.下列說法中,錯誤的是( )。 A)程序是指令的序列,它有三種結構:順序、分支和循環。 B)地址總線決定了中央處理器CPU所能訪問的最大內存空間的大小。 C)中央處理器CPU內部有寄存器組,用來存儲數據。 D)不同廠家生產的CPU所能處理的指令集不一定相同。 E)數據傳輸過程中不可能會出錯。 5.CPU訪問內存的速度比訪問下列哪個存儲設備要慢( )。 A)寄存器 B)硬盤 C)軟盤 D)磁帶 E)光盤 6.下列電子郵件地址,正確的是( )。 A)wang@ B)[email protected]@rf.edu.jp C)162.105.111.22 D)ccf. E)http://www. 7.數字圖像文件可以用下列哪個軟件來編輯( )。 A)畫筆(Paintbrush) B)記事簿(Notepad) C)Recorder D)WinRAR E)MidiSoft 8.下列哪個軟件不是操作系統軟件的名字( )。 A)Windows XP B)DOS C)Linux D)OS/2 E)Arch/Info 9.下列哪個不是個人計算機的硬件組成部分( )。 A)主板 B)操作系統 C)電源 D)硬盤 E)軟驅 10.圖靈(Alan Turing)是( )。 A)美國人 B)英國人 C)德國人 D)匈牙利人 E)法國人 11.第一個給計算機寫程序的人是( )。 A)Alan Mathison Turing B)Ada Lovelace C)John von Neumann D)John McCarthy E)Edsger Wybe Dijkstra 12.十進制數2003等值于二進制數( )。 A)11111010011 B)10000011 C)110000111 D)010000011l E)1111010011 13.運算式(2008)10-(3723)8的結果是( )。 A) (-1715)10 B) (5)10 C) (-5)16 D) (111)2 E) (3263)8 14.下列關于程序語言的敘述,不正確的是( )。 A)編寫機器代碼不比編寫匯編代碼容易。 B)高級語言需要編譯成目標代碼或通過解釋器解釋后才能被CPU執行。 C)同樣一段高級語言程序通過不同的編譯器可能產生不同的可執行程序。 D)匯編代碼可被CPU直接運行。 E)不同的高級語言語法略有不同。 15.假設A=true,B=false,C=true,D=true,邏輯運算表達式A∧B∨C∧D的值是( )。 A)true B)false C)0 D)1 E)NULL 16.一個高度為h的二叉樹最小元素數目是( )。 A)2h+l B)h C)2h-1 D)2h E)2h-l 17.已知隊列(13,2,11,34,41,77,5,7,18,26,15),第一個進入隊列的元素是13,則第五個出隊列的元素是( )。 A)5 B)41 C)77 D)13 E)18 18.下列關于文件的敘述,不正確的是( )。 A)一個可執行程序其實也是一個文件。 B)文件可大可小,大的文件一張軟盤裝不下。 C)一個文件夾下面可以有兩個同名的文件,只要它們的大小不同就行了。 D)文件的創建日期和最新修改日期可以在資源管理器中看到。 E)某些文件的內容可以用記事本(Notepad)看到。 19.活動硬盤的容量比固定硬盤的容量( )。 A)大 B)小 C)相等 D)不一定大 E)大致相等 20.IP地址是一個( )位二進制碼。 A)8 B)16 C)32 D)64 E)12二.問題求解(每題5分,共10分) 1.現在市場上有一款汽車A很熱銷,售價是2萬美元。汽車A每加侖汽油可以行駛20英里。普通汽車每年大約行駛12000英里。油價是每加侖1美元。不久我公司就要推出新款節油汽車B,汽車B每加侖汽油可以行駛30英里。現在我們要為B制定價格(它的價格略高于A):我們預計如果用戶能夠在兩年內通過節省油錢把B高出A的價錢彌補回來,則他們就會購買B,否則就不會購買B。那么B的最高價格應為 萬美元。 2.無向圖G有16條邊,有3個4度頂點、4個3度頂點,其余頂點的度均小于3,則G至少有 個頂點。三.閱讀程序(每題8分,共32分)1.program Programl; var a,x,y,okl,ok2:integer; begin a :=100: x:=l0; y:=20; okl:=5: ok2:=0; if ((x>y) or ((y<>20) and (okl=0)) and (ok2<>0)) then a:=1 else if ((okl<>0) and (ok2=、0)) then a:=-1 else a:=0; writeln(a); end.輸出: 2.program Program2; var a,t:string; i,j:integer; begin a:=`morning`; j:= l; for i:=2 to 7 do if (a[j] j:= i; j:= j-1; for i:=1 to j do write (a[i]); end.輸出: 3.program Program3; Var a,b,c,d,sum:longint; begin read (a,b,c,d); a:=a mod 23: b:=b mod 28; c:=c mod 33; sum:=a*5544+b* 14421+c*1288-d; sum:=sum+21252; sum:=sum mod 21252; if (sum=0)then sum:=21252; writeln(sum); end.輸入:283 102 23 320 輸出: 4.program program4; var a: array[0..5] of integer; sum,n,max,i,j,k:integer; cover:array[0..22000]of boolean; begin read (a[5],a[4],a[3],a[2],a[1],a[0]); if ((a[5]=0) and (a[3]=0) and (a[1]=0)) then begin a[5]:=a[4];a[4]:=a[2]; a[3]:=a[0]; a[2]:=0 a[0]:=0; end: for i:=0 to 5 do if (a[i]>10) then a[i]:=10+(a[i] mod 2); sum:=0: for i:=0 to 5 do sum:=sum+a[i]*(6-i); if ((sum mod 2) <>0) then begin writeln(`Can``t be divided.`); Exit; End; sum:=sum div 2; max:=0; cover[0]:=True; for i:=1 to sum*2 do cover[i]:=False; for i:=0 to 5 do begin j:=0; while (j begin for k:=max downto 0 do begin if (cover[k]) then cover[k+6-i]:=True;end; max:=max+6-i: j:=j+1; end; end; if (cover[sum]) then writeln (`Can be divided.`) else writeln(`can``t be divided.`); end.輸入:4 7 9 20 56 48 輸入:1000 7 101 20 55 1 輸入:2000 5 l 1 0 0輸出: 輸出: 輸出: 四、完善程序(第l空2分,其余每空3分共28分) 1.一元二次方程 題目描述: 方程ax^2+bx+c=0,要求給出它的實數解. 輸 入: 三個實數:a,b,c,是方程的三個系數(a≠0). 輸 出: 如果無實數解,則輸出"No solution"; 如果有兩個相等的實數解,則輸出其中一個,四舍五入到小數點后面3位; 如果有兩個不等的實數解,則解與解之間用逗號隔開,同樣要四舍五入到小數點后3位。 輸入樣例: l 2 1 輸出樣例: -1.000 程 序: program Program41; var a,b,c,m:real; begin read (a,b,c); m:=b*b -4*a*c; if ( ① )then begin write ( ② :0:3); write( ` , ` ); write ((-1*b-sqrt(m))/(2*a):0: ③ ); end else if ( ④ )then write( ⑤ ) else begin write (`No solution`); end end. 2.翻硬幣 題目描述: 一摞硬幣共有m枚,每一枚都是正面朝上。取下最上面的一枚硬幣,將它翻面后放回原處。然后取下最上面的2枚硬幣,將他們一起翻面后再放回原處。再取3枚,取4枚……直至m枚。然后再從這摞硬幣最上面的一枚開始,重復剛才的做法。這樣一直做下去,直到這摞硬幣中的每一枚又都是正面朝上為止。例如,m為1時,翻兩次即可。m為2時,翻3次即可;m為3時,翻9次即可;m為4時,翻11次即可;m為5時,翻24次即可;…;m為30時,翻899次即可;… 輸 入: 僅有的一個數字是這摞硬幣的枚數m,0 輸 出: 為了使這摞硬幣中的每一枚又都是正面朝上所必需翻的次數。 輸入樣例: 30 輸出樣例: 899 程 序: program Programl; var m:integer; function solve (m:integer):integer; vat i,t,d:integer; flag:boolean; begin if (m=1)then so1ve:= ① else begin d:=2*m+1; t:= 2; i:= 1; flag:=False; repeat if (t=1)then begin solve:= ② flag:=True; end else if ( ③ )then begin solve:=i*m-1; flag:=True; end else t:= ④ ; i:=i+1; until flag; end end; begin read (m); if ((m>0) and (m<1000)) then writeln ( ⑤ ); end.參考答案一、 選擇一個正確答案代碼(A/B/C/D/E),填入每題的括號內(每題1.5分,多選無分,共30分)題號 1 2 3 4 5 6 7 8 9 10選擇 B D B E A A A E B B題號 11 12 13 14 15 16 17 18 19 20選擇 B A B D A B B C D C二.問題解答(每題5分,共10分) 1.答: 2.04 2.答: 11三.閱讀程序,并寫出程序的正確運行結果: (每題8分,共32分) ?。?)程序的運行結果是:-1 (2)程序的運行結果是;mo ?。?)程序的運行結果是:8910 (4)程序的運行結果是:Can't be divided Can be divided Can't be divided四.根據題意,將程序補充完整(第1空2分,其余每空3分 共28分) 題一 ?、?m>0 ?、?(-l*b+sqrt(m))/(2*a); ③ 3 ?、?ABS(M)<0.0001 ?、?-1*b/(2*a):0:3 題二 ?、?2 ?、?i*m ?、?t=2*m ?、?(t*2)mod d ⑤ solve(m) 展開更多...... 收起↑ 資源預覽 縮略圖、資源來源于二一教育資源庫