77范文网 - 专业文章范例文档资料分享平台

全国青少年信息学奥林匹克联赛培训习题(7)

来源:网络收集 时间:2019-05-18 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

成都树德实验中学Pascal程序设计 - 31 -

sex: ⑦ ; birthdate: ⑧ ; home: ⑨ ;

2、输入5个学生的出生日期(年月日)和今天的日期,然后用计算机计算并输出每个人的年龄。注意是满多少岁,如某人出生于1975 10 1,今天的日期为1994 11 1,则他的年龄为19岁;如果某人出生于1975 12 1,则他的年龄应为18岁(因为他未满19岁);如果某人出生于1975 11 2,则他的年龄也为18岁。请完善下列程序。

Program lx8-2-2(input, output); typedate=record

year:1900..1999;

month:1..12; day:1..31;

emd;

var stu : array[1..5] of date; today : date; i, age : integer;

begin

writeln( ’input 5 students birthday(yyyy mm dd):’); for i:=1 to 5 do readln( ① ); writeln( ’input 5today (yyyy mm dd):’); readln( ② ); for i:=1 to 5 do begin

age:= ③ ;

if ④ then age:=age-1; writeln( ’no,’,i,’ age: ’,age); emd; readln end.

三、编程题

1、编写一个程序读入一系列字符,将它们分别放在英文字母、数字、其他符号三个集合中,统计出各个集合中元素的个数(区分大小写),并分别输出这3个集合中的元素。

2、利用随机函数产生2个整数数列A,B,每个数列包含20个数(0到50之间),程序要求:

① 找出在B中出现而在A中没有出现的那些数,并输出。 ② 找出在B中出现而在A中也出现的那些数,并输出。

3、输入一个大写字母字符串,找出未在此串中出现的所有大写字母。

4、编写一个译码程序,将输入的一串字符(只有小写字母、数字和空格,输入时以句号结束)翻译成原码。译码规则是:

① 数字0,1,2,3,?,9分别和字母a, b, c,?, j 交换; ② 字母k, m, p, t, y分别和后继交换; ③ 其他字母和空格保持不变。

- 32 - 成都树德实验中学Pascal程序设计

5、读入两个小写字母字符串,然后输出如下信息: ① 出现在某一行字符串中至少一次的小写字母; ② 同时出现在两个字符串中至少一次的小写字母;

③ 出现在一个字符串中而不出现在另一个字符串中的小写字母; ④ 不出现在任何一个字符串中的小写字母。

6、下列竖式中不同字母代表不同数字,请编程破译每个字母所代表的数字。

s e n d

+ m o r e m o n e y

7、输入20个学生的5门功课成绩及姓名、学号,算出总分并且进行排序,最后从高到低输出这些数据。

8、编程从键盘输入两个日期,比较它们的迟早。日期格式为:mm dd yyyy,其中mm 为2位的月份,dd为2位的日子,yyyy为2位的年份,月日年之间用空格隔开。如03 31 1995表示1995年3月31日。

9、定义一个记录类型,它的每个值表示X-Y坐标上的一个点,X,Y的取值范围是1到100之间的整数。编一程序,顺序读入一个四边形的各点a, b, c, d,并判断它是否能构成正方形、矩形或者其他四边形。

第十二章 常用算法介绍

一、基本知识

1、什么是算法?算法有哪些特性? 2、评价算法优劣的两个基本要素是什么? 3、写出下列程序算法的时间复杂性或空间复杂性。 ⑴

procedure prime(n) {n的值为一个正整数} begin x=2;

while((n mid x)<>0)and(x

if x>sqrt(n)then writln(n:6,’is a prime number’)

else writln(n:6,’is not a prime number’) end;

时间复杂性___由于循环时间取决于x

function suml(n):real; begin

p:=1;sum:=0; for x:=1 to n do begin

p:=p*x;sum:=sum+p;

成都树德实验中学Pascal程序设计 - 33 -

end;

sum1:=sum; end;

时间复杂性_由于本题算法的主要操作在于循环结构中的重复操作的次数,所以其时间复杂性是0(n)_。

function sum2(n):real; begin

sum:=0;

for x:=1 to n do begin p:=1;

for y:=1 to x do p:=p*y; sum:=sum+p; end;

sum2:=sum; end;

时间复杂性__本题主要操作在于一个双重循环结构,其时间复杂性计划:_。 for x:=1 to n do begin p:=1;

for y:=1 to x do p:=p*y; sum:=sum+p; end;

x=1 y=1 O(1)=1 x=2 y=2 O(2)=2 x=3 y=3 O(3)=3

………………………………………….

x=n y=n 1+2+3+4+5…+n=n(n+1)/2≈n2 所以时间复杂性是:O(n2)。 ⑷

procedure sort(a,n); begin

for x:=1 to n-1 do begin

k:=x;

for y:=x+1 to n do

if a[y] x then交换a[x]与a[k] end;

时间的复杂性_________,空间复杂性_________。 ⑸

procedure matrimult(a,b,c); begin

for x:=1 to m do

- 34 - 成都树德实验中学Pascal程序设计

for y:=1 to n do c[x,y]:=0; for x:=1 to m do for y:=1 to n do for k:=1 to t do

c[x,y]:= c[x,y]+a[x,k]*b[k,y] end;

计算该问题的时间复杂性_________,时间复杂性_________。 ⑹ 有n×n个数据组成如下方阵:

a11 a12 a13 … a1n a21 a22 a23 … a2n a31 a32 a33 … a3n

an1 an2 an3 … ann

并已知:aij = aji,现将a11, a21,a22,a31, a32, a33,… ,存储在一维数组a[1],a[2],… ,[n*(n+1)/2]中。试问:任给i,j怎样求出k来,使得a[k]的值正好是aij,请写出由i,j计算k值的表达式。

二、写出下列程序的运行结果 1、

Program exp2_1;

var x,y,w,r,q:integer; begin

readln(x,y); r:=x; w:=y;

while wy do begin

w:=w div 2; q:=q+q;

if r>=w then begin

q:=q+1; r:=r-w; end; end;

writeln(x,’/’,y,’=’,q,’…’,r); end.

当程序运行后输入356 23

输出___________ 。 2、

Program exp2_2;

type arr=array[1..1000] of integer; var b,c,d:arr;

da,x,xl,k,max,num,y:integer; begin

max:=0;num:=1000;

成都树德实验中学Pascal程序设计 - 35 -

for x:=2 to num do b[x] :=x; for x:=2 to num do if b[x] <>0 then begin

k:=x+x; while k

b[k]:=0;k:=k+x; end; end;

for x:=2 to num-1 do if b[x] <>0 then begin

y:=1;d[y]:=b[x]; for xl:=x+1 to num do if b[xl] <>0 then begin

da:=b[xl] -b[x];k:=da;

while (x+k<=num) and (b[x+k] <>0 )do bdgin

y:=y+1; d[y]:=x+k; k:=k+da; end;

if y>max then begin max:=y;c:=d;end; y:=1; end; end;

writeln(’print is:’,max); write(’the string is:’);

for x:=1 to max do write(c[x]:4); writeln; end.

输出结果是__________。 3、

Program exp2_3; const n=4;

type tt=array[1..100] of char; var inp,t:tt;

k,num:integer;

procedure push(out,s:tt;it,ot,st:integer); var k:integer; c:tt; begin

if it>0 then begin

c:=s;

c[st+1]:=inp[it];

push(out,c,it-1,ot,st+1);

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库全国青少年信息学奥林匹克联赛培训习题(7)在线全文阅读。

全国青少年信息学奥林匹克联赛培训习题(7).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/630552.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: