欢迎来到天天文库
浏览记录
ID:48413129
大小:395.50 KB
页数:15页
时间:2020-01-19
《习题课(四)+补充.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、信息学奥赛培训教程之——习题课(四)4-1、输出1-100之间的所有偶数;4-3、输入一个自然数,求这个自然数的所有约数之和;4-2、一个两位数x,将它的个位数字与十位数字对调后得到一个新数y,此时y恰好比x大36,请编程求出所有这样的两位数。4-4、把整数3025从中剪开分为30和25两个数,此时再将这两数之和平方,(30+25)2=3025计算结果又等于原数。求所有符合这样条件的四位数;习题四:习题四:4-9、输入30个学生成绩,分别统计成绩在85—100分,60—85分,60分以下,各分数段中的人数;用循环语句编写程序:4-5、求s=1+4+7+…+2
2、98的值;4-6、输出1到100的算术平方根;4-7、从键盘输入10个数,输出最大和最小的数;4-8、编写一个评分程序,接受用户输入10个选手的得分(0-10分),然后去掉一个最高分和一个最低分,求出某选手的最后得分(平均分);输出结果:讲解:vari:integer;beginfori:=1to100dobeginifimod2=0thenwrite(i:5);ifimod20=0thenwriteln;end;end.4-1、输出1-100之间的所有偶数;分析:①用for循环列举出所有的两位数,x为循环变量;②用公式a:=xdiv10分离出x的十位数字;
3、③用公式b:=xmod10分离出x的个位数字;④用公式y:=b*10+a合成新数y;⑤用式子y-x=36筛选出符合条件的数x并输出。输出结果:1526374859讲解:4-2、一个两位数x,将它的个位数字与十位数字对调后得到一个新数y,此时y恰好比x大36,请编程求出所有这样的两位数。vara,b,x,y:integer;beginforx:=10to99dobegina:=xdiv10;b:=xmod10;y:=b*10+a;ify-x=36thenwrite(x:4);end;end.讲解:分析:输入x——>找出X的所有约数(从1到X逐个判断,看xmod
4、y是否为0),并且累加起来存在s中—>输出svars,x,y:integer;beginreadln(x);s:=0;fory:=1toxdoifxmody=0thens:=s+y;writeln(s);end.4-3、输入一个自然数,求这个自然数的所有约数之和;测试数据:输入:9输出:13输入:19输出:20输入:21输出:32输入:35输出:48讲解:分析:设符合条件的四位数为n,它应当是一个完全平方数,用(a*a)表示。①为了确保n=(a*a)在四位数(1000~9999)范围内,可确定a在32~99循环;②计算n=a*a;将四位数n拆分为两个数n1和
5、n2;③若满足条件(n1+n2)*(n1+n2)=n就输出n。输出结果:202530259801varn,a,x,n1,n2:integer;beginfora:=32to99dobeginn:=a*a;n1:=ndiv100;n2:=n-n1*100;x:=n1+n2;ifx*x=nthenwrite(n:6);end;end.4-4、把整数3025从中剪开分为30和25两个数,此时再将这两数之和平方,(30+25)2=3025计算结果又等于原数;求所有符合这样条件的四位数;讲解:4-5、求s=1+4+7+…+298的值;分析:观察题目所给的数字,发现其中
6、的规律;程序1:程序2:{换一种思考方式}vars,i:integer;begins:=0;fori:=1to298doifimod3=1thens:=s+i;writeln(s);end.vars,i,j:integer;begins:=0;j:=0;fori:=0to99dobeginj:=i*3+1;s:=s+j;end;writeln(s);end.讲解:4-6、输出1到100的算术平方根;vara:integer;s:real;beginfora:=1to100dobegins:=sqrt(a);write(s:10:4);end;end.也可以:
7、程序1:程序2:vara:integer;beginfora:=1to100dowrite(sqrt(a):10:4);end.讲解:4-7、从键盘输入10个数,输出最大和最小的数;思路不同,写出来的程序就会不同:Pascal为我们定义了两个标准常量:maxint=32767integer{-maxint-1..maxint}maxlongint=2147483647longint{-maxlongint-1..maxlongint}思路:1)用一个变量max来保存最大的数,用一个变量min来保存最小的数;2)用循环语句实现,每次从键盘读入一个数,就与max
8、和min比较;若读入的数大于max,更新max;若读
此文档下载收益归作者所有