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

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

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

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

var a, b, c:integer; procedure pro; var c: integer;

begin a:=1;b:=2;c:=3; end; begin

a:=100;b:=200;c:=300; pro;

writeln(a, b, c) end.

运行结果是:

(A) 100 200 300 (B) 1 2 3 (C) 1 2 300 (D) 100 200 3 3、程序:

program lx7-2-3(output); var x, y:integer;

procedure pd(a: integer;var b: integer); begin a:=1; b:=a+b; end; begin

x:=10;y:=20; pd(x, y); writeln(x, y:5) end.

运行结果是:

(A) 10 20 (B) 1 20 (C) 1 21 (D) 10 21 4、程序:

program lx7-2-4(output); var x:integer;

procedure pr(var z:integer);

begin z:=z+100; write( ’x=’,x); end; begin x:=10; pr(x); x:=100;

writeln(’x=’,x) end.

运行结果是:

(A) x=110 x=100 (B) x=10 x=100 (C) x=110 x=110 (D) x=100 x=100 5、程序: program lx7-2-5(output); var x:integer;

function f1(m: integer): integer); function f2(n: integer): integer); begin f2:=n+1; end;

begin f1:=m * f2(m); end; begin x:=5;

x:=f1(x)+x; write(’x=’,x)

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

end.

运行结果是:

(A) x=5 (B) x=6 (C) x=35 (D) x=30 6、程序:

program lx7-2-6(output);

var x:integer;

procedure pp(m: integer) ; var i, j: integer;

function f (n: integer): integer; begin f:=n+1; end; begin

for i:=m downto 1 do begin

for j:=1 to f(i) do write( ’ * ’ ); writeln; end; begin x:=5; pp(x); end.

运行结果是:

(A) * (B) * * * * * * (C) * * (D) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 三、阅读程序

1、指出下列程序中的全程变量、局部变量、值参、变参,并写出程序运行后的输出结果。 program lx7-3-1(input, output);

var a, b, c:integer;

procedure suan(var x:integer;y: integer) ; var m, n: integer; begin

m:=x * y;x:=x+1; y:=y+10;n:=x+y;

writeln( ’x=’,x,’y=’: 4,y,’m=’: 4,m,’n=’: 4,n) end; begin

a:=3;b:=3; suan(a, b); suan(a, b); suan(a, b) end.

2、程序: program lx7-3-2(input, output);

var s, n:integer;

function f(n:integer):integer; begin

if n=1 then f:=1

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

else f:=n * n+f(n-1); end; begin

write( ’input n:’);readln(n); s:=f(n);

writeln( ’f( ’,n,’)=’,s) end. 该程序的功能是:

当n的值为6时,程序的运行结果是: 3、程序:

program lx7-3-3(input, output);

var a, b, c, d:integer;

procedure p(a:integer;var b:integer) ; var c:integer; begin

a:=a+1;b:=b+1;c:=2;d:=d+1; writeln( ’m ’,a, b, c, d); if a<3 then p(a, b); writeln( ’n ’,a, b, c, d) end; begin

a:=1;b:=1;c:=1;d:=1; writeln( ’x ’,a, b, c, d); p(a, b);

writeln( ’y ’,a, b, c, d) end.

该程序的运行结果是:

四、已知函数ack的计算公式如下:

n+1 m=0; ack(m, n)= ack (m-1,1) n=0;

ack (m-1, ack (m, n-1)) m≠0且n≠0. 计算ack (1, 2) 和ack (2, 2)的值。

五、完善程序

数组a中有n个按升序排列的元素,现要插入一个元素,且插入后a中元素仍是升序。定义过程p对给定的值y,首先找插入位置,然后插入。

程序:

program chashu (input, output);

const n=50;

type atype=array[1..n] of integer; var a:atype;

i, count, y:integer;

procedure p(var x:atype;y:integer;var m:integer) ;

var i, k:integer; {定义局部变量} begin

if m>=n then writeln( ’out range’) {若数组长度超过50,结束调用} else begin

① _ k:=1;__ { k控制数组的下标}

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

while ② _(y>x[k]) and (k<=m) _do k:=k+1;{找插入点}

③ for i:=m downto k do {插入点后面的元素后移} x[i+1]:=x[i];

④___x[k]:=y; {插入y} m:=m+1 {数组长度加1} end; end;

begin {主程序} readln(count);

for i:=1 to count do {为数组赋初值} a[i]=3 * i;

for i:=1 to count do {输出数组初值} write(a[i]: 4);

write( ’y=’);readln(y); {输入待插入的数}

⑤ _ p(a, y, count); {过程调用,变参x、m在过程中的变化将影响a和count值} for i:=1 to count do {输出结果,} write(a[i]: 4); writeln end. 六、编程

1、有程序中定义一函数digit(n, k),它能分离出整数n从右边数第k个数字,如digit(31859, 3)=8,digit(32076, 5)=0。

2、有程序中定义一个函数check(n, d),如果数字d在整数n中出现,则函数值为true,否则为假,如check(9687, 7)=true, check(10345, 6)=false。

3、根据公式

arctanx(x)=x-x3/3+x5/5-x7/7+?和л=6arctanx(

13)

定义函数arctanx (x),求当最后一项小于10-6时的值。 4、已知 m?max(a, b, c) ,

max(a?b, b, c) ? max(a, b, b?c)输入a, b, c,求m。把求三个数的最大数max(x, y, z)分别定义成函数和过程来求做。

5、对6~1000内的偶数验证哥德巴赫猜想:任何一个大于6的偶数总可以分解为两个素数之和. 6、用递归的方法求1+2+3+4+?+(n-1) +n的值。 7、用递归的方法求Hermite多项式的值 1 n=0 hn(x) 2x, n=1 2xhn-1(x) -2 (n-1)hn-2(x)。 n>1 对给定的x和正整数n, 求多项式的值。 8、写一递归程序,把读入的正整数倒序输出。

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

9、已知f(x,n)?xn?(n?1)?(n?2)???xxxx1?x用递归函数和递归过程两种方法求解

10、已知f(x,n)?n?(n?1)?(n?2)???2?1?x

计算x=4.2, n=10以及x=2.5, n=15时f的值。

11、有52张扑克牌,使它们全部正面朝上。从第2张牌开始,把凡是2的倍数位置上的牌翻成正面朝下,接着从第3张牌开始,把凡是3的倍数位置上的牌正面朝上的翻成正面朝下,正面朝下的翻成正面朝上,接着从第4张牌开始,把凡是4的倍数位置上的牌按此规律翻转。依此类推,直到第1张要翻的牌是第52张牌为止。统计最后有几张牌正面朝上,并打印出它们的位置。

第八章 集合和记录

一、问答题

1、设有集合a=[1,3,5,7,9],b=[2,4,6,8,10],c=[1,2,3,4,5] ,d=[5],e=[ ],求下列表达式的结果。

① (a+b)-c ② (a * c)=d ③ (a+e) * (b+d) ④ 7 in(((a-b)-c)-d) ⑤ c<=(a+b) ⑥ a>=b * e-c 2、列出下列集合类型的全体元素: ① color=set of ( red, green, blue )

② num=set of 1..5

二、填空题

1、某人事登记表包括以下几个数据项:姓名最多用15个字符表示,性别用male, female分别表示男女,出生日期用年月日表示,年份在1900到1999之间,家庭住址最多用40个字符表示,以下是用一个记录来表示的数据结构,请将程序予以完善。 type sexs=( ① ); date=record

year; ② ; month: ③ ; day: ④ ; end;

personal = ⑤ ; name: ⑥ ;

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

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