(信息学奥赛辅导)程序设计试题汇编(答案)

程序设计试题及答案

(备注:试题难度评价采取五★级评价体系,分基础、容易、一般、稍难、难五个等级,其中的一、二、三★级都属于程序设计的基础试题级别,同学们稍加思考均有能力求得正确解答,对于四★级试题属于程序设计试题基础级别的思考题,五★级难度试题在此没有涉及,在程序设计高级试题中另行讲解。对于基础和容易两个级别的程序设计试题,若能够给出语句分类(如If条件语句、条件语句嵌套、循环语句、多重循环语句等)的将尽量给出。若属于13大类别的将尽量标注。)

程序设计试题几大分类:

1、素数类问题(求素数的几种算法):

2、数据排序问题(数据排序的几种方法):

3、最大公约数和最小公倍数问题(几种算法):

4、公式求解类问题(如求圆周率π、自然常数e、解方程等等):

5、编号相反处理问题:

6、约瑟夫问题(或猴子选大王问题、密码问题):

7、回文数问题:

8、高精度数值计算问题:

9、数值计算问题:

10、进制相互转换问题:

11、字符串倒置问题:

12、排列与组合类问题:

13、因子、质因子(质因数)类相关问题:

答案部分:

(程序设计的源程序没有统一的标准答案,实现程序的算法也是多种多样,但结果是唯一的,算法也有优劣之分,一个程序的优劣,关键在于是否找到了好的算法,以下程序和算法不一定就是最佳算法和最佳程序,只能仅供参考,希望同学们能够对某些程序提出更好的算法来改进程序)

(经常碰到的判断是否为素数、是否为回文数、求两个数的最大公约数、求两个数的最小公倍数等问题的子函数源程序,请务必记住!)

①判断是否为素数,若是素数则返回true,若不是素数则返回false:

function prime(x:longint):boolean;

var

j,y:longint;

begin

prime:=true;

if x<2 then prime:=false; y:=trunc(sqrt(x)); for j:=2 to y do

if (x mod j = 0) then

begin prime:=false; exit; end; end;

备注:1~100之间所有的素数:2、3、5、7、11、13、17、19、23、29、31、37、41、43、47、53、59、61、67、71、73、79、83、89、97。(共25个)

②判断是否为回文数,若是回文数则返回true ,若不是回文数则返回false :

function huiwen(n:longint):boolean; var

m,i,j:longint;

a:array[1..10] of integer; begin

if n<0 then begin huiwen:=false; exit; end; m:=n; i:=0; huiwen:=true; repeat i:=i+1;

a[i]:=m mod 10; m:=m div 10; until m=0;

for j:=1 to (i div 2) do if a[j]<>a[i-j+1] then

begin huiwen:=false; exit; end; end;

③求最大公约数子函数,返回两个正整数的最大公约数,采用辗转相除法算法; function gcd(a,b:longint):longint; begin

if b=0 then gcd:=a

else gcd:=gcd(b,a mod b); end;

④求最小公倍数:lcm=a*b div gcd(a,b);

(以下程序设计试题来自《奥赛经典(语言篇)》) 第2章 基本语句与程序结构

例题部分:

1、 求梯形的面积。(梯形面积公式:1

()2

S h a b =

+) (★,测试数据①

2、 求一元二次方程ax 2

+bx +C =0的两个实根。(求根公式:1,22b x a

-=

(★,测试数据a =1,b =-5,c =6;答案:x 1=2、x 2=3)

信息学奥林匹克竞赛辅导——程序设计试题答案部分 第3页

3、 输入一个三位的自然数,然后把这个数的百位与个位对调,输出对调后的结果。 (★)

4、 输入三个数a 、b 、c ,首先判断这三个数能否构成三角形,若能,则求出三角形的面积。

(提示:海伦公式S =2

a b c

d ++=

,a 、b 、c 为边长) (★,If 条件语句,测试数据a =5,b =6,c =7;答案:14.7)

5、 从键盘读入三个数,按从大到小的顺序把它们打印出来。(★,If 条件语句)

6、 输入三角形的三边,判断它是否是直角三角形。

(★,If 条件语句,测试数据①3、4、5;②4、5、6;答案①Yes ;②No )

7、 编写一个根据用户键入的两个操作数和一个运算符,由计算机输出运算结果的程序。(★★★) 8、 输入一个年号,判断它是否为闰年。

(★,If 条件语句,测试数据①1900;②2000;③2008;答案:①No ;②Yes ;③Yes ) 9、 编程计算S =1+2+3+…+100。(★,循环语句, 答案:5050)

相关练习:(1)111

123100

S =++++; (2)22

212100S =++

+;

(3)246100S =++++;

(4)14710100S =++++

+;

(相关练习答案:(1)5.19(保留2为小数);(2);(3)2550;(4)1717)

10、根据公式

2

22

2

11

1

16

23n π=+

+++

,计算圆周率的π值。 (★★,循环语句,测试数据n =10000;答案:3.) program e; var

i:longint; s:real; begin

writeln; s:=0;

for i:=1 to 10000 do s:=s+1/(i*i); writeln(sqrt(6*s)); end.

11、计算n!。(n!=1×2×3×…×n ,取n =10)

(★★,循环语句,10!=)

12、已知一对兔子,每个月可以生一对小兔,而小兔过一个月后也可生一对小兔。即兔子的对数

是:第一个月1对,第二个月2对,第三个月3对,第四个月5对,……,假设兔子的生育期是12个月,并且不死,问一年后,这对兔子有多少对活着的后代?(Fibonacci 数列问题)

(★★,循环语句, 1、2、3、5、8、13、21、34、55、89、144、233;答案233)

13、求两个整数a与b的最大公约数和最小公倍数。

(★,循环语句、If条件语句,测试数据16和24,最大公约数8,最小公倍数48)

14、利用格利高公式求π。

111

1

4357

π

=-+-+,直到最后一项的值小于10-6为止。

(★★★,循环语句)(答案:3.E+00)program e2_32;

var

n,fh:longint;

s,t,p:real;

begin

writeln; n:=1; s:=0; t:=1; fh:=1;

while (abs(t)>=1e-6) do

begin t:=fh/n; s:=s+t; n:=n+2; fh:=-fh; end; p:=4*s;

writeln('pi=',p);

end.

相关练习:利用公式

111

81357911

π

=+++

⨯⨯⨯

,求π。

(计算前10000项时,答案为3.)

program e;

var

i,a,b:longint;

x,s:real;

begin

writeln; s:=0;

for i:=1 to 10000 do begin a:=(4*i-3); b:=(4*i-1); s:=s+1/(a*b); end;

writeln(8*s);

end.

15、求100~999中的水仙花数。(若三位数ABC,ABC=A3+B3+C3,则称ABC为水仙花数。例如

153,13+53+33=153,则153是水仙花数。)(★★,循环语句)

(答案:153、370、371、407)

program e12;

var

i,a,b,c:integer;

begin

writeln;

for i:=100 to 999 do

begin

a:=i div 100;

b:=(i mod 100) div 10;

c:=i mod 10;

if i=a*a*a+b*b*b+c*c*c then write(i:8);

end;

end.

16、试编写能够打印输出如下图形的程序。(★★,循环语句)

AAAAAAAAA

信息学奥林匹克竞赛辅导——程序设计试题答案部分 第5页

AAAAAAA AAAAA AAA

A

program e; const n=5; var

i,j:integer; begin writeln;

for i:=1 to n do begin

write('':i);

for j:=1 to (n-i)*2+1 do write('A'); writeln; end; end.

17、四个学生上地理课,回答我国四大淡水湖大小时这样说:

(★★★)

甲:“最大洞庭湖,最小洪泽湖,鄱阳湖第三。” 乙:“最大洪泽湖,最小洞庭湖,鄱阳湖第二,太湖第三。” 丙:“最小洪泽湖,洞庭湖第三。” 丁:“最大鄱阳湖,最小太湖,洪泽湖第二,洞庭湖第三。”

对于每个湖的大小,每个学生仅答对一个,请编程确定四个湖的大小。

习题部分:

1、 已知三角形的两边a 、b 和夹角jc 的值,求第三边(已知条件由键盘输入)。

(★)

(提示:余角公式2

2

2

2cos c a b ab c =+-) (测试数据:输入a =3、b =4、jc =90;

输出5)

program e2_5; var

a,b,c,jc:real; begin

writeln('input a,b,jc:'); readln(a,b,jc); c:=sqrt(a*a+b*b-2*a*b*cos(pi*jc/180)); writeln(c:8:2); end.

2、 编写程序把一个四位整数3581颠倒成1853。 (★)

program e; const n=3581; var

a,b,c,d:integer; begin writeln;

a:=n mod 10;

b:=(n div 10) mod 10; c:=(n div 100) mod 10;

d:=n div 1000;

writeln(a,b,c,d);

end.

相关练习:任意输入一个正整数,颠倒输出该数。

program e;

var

n:longint;

begin

writeln; writeln('input a integer number:'); readln(n);

repeat

write(n mod 10); n:=n div 10;

until n=0;

end.

3、输入a、b、c三个数,打印出最大者。(★,If条件语句)

program e;

var

a,b,c:real;

begin

writeln('input three number for a,b,c:');

readln(a,b,c);

if (a>b)and(a>c) then writeln(a);

else if (b>a)and(b>c) then writeln(b);

else writeln(c);

end.

4、从键盘读入两个数,比较其大小,把大数置于x,小数置于y。请设计实现该功能的程序。

(★,If条件语句)(程序略)

5、输入三个数,判断以这三个数为边能否组成一个三角形。若不能,则给出适当信息;若能,则

进一步判断它们构的是锐角三角形、直角三角形还是钝角三角形,并输出其特征(等边、等腰、直角、一般)、求其面积。(★★,If条件语句)(算法分析:对于判断是锐角、直角、还是钝角三角形,只需判断最大边的平方与其余两边的平方和的大小比较即可,小于则为锐角、等于则为直角、大于则为钝角。)

(测试数据:①1、2、3;②3、4、5;③)4、4、7;④5、5、5;答案:①No;②直角、面

积6.00;③钝角、等腰、面积6.78;④锐角、等边、面积10.83)

program e;

var

a,b,c,t,s,d,ja,jb,jc:real;

begin

writeln('input three number for a,b,c:');

readln(a,b,c);

if a

if a

if (a

begin

if (a*a

信息学奥林匹克竞赛辅导——程序设计试题答案部分第7页

else if(a*a=b*b+c*c) then writeln('zhi jiao san jiao xing.')

else writeln('dun jiao san jiao xing.');

if (a=b)and(b=c)and(c=a) then writeln('deng bian san jiao xing.')

else if ((a=b)and(b<>c))or((a=c)and(c<>b))or((b=c)and(c<>a)) then

writeln('deng yao san jiao xing.')

else if (a*a<>b*b+c*c) then writeln('yi ban san jiao xing.');

d:=(a+b+c)/2; s:=sqrt(d*(d-a)*(d-b)*(d-c)); writeln('s=',s:0:2);

end

else writeln('NO!');

end.

6、设我国目前的人口为11亿,且每年的增长率为1.5%。问多少年后,我国的人口会翻一番?(★)

(答案:47)

program e2_22;

var

i:integer;

s:real;

begin

writeln; s:=11; i:=0;

while s<22 do

begin s:=s*(1.015); inc(i); end;

writeln(i);

end.

7、Fibonacci数列问题:数列的头两个数分别是0和1,从第三个数开始,每个数皆为它的前两个

数之和,即:0,1,1,2,3,5,…,输出该数列的第50个数。(★★,循环语句)

(答案:)

program e;

{$N+,E+}

var

i:integer;

x,y,z:extended;

begin

writeln; x:=0; y:=1; write(x:20:0,y:20:0);

for i:=3 to 50 do

begin z:=x+y; write(z:20:0); x:=y; y:=z; end;

end.

8、编写程序求出下式中n的最大值:22+42+62+…+n2<1500。(★★,循环语句)

(答案:18)

program e2_24;

var

n,s:integer;

begin

writeln;

s:=0; n:=0;

while s<1500 do

begin inc(n,2); inc(s,n*n); end;

writeln(n-2);

end.

9、把一元的钞票换成一分、二分和五分的硬币(每种至少一枚),问有多少种兑换方法?(★★)

(答案:461)

program e2_29;

var

i,j,k,ans:integer;

begin

ans:=0;

for k:=1 to 19 do

for j:=1 to 47 do

for i:=1 to 93 do

if (k*5+j*2+i)=100 then inc(ans);

writeln(ans);

end.

10、编写程序求最小正整数m、n(0

(★★★★)(算法:这类数字很大且有效数字位数很多(超出最多有效位数extended数据类型有效数字18位)的数字问题,一定要另辟蹊径寻找突破口,注意到此题只要求最后三位数字相同,则我最多保留最后四位有效数字即可进行判断。还请记住这样一个事实,如1989×1989=,×1989=,最后四位数字是“4669”,而我把取其最后的四位数“6121”与1989相乘即6121×1989=,最后四位数字也是“4669”,没有破坏最后四位有效数字的值,因此可以通过这种方法来编写此程序。)

(答案:m=51; n=1);

program e;

var

m,n,i,j:integer;

x,y,a,b:longint;

begin

writeln;

for m:=2 to 60 do

for n:=1 to m-1 do

begin

x:=1; y:=1;

for i:=1 to m do begin x:=x mod 10000; x:=x*1989; a:=x mod 1000; end;

for j:=1 to n do begin y:=y mod 10000; y:=y*1989; b:=y mod 1000; end;

if a=b then writeln('m=',m,' n=',n);

end;

end.

11、编写程序提示用户输入一系列整数,用0作结束标志,统计其中有多少个正数。(★)

program e;

var

count,x:integer;

begin

writeln; writeln('input integer number(0--end):'); count:=0;

repeat

信息学奥林匹克竞赛辅导——程序设计试题答案部分第9页read(x);

if x>0 then inc(count);

until(x=0);

writeln('count=',count);

end.

12、求自然常数

1111

0!1!2!!

e

n

=++++的值。(提示:0!=1,1!=1)(★★)

(1)直到第50项;(2)直到最后一项小于10-5。

(答案:(1)2.905E+0000;(2)2.319E+0000)

(备注:第2小问程序略,只须将更改语句“until (1/s)<1E-5;”即可求的解答)

program e2_35;

{$N+}

var

i,count:integer;

e,s:extended;

begin

e:=1; count:=0;

repeat

inc(count); s:=1;

for i:=1 to count do s:=s*i;

e:=e+1/s;

until count=50;

writeln(e);

end.

13、三齐王点兵的故事。相传三齐王韩信才智过人,从不直接清点自己军队的人数,只是让士兵

先后以三人一排、五人一排、七人一排地变换队形,而他每次只掠一眼队伍的排尾就知道总

人数了(不超过100人)。输入三次排尾的人数,输出总人数。(★★)program e2_36;

var

a,b,c,i:integer;

begin

writeln('shu ru p3(0~2),p5(0~4),p7(0~6) de wei shu:');

readln(a,b,c);

for i:=100 downto 1 do

if (i mod 3=a)and(i mod 5=b)and(i mod 7=c) then writeln(i);

if i=1 then writeln('No answer!');

end.

14、编写程序,计算N!以十进制数形式表示的数中最右的非零数字,并找出在它右边有几个零。

例如12!=1×2×3×…×12=。因此12!的右边有2个零。(★★★)

(提示:碰到5、52、53、54…才会出现末尾是零,所以1000!末尾零的个数为:(1000 div 5)+(1000 div 52)+(1000 div 53)+(1000 div 54)=249)(下面的程序没采用上面的算法,采取另一种算法实现了这一程序,显然上面的算法效率高)

(程序算法:只需提供末尾几位有效数字即可,我采取提供四位有效数字相乘)

program I_11;

var

s:longint;

i,d:integer;

begin

writeln;

d:=0; s:=1;

for i:=1 to 1000 do

begin

s:=s*i;

if (s mod 1000 =0) then begin s:=s div 1000; d:=d+3; end;

if (s mod 100 = 0) then begin s:=s div 100; d:=d+2; end;

if (s mod 10 = 0) then begin s:=s div 10; d:=d+1; end;

s:=s mod 10000;

end;

writeln; write(d);

end.

15、编写程序,输出“字母塔”。以此类推共26层。 A (★★)

ABA

ABCBA

……………

program e2_40;

var

i,j:integer;

begin

writeln;

for i:=1 to 26 do

begin

for j:=1 to 26-i do write(' ');

for j:=1 to i do write(chr(64+j));

for j:=i-1 downto 1 do write(chr(64+j));

writeln;

end;

end.

第4章数组类型

例题部分:

1、输入10个整数,把这10个数按从小到大的顺序排列。(★★)

(冒泡法排序和选择法排序两种方法)

冒泡法排序:

program e1;

const n=10;

var

a:array[1..10] of integer;

i,j,t:integer;

begin

writeln('input ',n,' integer number:');

for i:=1 to n do read(a[i]);

for i:=1 to n-1 do

for j:=1 to n-i do

if a[j]>a[j+1] then begin t:=a[j]; a[j]:=a[j+1]; a[j+1]:=t; end;

for i:=1 to n do write(a[i]:5);

end.

2、折半查找。(二分法查找)(★★)

3、旅馆里有一百个房间,从1到100编了号。第一个服务员把所有的房间门都打开了,第二个服

信息学奥林匹克竞赛辅导——程序设计试题答案部分第11页

务员把所有编号是2的倍数的房间“相反处理”,第三个服务员把所有编号是3的倍数的房间作“相反处理”,……,以后每个服务员都是如此。问第100个服务员来过后,哪几扇门是打

开的。(所谓“相反处理”是:原来开着的门关上,原来关上的门打开。)(★★)(提示:对于任何一个编号,例如8,它的因子只有1、2、4、8,并且成对出现,当此数的因子数为偶数个时将被关上,当此数的因子数为奇数个时才会被打开。考虑到因子成对出现的情况,因此只有平方数的因子是奇数个的,所以门被打开的只能是平方数的房间,如1,4等)

4、编写程序把任意十进制整数转换成二进制整数。(★★)

5、所谓“幻方”,是一个行、列为奇数的方阵,把1~n2这n2个不同的数放入方阵中,使方阵的

每行、每列和每个对角线上的元素的和全部相等。下面给出幻方的一种排列方法:

(1)先把1放在第一行的中间位置;

(2)下一个数放在上一个数的右上方;

(3)若右上方已超出方阵的第一行,则下一个数放在下一列的最后一行上;

(4)若右上方已超出方阵的最后一列,则下一个数放在上一行的第一列上;

(5)若右上方已经有数,或右上方已超出方阵的第一行最后一列,则下一个数放在上一个数的正下方。

编写程序,对输入小于15的n,打印出相应的幻方。(★★★)

6、在一个字符数组LET中形成由A开始的连续26个大写字母构成的字串,并将其倒置后仍放在

LET中。

7、随机输入一个长度不超过255的字符串,将其倒置后输出。

8、随机输入一些国家的英文名字,以end作为输入结束标志,按字母顺序排序后输出。

9、求n个字符串的最长公共子串,n<20,字符长度不超过255。

例如n=3,由键盘依次输入三个字符串为:

what is local bus?

Name some local bus.

Local bus is high speed I/O bus close to the processor.

则最长公共子串为“local bus”。

10、文本的整版。编写一个程序,从键盘以任意的方法输入句子,然后打印出来。打印时每行宽

度必须为n个字符。如果一行的最后一个单词超出了本行n个字符的范围,则应把它移到下一行去。输入一个句子测试你的程序。

习题部分:

1、输入n个整数,请找出最小数所在的位置,并把它与第一个数对调。(★)

program e4_2;

var

a:array[1..10]of integer;

i,t,y:integer;

begin

writeln('input ten integer number:');

for i:=1 to 10 do read(a[i]);

t:=a[1];

for i:=2 to 10 do if a[i]

for i:=1 to 10 do

if a[i]=t then begin writeln('the min number is ',i,'th'); a[i]:=a[1]; a[1]:=t; end;

for i:=1 to 10 do write(a[i]:8);

end.

2、用边排序边合并的方法把两个有序数列合并为一个新的有序数列,不得先合并再重新排序。

(★★)(测试数据:这里a组数据共8个:1 1 3 6 6 7 9 10;b组数据共5个:0 1 2 3 4)program e4_3;

var

a:array[1..8] of integer;

b:array[1..5] of integer;

c:array[1..13] of integer;

i,j,k,m,n:integer;

begin

writeln('input 8 integer number of square arrayA:');

for i:=1 to 8 do read(a[i]);

writeln('input 5 integer number of square arrayB:');

for i:=1 to 5 do read(b[i]);

j:=1; k:=1; m:=a[j]; n:=b[k];

for i:=1 to 13 do

begin

if m

begin

c[i]:=m; inc(j); m:=a[j];

if j=9 then m:=maxint;

end

else

begin

c[i]:=n; inc(k); n:=b[k];

if k=6 then n:=maxint;

end;

end;

for i:=1 to 13 do write(c[i]:4);

end.

3、将一个数插入到有序的数列中,插入后数列仍然有序。(★★)

(测试数据:有序数组为1 1 3 6 6 7 9 10;待插入数为5)

program e4_4;

var

i,j,n:integer;

flag:boolean;

a:array[1..9] of integer;

begin

writeln('input 8 integer square number:');

for i:=1 to 8 do read(a[i]);

writeln('input a integer number to insert:');

readln(n);

flag:=false; i:=1;

repeat

if a[i]>n then flag:=true else inc(i);

信息学奥林匹克竞赛辅导——程序设计试题答案部分第13页

until flag=true;

for j:=9 downto i+1 do a[j]:=a[j-1];

a[i]:=n;

for i:=1 to 9 do write(a[i]:4);

end.

4、有N个无序的数存放在A数组中,请将后面相同的数删成只剩下一个,并输出经过删除后的

数列。(★★)(测试数据:数列为1 3 5 3 7 5 3 1;答案:1 3 5 7)

program e4_5;

var

a:array[1..8] of integer;

i,j,n:integer;

begin

writeln('input 8 integer number:');

for i:=1 to 8 do read(a[i]);

for i:=2 to 8 do

for j:=1 to i-1 do if a[i]=a[j] then a[i]:=maxint;

for i:=1 to 8 do

if a[i]<>maxint then write(a[i]:4);

end.

5、有N个人排队到R个相同的水龙头去打水,他们装满各自水桶的时间T1、T2、…、TN为整

数且互不相等,应如何安排他们打水的顺序才能使他们花费的总时间最少?(花费的总时间等于每个花费时间的总和)

6、求一个五阶方阵中某个元素的位置:它在行上是最小的,在列上也是最小的,如果没有请输出

“NO FIND!”。(★★★)

(分析:整个矩阵中的最小值,当然也是所在行和所在列的最小值,因此肯定能找到这样的数)测试数据:答案:2、1、3、6

11 4 2 7 8

5 9 23 1 25

3 22 21 18 15

17 16 24 12 6

13 10 19 20 14

program e;

var

i,j,x,y:integer;

minx:integer;

a:array[1..5,1..5] of integer;

begin

writeln; writeln('input number(5*5):');

for i:=1 to 5 do

for j:=1 to 5 do

read(a[i,j]);

for i:=1 to 5 do

begin

minx:=a[i,1]; x:=i; y:=1;

for j:=1 to 5 do

if a[i,j]

for j:=1 to 5 do

if a[j,y]

if j=5 then writeln('the number is ',minx,'[',x,']','[',y,']'); end; end.

第5章 过程与函数 例题部分:

1、 编程求:1!+3!+5!+7!+9!+11!。

2、 求数字的乘积根。一个正整数的数字的乘积N 的定义是:这个整数中非零数字的乘积。例如,

整数999的数字乘积为9×9×9,即729。729的数字乘积为7×2×9,即126。126的数字乘积为1×2×6,即12。12的数字乘积为1×2,即2。一个正整数的数字乘积根N 是这样得到的:反复取该整数的数字乘积,直到得到一位数字为止。例如,在上面的例子中数字的乘积根是2。编写一个程序,输入一个正整数(长度不超过200位数字),输出计算其数字乘积根的每一步结果。

3、 汉诺(Hanoi )塔问题。设有n 个大小不等的中空圆盘,按照从小到大(尺寸和序号)的顺序

叠套在立柱A 上。另有两根立柱B 和C ,如图所示。问题要求把全部圆盘从A 柱(源柱)移到C 柱(目标柱)。移动过程中可借助B 柱(中间柱)。移动时有如下要求: (1) 一次只能移动一个圆盘; (2) 不允许把大盘放在小盘上边; (3) 可使用任意一根立柱暂存圆盘。

4、 把一个十进制整数转化为K 进制数(K ≤10)。

5、 八皇后问题:把八个皇后摆在8×8国际象棋棋盘格子内,使它们互不捕获对方。换言之,在

任何一行、一列或一条对角线上,仅能放置一个皇后。这一问题是由19世纪著名数学家高斯(Gauss )于1850年首先提出的。(答案共有92种解答)

6、 已知:切比雪夫多项式如下: (提示:运用递归函数计算)

121

(0)()(1)2()()(2)

n n n n T x x n xT x T x n --=⎧⎪

==⎨⎪-≥⎩

对给定的不同的正整数,它是一些阶数不同的多项式,编程计算第n 个多项式的值。

习题部分:

1、 编写一递归函数说明,用以计算组合数C (M ,N )。(即M

N C )

2、 两个人玩井字游戏,在井字进分的九个空位上轮流画O 或*,谁最先使自己的三个O 或三个*

在一条直线上,谁就赢了。编写程序检查每一步是否走得正确,并告诉谁是胜利者。

第6章 集合与记录类型 例题部分:

1、 七段数码管问题。

2、 任意给出一个正整数N ,找一个正整数M ,使得N*M 的值的数字由0、1、…、C (C ≤9)组

成,且这些数字至少出现一次。编写程序在整数范围内找出满足条件的最小M

。若没有给出

信息学奥林匹克竞赛辅导——程序设计试题答案部分 第15页

信息,则输出“No find !”。

例如:C =3、N =65时,M =48,65×48=3210;

C =8、N =125时,“No find !”。

(以下程序设计试题来自《计算机二级考试复习指南》) 1. 数列(1)(2)1,

()(1)(1)(2)(2)(2)

e e e n n e n n e n n ==⎧⎨

=--+-->⎩称为e 数列,

(★★)

每一个e (n )(n =1,2,…)称为e 数。求[1,30000]之内: (1) 最大的e 数;(2)e 数的数目。

(该数列前面几项为1、1、3、11、53、……; 答案:①16687; ②8) program e; var

a,b,c,n:longint; begin

writeln; n:=3; a:=1; b:=1; repeat

c:=(n-2)*a+(n-1)*b; a:=b; b:=c; inc(n); until c>30000;

writeln('maxe=',a,' count=',n-2); end.

2. 计算并输出:1000

1

1

(1)i S i i ==

⨯+∑之值(精确到小数点后第5位)

。 (★)

(答案:0.99900)

program e; var

i:integer; s,n:real; begin

writeln; s:=0;

for i:=1 to 1000 do begin n:=i; s:=s+1/(n*(n+1)); end; writeln(s:0:5); end. 3. 已知(0)(1)(2)1

()(1)2(2)(3)

(2)

F F F F N F N F N F N N ===⎧⎨

=---+->⎩,求: (★★)

(1) F (50);(2)F (0)+F (1)+……+F (50)。 (答案:①; ②-97262) program e; var

i,a,b,c,d,s:longint; begin

writeln; a:=1; b:=1; c:=1; s:=3; for i:=3 to 50 do

begin d:=a-2*b+c; s:=s+d; a:=b; b:=c; c:=d; write(d:8); end; writeln; writeln('s=',s); end.

4. 求满足:A ·B =并且A +B 最小两个条件的A 和B 。

(★★★)

(答案:A=563;B=1273)

program e;

var

a,x,s,mina,minb:longint;

begin

writeln; s:=; x:=trunc(sqrt());

for a:=1 to x do

if ( mod a=0)and(a+( div a)

begin s:=a+( div a); mina:=a; minb:=( div a); end;

writeln('A=',mina,' B=',minb);

end.

5.一自然数平方的末几位与该数相同时,称此数为自同构数。例如,由于52=25,则称5为自同构

数。求出[1,700]以内的:(1)最大的自同构数;(2)自同构数数目。(★★)

(答案:①625 ②)7)

program e;

var

i,count:longint;

begin

writeln; count:=0;

for i:=1 to 9 do

if (i*i-i) mod 10=0 then inc(count);

for i:=10 to 99 do

if (i*i-i) mod 100=0 then inc(count);

for i:=100 to 700 do

if (i*i-i) mod 1000=0 then begin inc(count); write(i:8); end;

writeln; writeln('count=',count);

end.

6.若某不含数字0的三位正整数,其平方数至少有三位同样的数字,则称该三位数为三重数。例如,

由于:5112=(有三位1),所以511为三重数。求出:(★★★★)

(1)按升序排列第10个三重数;(2)按升序排列前10个三重数之和;

(答案:(1)258;(2)1826)

program e1;

var

i,j,k,a,b,c,x,n,count,s:longint;

aa:array[1..5]of integer;

begin

writeln;

s:=0; count:=0;

for i:=111 to 316 do

begin

a:=i div 100; b:=(i div 10) mod 10; c:=i mod 10;

if ((a<>0)and(b<>0)and(c<>0)) then

begin

x:=i*i;

aa[1]:=x div 10000;

aa[2]:=(x div 1000) mod 10;

aa[3]:=(x div 100) mod 10;

aa[4]:=(x div 10) mod 10;

aa[5]:=x mod 10;

for j:=1 to 3 do

begin

信息学奥林匹克竞赛辅导——程序设计试题答案部分第17页

n:=1;

for k:=j+1 to 5 do

if aa[j]=aa[k] then n:=n+1;

if n>2 then begin writeln(i:8,x:8); s:=s+i; count:=count+1; break; end;

end;

end;

if count=10 then break;

end;

writeln(s:8);

end.

7.满足下列两个条件:(a)千位数字与百位数字相同(非0),十位数字与个位数字相同;(b)是某

两位数的平方。的四位正整数称为四位平方数。例如,由于:7744=882,则称7744为四位平方数。求出:(1)所有四位平方数的数目;(2)所有四位平方数之和。(★★)(分析:最小四位数1000是31.6的平方,最大的四位数9999是99.9的平方)

(答案:①1;②7744)

program e;

var

i,x,count,s:longint;

begin

writeln; count:=0; s:=0;

for i:=32 to 99 do

begin

x:=i*i;

if ((x div 1000)=((x div 100) mod 10))and(((x div 10) mod 10)=(x mod 10)) then

begin inc(count); s:=s+x; end;

end;

writeln('count=',count,' s=',s);

end.

8.其平方等于某两个正整数平方之和的正整数称为弦数。例如,由于32+42=52,因此5为弦数。求

[121,130]之间:(1)弦数数目;(2)最小的弦数;(3)最大的弦数。(★★★)(分析:设a2+b2=c2,且a

(答案:①4;②122;③130)

program e;

var

i,j,k,x,count:longint;

begin

writeln; count:=0;

for i:=121 to 130 do

begin

x:=trunc(sqrt(i*i/2));

for j:=1 to x do

begin

k:=trunc(sqrt(i*i-j*j));

if (i*i=j*j+k*k) then

begin inc(count); writeln(i,'*',i,'=',j,'*',j,'+',k,'*',k); break; end;

end;

end;

writeln('count=',count);

end.

9. 求满足以下三个条件:(a )X 2+Y 2+Z 2=512;(b )X +Y +Z 之值最大;(c )X 最小。的一组X 、

Y 、Z 的值。

(★★★★)

(答案:X =22; Y =31; Z =34)

program e1; var

x,y,z,n,m,maxs,minx,xx,yy,zz:integer; begin writeln;

n:=trunc(sqrt(51*51/3)); m:=trunc(sqrt((51*51-1*1)/2)); maxs:=0; minx:=51; for x:=n downto 1 do for y:=x to m do begin

z:=trunc(sqrt(51*51-x*x-y*y));

if (z>y)and(x*x+y*y+z*z=51*51) then

if ((x+y+z>maxs)or((x+y+z)=maxs)) then begin

maxs:=x+y+z; xx:=x; yy:=y; zz:=z; end; end;

writeln('x=',xx,' y=',yy,' z=',zz); end.

10. 计算sin()ln 22

ax ax e e x a Y x a a --+=++(精度10-

4)(a=0.1、x=1.0)。 (★)

(答案:0.0295)

program e; var

y,a,x:real; begin

writeln; a:=0.1; x:=1.0;

y:=(exp(a*x)-exp(-a*x))/2*sin(x+a)+a*ln((x+a)/2); writeln(y:0:4); end.

11. 倒勾股数是满足下列公式:

222

111A B C +=(设A>B>C )的一组(3个)整数(A 、B 、C ),例如(156,65,60)是倒勾股数,因为222

1111566560+=。问: (★★) (1)A 、B 、C 之和小于100的倒勾股数有多少组?

(2)满足(1)的诸组中,A 、B 、C 之和最小的是哪组? (提示:把公式转化为A 2B 2=C 2(A 2+B 2)) (答案:①2; ②a =20, b =15, c =12) program e; var

a,b,c,count,mins,mina,minb,minc:longint; begin

writeln; count:=0; mins:=100; for c:=1 to 33 do

for b:=c+1 to 49 do

信息学奥林匹克竞赛辅导——程序设计试题答案部分 第19页

for a:=b+1 to 97 do

if (a*a*b*b=c*c*(a*a+b*b))and(a+b+c<100) then begin

inc(count);

if (a+b+c

writeln('count=',count,' a=',mina,' b=',minb,' c=',minc); end.

12. 设有十进制数字a 、b 、c 、d 、e ,求在满足下列式子:abcd ×e=dcba (a 非0,e 非0非1)的四位

数abcd 中,求满足条件的最小的abcd 和与之对应的e 。

(★★)

(答案:1089; 9) program e1; var

a,b,c,d,e,x,y:longint; begin writeln;

for a:=1 to 9 do for b:=0 to 9 do for c:=0 to 9 do for d:=0 to 9 do for e:=2 to 9 do begin

x:=a*1000+b*100+c*10+d; y:=d*1000+c*100+b*10+a; if (x*e=y) then begin writeln(x:8,e:8); exit; end; end; end.

13. 求方程:3

310x x -+=在区间(0,1)内的解,精度为10-

4。

(★★)

(答案:0.3473) program e; var

x:real; begin

writeln; x:=0.0001; repeat

if (abs(x*x*x-3*x+1)<1e-4) then writeln(x:0:4); x:=x+0.0001; until x>=1; end.

14. 按递增顺序产生序列M 中最小的80个数。M 定义如下:数1属于M ;若x 属于M ,则y=2x+1,

z=3x+1也属于M ,并求:

(★★★★)

(1) 该序列第50个元素之值;(2)该序列前50个元素之和。 (答案:(1)172; (2)3853) program e; var

i,j,k,t,p,n:longint;

a:array[1..100] of longint; begin writeln;

p:=1; a[p]:=1; n:=1; while p<50 do

begin

a[n+1]:=2*a[p]+1;

a[n+2]:=3*a[p]+1;

n:=n+2;

for i:=1 to n-1 do

for j:=1 to n-i do

if a[j]>a[j+1] then

begin t:=a[j]; a[j]:=a[j+1]; a[j+1]:=t; end;

p:=p+1;

end;

writeln(a[p]:8);

end.

15.在n个一连串的方格内填写字母A或B,但相邻两格内不能都填B。求所有可能的填写方案数。

例如,当n=3,可能的方案有AAA、AAB、ABA、BAA、BAB等5种。试求:(1)当n=15时,所有可能的方案数是多少?(2)当n=10时,包含有8个字母A的方案数共有多少?(★★★)(提示:此题可以采用进制转换来解决。考虑到只包含了A与B两个字母,我们可以用二进制的0和1来代替,所以当全部是A时最小,此数为0,当全部是B时最大为2 n-1,我们让变量从0~2 n-1循环,然后将此数转换为相应的二进制数存储在数组中即可进行判断了。)

(答案:(1)1597;(2)36)

program e;

var

n,m,s,i,j,count:longint;

flag:boolean;

a:array[1..100] of integer;

begin

writeln('input n:');

readln(n);

s:=1; count:=0;

for i:=1 to n do s:=s*2;

for i:=0 to s-1 do

begin

m:=i;

for j:=1 to n do

begin

a[j]:=m mod 2;

m:=m div 2;

end;

flag:=true;

for j:=1 to n-1 do

if (a[j]=1)and(a[j+1]=1) then

begin flag:=false; break; end;

if flag=true then count:=count+1;

end;

writeln(count);

end.

program e;

var

n,m,s,i,j,count,na:longint;

信息学奥赛基础测试题及答案

信息学奥赛基础测试题及答案 1、计算机的基本硬件结构一直沿袭()设计的框架。 A.比尔•;盖茨 B.冯•;诺依曼 C.布尔 D.图灵 答案:B 2、下列无符号数中,最小的数是() A.(11011001)2 B.(75)10 C.(37)8 D.(2A)16 答案:C 3、在外部设备中,绘图仪属于() A.输入设备 B.输出设备 C.辅(外)存储器 D.主(内)存储器 答案:B 4、计算机主机是由CPU与()构成的 A.控制器 B.输入、输出设备 C.运算器 D.内存储器 答案:D 5、计算机病毒的特点是()

A.传播性、潜伏性、易读性与隐蔽性 B.破坏性、传播性、潜伏性与安全性 C.传播性、潜伏性、破坏性与隐蔽性 D.传播性、潜伏性、破坏性与易读性 答案:C 6、WINDOWS 9X是一种()操作系统 A.单任务字符方式 B.单任务图形方式 C.多任务字符方式 D.多任务图形方式 答案:D 7、Internet的规范译名应为() A.英特尔网 B.因特网 C.万维网 D.以太网 答案:B 8、计算机网络是一个()系统 A.管理信息系统 B.管理数据系统 C.编译系统 D.在协议控制下的多机互连系统

答案:D 9、计算机系统总线上传送的信号有() A.地址信号与控制信号 B.数据信号、控制信号与地址信号 C.控制信号与数据信号 D.数据信号与地址信号 答案:B 10、计算机的运算速度取决于给定的时间内,它的处理器所能处理的数据量。处理器一次能处理的数据量叫字长。已知64位的奔腾处理器一次能处理64个信息位,相当于()字节。 A.8个 B.1个 C.16个 D.2个 答案:A 11、某种计算机的内存容量是640K,这里的640K容量是指()个字节 A.640 B.640*1000 C.640*1024 D.640*1024*1024 答案:C 12、下面哪些计算机网络不是按覆盖地域划分的() A.局域网 B.都市网 C.广域网 D.星型网 答案:D 13、在有N个叶子节点的哈夫曼树中,其节点总数为()

【汇编语言程序设计】试题及答案合集 2(1)

汇编语言程序设计试题及答案 1.对于有符号的数来说,下列哪个值最大() A:0F8H B:11010011B C:82 D:123Q 2.下列有关汇编语言中标号的命名规则中,错误的是() A:通常由字母打头的字符、数字串组成 B:标号长度不能超过31个字符 C:?和$不能单独作为标号 D:.号不可位于标号首 3.8088/8086存储器分段,每个段不超过() A.64K个字 B.32K个字节 C.1兆个字节 D.64K个字节 4.寻址指令MOV CX, [BX + DI + 20]使用的是哪一种寻址方式()A:寄存器寻址B:相对基址变址寻址 C:变址寻址D:基址变址寻址 5.若AX= - 15要得到AX=15应执行的指令是() A.NEG AX B.NOT AX C.INC AX D.DEC AX 6.8086/8088系统执行传送指令MOV时() A.不影响标志位 B.影响DF方向标志 C.影响SF符号标志 D.影响CF进位标志 7.若要求一个操作数中的若干位维持不变,若干位置“1”,可以使用()A:NOT B:OR C:AND D:XOR 8.下列指令中段默认为堆栈段的是() A.MOV AX,[BX+SI+10] B.ADD AX,ES:[SI] C.SUB [BX],[BP][DI] D. MOV DX,[1000H] 9.关于8086/8088微机系列,下列说法哪个是正确的() A:一个存储单元由16个二进制位组成,简称字。

B:当存储一个字数据时,低字节放高地址位,高字节放低地址位。 C:在内存空间中,可以无限分配段,且段的大小不受限制。 D:段与段之间可以邻接,也可以重叠。 10.下列关于堆栈的说法,错误的是() A:以“先入后出”为原则。 B:栈区最高地址单元的前一个单元为栈底。 C:运行中SP寄存器动态跟踪栈顶位置。 D:压栈和弹出都是以字节为单位。 11.表示过程定义结束的伪指令是() A.ENDP B.ENDS C.END D.ENDM 12.BUF1 DB 3 DUP(0,2 DUP (1,2),3) COUNT EQU $-BUF1 符号COUNT等价的值是() A.6 B.18 C.16 D.9 13.下列标志位中,可以用来判断计算结果正负的是() A:PF B:SF C:DF D:OF 14.下列指令正确的是() A. MOV [100H], [BX] B.MOV DS, ES C. ADD V[BX], CX D.MOV AX, 34H 15.下列哪个寄存器是属于指针寄存器() A:SI B:DX C:SP D:ES 二、填空题 (每小题4 分,共 20 分) 1.下列程序段求数组FLD的平均值,结果在AL中。请将程序填写完整(不考虑溢出) FLD DW 10, -20, 30, -60, -71, 80, 79, 56 _______________ MOV CX, 8 XOR AX, AX R1:____________

小学生信息学奥赛集训试题及答案

小学生信息学奥赛集训试题及答案

前言 (2010年3月) 信息奥赛主要题型为:选择题、阅读程序、问题求解、完善程序、编程,其中初赛主要为前四项,着重考核学生的信息基础的知识面,对程序的理解能力、分析问题解决问题的能力,决赛着重考核学生的分析问题解决问题及实际编程能力。为此,我们****培训中心组织老师精心整理了本次集训的资料。本期培训共十次课,各专题讲解时间分配如下:第一讲:基础知识(1) 第二讲:基础知识(2) 第三讲:阅读程序(1) 第四讲:阅读程序(2) 第五讲:问题求解(1) 第六讲:问题求解(2) 第七讲:完善程序(1) 第八讲:完善程序(2) 第九讲:综合训练(1) 第十讲:综合训练(2) 课程编排的思想是先了解信息学基础知识,激发学习兴趣;通过问题求解训练,提高分析问题的能力;通过阅读程序训练,实际可以学习部分示范程序;通过完善程序,解决问题,同时也是学习示范程序;最后两次综合训练相当于模拟竞赛。 希望同学们在集训期间,能认真听讲,及时复习,理解老师的解题思路,相信通过我们的一起努力,你一定能取的很大的进步。

第一章计算机基础知识 1 计算机基本知识 1.计算机的产生和发展 1946年2月15日,在美国宾夕法尼亚大学诞生了世界上第一台电子计算机ENIAC(Electronic Numerical Integrator And Computer),它是为计算弹道和射击表而设计的。这台计算机占地170平方米,重30吨,主要元件是电子管,用了18000多个,每秒能进行5000次加法运算,比当时最快的计算工具还快300多倍。 2.计算机的特点 计算机的特点主要有:运算速度快、计算精度高、具有大容量记忆和高速存取能力、具有逻辑判断能力以及存储程序和自动处理能力。 3.计算机基本工作原理与冯·诺依曼计算机模型 3.计算机的应用 4.计算机的发展 【例001】迄今电子数字式计算机都属于冯·诺依曼式,这是由于它们都建立在冯·诺依曼提出的()核心思想基础上。 A)二进制B)程序存储与控制

全国青少年信息学奥林匹克竞赛(高中组)初赛试题及答案

NOI’95 “同创杯”全国青少年信息学(计算机)奥林匹克竞赛分区联赛初赛试题(高中组)竞赛用时:2小时 一、基础题: <1> 执行①C>DIR 命令后,屏幕上显示如下画面: FORMAT COM 12145 SYS COM 4878 PUC BAT 126 XCOPY EXE 11216 4 FILE(S)123456 bytes free 接着又顺序执行了如下几条DOS 命令: ②C>DIR> DF.TXT //表示将列表显示的目录作为文件写盘// ③C>TYPE DF.TXT ④C>DIR 试问:执行命令③和④在屏幕上显示的结果是否与①相同? <2> 列举一个问题,使问题的解能对应相应的算法。 例如对算法:X:=10;

Y:=5; READ(M,N); S:=X*M-Y*N; 可列举出如下的问题: 学生答题,答对一题可得10分,答错一题则要扣去5分,输入答对的题数(M)与答错的题数(N),求最后得分(S)是多少? 现有以下算法:K:=0 ; FOR I:=0 TO 10 DO K:=K+(50-I*5)DIV 2+1 请列出一个相应的问题。 <3> 有标号为A、B、C、D和1、2、3、4的8个球,每两个球装一盒,分装4盒。标号为 字母的球与标号为数字的球有着某种一一对应的关系(称为匹配),并已知如下条件: ①匹配的两个球不能在一个盒子内。 ②2号匹配的球与1号球在一个盒子里。 ③A号和2号球在一个盒子里。 ④B匹配的球和C号球在一个盒子里。 ⑤3号匹配的球与A号匹配的球在一个盒子里。 ⑥4号是A或B号球的匹配球。 ⑦D号与1号或2号球匹配。 请写出这四对球匹配的情况。 <4> 从入口(1)到出口(17)的可行路线图中,数字标号表示关卡: 现将上面的路线图,按记录结构存储如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 请设计一种能从存储数据中求出从入口到出口经过最少关卡路径的算法。

信息技术奥赛专题答案精选

信息学分区联赛100题初赛选择题 1、计算机主机是由CPU与下列哪种设备共同构成的( ) A.控制器 B.运算器 C.输入、输出设备 D.内存储器 解释:主机与中央处理器(CPU)是两个不同的概念。CPU由控制器与运算器组成,而主机则由CPU和内存储器组成,输入、输出设备属于计算机的处围设备。 2、计算机能直接执行的指令包括两部分,它们是( ) A.源操作数与目标操作数 B.操作码与操作数 C.ASCII码与汉字代码 D.数字与字符 解释:计算机的指令系统是由操作码与操作数组成。 3、下列诸因素中,对微机工作影响最小的是( ) A.尘土 B.噪声 C.温度 D.湿度 解释:一般,对计算机工作有较大影响的有尘土、温度、湿度。

4、不同类型的存储器组成了多层次结构的存储器体系,按存取速度从快到慢排列的是( ) A.快存/辅存/主存 B.外存/主存/辅存 C.快存/主存/辅存 D.主存/辅存/外存 解释:我们要清楚,快存实质是高速缓存,主存即内存,辅存也就是外存。在这三种存储器中,以高速缓存最快,故此,通常常用的程序都是存放在高速缓存区里。而主存的速度当然是比辅存要快了。 5、在微机中,通用寄存器的位数是( ) A.8位 B.16位 C.计算机字长 D.32位 解释:通用寄存器的位数跟机器有关,取决于计算机的字长。 6、不同的计算机,其指令系统也不相同,这主要取决于( ) A.所用的CPU B.所用的操作系统 C.所用的程序设计语言 D.系统的总体结构 解释:计算机能实现的全部指令的集合合称为指令系统。执行各条指令所规定的操作是由指挥工作的控制器和执行运算的部件共同完成。

(完整版)青少年信息学奥林匹克初赛模拟试题附参考答案

D 、( 101)2 > ( 15) 16 E 、( 121)10 =( 79) 16 3、关闭一个活动应用程序窗口,可按快捷键( C 、Alt +Esc D 、Ctrl+ Esc E 、Shift+ Esc 4、结构化 程序设计的三种结构是( A 、顺序结构、选择结构、转移结构 C 多分结构、赋值结构、等价结构 E 、循环结构、顺序结构、选择结构 ) B 、分支结构、等价结构、循环结构 D 、分支结构、顺序结构、选择结构 5、编译程序是指( ) A 、 将高级语言源程序翻译成机器语言程序(目标程序) B 、 将机器语言源程序翻译成高级语言程序(目标程序) C 、 对源程序边扫描边翻译执行 D 、 对目标程序装配连接 E 、 运行源程序并修改错误 6、在pascal 语言中下列运算符( )的优先级别最高 7、 在线性表中,那些结点只有一个直接前驱和一个直接后续( ) A 、头结点 B 、尾结点 C 、中间的结点 D 、所有结点 E 、不确定 8、 具有12个记录的序列,采用冒泡排序法最少的比较次数是( ) A 、 1 B 、144 C 、11 D 、66 E 、0 9、 有N 个结点的图的邻接矩阵存储法中,链表的表头结点有( )个。 A 、 N B 、 2N C 、N/2 D 、N*N E 、N-2 10、表达式 SQRT ( ABS (-100)*SQR ( ROUND ( 3.7)))的值是( )。 11、二叉树的后序遍历为 abcdef ,这棵二叉树可能是: 信息学初赛模拟试题 一、选择一个正确答案代码( A/B/C/D ),填入每题的括号内 (本题共20小题,每题1.5 分共30分。1 —10小题为单选题,11— 20小题为不定项选择题,每题有一个或多个答案。 ) 1、如果按字长来划分,微型机可以分为 位机是指该计算机所用的 CPU ( A 、同时能处理32位二进制数 C 只能处理32位二进制定点数 8位机、16位机、32位机和64位机。所谓32 B 、具有32位的寄存器 D 、有32个寄存器 E 存储方式是 32位 2、下列表达式正确的是( A 、 ( 1) 10>( 1)2 B 、( 12)10 >( 10)16 C 、 ( 15)8 > ( 10)16 A 、 Ctrl + F4 B 、Alt + F4 A 、 AND B 、 NOT C <> D 、* E 、OR A 、 30 B 40 C 30.0 D 、40.0 E 、40.00

信息学奥赛试题及答案

信息学奥赛试题及答案 信息学奥赛试题 一、填空题(共20题,每题1.5分,共计30分。每题有 5个备选答案,前10个题为单选题(即每题有且只有一个正确答案,选对得分),后10题为不定项选择题(即每题有1至5个正确答案,只有全部选对才得分)。 1.微型计算机的性能主要取决于()。 A)内存B)主板C)中央处理器D)硬盘E)显示器 2.能将高级语言程序转换为目标程序的是( ). A)调试程序B)解释程序C)编辑程序D)编译程序E)连接程序 3.A=B,B=B,C=B,则A∨B∧C=( ) A) B) C) D) E) 4.计算机设备,既是输入设备,又是输出设备的是( )。 A)键盘B)触摸屏C)扫描仪D)投影仪E)数字化仪 5.计较机病毒沾染的需求前提是( )。 A)在内存中运转病毒步伐B)对磁盘举行读写操纵 C)在内存中运行含有病毒的可执行程序D)复制文件E)删除文件

6.行列(13,2,11,34,4l,77,5,7,18,26,15),第一个进入行列的元素是13,则第五个出行列的元素是( )。 A)5 B)41 C)77 D)13 E)18 7.在利用E-mail前,需求对Outlook举行设置,个中ISP 发送电子邮件的效劳器称为( )效劳器。A)POP3 B)SMTP C)DNS D)FTP E)HTTP 8.对给定的整数序列(54,73,21,35,67,78,63,24,89)举行从小到大的排序时,接纳快速排序的第一趟扫描的成效是( ). A)(24,21,35,54,67, 78,63,73,89) B)(24,35,21,54,67, 78,63,73,89) C)(24,21,35,54,67, 63,73,78,89) D)(21,24,35,54,63, 67,73,78,89) E)(24,21,35,54,67, 63,73,78,89) 9.编号为1到13的纸牌顺时针排成一圈,有人从编号为1的牌从数字1开始顺时针数下去,1,2,3,……,一圈又一圈,问当数到数字n ,所在的纸牌编号为多少? A) n mod 13 B)1+(n-1) mod 13 C)(n+1) mod 13-1 D)(n+1) mod 13 E) (n-1) mod 1310.对下图进行广度优先拓朴排序得到的顶点序列正确的是( ).

(noip2019)二十三届全国青少年信息学奥赛初赛试题及答案c++.doc

言简意赅,远见卓识,望君采纳,谢谢!删除水印可,编辑页眉,选中水印,点击删除。 第二十三届全国青少年信息学奥林匹克联赛初赛 普及组 C++ 语言试题 竞赛时间: 2019 年 10 月 14 日 14:30~16:30 选手注意: ●试题纸共有 7 页,答题纸共有 2 页,满分 100 分。请在答题纸上作答,写在试题纸上的一律无效。 ●不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料。 一、单项选择题(共20 题,每题 1.5 分,共计30 分;每题有且仅有一个正确选项) 1.在 8 位二进制补码中, 10101011 表示的数是十进制下的()。 A. 43 B. -85 C. -43 D. -84 2. 计算机存储数据的基本单位是( A. bit B. Byte C. GB )。 D. KB 3.下列协议中与电子邮件无关的是()。 A. POP3 B. SMTP C. WTO D. IMAP 4. 分辨率为 A. 937.5KB 800x600 、16 位色的位图,存储图像信息所需的空间为( B. 4218.75KB C. 4320KB D. 2880KB )。 5.计算机应用的最早领域是()。 A. 数值计算 B. 人工智能 C. 机器人 D. 过程控制 6.下列不属于面向对象程序设计语言的是 ( A. C B. C++ C. Java D. C# )。 7.NOI 的中文意思是()。 A. 中国信息学联赛 B. 全国青少年信息学奥林匹克竞赛 C. 中国青少年信息学奥林匹克竞赛 D. 中国计算机协会 8.2017 年 10 月 1 日是星期日, 1999 年 10 月 1 日是()。 A. 星期三 B. 星期日 C. 星期五 D. 星期二

二十三届全国青少年信息学奥赛初赛试题及答案c++

第二十三届全国青少年信息学奥林匹克联赛初赛 普及组C++语言试题 竞赛时间:2017年10月14日14:30~16:30 选手注意: •试题纸共有7页,答题纸共有2页,满分100分。请在答题纸上作答,写在试题纸上的一律无效。 •不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料。 一、单项选择题(共20题,每题1.5分,共计30分;每题有且仅有一个正确选项) 1. 在8位二进制补码中,10101011表示的数是十进制下的()。 A. 43 B.-85 C.-43 D.-84 2. 计算机存储数据的基本单位是()。 A.bit B.Byte C.GB D.KB 3. 下列协议中与电子邮件无关的是()。 A.POP3 B.SMTP C.WTOD .IMAP 4•分辨率为800G600、16位色的位图,存储图像信息所需的空间为()。

A.937.5KB B.4218.75KB C.4320KB D.2880KB 5. 计算机应用的最早领域是()。 A.数值计算 B.人工智能 C.机器人 D.过程控制 6. 下列不属于面向对象程序设计语言的是()。 A.C B.C++C .J avaD.C# 7. N0I的中文意思是()。 A.中国信息学联赛 B.全国青少年信息学奥林匹克竞赛 C.中国青少年信息学奥林匹克竞赛 D.中国计算机协会 8.2017年10月1日是星期日,1999年10月1日是()。 A.星期三 B.星期日 C.星期五 D.星期二 9. 甲、乙、丙三位同学选修课程,从4门课程中,甲选修2门,乙、丙各选修3门,则不同的选修方案共有()种。 A.36 B.48 C.96 D.192 10. 设G是有n个结点、m条边(n< m)的连通图,必须删去G的()条边,才能使得G变成一棵树

信息学奥赛基础知识习题(答案版)

信息学奥赛基础知识习题(答案版) 一、选择题(下列各题仅有一个正确答案,请将你认为是正确的答案填在相应的横线上)1.我们把计算机硬件系统和软件系统总称为 C 。 (A)计算机CPU (B)固件 (C)计算机系统(D)微处理机 2.硬件系统是指 D . (A)控制器,运算器 (B)存储器,控制器 (C)接口电路,I/O设备 (D)包括(A)、(B)、(C) 3。计算机软件系统包括 B . A) 操作系统、网络软件 B)系统软件、应用软件 C)客户端应用软件、服务器端系统软件 D)操作系统、应用软件和网络软件 4.计算机硬件能直接识别和执行的只有 D . (A)高级语言(B)符号语言 (C)汇编语言 (D)机器语言 5.硬盘工作时应特别注意避免 B . (A)噪声(B)震动 (C)潮 湿 (D)日光 6.计算机中数据的表示形式是 C 。 (A)八进制 (B)十进制 (C)二进制(D)十六进制 7.下列四个不同数制表示的数中,数值最大的是 A . (A)二进制数11011101 (B)八进制数334 (C)十进制数219 (D)十六进制数DA 8.Windows 9x操作系统是一个 A 。 (A)单用户多任务操作系统(B)单用户单任务操作系统 (C)多用户单任务操作系统(D)多用户多任务操作系统9.局域网中的计算机为了相互通信,必须安装___B__。 (A)调制解调器(B)网卡(C)声卡(D)电视卡 10.域名后缀为edu的主页一般属于__A____。 (A)教育机构(B)军事部门(C)政府部门(D)商业组织 11。香港在世界上注册的顶级域名是__A____。 (A)hk(B)cn(C)tw(D)com 12.计算机能够自动、准确、快速地按照人们的意图进行运行的最基本思想是 ( D )。 (A)采用超大规模集成电路(B)采用CPU作为中央核心部件 (C)采用操作系统 (D)存储程序和程序控制 13.设桌面上已经有某应用程序的图标,要运行该程序,可以 C 。 (A)用鼠标左键单击该图标 (B)用鼠标右键单击该图标 (C)用鼠标左键双击该图标(D)用鼠标右键双击该图标14.若己选定某文件,不能将该文件复制到同一文件夹下的操作是 C 。 (A)用鼠标右键将该文件拖动到同一文件夹下 (B)先执行”编辑"菜单中的复制命令,再执行粘贴命令 (C)用鼠标左键将该文件拖动到同一文件夹下 (D)按注Ctrl键,再用鼠标右键将该文件拖动到同一文件夹下 15.在“我的电脑”窗口中,若已选定了文件或文件夹,为了设置其属性,可以打开属性对话框的操作是 C 。 (A)用鼠标右键单击“文件"菜单中的“属性"命令 (B)用鼠标右键单击该文件或文件夹名,然后从弹出的快捷菜单中选“属性"项 (C)用鼠标右键单击“任务栏"中的空白处,然后从弹出的快捷菜单中选择“属性” 项 (D)用鼠标右键单击“查看"菜单中“工具栏”下的“属性”图标 16.当个人计算机以拨号方式接入Internet网时,必须使用的设备是 B 。 (A)网卡 (B)调制解调器(Modem) (C)电话机(D) 浏览器软件 17.在网络语言中,符号“:—)"常用于表示 C 。 (A)省略(B)即就是(C)微笑或开玩 笑 (D)不高兴或啼哭

信息学奥赛基础知识习题NOIP(答案版)

信息学奥赛基础知识习题(答案版) 一、选择题(下列各题仅有一个正确答案,请将你认为是正确的答案填在相应的横线上) 1.我们把计算机硬件系统和软件系统总称为 C 。 (A)计算机CPU (B)固 件 (C)计算机系统 (D)微处 理机 2.硬件系统是指 D 。 (A)控制器,运算器 (B)存储器,控制器 (C)接口电路,I/O设备 (D)包括(A)、(B)、(C) 3. 计算机软件系统包括 B 。 A) 操作系统、网络软件 B) 系统软件、应用软件 C) 客户端应用软件、服务器端系统软件 D) 操作系统、应用软件和网络软件4.计算机硬件能直接识别和执行的只有 D 。 (A)高级语言 (B)符号语言 (C)汇编语言 (D)机器语言 5.硬盘工作时应特别注意避免 B 。 (A)噪声 (B)震动 (C)潮 湿 (D)日光 6.计算机中数据的表示形式是 C 。 (A)八进制 (B)十进制 (C)二进 制 (D)十六进制

7.下列四个不同数制表示的数中,数值最大的是 A 。 (A)二进制数11011101 (B)八进制数334 (C)十进制数219 (D)十六进制 数DA 8.Windows 9x操作系统是一个 A 。 (A)单用户多任务操作系统 (B)单用户单任务操 作系统 (C)多用户单任务操作系统 (D)多用户多任务操 作系统 9.局域网中的计算机为了相互通信,必须安装___B__。 (A)调制解调器(B)网卡(C)声卡(D)电视卡 10.域名后缀为edu的主页一般属于__A____。 (A)教育机构(B)军事部门(C)政府部门(D)商业组织 11. 香港在世界上注册的顶级域名是__A____。 (A)hk(B)cn(C)tw(D)com 12.计算机能够自动、准确、快速地按照人们的意图进行运行的最基本思想是( D )。 (A)采用超大规模集成电路(B)采用CPU作为中央核心部件 (C)采用操作系统(D)存储程序和程序控制 13.设桌面上已经有某应用程序的图标,要运行该程序,可以 C 。 (A)用鼠标左键单击该图标 (B)用鼠标右键单击该 图标 (C)用鼠标左键双击该图标 (D)用鼠标右键双击该 图标

(信息学奥赛辅导)程序设计试题汇编(答案)

程序设计试题及答案 (备注:试题难度评价采取五★级评价体系,分基础、容易、一般、稍难、难五个等级,其中的一、二、三★级都属于程序设计的基础试题级别,同学们稍加思考均有能力求得正确解答,对于四★级试题属于程序设计试题基础级别的思考题,五★级难度试题在此没有涉及,在程序设计高级试题中另行讲解。对于基础和容易两个级别的程序设计试题,若能够给出语句分类(如If条件语句、条件语句嵌套、循环语句、多重循环语句等)的将尽量给出。若属于13大类别的将尽量标注。) 程序设计试题几大分类: 1、1\素数类问题(求素数的几种算法): 2、数据排序问题(数据排序的几种方法): 3、最大公约数和最小公倍数问题(几种算法): 4、公式求解类问题(如求圆周率π、自然常数e、解方程等等): 5、编号相反处理问题: 6、约瑟夫问题(或猴子选大王问题、密码问题): 7、回文数问题: 8、高精度数值计算问题: 9、数值计算问题: 10、进制相互转换问题: 11、字符串倒置问题: 12、排列与组合类问题: 13、因子、质因子(质因数)类相关问题: 答案部分: (程序设计的源程序没有统一的标准答案,实现程序的算法也是多种多样,但结果是唯一的,算法也有优劣之分,一个程序的优劣,关键在于是否找到了好的算法,以下程序和算法不一定就是最佳算法和最佳程序,只能仅供参考,希望同学们能够对某些程序提出更好的算法来改进程序) (经常碰到的判断是否为素数、是否为回文数、求两个数的最大公约数、求两个数的最小公倍数等问题的子函数源程序,请务必记住!) ①判断是否为素数,若是素数则返回true,若不是素数则返回false: function prime(x:longint):boolean; var j,y:longint; begin prime:=true; if x<2 then prime:=false; y:=trunc(sqrt(x)); for j:=2 to y do if (x mod j = 0) then begin prime:=false; exit; end; end; 备注:1~100之间所有的素数:2、3、5、7、11、13、17、19、23、29、31、37、41、43、47、53、59、61、67、71、

第八届全国青少年信息学奥赛初赛精彩试题普及组PASCAL语言

第八届全国青少年信息学奥赛初赛试题普及组PASCAL语言 一.选择一个正确答案代码(A/B/C/D,填入每题的括号内(每题1.5分,多选无分,共30分) 1)微型计算机的问世是由于( ) 的出现。 A) 中小规模集成电路 B) 晶体管电路 C) (超)大规模集成电路 D) 电子管电路 2)下列说法中正确的是( ) 。 A) 计算机体积越大,其功能就越强 B) CPU的主频越高,其运行速度越快 C) 两个显示器屏幕大小相同,则它们的分辨率必定相同 D)点阵打印机的针数越多,则能打印的汉字字体越多 3)Windows98中,通过查找命令查找文件时,若输入F*.? , 则下列文件( ) 可以被查到。 A) F.BAS B) FABC.BAS C) F.C D) EF. 4)CPU处理数据的基本单位是字,一个字的字长( ) 。 A) 为8个二进制位 B) 为16个二进制位 C) 为32个二进制位 D) 与芯片的型号有关 5)资源管理器的目录前图标中增加"+"号,这个符号的意思是( ) 。 A) 该目录下的子目录已经展开 B) 该目录下还有子目录未展开 C) 该目录下没有子目录 D) 该目录为空目录, 6)下列哪一种程序设计语言是解释执行的( ) 。 A) Pascal B) GWBASIC C) C++ D) FORTRAN 7)启动WORD的不正确方法是( ) 。 A) 单击Office工具栏上的Word图标 B) 单击"开始"→"程序"→Word C) 单击"开始"→"运行",并输入Word按回车 D) 双击桌面上的"Word快捷图标" 8)多媒体计算机是指( ) 计算机。 A) 专供家庭使用的 B) 装有CDROM的 C) 连接在网络上的高级 D) 具有处理文字、图形、声音、影像等信息的 9)在树型目录结构中,不允许两个文件名相同主要是指( ) 。 A) 同一个磁盘的不同目录下 B) 不同磁盘的同一个目录下 C) 不同磁盘的不同目录下、 D) 同一个磁盘的同一个目录下 10)用画笔(Paintbrush)绘制图形并存储在文件中,该图形文件的文件名缺省的后缀为( ) 。

小学信息学奥赛题汇编

[80+16]全部做完,让你成为编程高手 1、自然数被3,4,5除都余1,被7除余2,此数最小是几? [ 121 ] 2.某老者和他的孙子同生于20世纪,他们年龄相差60岁,若把他们出生年份被3,4,5,6除,余数分别是 1,2,3,4. 编程求出老者和他的孙子各自出生的年份.[ 1918, 1978 ] 3.有一个两位数,加6后再把个位数与十位数互换,得到一个新的两位数,这样加6再互换共三次后,又得到了 原来的两位数,求原来的两位数. [ 19, 52, 85 ] 4.如果一个自然数的数字之积加上这些数字之和正好等于这个自然数,我们称这样的自然数为"巧数",求 100以内的所有巧数. [19,29,39,49,59,69,79,89,99 ] 5.有一个数字各不相同的三位数,如果将此数码重新排列,必可得到一个最大数和一个最小数,此两数之差 正好就是原来的三位数,求这个三位数. [ 495 ] 6. 把一个两位素数写在另一个两位素数后面,得到一个四位数.它能被这两个素数之和的一半整除,求出所 有这样的素数对. [ 53,13; 47,19; 43,23; 37,29 ] 7.从小到大找出五个素数,使后面的数比前面的数都大12. [ 5,17,29,41,53 ] 8. 把一个六位平方数截成两个三位数时,这两个三位数之差的绝对值是1(如573^2=328329),问这样的 六位平方数共有哪些? [183183,328329,528529,715716 ] 9.编程找出不同的四位平方数对,它们由相同的数字构成. [ 1024,2401; 1089,9801; 1296,2916; 1296,9216; 1369,1936; 1764,4761; 2916,9216; 4096,9604 ] 10.编程找出所有各数字重新排列成连续数字的三位与四位平方数. [ 18^2=324; 24^2=576; 66^2=4356; 74^2=5476 ] 11.求1--200之间,有多少个连续的自然数之和等于555,把这样的数组分别打印出来. [ 共6组: 4-33, 30-44, 51-60, 90-95, 109-113, 184-186 ] 12.某路公共汽车包括起始站和终点站共有15个车站,有一辆车除终点外,每一站上车的乘客中都恰好有一 位乘客到以后的每一站下车,为了使每一位乘客都有座位,问这辆公共汽车最少要有多少个座位?这趟车共售出多少张票? [ 56 , 105 ] 13.求1!+(1!+3!)+(1!+3!+5!)+......+(1!+3!+5!+7!+9!)的值. [ 373349 ] 14.父子年龄之和50岁,再过5年父亲年龄是儿子的4倍,父亲和儿子现在各多少岁?[ 43 , 7 ] 15.A,B,C三人分24个苹果,每人所得个数等于三年前他们的年龄数.如果C把所得苹果的一半平分给A和 B,然后B再把现有苹果的一半平分给A和C;最后A再把现有苹果的一半平分给B和C,这时每人的苹果数恰好相等.求现在三人的年龄个是多少岁?[ 16, 10, 7 ] 16.蜘蛛有8条腿,蜻蜓有6条腿和2对翅,蝉有6条腿和1对翅. 三种虫子共18只,共有118条腿和20 对翅.问每种虫子各几只? [ 5, 7, 6 ] 17. 甲,乙两数的和为168,甲数的八分之一与乙数的四分之三的和为76,求甲,乙两数各是多少? [ 80, 88 ] 18. 我国古代数学问题:1兔换2鸡,2兔换3鸭,5兔换7鹅.某人用20只兔换得鸡.鸭.鹅共30只,问其中 鸡.鸭.鹅各几只? [ 2,21,7 ; 4,12,14 ; 6,3,21 ] 19.将下图中8个字母换成1-8这8个不相同的数,使其四个算式成立.[ 8 7 1 5 6 3 2 4 6 5 1 7 8 4 2 3] A - B = C C + D = E G * F = E A / G = H 20. 有一本小册子,中间撕去一页后,剩下的各页码之和为90, 求:(1)这本小册子共有多少页? (2)撕下的那 页的两个页码是几? [ 7 ; 7, 8 ] 21.甲,乙两港口距离不超过5000公里,有三只轮船于某天零时同时从甲港开往乙港,设三只船都以匀速24 小时不停地航行,若干天后零时第一只船到达乙港,几天后18时,第二只船也到达,再过几天后8时,第三只船也到达,假定三只船每天的航速分别为300公里/天,240公里/天,180公里/天, 问甲乙两港实际的距离多少公里? 三只船各走了多少时间? [ 3300公里; 11天, 13天18小时, 18天8小时] 22.若A与B都是素数,求A/B的循环节. 23. 100个7组成的百位自然数,被13除后,问余数是几?商数中各位数字之和是多少?[ 3, 550 ] 24.将1/A改写成1/A=1/X+1/Y(埃及分数)的所有形式,A,X,Y都是自然数,A的值由键盘输入. 25.环绕大厅有七盏电灯A,B,C,D,E,F,G,各自装有一个拉线开关,开始时只有A,C,E,G四盏灯亮着,一个小 孩从A灯开始顺次拉一下开关,问当他拉了N(N>1000)次开关后,最后都有哪几盏灯是亮着的? 26.一木板高110厘米,有个小虫由地面向上爬,每分钟爬上50厘米,每爬1分钟就要休息1分钟,在这休息 时间内下滑30厘米,当小虫爬到顶部还要休息2分钟,再按原路爬回地面,问共用多少分钟? [ 10 ] 27.波兰数学家巴那赫总是随身携带两盒火柴,一个口袋放一盒,最初每盒放50根火柴,当他需用火柴时就 随意从一个口袋里取一根,当他发现取出的盒子已经空了的时候,另一盒里剩下多少根的可能性最大? 28. 一个椭园形跑道周长为400米,甲,乙两人同时从一个起跑点向相反的方向绕跑道慢跑,已知甲每秒跑5

信息学奥赛历年试题(解答)

历年全国青少年信息学奥赛选择题 一、单项选择题(共10题,每题1.5分,共计15分。每题有且仅有一个正确答案)。第14届:2008年 1.在以下各项中,()不是操作系统软件。 A.Solaris B.Linux C.Sybase D.Windows Vista E.Symbian C是数据库系统 2.微型计算机中,控制器的基本功能是()。 A.控制机器的各个部件协调工作 B.实现算数运算与逻辑运算 C.存储各种控制信息 D.获取外部信息 E.存放程序和数据 3.设字符串S=“Olympic”,S的非空子串的数目是()。

A.29 B.28 C.16 D.17 E.7 1个字符的子串(7个):"o" "l" "y" "m" "p" "i" "c", 2个字符(6个):"ol" "ly" "ym" "mp" "pi" "ic" .…… 7个字符(1个):olympic 所以:共有7+6+5+4+3+2+1=28 4.完全二叉树有2*N-1的结点,则它的叶子结点数目是()。 A.N-1 B.2*N C.N D.2N-1 E.N/2 最多只能在最下层缺少结点,并且缺少的结点都在最右边,即最下层的结点都集中在该层最左边,则称此二叉树为完全二叉树。

5.将数组{8,23,4,16,77,-5,53,100}中元素从大到小按顺序排序,每次可以交换任意两个元素,最少要交换()次。 A.4 B.5 C.6 D.7 E.8 6.设栈S的初始状态为空,元素a,b,c,d,e,f依次入栈,出栈顺序为 b,d,c,f,e,a 那么栈容量至少应该是()。 A.6 B.5 C.4 D.3 E.2 7.与十进制数28.5625相等的四进制数是() A.123.21 B.131.22 C.130.22

信息学奥赛—算法设计题集及详解

算法设计题集第一章算法初步 第一节程序设计与算法 一、算法 算法是解决问题方法的精确描述,但是并不是所有问题都有算法,有些问题经研究可行,则相应有算法,但这并不是说问题就有结果。上述的“可行”,是指对算法的研究。 1.待解问题的描述 待解问题表述应精确、简练、清楚,使用形式化模型刻划问题是最恰当的。例如,使用数学模型刻划问题是最简明、严格的,一旦问题形式化了,就可依据相应严格的模型对问题求解。 2.算法设计 算法设计的任务是对各类具体问题设计良好的算法及研究设计算法的规律和方法。常用的算法有:穷举搜索法、递归法、回溯法、贪心法、分治法等。 3.算法分析 算法分析的任务是对设计出的每一个具体的算法,利用数学工具,讨论各种复杂度,以探讨某种具体算法适用于哪类问题,或某类问题宜采用哪种算法。 算法的复杂度分时间复杂度和空间复杂度。 .时间复杂度:在运行算法时所耗费的时间为f(n)(即 n的函数)。 .空间复杂度:实现算法所占用的空间为g(n)(也为n的函数)。 称O(f(n))和O(g(n))为该算法的复杂度。 二、程序设计 1.程序 程序是对所要解决的问题的各个对象和处理规则的描述,或者说是数据结构和算法的描述,因此有人说,数据结构+算法=程序。 2.程序设计 程序设计就是设计、编制和调试程序的过程。 3.结构化程序设计 结构化程序设计是利用逐步求精的方法,按一套程式化的设计准则进行程序的设计。由这种方法产生的程序是结构良好的。所谓“结构良好”是指: (1)易于保证和验证其正确性; (2)易于阅读、易于理解和易于维护。 按照这种方法或准则设计出来的程序称为结构化的程序。 “逐步求精”是对一个复杂问题,不是一步 中学多元化信息素质教育 2000年6月

信息学奥赛题库

信息学奥赛题库

一、初级编程入门题 顺序结构 1、请编写一个程序,求一个正方的周长。 2、请编写一个程序,求一个长方形的周长。 3、请编写一个程序,求一个三角形的周长。 4、请编写一个程序,从键盘输入两个整数,要求求和然后输出和。 例如:输入1 4 输出5 5、要求从键盘输入一个三位数,要求百位变十位,十位变个位,个位变百位: 例如:输入123 输出312 6、输入一个四位数要求按如下交换输出: 例如:输入1234 输出4321 7、输入一个四位数要求输入各位数字的和。 例如:输入4567 输出22 8、编一程序,键盘输入整数A,B的值,然后打印A除以B的商的整数部分及余 数。 9、输入一个时、分、秒,把它转换为一个秒数。 例如输入2 3 4 代表2小时3分钟4秒 输出7384 代表一共有7384 秒

10、求三角形面积:给出三角形的三个边长为a ,b ,c ,求三角形的面积。 提示:根据海伦公式来计算三角形的面积: S =2c b a ++;Area =))()(( c S b S a S S --- 11、编一程序,从键盘输入整数A ,B 的值,然后把A ,B 的值交换后输出。从键 盘输入两个整数,打印出更小的那个数。 12、设X ,Y ,Z 的值分别是FALSE ,TRUE ,FLASE 。写出下列逻辑表达式的 值: not x and not y; true and x or y; (x and z) or (z and y); x or z and y; (4>5) and (7<8) (8>9) or ( 9<10) 2 and ((3=3) or (3<7)) 选择结构 13、读入三个整数,从小到大输出。 14、从键盘输入一个数,判断它的奇偶性,如果是奇数则输出yes,否则输出no 。

信息学奥赛题库

一、初级编程入门题 顺序结构 1、请编写一个程序,求一个正方的周长。 2、请编写一个程序,求一个长方形的周长。 3、请编写一个程序,求一个三角形的周长。 4、请编写一个程序,从键盘输入两个整数,要求求和然后输出和。 例如:输入1 4 输出5 5、要求从键盘输入一个三位数,要求百位变十位,十位变个位,个位变百位: 例如:输入123 输出312 6、输入一个四位数要求按如下交换输出: 例如:输入1234 输出4321 7、输入一个四位数要求输入各位数字的和。 例如:输入4567 输出22 8、编一程序,键盘输入整数A,B的值,然后打印A除以B的商的整数部分及余数。 9、输入一个时、分、秒,把它转换为一个秒数。 例如输入2 3 4 代表2小时3分钟4秒 输出7384 代表一共有7384 秒

10、求三角形面积:给出三角形的三个边长为a ,b ,c ,求三角形的面积。 提示:根据海伦公式来计算三角形的面积: S =2c b a ++;Area =))()(( c S b S a S S --- 11、编一程序,从键盘输入整数A ,B 的值,然后把A ,B 的值交换后输出。从键盘输入两个整数,打印出更小的那个数。 12、设X ,Y ,Z 的值分别是FALSE ,TRUE ,FLASE 。写出下列逻辑表达式的值: not x and not y; true and x or y; (x and z) or (z and y); x or z and y; (4>5) and (7<8) (8>9) or ( 9<10) 2 and ((3=3) or (3<7)) 选择结构 13、读入三个整数,从小到大输出。 14、从键盘输入一个数,判断它的奇偶性,如果是奇数则输出yes,否则输出no 。 15、从键盘读入一个数,判断它的正负。是正数,则输出"+",是负数,则输出"-"。 16、从键盘输入一个数,如果是两位数那么输入yes 否则输入no 。 17、输入两个数a,b ,输出较大数的平方值。

相关主题
相关文档
最新文档