pascal 语言练习题

pascal 语言练习题

ID:13430925

大小:367.00 KB

页数:26页

时间:2018-07-22

上传者:U-3743
pascal 语言练习题_第1页
pascal 语言练习题_第2页
pascal 语言练习题_第3页
pascal 语言练习题_第4页
pascal 语言练习题_第5页
资源描述:

《pascal 语言练习题》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

呼家庄中学信息学奥赛练习题Pascal语言练习题一、Pascal语言1.Pascal语言规定,程序一律以保留字___________开始,作为程序标志。5.结构化程序设计的3种基本结构是_________、_________、_________。9.表达式PRED(CHR(ORD(′E′)+1))的值为___________。11.将一万分之一写成Pascal数的形式应为___________。14.Pascal语言的数据类型按其特点可分3大类,即_____________类型,___________类型和___________类型。15.将65526.0034写成Pascal数的形式应为___________。22.表达式ORD(′6′)>=ORD(6)的值是___________。二、基本语句和顺序结构1.请写出把256.0赋给整型变量I的赋值语句是___________。2.设I为整型变量,L为布尔型变量(l:boolean),odd函数是判断一个数是否为奇数,如odd(5)=true,语句L:=ODD(I)ORODD(I+1);执行后L的值为___________。3.以下程序的运行结果为___________。PROGRAMEX(OUTPUT);VARA,B,C,N,SUM:INTEGER;BEGINN:=126;A:=NDIV100;B:=(N-A*100)DIV10;C:=N-A*100-B*10;SUM:=A+B+C;WRITELN(′SUM=′,SUM:3)END.4.有以下程序:PROGRAMP1(input,output);VARch:char;BEGINREADLN(ch);writeln(pred(pred(ch)),pred(ch),ch,succ(ch),succ(succ(ch)))END.假设输入字母C,则输出为___________。6.表达式trunc(-sqrt(sqr(17MOD5)*2*(15DIV2)+sqr(1/2)))的值是__________。7.设变量说明如下:VARch1,ch2,ch:char;i1,i2:integer;r1,r2:real;现在要把值A,b,15,128,2.3E-5,-18.96依次赋给变量ch1,ch2,i1,i2,r1,r2,设输入数据格式为:abl5:1282.3E-5-18.96;请写出读语句___________。8.以下程序段的作用是:将读入的一个三位数字的正整数反向输出。如输入123,则输出321,请填空:PROGRAMexa(input,output);VARm,a,b,c,x:integer;BEGINreadln(m);a:=___________;b:=___________MOD10;c:=mDIV100;x:=a*100+b*10+c;writeln(x)END.三、选择语句1.阅读下面程序体,其运行结果是___________。A:=5;B:=4;C:=3;IFODD(PRED(4))THENA:=B+C;A:=A-C;WRITELN(A);2.以下程序段将A,B,C三个数,按由小到大的顺序输出。请在空内填上正确的内容。READLN(A,B,C);IFA>BTHENBEGINTEMP:=A;A:=B;B:=TEMPEND;IF___________THENBEGINTEMP:=A;A:=C;C:=TEMPEND;IF___________THENBEGINTEMP:=B;B:=C;C:=TEMPEND;WRITELN(A:3,B:3,C:3)3.有下列两个IF语句:IFA>BTHENX:=1ELSEX:=2;IFA<=BTHENREAD(Y)ELSEREAD(Z);将它们合并成与上面两个IF语句功能完全相同的一个不嵌套IF语句:IFA>BTHEN___________;26 呼家庄中学信息学奥赛练习题ELSE;___________;4.以下程序段执行后,DATA的值是___________。L1:=FALSE;L2:=TRUE;L3:=FALSE;DATA:=0;IFL1THENDATA:=5ELSEIFNOTL2THENELSEIFNOTL3THENDATA:=10ELSEDATA:15;5.以下程序从键盘读入一个三位数的正整数,然后将其反向输出。如输入456,输出654.请在空白处填入正确内容。PROGRAMTURNOVER(INPUT,OUTPUT);VARX,Y,A,B,C:INTEGER;BEGINWRITELN(′INPUTANUMBERX(100=1000)THENWRITELN(′INPUTERROR!′)ELSEBEGINA:=XDIV100;B:=___________;C:=XMOD10;Y:=___________;WRITELN(X,′TURNOVERIS:′,Y)ENDEND.6.以下程序实现了将24小时制表示的时间转换为12小时制表示的时间。如:输入1325(13点25分),则输出1:25PM。请在___________。处填入正确内容。PROGRAMEXCHTIME(INPUT,OUTPUT);VARTIME,HOUR,MINUTES:INTEGER;BEGINREADLN(TIME);HOUR:=___________MOD12;IFHOUR=0THENHOUR:=12;WRITE(HOUR:2,′:′);MINUTES:=___________;WRITE(MINUTES:2);IF(TIME<1200)OR(TIME=2400)THENWRITELN(′AM′)ELSEWRITELN(′PM′)END.7.以下程序实现:输入一个日期,计算出是星期几,请在空白处填入正确内容。PROGRAMCOUNTWEEK(INPUT,OUTPUT);VARDAY,MONTH,YEAR,M,Y,SUM,WEEK:INTEGER;LEAP:BOOLEAN;BEGINREADLN(DAY,MONTH,YEAR);Y:=YEAR-1;Y:=Y+YDIV4-YDIV100+YDIV400;CASEMONTHOF1,10:M:=0;5:M:=1;8:M:=2;2,3,11:M:=3;6:M:=4;9,12:M:=5;4,7:M:=6;END;SUM:=Y+M+DAY;{总天数}IF((YEARMOD4=0)___________(YEARMOD100<>0)___________(YEARMOD400=0))AND(MONTH>2)THENSUM:=SUM+1;{闰年加一天}WEEK:=SUMMOD7;CASE___________OF0:WRITELN(′SUNDAY′);1:WRITELN(′MONDAY′);2:WRITELN(′TUESDAY′);3:WRITELN(′WEDNESDAY′);4:WRITELN(′THURSDAY′);5:WRITELN(′FRIDAY′);6:WRITELN(′SATURDAY′)ENDEND.8.下列程序段计算1~100中既不能被3整除,也不能被4整除的所有整数之积,请填写完全。p:=1FORi:=1TO100D0IF(iMOD3<>0)AND(iMOD4<>0)THEN___________;9.本程序是在3个整数中找出最大的数,并输出到屏幕上。分析下面的程序,填上适当的内容。PROGRAMexa(input,output);VARa,b,c,largest:integer;BEGINwriteln(′inputa,b,c=′);readln(a,b,c);IFa>bTHENlargest___________;ELSElargest___________;IFc>___________THENlargest:=c;write1n(′The1argestnumberis′,largest)END.四、循环语句1.设A=TRUE,B=FALSE,I=1,且C为布尔类型变量,则循环语句FORC:=BTOADOI:=I+2;执行后,变量I的值为___________。2.以下程序段计算1~50中既不能被3整除也不能被5整除的所有整数之积。请在空格内填入适当内容。R:=1;26 呼家庄中学信息学奥赛练习题FORI:=1TO50DOIF(IMOD3<>0)AND(IMOD5<>0)THEN___________;3.以下程序段用以找出满足的最大整数N,其中A,B都是正整数,且B>1。请在空格内填上正确的内容。READLN(A,B);N:=0;MULT:=1;WHILEMULT<=ADOBEGINN:=N+1;MULT:=___________END;___________WRITELN(′LARGESTNIS:′,N:1)4.以下程序实现从键盘读入10个无序数,去掉一个最大数和一个最小数然后求平均值,请在___________处填入正确内容。PROGRAMCOUNTAVE(INPUT,OUTPUT);VARI,MAX,MIN,X,SUM:INTEGER;AVE:REAL;BEGINREADLN(X);MAX:=X;MIN:=X;SUM:=X;FORI:=1TO9DOBEGINREADLN(X);SUM:=SUM+X;IFXMAXTHEN___________END;SUM:=SUM-MAX-MIN;AVE:=SUM/8.0;WRITELN(′THEAVERAGEIS:′,AVE:5:1)END.5.下面语句执行的循环次数是___________。T:=7;REPEATT:=2*T-3;UNTILT<>0;6.设CH为字符型变量,NUM为整型变量,若输入数据为:121123<回车>执行以下程序段的结果为___________。NUM:=0;READ(CH);WHILE(CH>=′0′)AND(CH<=′9′)DOBEGINNUM:=10*NUM+(ORD(CH))-ORD(′0′);READ(CH)END;WRITELN(NUM);7.以下程序用以找出被2,3,5除余数为1的前10个自然数,请在_________处填入正确内容。PROGRAMTENNUMBER(OUTPUT);VARNUM,COUNT:INTEGER;BEGINCOUNT:=0;NUM:=___________REPEATNUM:=___________IF(NUMMOD2=1)AND(NUMMOD3=1)AND(NUMMOD5=1)THENBEGINWRITE(NUM:4);COUNT:=COUNT+1END;UNTIL___________WRITELNEND.8.以下循环语句所执行的循环次数为___________。L1:=TRUE;L2:=FALSE;FORI:=L1TOL2DOWRITELN(I);9.设有说明:VARSUM,N,M,I:INTEGER;若输入数据行为:41326395<回车>则执行以下程序段的结果为___________。SUM:=0;READ(N);FORI:=1TONDOBEGINREAD(M);IFODD(M)THENSUM:=SUM+1ELSESUM:=SUM+MDIV2;END;WRITELN(SUM);10.以下程序的运行结果为___________。PROGRAMEX(OUTPUT);VARX,Y:INTEGER;BEGINX:=0;Y:=1;REPEATX:=X+Y;Y:=Y+1;UNTILX>=10;WRITELN(X:3,Y:3)END.11.以下程序段的执行结果为___________。FORI:=7DOWNTO3DOCASEIDIV2OF1,3:WRITE(′A′);2:WRITE(′B′)END;12.以下程序的运行结果为___________。26 呼家庄中学信息学奥赛练习题PROGRAMEX(INPUT,OUTPUT);VARX,Y:INTEGER;BEGINX:=1;WHILEX>0DOBEGINREAD(X);READ(Y);X:=X-Y;WRITE(X:2);END;WRITELNEND.运行时输入:210-155<回车>13.下面程序的运行结果是___________。PROGRAMlcd(output);VARM,n:Integer;BEGINM:=14;N:=63;WHILEm<>nDOBEGINWHILEm>nDOM:=m-n;WHILEn>mDON:=n-m;END;Writeln(m);END.14.以下程序段实现计算公式:请在空白处填上正确的内容。SUM:=1.0I:=1;REPEATI:=I+1;SUM:=SUM+___________UNTIL___________WRITELN(′SUM=′,SUM:6:4)15.以下程序的运行结果为___________。PROGRAMEX(OUTPUT);VARX,K:INTEGER;BEGINX:=5;FORK:=1TO10DOX:=X+K;WRITELN(K:4,X:4)END.16.下面Pascal循环语句所执行的循环次数是___________。N:=1REPEATWRITELN(′TESTING...′);N:=N+2;UNTILN=10;17.以下程序段用以找出乘积为399的两个相邻奇数,请在空白填上正确的内容。N:=1;WHILE___________<399DON:=N+2;IF___________=399THENWRITELN(N:3,N+2:3)ELSEWRITELN(′NOFOUND′)18.下面Pascal循环语句所执行的循环次数是___________。X:=32;Y:=2;WHILEY<=32DOY=Y+Y;19.若运行时输入以下指定数据,则程序的运行结果为___________。PROGRAMEX(INPUT,OUTPUT);VARNUM:INTEGER;CH:CHAR;BEGINREPEATREAD(CH)UNTIL(CH<>′′);NUM:=0;REPEATIF(CH>=′0′)AND(CH<=′9′)THENNUM:=16*NUM+ORD(CH)-ORD(′0′)ELSEIF(CH>=′A′)AND(CH<=′F′)THENNUM:=16*NUM+ORD(CH)-ORD(′A′)+10ELSEWRITELN(′INPUTERROR!′);READ(CH)UNTILNOT((CH>=′0′)AND(CH<=′9′)OR(CH>=′A′)AND(CH<=′F′));WRITELN(NUM:5)END.输入数据(第一列开始):1C<回车>20.本程序是用来输入一组学生的成绩(当成绩为负表示输入结束),并按成绩0~59、60~79、80~100分为三档,统计并输出三档次人数及总人数。阅读下面的程序,在空白处填上适当的内容。PROGRAMexaml(input,output);VARp,n1,n2,n3,sum,score:integer;BEGINn1:=0;n2:=0;n3:=0;sum:=0;REPEATwriteln(′pleaseinputscore:′);readln(score);IFscore>=026 呼家庄中学信息学奥赛练习题THENBEGINIF___________80THENP:=1ELSEIF(2)___________60THENp:=2ELSEp:=3;sum:=sum+1;CASE(3)___________OF1:n1:=n1+1;2:n2:=n2+1;3:n3:=n3+1___________END;__________writeln(′thescore0~59:′,n3);writeln(′thescore60~79:′,n2);writeln(′thescore80~100:′,nl);writeln(′thesumis′,sum)END.21.下面程序执行后显示abab,请填空。PROGRAMp(output);VARa:(r1,r2,r3,r4);BEGINa:=r1;WHILEa<=r4DOBEGINCASEaOF___________:write(′a′);___________:wr1te(′b′);END;a:=___________END;writelnEND.22.下面程序计算并输出下式中s的值。请填空完成该程序。PROGRAMEX(input,output);VARk,n:integer;s,r:real;BEGINs:=___________;FORk:=2to20DOBEGINr:=0;FORn:=1TO(2)___________DOr:=r+ln(n);s:=s+(3)___________;END;writeln(s:10:3)END23.下列程序段计算1~100中既不能被3整除,也不能被4整除的所有整数之积。请填写完全。p:=1;FORi:=1TO100DOIF(iMOD3<>0)AND(iMOD4<>0)THEN___________;Writeln(p)24.从键盘输入两个数x1,x2,判断它们是否互质。判断两数是否互质的方法是设大数为x1,小数为x2,如果x1/x2为整数,则非互质;如果x2和x1能同时被2~x2/2间任一整数整除,则x1和x2也非互质,其他情况均为互质。PROGRAMsj(input,output);VARx1,x2,t,n,i:integer;yes:boolean;BEGINwrite(′pleaseinputx1,x2:′);readln(x1,x2);IF___________THENBEGINt:=x1;x1:=x2;x2:=tEND;yes:=true;IF(xlMODx2)=0THENyes:=falseELSEBEGINn:=x2DIV2;FORi:=2TO___________DOIF___________THENyes:=falseEND;IF___________THENwriteln(′theyaremutualprimenumbers′){x1,x2互质}ELSEwriteln(′theyarenotmutua1primenumbers′){x11,x2非互质}END.25.有一个数列,其第1和第2个数都是大于0的一位整数,将这两个数相乘得乘积x,若x<10,则x为数列的第3个数;若x>=10,则把x的十位数作为数列的第3个数,x的个位数作为数列的第4个数,再把已形成的数列的最后两个数相乘,按上述规则构成后面的数,依此类推。例如若前两个数是6,3,则数列为:6,3,1,8,8,6,4,2,4,8,3,2,6,1,2,2,4,8,3,2,6….下面的程序以6,3为前两个数,产生并输出此数列的前n个数(n由键盘输入)。请填空完成。PROGRAMp(input,output);VARa,b,k,n,x:integer;BEGINreadln(n);a:=6;b:=3;k:=2;write(a:3,b:3);REPEATx:=a*b;26 呼家庄中学信息学奥赛练习题IFx>=10THENBEGINa:=___________;b:=___________;k:=k+2;write(a:3);IF___________THENwrite(b:3);ELSEBEGINa:=b;b:=x;k:=k+1;write(x:3);ENDUNTIL___________writelnEND.26.求具有下列两个性质的最小自然数n:(1)n的个位数是6;(2)如果将n的个位数字6移到其余各位数字之前,所得新数是n的4倍。PROGRAMex(output);VARn,m6,temp:integer;BEGINn:=6;temp:=0;WHILE(temp<>4*n)AND(n2THENBEGINFLOWER:=RED;IFSUCC(BLUE)=GREENTHENSKY:=BLUEELSEFLOWER:=WHITEENDELSEBEGINSKY:=WHITE;FLOWER:=PRED(BLZCK)END;CASESKYOFBLUE:WRITELN(′BLUE′);WHITE:WRITELN(′WHITE′)ENDCASEFLOWEROFRED:WRITELN(′RED′);WHITE:WRITELN(′WHITE′);PURPLE:WRITELN(′PURPLE′)ENDEND.3.请将下面程序补充完整。PROGRAMWEEKDAYS(OUTPUT);VARWD:(SUN,MON,TUE,WED,THU,FRI,SAT);BEGIN___________CASE___________OFSUN:WRITELN(′SUNDAY′);MON:WRITELN(′MONDAY′);TUE::WRITELN(′TUESDAY′);WED:WRITELN(′WEDNESDAY′);THU:WRITELN(′THURSDAY′);FRI:WRITELN(′FRIDAY′);SAT:WRITELN(′SATURDAY′)___________END.4.设有如下的类型定义和变量说明:TYPECOLOR=(RED,YELLOW,BLUE,GREEN,BLACK,WHITE,ORANGE);VARI:INTEGER;FLAG:COLOR;并且FLAG:=BLUE;则语句FORI:=ORD(FLAG)TO5DOWRITELN(′HELLO′);将执行循环体___________次。5.由5个字符组成的标识符,规定其第1~4个字符为小写元音字母(a,e,i,o,u),第五个字符为0~9之间的数字字符。本程序是用来计算这样的标识符有多少种不同排法。请填空完成该程序。PROGRAMexam4(input,output);TYPEch:(a,e,i,o,u);num:0..9;VARc1,c2,c3,c4,c5:___________n0,n9:num;count:integer;BEGINc5:=un9:=9count___________FORc1:=aTOc5DOFORc2:=aTOc5DOFORc3:=aTOc5DOFORc4:=aTOc5DOFORn0:=0TO___________count___________;writeln(count)END.六、数组1.有如下程序PROGRAMLANG(INPUT,OUTPUT);CONSTC=′Pascal′;26 呼家庄中学信息学奥赛练习题VARA:PACKEDARRAY[1..6]OFCHAR;I:INTEGER;BEGINA:=C;FORI:=3TO6DOREAD(A[I]);WRITELN(A)END.执行时输入FORTRAN<回车>,输出结果为___________。2.设有TYPEMAT=ARRAY[1..5,1..5]OFREAL;VARM:MAT;用以下过程求M矩阵的转置矩阵MT,请在空白内填入适当内容。PROCEDURETRANSFOR(M:MAT;VARMT:MAT);VARI,J:INTEGER;BEGINFORI:=1TO10DOFORJ:=1TO10DOMT[I,J]:=___________END;3.若运行时输入以下指定数据,则程序的运行结果为___________。PROGRAMEX(INPUT,OUTPUT);CONSTN=6;TYPECOLARR=ARRAY[1..N]OFINTEGER;VARA:COLARR;I,J,P,T:INTEGER;BEGINFORI:=1TONDOREAD(A[I]);READLN;FORJ:=1TON-1DOBEGINP:=J;FORI:=JTONDOIFA[I]4.设有二维数组AR:123…10246…20102030…100对该二维数组元素求和的程序段如下:Sum:=0;FORI:=1TO_10__________DOFORj:=___1________TO10DOSum:=sum+__a[I,j]_________;Writeln(′Theresultis:′,_sum____)5.以下程序实现从终端按行读入一个4*4的二维数组,分别求出其主,次对角线上元素之和,其中变量SUMZ用从累加主对角线元素的和,SUMC用以累加次对角线元素之和。请在空白处填入正确内容。PROGRAMEX(INPUT,OUTPUT);VARA:ARRAY[1..4,1..4]OFINTEGER;N,M,SUMZ,SUMC:INTEGER;BEGINFORN:=1TO4DOFORM:=1TO4DOREADLN((1)___________);SUMZ:=0;SUMC:=0;FORN:=1TO4DOBEGINSUMZ:=SUMZ+[(2)___________];M:=[(3)___________];SUMC:=SUMC+A[N,M]END;WRITELN(SUMZ:3,SUMC:3)END.6.若运行时输入以下指定数据,则程序的运行结果为___________。PROGRAMEX(INPUT,OUTPUT);VARI,J,N,TEMP:INTEGER;A:ARRAY[1..100]OFINTEGER;FLAG:BOOLEAN;BEGINREAD(N);FORI:=1TONDOREAD(A[I]);READLN;FLAG:=TRUE;I:=1WHILE(I<=N-1)ANDFLAGDOBEGINFLAG:=FALSE;FORJ:=1TON-1DOIFA[J]>A[J+1]THENBEGINTEMP:=A[J];A[J]:=A[J+1];A[J+1]:=TEMP;FLAG:=TRUEEND;I:=I+1END;FORI:=1TONDOWRITE(A[I]:2);WRITELNEND.26 呼家庄中学信息学奥赛练习题输入数据:6172367<回车>7.程序COUNT用以统计一个句子中的词数,句子放在字符数组C中,长度不超过80,以′.′表示结束。要求打印出词数及每个词的长度(字符个数),允许空语句。例:语句为:THISISAPROGRAM.输出为:WORDNO.1LENGTH=4WORDNO.2LENGTH=2WORDNO.3LENGTH=1WORDNO.4LENGTH=7NUMBEROFWORDSIS4请在空白处填入正确内容。PROGRAMCOUNT(INPUT,OUTPUT);VARC:PACKEDARRAY[1..80]OFCHAR;I,K,L:INTEGER;BEGINWRITE(′INPUTASTRING:′);I:=0;WHILENOTEOLNDOBEGINI:=I+1;READ(C[I]);END;READLN;K:=0;I:=1;WHILEC[I]<>′.′DOBEGINWHILEC[I]=′′DOI:=I+1;L:=0;WHILE(C[I]<>′′)AND(C[I]<>′.′)DOBEGINI:=I+1;[(1)_l:=l+1__________]END;IFL>0THENBEGIN[(2)___________];WRITELN(′WORDNO.′,K:2,′LENGTH=′,L:2)ENDEND;IFK>0THENWRITELN(′NUMBEROFWORDSIS′,K:2)ELSEWRITELN(′NOWORDINTHESTATEMENT′)END.8.下面程序用冒泡排序法对有10个数据元素的数组进行排序,数据由键盘输入,并将排序后的结果输出。请将程序补充完整。PROGRAMEX(INPUT,OUTPUT);CONSTN=10;TYPECOLARR=ARRAY[1..N]OFINTEGER;VARA:COLARR;T,I,J:INTEGER;BEGINWRITELN(′INPUT10INTEGERNUM:′);FORI:=1TONDOREAD(A[I]);READLN;FORJ:=1TO(1)___________DOFORI:=1TO(2)___________DOIFA[I]>A[I+1]THENBEGIN___________;END;WRITELN(′OUTPUT:′);FORI:=1TONDOWRITE(A[I]:40);WRITELNEND.9.若运行时输入以下指定数据,则程序的运行结果为___________。PROGRAMEX(INPUT,OUTPUT);TYPEARR=ARRAY[1..8]OFINTEGER;VARA:ARR;I,N:INTEGER;PROCEDURESELECT(VARB:ARR;VARN:INTEGER);VARI,J:INTEGER;BEGINI:=0;FORJ:=1TONDOIFB[J]MOD2=0THENBEGINI:=I+1;B[I]:=B[J]END;N:=1END;BEGINN:=8;FORI:=1TONDOREAD(A[I]);READLN;SELECT(A,N);FORI:=1TONDOWRITE(A[I]:3);WRITELNEND.输入数据:12345678<回车>10.下面是输入一字符行然后按相反顺序输出的程序,请将程序填写完整。PROGRAMReveseLine(Input,Output);26 呼家庄中学信息学奥赛练习题CONSTMaxLineLength=80;VARline:ARRAY[1..MaxLineLength]OFChar;Count:0..MaxLineLength;Pos:1..MaxLineLength;BEGINCount:=___________;WHILENOTEolnDOBEGINCount:=count+1;Read(___________)END;FORpos:=___________DOWNTO___________DOWrite___________;WritelnEND.11.下面的程序可以输出下面图示结果,请填空完成。0001000001010001000101000001PROGRAMEX(OUTPUT);TYPEARR=ARRAY[1..4,1..7]OFINTEGER;VARA:ARR;X,Y:INTEGER;BEGINFORX:=1TO4DOFORY:=1TO7DOIF(___________=5)OR(___________=3)THENA[X,Y]:=1ELSEA[X,Y]:=0;FORX:=1TO4DOBEGINFORY:=1TO7DOWRITE(A[X,Y]:3);WRITELNENDEND.12.有如下程序:PROGRAMexp(INPUT,OUTPUT);LABELl0,20;VARm:ARRAY[1...3,1...3]OFINTEGER;i,j,k:INTEGER;BEGINFORi:=1TO3DOFORj:=1TO3DOm[i,j]:=i+(j-1)*3;10:FORi:=1T02DO20:FORj:=i+1TO3DOBEGINk:=m[i,j];m[i,j]:=m[j,i];m[j,i]:=kENDEND.请回答下列问题:在执行语句10之前,数组m的第一行元素的值是___________。在程序执行完毕后,数组m第一行元素的值是___________。若将程序中标号为10,20的语句改为:10:FORi:=1TO3DO20:FORj:=1T03DO则程序执行后,m数组的第一行结果是___________。13.本程序对给定的n(n<=80),计算并打印i!(i=1,2,…,n)的全部有效数字。因i!的值可能很大,故采用一维数组形式存储计算的结果。例如:7!=5040存储成(如下所示):计算阶乘时采用以加法e代替乘法的方法。例如:5!=120,计算6!时采用把原120再加5次120得到720的方法。PROGRAMfac(input,output);CONSTmax=120;TYPEnumber=ARRAY[1..max]OFinteger;VARa,b:number;i,j,m,k,r,n:integer;BEGINwriteln(′Enterthenumbern:′);read(n);FORi:=2TOmaxDO__________a[1]=1;writeln(′1!=′,a[i]);iFORj:=1TO___________DOBEGINFORi:=1TOmaxDOb[i]:=a[i];FORm:=1TOjDOFORi:=1tomaxDOBEGINr:=a[i]+b[i];IF___________THENa[i+1]:=___________;a[i]=rMOD10END;k:=max;WHILEa[k]=0DO___________;write((j+l):2,′!=′);FORi:=kDOWNTO1DOwrite(a[i]:1);writelnENDEND14.下面的程序从键盘接收任意6个数置放入数组a中,假设这6个数为:814256,则可输出一个具有如下内容的方阵。81425668142556814225681442568126 呼家庄中学信息学奥赛练习题142568PROGRAMexam(input,output);VARa:ARRAY[1..6]OFinteger;i,j,k:integer;BEGINFORi:=1TO6DOread(___________);readlnFORi:=1TO6DOBEGINIFi=1THENk:=1ELSEk:=___________;FORj:=1TO___________DOBEGINwrite(a[k]:2);IFk=6THENk:=1ELSEk:=___________END;writelnENDEND.15.下面的程序将n个学生的英文成绩从键盘输入,按0~59分,60~69分,70~79分,80~89分,90~100分的成绩组并统计人数。PROGRAMEX(input,output);CONSTn=20;VARi,k:integer;s:AHRAY[1..5]OFinteger;a:ARRAY[1..n]OFinteger;BEGINFORi:=1TO___________DOs[i]:=0;FORi:=1TO___________DOBEGIN___________;IFa[i]>=90THENk:=1ELSEIFa[i]>=80THENk:=2ELSEIFa[i]>=70THENk:=3ELSEIFa[i]>=60THENk:=4ELSEk:=5;s[k]:=___________END;readln;FORi:=1TO5DOwrite(s[i]:3);writelnEND.七、函数与过程1.在Pascal程序中,过程参数有值参数,变量参数两种方式,其中变量参数传递___________。2.已知程序中有如下函数说明:FUNCTIONF(A,B,C:INTEGER):INTEGER;BEGINF:=3*A+4*BDIVCEND;则:执行语句K:=F(1,2,3)后K的值是___________。执行语句K:=F(1,2,1)-F(0,1,1)后K的值是___________。执行语句K:=F(1,F(1,2,3),-1)后K的值是___________。3.若运行时输入以下指定资料,则程序的运行结果为___________。PROGRAMEX(INPUT,OUTPUT);VARCH:CHAR;FLAG:BOOLEAN;FUNCTIONCHANG(VARCH:CHAR;FLAG:BOOLEAN):BOOLEAN;BEGINIFCH:=′′THENCHANG:=TRUEELSEIF(FLAGAND(CH>=′a′)AND(CH<=′z′))THENBEGINCH:=CHR(ORD(CH)+ORD(′A′)-ORD(′a′));CHANG:=FALSEENDELSECHANG:=FALSEEND;BEGINFLAG:=TRUE;REPEATREAD(CH);FLAG:=CHANG(CH,FLAG);WRITE(CH)UNTILCH=′.′END.输入资料:Thisisaexample.<回车>4.已知函数说明如下:FUNCTIONFUN(N:INTEGER):INTEGER;BEGINIFN=0THENFUN:=0ELSEIFN>0THENFUN:=FUN(N-2)ELSEFUN:=FUN(N+3)END;则函数调用FUN(5)的值为(1)________,它共执行了(2)_______次函数体,FUN(FUN(-2))的值为(3)_________,它共执行了(4)___________次函数体。5.Pascal语言中的形式参数分为值参数和变量参数,其中__________的改变不会影响实参的值。6.设有一函数子程序定义如下:FUNCTIONFUN(X,Y,Z:INTEGER):INTEGER;BEGINFUN:=Z-YDIVX;END;26 呼家庄中学信息学奥赛练习题执行语句M:=FUN(FUN(2,4,6),6,8)后变量M的值是___________。7.以下程序的运行结果为___________。PROGRAMREL(OUTPUT);FUNCTIONP(X,N:INTEGER):INTEGER;BEGINIFN=0THENP:=1ELSEIFODD(N)THENP:=X*SQR(P(X,NDIV2))ELSEP:=SQR(P(X,NDIV2))END;BEGINWRITELN(P(2,3))END.8.在Pascal语言中,过程和函数统称为子程序,说明函数使用保留字___________。程用保留字___________。9.设有以下函数说明:FUNCTIONDIGIT(NUM,POS:INTEGER):INTEGER;VARI:INTEGER;BEGINNUM:=ABS(NUM;)FORI:=1TOPOS-1DONUM:=NUMDIV10;DIGIT:=NUMMOD10END;则执行函数调用语句DIGIT(31965,2)后的函数值为(1)________。执行函数调用语句DIGIT(4650,6)后的函数值为(2)__________。10.以下程序的运行结果为___________。PROGRAMEX(OUTPUT);FUNCTIONA(M,N:INTEGER):INTEGER;VARX:INTEGER;BEGINIFM=0THENX:=N+1ELSEIFN=0THENX:=A(M-1,1)ELSEX:=A(M-1,A(M,N-1));A:=XEND;BEGINWRITELN(′A(1,2)=′,A(1,2):3)END.11.在程序开头说明部分说明的变量是___________。变量,在过程和函数说明部分说明的变量是___________变量。12.以下程序的运行结果为___________。PROGRAMEX(OUTPUT);FUNCTIONFAC(X:REAL;N:INTEGR):REAL;BEGINWRITELN(′X=′,X:4:1,′N=′:4,N:2);IFN=1THENFAC:=XELSEIFODD(N)THENFAC:=X*SQR(FAC(X,NDIV2))ELSEFAC:=X*FAC(X,NDIV2)END;BEGINWRITELN(FAC(2.0,7):5:1)END.13.以下程序的运行结果为___________。PROGRAMEX(OUTPUT);VARI,OUT:INTEGER;PROCEDURESOLUTE(K:INTEGER;VARL:INTEGER);BEGINIFK>=0THENL:=KELSEL:=-KEND;BEGINFORI:=-2TO2DOBEGINSOLUTE(I,OUT);WRITE(OUT:2)END;WRITELNEND.14.以下程序利用公式(如下所示),当两次求得的值误差小于0.00001时认为符合精度要求。请在空白处填入正确内容。PROGRAMEXPVALUE(INPUT,OUTPUT);FUNCTIONEXP(X,EP:REAL):REAL;VARS0,S1,T:REAL;N:INTEGER;BEGINS0:=0;N:=0;T:=1;S1:=T;WHILE___________DOBEGINS0:=S1;N:=N+1;T:=T*___________;S1:=S1+TEND;EXP:=___________END;BEGINWRITELN(′EXP(3)=′,EXP(3.0,1E-5):10:5)END.15.Pascal中值形参与变量形参的主要区别是:___________。的改变不影响实参的值,而___________。的改变影响实参的值。16.已有函数定义:26 呼家庄中学信息学奥赛练习题FUNCTIONFN(A,B,C:REAL):REAL;BEGINFN:=SIN(A)/(SIN(A-B)*SIN(A-C))END;请填写完整调用以函数计算M值的语句:调用语句M:=___________。17.设有以下递归子程序:FUNCTIONAER(S:INTEGER):INTEGER;VARM:INTEGER;BEGINIFS=0THENM:=3ELSEM:=AER(S-1);AER:=MEND;那么AER(3)的值是___________。18.有下列函数说明:FUNCTIONMYF(A,B,C:INTEGER):INTEGER;VART:INTEGER;BEGINA:=3*A;T:=BDIVC;MYF:=A+4*TEND;则表达式MYF(1,MYF(1,2,3),3)的值是___________。19.下面程序的运行结果是___________。PROGRAMmain(input,output);VARs,n:Integer;PROCEDUREsum;VARI:Integer;BEGINs:=0;ForI:=0TOnDOs:=s+1;END;PROCEDUREfact;VARJ:Integer;BEGINN:=1;Forj:=1TosDON:=n*j;END;BEGINN:=2;Sum;Writeln(′s=′,s);Fact;Writeln(′n=′,n);Sum;Writeln(′s=′,s);END.20.阅读下面功能代码,该函数用于计算分段函数Z:Z=1X>0Z=0X=0Z=-1X=0请将程序补充完整。TYPEasd=-1..1;FUNCTIONz(x:___________):___________。BEGINIFx>0THENZ:=1ELSEBEGINIF___________THENZ:=0ELSEZ:=-1END;END;21.我们把在主程序中说明的变量称为___________,把在过程或函数中说明的变量称为___________。22.阅读程序,该程序读入4,0,2,3,1五个整数序列,回答问题(A)程序执行后输出的结果是___________。(B)若将主程序中的程调用叫语句binary(3,a,5)改为binary(5,a,5)程序执行后输出的结果是___________。;改为binary(0,a,4),程序执行后输出的结果是___________。(C)若将主程序中的程序调用语句binary(3,a,5)改为如下语句:FORi:=1TO2DOBEGINt:=a[i];a[i]:=a[5-i+1];a[5-i+1]:=tEND;binary(3,a,5);程序执行后输出的结果是___________。PROGRAMtest(input,output);CONSTmaxn=5;TYPEat=ARRAY[1..maxn]OFinteger;VARi,t,j:integer;a:at;shift:boolean;PROCEDUREbinary(x:integer;a:at;n:integer);VARlow,high,mid:integer;found:boolean;BEGINlow:=1;high:=n;found:=false;WHILE(low<=high)AND(NOTfound)DO26 呼家庄中学信息学奥赛练习题BEGINmid:=(low+high)DIV2;IFx>a[mid]THENhigh:=mid-1ELSEIFx0)ANDshiftDOBEGINIFt>a[j]THENBEGINa[j+1]:=a[j];j:=j-1ENDELSEshift:=falseEND;a[j+1]:=tEND;binary(3,a,5)END.23.已知程序中有如下函数说明。FUNCTIONf(a,b,c:integer):integer;BEGINF:=3*a+4*bDIVcEND则:(1)执行语句k:=f(1,2,3)后k的值是___________。(2)执行语句k:=f(1,2,1)-f(0,1,1)后k的值是___________。(3)执行语句k:=f(1,f(1,2,3),-1)后k的值是___________。24.以下函数确定矩阵maxtrix是否关于主对角线对称,将其补充完整。CONSTn=10;TYPEmaxtrixs=ARRAY[1..n,1..n]OFinteger;FUNCTIONmatsym(matrix:matrixs):boolean;VARj,i:1..n;sym:boolean;BEGINsym:=true;FORi:=1tonDOFORj:=1TO___________DOsym:=symAND(___________);___________END;八、集合1.在Pascal中,若I>J,则[I..J]表示___________。2.设有集合A=[2,3,5,8],B=[1,4,5,7],C=[5],则(A*B)=C的值是__________,C*A+B的值是___________。3.集合X包含集合Y的Pascal表达式是___________。4.以下程序利用集合从输入的一串大写字母中找出所有未出现过的输入字符串以回车结束.请在空白处填入正确内容.PROGRAMFINDCHAR(INPUT,OUTPUT);TYPECHARSET=SETOFCHAR;VARCH:CHAR;LETTER:CHARSET;BEGINLETTER:=[′A′..′Z′];WRITELN(′PLEASEINPUTASTRING!′);WHILENOT___________DOBEGINREAD(CH);LETTER:=___________END;READLN;IFLETTER=[]THENWRITELN(′NOTFOUND!′)ELSEBEGINWRITELN(′THELETTERIS:′);FORCH:=′A′TO′Z′DOIF___________THENWRITE(CH:2);ENDEND;5.表达式[1..7]=[1,3,5,7,]的值是___________。6.对于集合A和B,A:=[1..4];B=[3..6];则表达式A-B的值为___________。7.表示CH是大写英文字母的集合表达式是___________。8.设有集合a=[1,3,5,7,9],b=[2,4,6,8,10],c=[1,2,3,4,5],d=[5],则运算7IN(((a-b)-c)-d)的值是___________。9.请定义名为ALPHSET的集合类型,此类型中只包含I,J,K,L,M,N六个字符___________.10.将以下条件用集合方法表示:(X>10)OR(X<1)___________.11.若有说明:VAR26 呼家庄中学信息学奥赛练习题s:SETOF1..15;且变量S赋值为:s:=[1,3,5,7,]*[2,3,4,7];则s的全部子集为___________。12.以下程序段执行后输出结果为___________。W:=[1..5,7..10,15];FORI:=1TO10DOX[I]:=I*5MOD10;FORI:=1TO5DOIFX[I]INWTHENWRITE(X[I]:2);13.设有集合A:=[8,10,12..14],B:=[7..9,11,14..18],则A*B的值为(1)___________。A-B的值为(2)___________。14.设有:VARA,X:SETOF′A′..′Z′;A:=[′A′,′E′,′I′,′O′,′U′]执行X:=A+A*A-A后,变量X的值是___________。15.设有语句:IF((A=1)OR(A=3)OR(A=5)OR(A=7)OR(A=9))THENX:=AELSEX:=A+1利用集合运算将条件简化为:IF___________THENX:=AELSEX:=A+116.已知集合A:=[1..6,8,11..14,19],B:=[2,4..8,13],则A-B等于___________。17.已知集合A:=[1..6,8,11..14,19],B:=[2,4..8,13],则B-A等于___________。18.设有集合a=[1,3,5,7,9],b=[2,4,6,8,10],c=[1,2,3,4,5],则运算c<=(a+b)的值是___________。19.设c为字符型变量,同表达式cIN[′0′..′3′]等价的与逻辑表达式为(1)___________。AND(2)___________。九、记录1.如果一个记录有固定和变体两部分,必须首先定义___________部分。2.记录类型定义以关键字___________开始以___________结束,开域语句用关键字___________。3.并有函数leap能够检查年份y是否是闰年,若为闰年(闰年的2月有29天),函数1eap的返回值为true;否则,返回值为fa1se,函数的详细内容没有给出,函数首部为:FUNCTIONleap(y:integer):boolean;下面函数checkdate的作用是检查变量d中的日期是否合理,若不合理(即出现了不可能的日期),则显示"errordate!",函数返回值为False;否则函数返回值为True。请填空。FUNCTIONcheckdate(d:date):boolean;VARflag:Boolean;BEGINflag:=true;___________BEGINCASEmonthOF4,6,9,11:IFday>30THENflag:=false;2:IF(day>29)OR(day>28)___________THENflag:=falseENDEND;IFNOTflagTHENWriteln(′errordate!′);checkdate:=flagEND;十一、文件1.假设文件INFILE.DAT的内容为:528165,则以下程序的运行结果为___________。PROGRAMEX(INPUT,OUTPUT,MYFILE);CONSTN=6;VARI,X:INTEGER;A:ARRAY[1..N]OFINTEGER;MYFILE:TEXT;BEGINASSIGN(MYFILE,′INFILE.BAT′);RESET(MYFILE);FORI:=NDOWNTO1DOBEGINREAD(MYFILE,X);A[I]:=X;END;FORI:=1TONDOIF(IMOD2)=0THENWRITE(′A[′,I:1,′]=′,A[I]:4);WRITELNEND;2.编程实现文件的复制,把文件abc.dat复制为aaa.dat,请将程序补充完整。PROGRAMxcopy1;VARf1,f2:FILEOFInteger;a:Integer;BEGINAssign(f1,′abc.dat′);Assign(f2,′aaa.dat′);Reset(f1);Rewrite(f2);WHILE___________DOBEGIN___________;Write(f2,a)END;Close(f1);Close(f2)END.3.设有说明:TYPE26 呼家庄中学信息学奥赛练习题Subint=100..200;Filetype=FILEOFsubint;VARfa,fb:filetype;下面过程,统计非空文件fb中偶数分量出现的次数,请将程序补充完整。PROCEDUREtotalfb(VARn:Integer);VARfb:___________;x:subint;BEGIN___________;n:=0;WHILENOTeof(fb)DOBEGINRead(fb,x);IF___________=0THENn:=n+1END;END;4.一个文件的成分(基类型)不能是___________过程Readln,Writeln及函数Eoln只适用于___________文件。Input和Output是_________。过程Rewrite不适用于文件___________。过程Reset不适用于文件____。5.当用REWRITE打开一个文本文件时,EOF函数的值为(1)___________,EOLN函数的值为(2)___________。6.设有说明:TYPEStrings=PACKEDARRAY[1..30]OFChar;Recordtype=RECORDTel:1000..9999;Add:stringsEND;VARfx,fy:Text;R:recordtype;下面过程删除非空文件fx中指定位置pos处的记录,请将程序补充完整。PROCEDUREdeletefx(pos:Integer;VARn:integer);VARfx,h:Text;R:recordtype;I:integer;BEGINReset(fx);Rewrite(h);ForI:=1TO___________DOBEGINReadln(fx,r.tel,r.add);Writeln(h,r.tel,r.add)END;readln(fx);___________;Fori:=pos+1TOnDOBEGINReadln(fx,r.tel,r.add);Writeln(h,r.tel,r.add)END;Reset(h);Rewrite(fx);Fori:=1TOnDOBEGINReadln(h,r.tel,r.add);Writeln(fx,r.tel,r.add)END;END;7.在Pascal中,当文件变量为形参时,必须把变量说明为__________形参。8.设有说明:TYPESubint=100..200;Filetype=FILEOFsubint;VARfa,fb:filetype;下面过程,查找非空文件fb中是否有数值186,请将程序补充完整。PROCEDUREfindfb(VARfind:boolean);VARfb:filetype;x:subint;BEGINReset(fb);find:=False;WHILENOTeof(fb)ANDNOTfindDOBEGIN___________;IFx=186THEN___________END;END;9.在Pascal语言中,用标识符TEXT说明的文件为(1)___________类型文件,用FILEOF形式说明的文件为(2)___________类型文件。10.下面过程在非空文件fx中指定位置pos处添加一个记录,请将程序补充完整。PROCEDUREinsertfx(pos:Integer;x:recordtype;VARn:integer);VARfx,h:Text;R:recordtype;I:integer;BEGINReset(fx);Rewrite(h);ForI:=1TOpos-1DOBEGINReadln(fx,r.tel,r.add);Writeln(h,r.tel,r.add)END;__________;ForI:=pos+1TOnDOBEGIN26 呼家庄中学信息学奥赛练习题Readln(fx,r.tel,r.add);Writeln(h,r.tel,r.add)END;___________;Reset(h);Rewrite(fx);ForI:=1TOnDOBEGINReadln(h,r.tel,r.add);Writeln(fx,r.tel,r.add)END;END;11.已知有类型定义:TYPEmyfile=FILEOFInteger;函数dosum可求出文件f1中所有整数的平均值。请填空完成它。FUNCTIONdosum(VARf1:myfile):Real;VARnum,x,sum:Integer;BEGINReset(f1);Sum:=0;num:=0WHILENOT___________DOBEGINRead___________;Sum:=sum+x;num:=num+1END;___________;___________:=sum/numEND;12.从键盘输入一段文字,把这段文字输出到新建的文件file1.dat中.请将程序补充完整。PROGRAMbuild(Input);VARf:TEXT;ch:Char;BEGINAssign(f,′file1.dat′);Rewrite(f);WHILE___________DOBEGINWHILE___________DOBEGINRead(ch);Write(f,ch)END;Readln;Writeln(f)END;Close(f)END.综合训练一1.汇编语言写成的程序需经___________。翻译成机器语言才能在计算机上运行。2.微机中最常用的输入设备是___________。26 呼家庄中学信息学奥赛练习题3.自动批处理文件名必须是___________。4.当前盘为C盘,删除A盘FOX子目录中扩展名为.TXT的所有文件的DOS命令是___________。5.Pascal语言规定,程序一律以保留字___________开始,作为程序标。6.将0.00001写成Pascal数的形式应为___________。7.以下程序的运行结果为___________。PROGRAMEX(OUTPUT);VARA,B,C,N,SUM:INTEGER;BEGINN:=126;A:=NDIV100;B:=(N-A*100)DIV10;C:=N-A*100-B*10;SUM:=A+B+C;WRITELN(′SUM=′,SUM:3)END.8.阅读下面程序体,其运行结果是___________。A:=5;B:=4;C:=3;IFODD(PRED(4))THENA:=B+C;A:=A-C;WRITELN(A);9.以下程序的运行结果为___________。PROGRAMEX(INPUT,OUTPUT);VARX,Y:INTEGER;BEGINX:=1;WHILEX>0DOBEGINREAD(X);READ(Y);X:=X-Y;WRITE(X:2);END;WRITELNEND.运行时输入:210-155<回车>10.若运行时输入以下指定数据,则程序的运行结果为___________。PROGRAMEX(INPUT,OUTPUT);VARI,J,N,TEMP:INTEGER;A:ARRAY[1..100]OFINTEGER;FLAG:BOOLEAN;BEGINREAD(N);FORI:=1TONDOREAD(A[I]);READLN;FLAG:=TRUE;I:=1;WHILE(I<=N-1)ANDFLAGDOBEGINFLAG:=FALSE;FORJ:=1TON-1DOIFA[J]>A[J+1]THENBEGINTEMP:=A[J];A[J]:=A[J+1];A[J+1]:=TEMP;FLAG:=TRUEEND;I:=I+1END;FORI:=1TONDOWRITE(A[I]:2);WRITELNEND.输入数据:6172367<回车>11.设有语句:IF((A=1)OR(A=3)OR(A=5)OR(A=7)OR(A=9))THENX:=AELSEX:=A+1利用集合运算将条件简化为:IF___________THENX:=AELSEX:=A+112.以下过程用以建立一个由正整数组成的链表,每读入一个新的整数都插入到链首。请在空格内填入适当内容类型定义如下:TYPEPOINTER=^NODE;NODE=RECORDNEXT:POINTER;DATA:INTEGEREND;PROCEDURECREATLIST(VARHEAD:POINTER);VARP:POINTER;N:INTEGER;BEGINHEAD:=NIL;READ(N);WHILEN>=0DOBEGIN___________;P^.NEXT:=HEAD;P^.DATA:=N;HEAD:=___________;READ(N)ENDEND;13.已知有类型说明:TYPET1=^REC;REC=RECORDDATA:INTEGER;NEXT:T1END;26 呼家庄中学信息学奥赛练习题设HEAD为T1型变量,并指向一个不少于2个节点的单链表。过程P1可删除HEAD所指的链表中所有重复节点(即若有多少个节点的DATA域的值相等,则保留最前面的一个节点),请填空完成过程P1。PROCEDUREP1(HEAD:T1);VARP,Q:T1;BEGINWHILEHEAD<>___________BEGINP:=HEAD;Q:=P^.NEXT;WHILEQ<>NILDOIFQ^.DATA=HEAD^.DATATHENBEGIN___________:=Q^.NEXT;DISPOSE(___________);Q:=P^.NEXTENDELSEBEGINP:=P^.NEXT;Q:=Q^.NEXTEND;HEAD:=HEAD^.NEXTENDEND;14.下面程序的功能是计算组合C(8,5),函数COMP()中使用了组合的公式:C(M,N)=C(M,M-N)C(M,N)=C(M-1,N-1)+C(M-1,N)程序用I记录递归的次数,用Z记录组合的值.请将程序补充完整。PROGRAMCOMPNUMBER(INPUT,OUTPUT);VARI,M,N,Z:INTEGER;FUNCTIONCOMP(X,Y:INTEGER):INTEGER;BEGINIFX<=2*YTHENY:=X-Y;I:=I+1;IFY=0THENCOMP:=1ELSEIFY=1THENCOMP:=XELSE___________END;BEGINM:=8;N:=5;I:=0;Z:=COMP(M,N);WRITELN(′I=′,I:4,′Z=′,Z:6)END.15.以下程序用递归算法求前10个斐波那契级数,该级数的头几个数为:0,1,1,2,3,5,8...请在空白处填入正确内容。PROGRAMMAIN(OUTPUT);VARI:INTEGER;Y:REAL;FUNCTIONFIB(I:INTEGER):INTEGER;VARF:INTEGER;BEGINIFI<1THENWRITELN(I,′<1,ERROR!′)ELSEIF(N=1)THENF:=0ELSEIF(___________)THENF:=1ELSEF:=___________;FIB:=FEND;BEGINFORI:=1TO10DOBEGINY:=FIB(I);WRITE(Y:5:0);IFIMOD5=0THENWRITELNENDEND.综合训练二1.二进制数1111对应的十进制数是___________。2.用DOS命令__________将A驱中的软盘格式化并把DOS系统程序安装在盘上。26 呼家庄中学信息学奥赛练习题3.若以逐个复制磁盘的方式复制整个磁盘,应使用的DOS命令是________。4.DOS5.0和DOS7.0,功能更强的是___________。5.可以在"桌面"上创建__________以达到快速访问某个常用项目的目的。6.将65526.0034写成Pascal数的形式应为___________。7.请写出将字符8转换成数字8的表达式___________。8.设A=TRUE,B=FALSE,I=1,且C为布尔类型变量,则循环语句FORC:=BTOADOI:=I+2;执行后,变量I的值为___________。9.以下程序的运行结果为___________。PROGRAMEX(OUTPUT);VARX,K:INTEGER;BEGINX:=5;FORK:=1TO10DOX:=X+K;WRITELN(K:4,X:4)END.10.若运行时输入以下指定数据,则程序的运行结果为___________。PROGRAMEX(INPUT,OUTPUT);VARNUM:INTEGER;CH:CHAR;BEGINREPEATREAD(CH)UNTIL(CH<>′′);NUM:=0;REPEATIF(CH>=′0′)AND(CH<=′9′)THENNUM:=16*NUM+ORD(CH)-ORD(′0′)ELSEIF(CH>=′A′)AND(CH<=′F′)THENNUM:=16*NUM+ORD(CH)-ORD(′A′)+10ELSEWRITELN(′INPUTERROR!′);READ(CH)UNTILNOT((CH>=′0′)AND(CH<=′9′)OR(CH>=′A′)AND(CH<=′F′));WRITELN(NUM:5)END.输入数据(第一列开始):1C<回车>11.FIBONACCI数列的规律是:前2个数均为1,从第3个数开始每个数等于它前面两个数之和,即:1,1,2,3,5,8,13,21,34,…已知任意一个大于0的整数可以表示为若干个互不相同的FIBONACCI数之和。例如:121=89+21+8+3下面的程序是由键盘输入一个正整数N,输出组成N的互不相同的FIBONACCI数。算法如下:(1)寻找小于或等于N的最大的FIBONCCI数A,并以A作为组成N的一个数输出。(2)若N<>A,则以N-A作为新的任意正整数,重复步骤1.若N=A则结束.程序中的函数FIND返回小于或等于N的最大的FAIBONACCI数。PROGRAMEX(INPUT.OUTPUT);VARN:INTEGER;FUNCTIONFIND(N:INTEGER):INTEGER;VARA,B,C:INTEGER;BEGINA:=1;B:=1;REPEATC:=___________A:=B;B:=C;UNTILB>=N;IFB=NTHENFIND:=___________ELSEFIND:=___________END;PROCEDUREP(N:INTEGER);VARA:INTEGER;BEGINA:=FIND(N);WRITE(′+′,A:4);IFA13.在Pascal程序中,过程参数有值参数,变量参数两种方式,其中变量参数传递___________。14.已知程序中有如下函数说明:FUNCTIONF(A,B,C:INTEGER):INTEGER;BEGINF:=3*A+4*BDIVCEND则:执行语句K:=F(1,2,3)后K的值是___________。执行语句K:=F(1,2,1)-F(0,1,1)后K的值是___________。执行语句K:=F(1,F(1,2,3),-1)后K的值是___________。15.设有过程说明PROCEDURESILLY(X:INTEGER;VARY:INTEGER);VARZ:INTEGER;BEGINX:=10;Y:=12;Z:=14END;执行以下语句后输出结果为___________。X=1;Y:=2;Z:=3;SILLY(Y,X);WRITELN(X:2,Y:2,Z:2);综合训练三1.1KB的标准存储容量为___________。2.26 呼家庄中学信息学奥赛练习题数字符号0的ASCII码十进制表示为48,数字符号9的ASCII码十进制表示为___________。3.扩展名为.OBJ的文件为___________文件,扩展名为.COM的文件为___________。4.设在当前盘当前目录下有两个文件A.TXT和B.TXT,现要将文件B.TXT连接到文件A.TXT的后面.若使用COPY命令,则完整的命令是_________。5.表达式对应的Pascal表达式为___________。6.表示CH是大写英文字母的布尔表达式是___________。7.有下列两个IF语句:IFA>BTHENX:=1ELSEX:=2;IFA<=BTHENREAD(Y)ELSEREAD(Z);将它们合并成与上面两个IF语句功能完全相同的一个不嵌套IF语句IFA>BTHEN___________ELSE___________;8.下列程序段执行后,S的值是___________。5;S:=0;FORCH:=′X′T′Z′DOBEGINIFNOTODD(M)THENS:=S+M;M:=M+1END9.设有如下的类型定义和变量说明:TYPECOLOR=(RED,YELLOW,BLUE,GREEN,BLACK,WHITE,ORANGE);VARI:INTEGER;FLAG:COLOR;且FLAG:=BLUE;则语句FORI:=ORD(FLAG)TO5DOWRITELN(′HELLO′);将执行循环体___________次。10.程序TRIANGLE按以下格式输出扬辉三角形:112121133114641程序中利用了杨辉三角形的以下性质:*首行只有一个元素1;*从第二行起,首末两个元素都为1,中间的第K个元素是上一行的第K-1个元素和第K个元素之和。请在空白处填入正确内容。PROGRAMTRIANGLE(OUTPUT);CONSTMAXROW=5;FIRSTIN=38;BLANK=′′;TYPECOEF=ARRAY[1..MAXROW]OFINTEGER;VARROW:1..MAXROW;INDENT,I,K:INTEGER;Y:___________;BEGINFORI:=1TOMAXROWDOY[I]:=___________;Y[1]:=1;INDENT:=FIRSTIN;WRITELN(BLANK:INDENT,Y[1]:4);FORROW:=2TOMAXROWDOBEGINY[ROE]:=1;FORK:=___________DOY[K]:=Y[K-1]+Y[K];INDENT:=INDENT-3;WRITE(BLANK:INDENT);FORK:=1TOROWDOWRITE(Y[K]:4,BLANK:2);WRITELN;ENDEND.11.使用递归方法求解下面的算式请填写程序中的空白处。PROGRAMEX(INPUT,OUTPUT);VARX,C:REAL;PROCEDURESER(A:REAL);BEGINA:=___________;C:=___________;IF___________THEN___________;END;BEGINREADLN(X);X:=1/X;C:=___________;___________;WRITELN(′C=′,8:6);END.综合训练四1.I/O的中文意思是___________。2.计算机联网最大的好处是___________。26 呼家庄中学信息学奥赛练习题3.一般情况下,软盘中的信息,在断电后___________。4.要打印输出当前盘目录下的所有扩展名为.DAT的文件内容,应使用DOS命令为___________。5.DOS的内部命令是在系统___________时装入的。6.Pascal表达式SIN(ABS(X)+ABS(Y))/SQRT(COS(ABS(X+Y)))对应的代数式为___________。7.y既不在-2到-1的范围内又不在1到2的范围内的Pascal表达式为___________。8.程序从键盘读入一个三位数的正整数,然后将其反向输出.如输入456,输出654。请在空白处填入正确内容。PROGRAMTURNOVER(INPUT,OUTPUT);VARX,Y,A,B,C:INTEGER;BEGINWRITELN(′INPUTANUMBERX(100=1000)THENWRITELN(′INPUTERROR!′)ELSEBEGINA:=XDIV100;B:=___________;C:=XMOD10;Y:=___________WRITELN(X,′TURNOVERIS:′,Y)ENDEND.9.设有如下的类型定义和变量说明:TYPECOLOR=(RED,YELLOW,BLUE,GREEN,BLACK,WHITE,ORANGE);VARFLAG:COLOR;再执行语句:FLAG:=BLACK;表达式CHR(ORD(PRED(FLAG))+ORD(′A′))的值是___________。10.某校学生的年龄在18~28岁之间,以下程序用以统计各年龄学生的人数。请在空白处填入正确内容。PROGRAMCOUNTAGE(INPUT,OUTPUT);VARCOUNT:ARRAY[18..28]OFINTEGER;I,J,AGE,N:INTEGER;BEGINFORI:=18TO28DOCOUNT[I]:=___________;READLN(N);FORI:=1TONDOBEGINREADLN(AGE);___________END;FORI:=18TO28DOWRITELN(′AGE′,I:3,COUNT[I]:5)END.11.设有两个行数相同的文本文件,文件NAME存放人名,文件PHONE存放相应的电话号码,以下程序将这两个文件合并为一个新文件BOTH,新文件的每一行包括人名和对应的电话号码。请在空白处填入正确内容。PROGRAMMERGE(NAME,PHONE,BOTH,OUTPUT);VARNAME,PHONE,BOTH:TEXT;C:CHAR;BEGINASSIGN(NAME,′NAME.DAT′);ASSIGN(PHONE,′PHONE.DAT′);ASSIGN(BOTH,′BOTH.DAT′);RESET(NAME);RESET(PHONE);___________;WHILENOTEOF(NAME)ANDNOTEOF(PHONE)DOBEGINWHILENOTEOLN(NAME)DOBEGINREAD(NAME,C);___________END;WHILENOTEOLN(PHONE)DOBEGINREAD(PHONE,C);___________END;WRITELN(BOTH);READLN(NAME);READLN(PHONE)END;IFNOTEOF(NAME)ORNOTEOF(PHONE)THENWRITELN(′FILEAREOFDIFFERENTLENGTHS!′);CLOSE(NAME);CLOSE(PHONE);CLOSE(BOTH)END.12.已知函数说明如下:FUNCTIONFUN(N:INTEGER):INTEGER;BEGINIFN=0THENFUN:=0ELSEIFN>0THENFUN:=FUN(N-2)ELSEFUN:=FUN(N+3)END;则函数调用FUN(5)的值为___________,它共执行了_______次函数体,FUN(FUN(-2))的值为________,它共执行了_________次函数体。26 呼家庄中学信息学奥赛练习题13.Pascal语言中的形式参数分为值参数和变量参数,其中_________的改变不会影响实参的值。综合训练五1.计算机总线是由___________总线和___________总线及控制总线组成。2.26 呼家庄中学信息学奥赛练习题在启动计算机时,显示或修改系统时间的正确输入格式为___________。3.在DOS中,扩展名为*.TXT的文件称为___________。4.DOS系统中,代表控制台的设备名为___________。5.用Pascal语言表示点(X,Y)在内径为A,外径为B的圆环内部的布尔表达式是___________。6.以下程序实现将24小时制表示的时间转换为12小时制表示的时间.如:输入1325(13点25分),则输出1:25P.M。请在空白处填入正确内容。PROGRAMEXCHTIME(INPUT,OUTPUT);VARTIME,HOUR,MINUTES:INTEGER;BEGINREADLN(TIME);HOUR:=(___________)MOD12;IFTIME>=1200ANDTIME<=1259THENHOUR:=12;WRITE(HOUR:2,′:′);MINUTES:=___________;WRITE(MINUTES:2);IF(TIME<1300)OR(TIME=2400)THENWRITELN(′A.M′)ELSEWRITELN(′P.M′)END.7.以下程序的运行结果为___________。PROGRAMEX(OUTPUT);TYPECOLORTYPE=(RED,YELLOW,GREEN,BLUE,WHITE);COLOR=SETOFCOLORTYPE;VARCOUNT:INTEGER;X:COLORTYPE;A:COLOR;BEGINA:=[RED,BLUE,WHITE,GREEN,YELLOW];X:=WHITE;COUNT:=0;WHILEA<>[]DOBEGINWHILENOT(XINA)DOX:=SUCC(X);COUNT:=COUNT+1;A:=A-[X]END;WRITELN(COUNT:2);END.8.以下程序有N个元素的A数组中第1至M-1个元素与第M至N个元素两段数据交换位置.例如:设N=10,M=7,数组交换前后的情况如下:交换前:11121314151617181920交换后:17181920111213141516请从下面对应的一组选择项中选出正确的内容填入空白处。PROGRAMEXCHANG(INPUT,OUTPUT);CONSTN=10;VARA:ARRAY[1..N]OFINTEGER;M,T,J,I:INTEGER;BEGINWRITELN(′INPUT10NUMBER:′);FORI:=1TONDOREAD(A[I]);READLN;WRITELN(′INPUTAPOSITION:′);READLN(M);IF___________THENBEGINFOR___________DOBEGIN___________;FOR___________DO___________;___________END;FORI:=1TONDOWRITE(A[I]:3);WRITELN;ENDELSEWRITELN(′INPUTERROR!′)END.9.函数search从文本文件中查找ch字符,找到则显示"OK",函数返回True;否则显示"notfounder!",函数返回False。请完成填空。FUNCTIONsearch(VARf:Text;ch:Char):Boolean;VARfind:Boolean;c:Char;BEGINReset(f);___________;WHILE___________AND___________DOBEGIN___________;IFc=chTHENBEGINfind:=True;Writeln(′OK′)ENDEND;IFNOTfindTHENWriteln(′notfound!′);search:=findEND;10.设有数组A:212231221执行语句FORI:=1TO3DOFORJ:=1TO3DOC[I,J]:=A[A[I,J],A[J,I]];后,C数组的内容为[20]___________。26 呼家庄中学信息学奥赛练习题26

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭