欢迎来到天天文库
浏览记录
ID:56281860
大小:147.50 KB
页数:8页
时间:2020-06-21
《历届信息学奥赛试题评析.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、历届信息学奥赛试题评析第一题:varn,i,temp,sum:integer;a:array[1..100]ofinteger;beginreadln(n);fori:=1tondoread(a[i]);fori:=1ton-1doifa[i]>a[i+1]thenbegintemp:=a[i];a[i]:=a[i+1];a[i+1]:=temp;end;fori:=ndownto2doifa[i]2、2ton-1doinc(sum,a[i]);writeln(sumdiv(n-2));{div表示整除}end.输入:84070507020401030输出:点评:考查选择语句、循环语句、数组等内容,计算量中等。难度:中等题。第二题:programex2;varn,i,ans:integer;functiongcd(a,b:integer):integer;beginifamodb=0thengcd:=belsegcd:=gcd(b,amodb);{mod表示取余数}end;beginreadln(n);ans:=0;fori:=1to3、ndoifgcd(n,i)=ithenbeginwriteln(i);ans:=ans+1;end;writeln(ans);end.输入:120输出:点评:考查选择语句、循环语句、函数、递归等内容,计算量中等。难度:中等题。第三题:vardata:array[1..20]ofinteger;n,i,h,ans:integer;proceduremerge;begindata[h-1]:=data[h-1]+data[h];dec(h);{dec(h)表示h:=h-1}inc(ans);{inc(ans)表示ans:=ans+1}end4、;beginreadln(n);h:=1;data[h]:=1;ans:=0;fori:=2tondobegininc(h);data[h]:=1;while(h>1)and(data[h]=data[h-1])domerge;end;writeln(ans);end.输入:8输出:点评:考查循环语句、数组、过程等内容,计算量较大。难度:难题。第四题:string表示为字符串类型。length函数表示求字符串的长度。字符串数组和字符串中元素的对应关系为从左向右,即str[1]对应字符串中最左边的字符。点评:主要考查字符串数组的使用,计算5、量较小。难度:容易题。第五题:inc(num)表示num:=num+1点评:主要考查循环语句的使用和数学知识,计算量中等。难度:中等题。第六题:点评:主要考查选择语句、循环语句和数组的使用,计算量较大。难度:难题。第七题:fillchar(a,sizeof(a),0)表示数组a中的所有元素赋初值0。点评:主要考查搜索回溯知识。难度:难题。第八题:constV=100;varvisited:array[1..v]ofboolean;e:array[1..V,1..V]ofinteger;n,m,ans,i,j,a,b,c:integer;6、proceduredfs(x,len:integer);varI:integer;beginvisited[x]:=true;iflen>ansthenans:=len;fori:=1tondoif(notvisited[i])and(e[x,i]<>-1)thendfs(i,len+e[x,i]);visited[x]:=false;end;beginreadln(n,m);fori:=1tondoforj:=1tondoe[i][j]:=-1;fori:=1tomdobeginreadln(a,b,c);e[a][b]:=c;e[b7、][a]:=c;end;fori:=1tondovisited[i]:=false;ans:=0;fori:=1tondodfs(i,0);writeln(ans);end.输入:46121023203430414013502460输出:__________点评:主要考查搜索回溯知识。难度:难题。
2、2ton-1doinc(sum,a[i]);writeln(sumdiv(n-2));{div表示整除}end.输入:84070507020401030输出:点评:考查选择语句、循环语句、数组等内容,计算量中等。难度:中等题。第二题:programex2;varn,i,ans:integer;functiongcd(a,b:integer):integer;beginifamodb=0thengcd:=belsegcd:=gcd(b,amodb);{mod表示取余数}end;beginreadln(n);ans:=0;fori:=1to
3、ndoifgcd(n,i)=ithenbeginwriteln(i);ans:=ans+1;end;writeln(ans);end.输入:120输出:点评:考查选择语句、循环语句、函数、递归等内容,计算量中等。难度:中等题。第三题:vardata:array[1..20]ofinteger;n,i,h,ans:integer;proceduremerge;begindata[h-1]:=data[h-1]+data[h];dec(h);{dec(h)表示h:=h-1}inc(ans);{inc(ans)表示ans:=ans+1}end
4、;beginreadln(n);h:=1;data[h]:=1;ans:=0;fori:=2tondobegininc(h);data[h]:=1;while(h>1)and(data[h]=data[h-1])domerge;end;writeln(ans);end.输入:8输出:点评:考查循环语句、数组、过程等内容,计算量较大。难度:难题。第四题:string表示为字符串类型。length函数表示求字符串的长度。字符串数组和字符串中元素的对应关系为从左向右,即str[1]对应字符串中最左边的字符。点评:主要考查字符串数组的使用,计算
5、量较小。难度:容易题。第五题:inc(num)表示num:=num+1点评:主要考查循环语句的使用和数学知识,计算量中等。难度:中等题。第六题:点评:主要考查选择语句、循环语句和数组的使用,计算量较大。难度:难题。第七题:fillchar(a,sizeof(a),0)表示数组a中的所有元素赋初值0。点评:主要考查搜索回溯知识。难度:难题。第八题:constV=100;varvisited:array[1..v]ofboolean;e:array[1..V,1..V]ofinteger;n,m,ans,i,j,a,b,c:integer;
6、proceduredfs(x,len:integer);varI:integer;beginvisited[x]:=true;iflen>ansthenans:=len;fori:=1tondoif(notvisited[i])and(e[x,i]<>-1)thendfs(i,len+e[x,i]);visited[x]:=false;end;beginreadln(n,m);fori:=1tondoforj:=1tondoe[i][j]:=-1;fori:=1tomdobeginreadln(a,b,c);e[a][b]:=c;e[b
7、][a]:=c;end;fori:=1tondovisited[i]:=false;ans:=0;fori:=1tondodfs(i,0);writeln(ans);end.输入:46121023203430414013502460输出:__________点评:主要考查搜索回溯知识。难度:难题。
此文档下载收益归作者所有