当前位置:文档之家› (信息学奥赛辅导)程序设计试题汇编(答案)

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

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

程序设计试题及答案

(备注:试题难度评价采取五★级评价体系,分基础、容易、一般、稍难、难五个等级,其中的一、二、三★级都属于程序设计的基础试题级别,同学们稍加思考均有能力求得正确解答,对于四★级试题属于程序设计试题基础级别的思考题,五★级难度试题在此没有涉及,在程序设计高级试题中另行讲解。对于基础和容易两个级别的程序设计试题,若能够给出语句分类(如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、 输入一个三位的自然数,然后把这个数的百位与个位对调,输出对调后的结果。 (★)

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)222

12100S =+++ ;

(3)246100S =++++ ;

(4)14710100S =+++++ ;

(相关练习答案:(1)5.19(保留2为小数);(2)338350;(3)2550;(4)1717) 10、根据公式

2

222

11116

23n π=+

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

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!=3628800)

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

14357

π

=-+-+ ,直到最后一项的值小于10-6为止。 (★★★,循环语句) (答案:3.1415946569E+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.

相关练习:利用公式

1118

1357911

π

=

+++??? ,求π。 (计算前10000项时,答案为3.1415426536) 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 =A 3+B 3+C 3

,则称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 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

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个数。(★★,循环语句)(答案:7778742049)

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=3956121,3956121×1989=7868724669,最后四位数字是“4669”,而我把3956121取其最后的四位数“6121”与1989相乘即6121×1989=12174669,最后四位数字也是“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

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.71828182845905E+0000;(2)2.71828152557319E+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=479001600。因此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编了号。第一个服务员把所有的房间门都打开了,第二个服

务员把所有编号是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);

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 。若没有给出信息,则输出“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

11

(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)。

(答案:①212101;②-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=716699并且A+B最小两个条件的A和B。(★★★)

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

program e;

var

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

begin

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

for a:=1 to x do

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

begin s:=a+(716699 div a); mina:=a; minb:=(716699 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=261121(有三位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

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)最大的弦数。(★★★)

(分析:设a 2+b 2=c 2

,且a

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. 倒勾股数是满足下列公式:

222111A 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 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;

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;

na:=0;

for j:=1 to n do

if a[j]=0 then

na:=na+1;

if (flag=true)and(na=8) then count:=count+1;

end;

writeln(count);

end.

16.给定自然数1到n的集合和自然数m(m>n),求各元素之和等于m的子集。(设n=20,m=48)。

(1)共有多少个符合上述条件的子集?(2)符合上述条件且子集元素数目为5的子集有多少?

(★★★)(提示:集合的元素不能重复,此题可分3~9个元素类别集合讨论,下面给出第2问的源程序)(答案:①1674;②488)

program e1;

const

m=48;

var

a,b,c,d,e,f,g,count:integer;

begin

writeln; count:=0;

for a:=1 to trunc(m/5) do

for b:=a+1 to trunc((m-1)/4) do

for c:=b+1 to trunc((m-1-2)/3) do

for d:=c+1 to trunc((m-1-2-3)/2) do

for e:=d+1 to 20 do

if (a+b+c+d+e=m) then inc(count);

writeln('count5=',count);

end.

(以下程序设计试题来自《全国青少年信息学奥林匹克联赛――培训习题与解答(中学)》)

1、计算1×2+3×4+5×6+……+49×50的值。(★)

(答案:21450)

program e;

var

i,x,s:longint;

begin

writeln; s:=0; x:=0;

for i:=1 to 25 do begin x:=x+2; s:=s+x*(x-1); end;

writeln(s);

end.

2、给定一串整数数列,求出所有的递增和递减子序列的数目。例如数列7、2、6、9、8、

3、5、2、1

可分为(7,2)、(2,6,9)、(9,8,3)、(3,5)、(5,2,1)五个子序列,答案就是5。我们称2、

9、3、5为转折元素。(★★★)

program e;

var

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

i,j,k,n:integer;

begin

writeln('input 9 number');

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

n:=1;

for i:=2 to 9-1 do

if ((a[i]a[i-1])and(a[i]>a[i+1])) then

n:=n+1;

writeln(n:8);

end.

3、将1~9这9个数字分成三组(每个数字只能使用一次),分别组成三个三位数,且这三个三位数

的值构成1:2:3的比例,试求出所有满足条件的三个三位数。(★★★)(分析:注意下面源程序所采用的算法,非常好)

(答案:(192、384、576)、(219、438、657)、(273、546、819)、(327、654、981))

program e;

var

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

i,g,s,b,k,t:integer;

begin

writeln;

for i:=100 to 333 do

begin

for k:=0 to 9 do a[k]:=0;

k:=i;

g:=k mod 10; s:=(k div 10) mod 10; b:=k div 100; a[g]:=1; a[s]:=1; a[b]:=1;

k:=2*i;

g:=k mod 10; s:=(k div 10) mod 10; b:=k div 100; a[g]:=1; a[s]:=1; a[b]:=1;

k:=3*i;

g:=k mod 10; s:=(k div 10) mod 10; b:=k div 100; a[g]:=1; a[s]:=1; a[b]:=1;

t:=0;

for k:=1 to 9 do t:=t+a[k];

if t=9 then writeln(i:4,i*2:4,i*3:4);

end;

信息学奥赛培训计划(复赛)

信息技术学科信息学奥赛社团培训计划 制定人:玄王伟 2018年10月

信息学奥赛培训计划方案推进信息技术教育是全面实施素质教育的需要,是培养具有创新精神和实践能力的新型人才的需要。信息学奥赛的宗旨为:“丰富学生课余生活,提高学生学习兴趣,激发学生创新精神。”为此,我们应以竞赛作为契机进而培养学生综合分析问题、解决问题的意识和技能。 为响应学校号召,积极参与信息技术奥林匹克竞赛,校本课程特别开设C++语言程序设计部分,利用社团活动时间对部分学生进行辅导。教学材料以信息学奥赛一本通训练指导教程为主,力图让学生们对编写程序有较深入了解的同时,能够独立编写解决实际问题的算法,逐步形成解题的思维模式。因学习内容相对中小学学生具有一定的难度,本课程采用讲练结合的形式,紧紧围绕“程序=算法+数据结构”这一核思想,以数学问题激发学生学习兴趣,进而达到学习目标。为更好地保证信息学奥赛的培训效果,特制订本培训计划。 一、培训目标 1.使学生具备参加全国信息学奥林匹克竞赛分区联赛NOIP(初赛、复赛)的能力。 2.使学生养成较好的抽象逻辑推理能力、严谨的思维方式和严密的组织能力,并使学生的综合素质的提高。 3.使学生初步具备分析问题和设计算法的能力。 二、培训对象 我校小学及初中对信息学感兴趣且初赛成绩较好的学生,人数共

计14人,其中小学组12人,普及组2人。 三、培训要求 严格培训纪律,加强学生管理;信息学社团的组建由学生自愿报名、教师考察确定;培训过程中做与培训无关的事如打游戏、上网聊天等,一经发现作未参加培训处理;规定的作业、练习必须按时保质保量完成,否则按未参加培训处理。 四、培训内容 1.深入学习计算机基础知识,包括计算机软硬件系统、网络操作、信息安全等相关知识内容,结合生活实际让学生真正体会到参加信息学奥赛的乐趣。 2.全面学习C++语言的基础知识、学会程序的常用调试手段和技巧,在用C++解决问题的过程中引入基础算法的运用。 3.深入学习各类基础算法,让学生真正理解算法的精髓,遵循“算法+数据结构=程序”的程序设计思想,在算法设计的教学实例中引入数据结构的学习,从而形成一定的分析和解决问题的能力。 4.以实例为基础,展开强化训练,使学生开始具备运用计算机独立解决实际问题的能力。用计算机解决现实问题的最重要的一个前提就是数据模型的建立和数据结构的设计。数据模型的建立、数学公式的应用,是计算机解决问题的关键。因此,加强与数学学科的横向联系非常必要。 五、培训时间 自2018年10月份第三周开始至2018年11月中旬结束,包括每

C语言程序设计实验指导(课后习题)参考答案

《实验指导》课后练习题参考答案实验1: 1.主函数 2-4:DDC 5.stdio.h 6-9:CCCC 实验2: 1.double 2-4:ABB 5.2 6-12:CDDDADC 13.! 14.8 15-17:ACC 18.G 19-20:CA 21.5 4 22.x=6c 23-25:DCA 26.0x 27.2.000000 28-29:AB 30.a=3 31.D 32.3.15 33.B 34.double 实验3: 1-3:CCD 4.B 5.2,0 6-8:CAC 9. (1)pass, (2)中 及格 不及格 10-12:ADD 13.2 14.B 15.10 16.6 17.x>=1 && x<=sqrt(10)

实验4: 1.B 2.1 3.A 4.3/5,5/8 5.30 实验5: 1.D 2.(1)9 (2)1 3-5:CDB 6.(1)10 (2)7 7.C 8.(1)x=16 (2)y=8 9.return 实验6: 1-5:CCADA 6.10,20 7.13 11 12 8.7 9.2 10.B 11.(1)3 (2) 1 12-13:CB 14.-31 15.221 16.main函数 17.22 18.(1)return (2)void 实验7: 1.C 2.auto 3.9 4.(1) 4 (2) 0 5.10 6.(1)5 (2) 7 (3) 8 7.C 8.110 9-12:DDBC 13.(1) 1 (2) 3

15.6 720 16.auto 17.48 18.(1)1 (2)2 19.D 20.D 21.5,25 22.6 实验8: 1-2. DD 3. 16 4. (1)0 2 3 (2)2 3 5 (3)7 11 13 5. (1)i<9 (2)j<9-i (3)a[j]=a[j+1] (4)a[j+1]=temp 实验9: 1. D 2. (1)-1 (2)2 3. (1)1 (2)a[i-1][j-1]+a[i-1][j] (3)j<=i 4. (1)1 3 4 5 6 7 (2)3 4 5 6 (3)End of main()! 实验10: 1. 0或NULL 2-5. CACA 6. (1)10 (2)15 (3)19 7. (1)ia[j] (3)”%d”,p+i (4)”%d”, *(p+i) 8. (1)2 6 (2)2 2 (3)4 6 实验11: 1. A 2. C 3. 7 4. (1)strlen(s) (2)s[i]>=’a’ && s[i]<=’z’(3)s[i]+32 (4)’\0’(5)s2[j]!=s2[n2-j-1] (6)j

计算机程序设计实践

江苏科技大学 课程实践报告 设计题目: 计算机程序设计实践(VC++) 设计时间: 2015. 3.9 至2015. 3.16 学院: 数理学院 专业班级: 13级信息与计算科学1班 学生姓名: 陈明敏学号1340501101 指导老师: 华伟 2015年5月1日

一、 实践任务 任务一:试建立一个类SP ,求(,)123k k k k f n k n =++++ ,另有辅助函数power ()用 于求 n m 。具体要求如下。 (1)私有数据成员。 Int n ,k :存放公式中n 和k 的值。 (2)公有成员函数。 ①SP(int n1,int k1):构造函数,初始化成员数据n 和k 。 ②int power(int m,int n):求n m 。 ③int fun():求公式的累加和。 ④void show():输出求得的结果。 二、源程序清单 #include class SP{ private: int n,k; public: SP(int n1,int k1); int power(int m,int n); int fun(); void show (); }; SP::SP(int n1,int k1){ n=n1; k=k1; } int SP::power(int m,int n){ int a=m; for(int i=1;i

信息学奥赛试题

第19届全国青少年信息学(计算机)奥林匹克BASIC 试题说明: 请考生注意,所有试题的答案要求全部做在答题纸上。 一、基础知识单项选择题(共10题,每小题3分,共计30分) 1、存储容量2GB相当于() A、2000KB B、2000MB C、2048MB D、2048KB 2、输入一个数(可能是小数),再按原样输出,则程序中处理此数的变量最好使用() A、字符串类型 B、整数类型 C、实数类型 D、数组类型 3、下列关于计算机病毒的说法错误的是() A、尽量做到使用正版软件,是预防计算机病毒的有效措施。 B、用强效杀毒软件将U盘杀毒后,U盘就再也不会感染病毒了。 C、未知来源的程序很可能携带有计算机病毒。 D、计算机病毒通常需要一定的条件才能被激活。 4、国标码的“中国”二字在计算机内占()个字节。 A、2 B、4 C、8 D、16 5、在计算机中,ASCⅡ码是( )位二进制代码。 A、8 B、7 C、12 D、16 6、将十进制数2013转换成二进制数是( )。 A、11111011100 B、11111001101 C、11111011101 D、11111101101 7、现有30枚硬币(其中有一枚假币,重量较轻)和一架天平,请问最少需要称几次,才能找出假币( )。 A、3 B、4 C、5 D、6 8、下列计算机设备中,不是输出设备的是()。 A、显示器 B、音箱 C、打印机 D、扫描仪 9、在windows窗口操作时,能使窗口大小恢复原状的操作是() A、单击“最小化”按钮 B、单击“关闭”按钮 C、双击窗口标题栏 D、单击“最大化”按钮 10、世界上第一台电子计算机于1946年诞生于美国,它是出于()的需要。 A、军事 B、工业 C、农业 D、教学二、问题求解(共2题,每小题5分,共计10分) 1、请观察如下形式的等边三角形: 边长为 2 边长为4 当边长为2时,有4个小三角形。 问:当边长为6时,有________个小三角形。 当边长为n时,有________个小三角形。 2、A、B、C三人中一位是工人,一位是教师,一位是律师。已知:C比律师年龄大,A和教师不同岁,B比教师年龄小。问:A、B、C分别是什么身分? 答:是工人,是教师,是律师。 三、阅读程序写结果(共4题,每小题8分,共计32分) 1、REM Test31 FOR I =1 TO 30 S=S+I\5 NEXT I PRINT S END 本题的运行结果是:( 1) 2、REM Test32 FOR I =1 TO 4 PRINT TAB (13-3*I); N=0 FOR J =1 TO 2*I-1 N=N+1 PRINT N; NEXT J PRINT NEXT I END 本题的运行结果是:( 2)

信息学奥赛一本通算法(C 版)基础算法:高精度计算资料

信息学奥赛一本通算法(C++版)基础算法:高精度计算 高精度加法(大位相加) #include using namespace std; int main() { char a1[100],b1[100]; int a[100],b[100],c[100];//a,b,c分别存储加数,加数,结果 int lena,lenb,lenc,x,i; memset(a,0,sizeof(a));//数组a清零 memset(b,0,sizeof(b));//数组b清零 memset(c,0,sizeof(c));//数组c清零 //gets(a1); //gets(b1); //getchar(); while(scanf("%s%s",&a1,&b1)!=EOF) { lena=strlen(a1); lenb=strlen(b1); for(i=0;i<=lena;i++) a[lena-i]=a1[i]-'0';//将数串a1转化为数组a,并倒序存储 //a[i]=a1[lena-i-1]-48; for(i=0;i<=lenb;i++) b[lenb-i]=b1[i]-'0';//将数串a1转化为数组a,并倒序存储 //b[i]=b1[lenb-i-1]-48; lenc=1; //lenc表示第几位 x=0; //x是进位 while(lenc<=lena||lenc<=lenb) { c[lenc]=a[lenc]+b[lenc]+x;//第lenc位相加并加上次的进位 x=c[lenc]/10;//向高位进位 c[lenc]%=10;//存储第lenc位的值 lenc++;//位置下标变量 } c[lenc]=x; if(c[lenc]==0) lenc--; //处理最高进位 for(i=lenc;i>=1;i--) cout<

c语言程序设计实践教程答案完整版

4.2练习题 一、选择题 1.D 2.B 3.A 4.B和D 5.C 6.A 7.B 二、填空题 1.//或/* */ 2.主或main 3.函数首部和函数体4.编译和连接 5.分号 5.2练习题 一、选择题 1.A 2.D 3.B 4.B 5.C 6.C 7.D 8.A 9.B 10.B 11.D 12.B 13.A或B 14.C 15.B

17.D 18.D 19.C 20.D 21.B 22.A 23.D 24.C 25.C 26.B 27.C 28.D 29.A 30.B 二、填空题 1.102,10 2.#define 宏名字符串 3.1 4.n=1 5.-4 6.a=1,b= ,c=2 7.c=A 8.n1=%d\nn2=%d 9.a+b>c&&a+c>b&&b+c>a 10.ch>=’a’&&ch<=’z’|| ch>=’A’&&ch<=’Z’11.7 12.0 13.8,4 6.2练习题 一、选择题 1.A 2.C 3.D 4.C 5.A 6.B

8.D 9.B 10.C 11.A 12.A 13.C 14.B 15.正确答案为: 二、填空题 1.10 2.y=1 x%i==0 3.屏幕中间输出一个由星号组成的菱形4.1 5.13 6.(cx=getchar())!=-1 front=cx; 7.m%n 8.4 9.*p px=&x py=&y 三、读程序,写结果 1.-1 2.3,1,-1, 3.a=16,y=60 4.x=12,y=4 5.59 7.2练习题 一、选择题 1.B 2.C 3.C 4.A 5.D 6.C 7.D

信息学奥赛比赛练习题

A类综合习题 1.一种计算机病毒叫黑色星期五,如果当天是13号,又恰好是星期五,就会发作起来毁球计算机的存储系统,试编程找出九十年代中这种病毒可能发作的日期。 2.任意给定一个自然数N,要求M是N的倍数,且它的所有各位数字都是由0或1组成,并要求M尽可能小。 例:N=3―――>M=3*37=111,N=31―――>M=31*3581=111011 3.合下面条件的5个正整数: (1)5个数之和为23; (2)从这5个数中选取不同的数作加法,可得1-23中的所有自然数,打印这5个数及选取数组成的1--23的加法式。 4.将数字65535分解成若干个素数之积。 5.由1..9这九个数字组成的九位数(无重复数字)能被11整除,求最大、最小值。 6.某次智力测验,二等奖获得者共三人,以下奖品每人发给两样: ①钢笔②集邮本③影集④日记本⑤圆珠笔⑥象棋 打印各种分配方案及总分配数。 7.个同样种类的零件,已知其中有一个是次品,比正品较轻,仅限用天平称4次,把次品找出来,要求打印每次称量过程。 8.输入N个数字(0-9),然后统计出这组数中相邻两数字组成的数字对出现的次数。 如:0,1,5,9,8,7,2,2,2,3,2,7,8,7,9,6,5,9中可得到: (7,8)数字对出现次数2次,(8,7)数字对出现次数为3次。 9.由M个数字构成一个圆,找出四个相邻的数,使其和为最大、最小。 10.输一个十进制数,将其转换成N进制数(0<N<=16)。 11.读入N,S两个自然数(0<=S,N<=9),打印相应的数字三角形(其中,S表示确定三角形的第一个数,N表示确定三角形的行数)。 例:当N=4,S=3时打印:当N=4。S=4时打印: 3{首位数为奇数} {首位数为偶数} 4 4 5 &nb sp; 6 5 6 7 8 9 8 7 9 1 2 3 4 3 2 1 12.如图所示的9*9的矩阵中,除了10个格是空的外,其余的都填上了字符"*",这10个空的格子组成了一个五角星图案的10个交叉点。 下矩阵为输入(1,5)时的输出 * * * * * * * * * * * * 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * 4 * * 7 * 3 * * 6 * * * * * * * * * * * * * * * * * * * * * * * * * * * 1 * * * 9 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 5 * * * * * * * * * * * * * * * * * * * * * *

计算机程序设计(C)综合实践

计算机程序设计(C)综合 实践 设计报告 学院:电子通信与物理学院 设计名称:职工信息管理系统 专业班级:电子信息科学与技术14-2 学生:本良 学号: 201401100211 组号: 140203 指导教师:宋戈 完成时间: 2015年 7月23日

目录 第1部分实训题目与要求 (2) 1. 问题提出 (2) 2. 功能要求 (2) 3. 任务分工 (2) 第2部分设计实训题目功能......................................................................... . (3) 1. 总体设 计...................................................................... (3) 2. 数据结 构...................................................................... (4) 3. 程序设 计...................................................................... (5) 4. 测试与调 试......................................................................

(8) 第3部分实训总结......................................................................... . (12) 1. 个人总 结...................................................................... (12) 2. 结束 语...................................................................... (12) 第4部分参考文献......................................................................... . (13) 《C程序设计综合实践》评分表......................................................................... (14)

信息学奥赛初赛试题(第十六届)

第十六届全国青少年信息学奥林匹克联赛初赛试题(提高组 Pascal 语言二小时完成) ●●全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效●● 一.单项选择题(共10题,每题1.5分,共计15分。每题有且仅有一个正确答案。) 1.与16进制数 A1.2等值的10进制数是() A.101.2 B.111.4 C.161.125 D.177.25 2.一个字节(byte)由()个二进制组成。 A.8 B.16 C.32 D.以上都有可能 3.以下逻辑表达式的值恒为真的是()。 A.P∨(┓P∧Q)∨(┓P∧┓Q) B.Q∨(┓P∧Q)∨(P∧┓Q) C.P∨Q∨(P∧┓Q)∨(┓P∧Q) D.P∨┓Q∨(P∧┓Q)∨(┓P∧┓Q) 4.Linux下可执行文件的默认扩展名是( )。 A. exe B. com C. dll D.以上都不是 5.如果在某个进制下等式7*7=41成立,那么在该进制下等式12*12=()也成立。 A. 100 B. 144 C. 164 D. 196 6.提出“存储程序”的计算机工作原理的是()。 A. 克劳德?香农 B.戈登?摩尔 C.查尔斯?巴比奇 D.冯?诺依曼 7.前缀表达式“+ 3 * 2 + 512 ” 的值是()。A. 23 B. 25 C. 37 D. 65 8.主存储器的存取速度比中央处理器(CPU)的工作速度慢的多,从而使得后者的效率受到影响。而根据局部性原理,CPU所访问的存储单元通常都趋于一个较小的连续区域中。于是,为了提高系统整体的执行效率,在CPU中引入了( )。A.寄存器 B.高速缓存 C.闪存 D.外存 9.完全二叉树的顺序存储方案,是指将完全二叉树的结点从上到下、从左到右依次存放到一个顺序结构的数组中。假定根结点存放在数组的1号位置上,则第k号结点的父结点如果存在的话,应当存放在数组中的()号位置。 A. 2k B. 2k+1 C. k/2下取整 D. (k+1)/2 10.以下竞赛活动中历史最悠久的是()。A. NOIP B.NOI C. IOI D. APIO 二.不定项选择题(共10题,每题1.5分,共计15分。每题正确答案的个数不少于1。多选或少选均不得分)。 1.元素R1、R2、R3、R4、R5入栈的顺序为R1、R2、R3、R4、R5。如果第1个出栈的是R3,那么第5个出栈的可能是( )。A.R1 B.R2 C.R4 D.R5 2. Pascal语言,C语言和C++语言都属于( )。A.高级语言 B.自然语言 C.解释性语言 D.编译性语言

信息学奥赛一本通题解目录-信息学奥赛取消

信息学奥赛一本通题解目录:信息学奥赛取消 第1章 数论1.1 整除1.2 同余1.3 最大公约数1.3.1 辗转相除法1.3.2 进制算法1.3.3 最小公倍数1.3.4 扩展欧几里得算法1.3.5 求解线性同余方程1.4 逆元1.5 中国剩余定理1.6 斐波那契数1.7 卡特兰数1.8 素数1.8.1 素数的判定1.8.2 素数的相关定理1.8.3 Miller-Rabin素数测试1.8.4 欧拉定理1.8.5 PollardRho算法求大数因子1.9

Baby-Step-Giant-Step及扩展算法1.10 欧拉函数的线性筛法1.11 本章习题第2章群论2.1 置换2.1.1 群的定义2.1.2 群的运算2.1.3 置换2.1.4 置换群2.2 拟阵2.2.1 拟阵的概念2.2.2 拟阵上的最优化问题2.3 Burnside引理2.4 Polya定理2.5 本章习题第3章组合数学3.1 计数原理3.2 稳定婚姻问题3.3 组合问题分类3.3.1 存在性问题3.3.2 计数性问题3.3.3 构造性问题3.3.4 最优化问题3.4 排列3.4.1

选排列3.4.2 错位排列3.4.3 圆排列3.5 组合3.6 母函数3.6.1 普通型母函数3.6.2 指数型母函数3.7 莫比乌斯反演3.8 Lucas定理3.9 本章习题第4章概率4.1 事与概率4.2 古典概率4.3 数学期望4.4 随机算法4.5 概率函数的收敛性4.6 本章习题第5章计算几何5.1 解析几何初步5.1.1 平面直角坐标系5.1.2 点5.1.3 直线5.1.4 线段5.1.5 多边形5.1.6

C语言程序设计实验实验指导书及答案

实验一熟悉C程序运行环境 班级学号姓名成绩 一、实验目的 1. 熟悉C语言Visual C++调试环境。 2. 掌握C程序的编辑、调试及运行。 二、实验内容 项目1. 调试并运行下面程序,并写出运行结果: #include <> int main() { printf(“Good morning!\n”); printf(“Hello,world!\n”); return 0; } 运行结果(注意,按照屏幕输出格式写): 项目2. 调试并运行下面程序,并写出运行结果: #include <> int main() { int a , b , sum; /*定义变量*/ a=23; b=56; /*为变量赋值*/ sum=a+b; /*计算两个变量的和*/ printf(“sum is %d\n”,sum); /*输出计算结果*/ return 0; } 运行结果:

项目3. 调试并运行下面程序,并写出运行结果: #include <> int max(int,int); int main() { int a , b , c; /*定义变量*/ a=23; b=56; /*为变量赋值*/ c=max(a,b); /*调用max函数,将得到的值赋给c*/ printf(“max is %d\n”,c); /*输出c的值*/ return 0; } int max(int x,int y) /*定义max函数,函数值为整型*/ { int z; /*定义变量*/ if(x>y) z=x; else z=y; return(z); /*将z的值返回*/ } 运行结果: 三、提高部分 1.试想,如果求10个数中的最大者,则程序该如何编写。 程序代码 运行结果:

C++入门培训讲义

武平一中信息学奥林匹克竞赛校本课程 C++编程 第一课时:认识C++程序和DEV-C++集成开发环境 一.学习目标: 1.认识C++程序结构; 2.掌握编程基本步骤; 3.记住“保存”、“编译”和“运行”的快捷键(ctrl+s、F9、F10) 二.学习内容与步骤: 1.双击桌面图标,启动DEV-C++集成开发环境,单击“文件”菜单下的“新建——>源代码”命令,在程序编辑区输入下面程序: #include #include using namespace std; int main() { cout<<"hello"; system("pause"); return 0; } 2.输入完毕,单击“文件”菜单下的保存命令。在弹出的“保存文件”对话框中保存位置选择“桌面”,文件名为“ex1”,文件类型为c++不必修改,单击保存。 3.单击“运行”菜单下的“编译”命令,窗口出现红色条时说明程序有错误,请对照修改,直到正确为止。 4.单击“运行”菜单下的“运行”命令;弹出新窗口,观察新窗口中内容,按一下键盘任意键(通常按空格键),返回编辑界面。 5.单击“文件”菜单“退出”命令,结束。 6.观察桌面的ex1.cpp和ex1.exe两个文件,双击“ex1.exe”试试,ex1.cpp 称为源程序,ex1.exe称为可执行程序,虽然这个程序简单了一点,但是电脑中的程序就是这样设计出来的。 7.参考以上步骤,输入下面这个程序: #include using namespace std; int main() { int a,b,c;

VB程序设计学习与实验指导答案

Visual Basic 程序设计学习与实验指导答案 上篇学习指导 第1章Visual Basic 概述 1.事件 2.查看对象 3.工程 4.视图属性窗口 5.窗体编辑器 第2章面向对象程序设计初步 1.控件 2.事件 3.类属性 4.属性 5.略 https://www.doczj.com/doc/014941640.html, 第3章Visual Basic 语言基础 1.(a*sin(30/180*3.14)+c*(log(b)/log(10)))/((Abs(d)+1)*(e+f))+1

2.mod 3.X=Int(X) And Y=Int(Y) And X*Y>0 4. 4.Y Mod 4=0 And Y Mod 100<>0 Or Y Mod 400=0 5.x=Int((99-10+1)*Rnd+10) 6.0 “” 7.空格 8.6,845.30 9. (1)8 (2)1 (3)abcd (4)出错,类型不匹配 (5)False (6)2008-6-29 (7)I likeVB (8)4 (9)4 4 (10)3 4 (11)10 -10 (12)-1 (13)aa (14)3 (15)0 (16)1 (17)C (18)5 (19)8 (20)34.54 (21)中国 (22)上海 (23)VISUAL BASIC (24)visual basic 10. (1)x<-100 or x>100 (2)a=Int(a) And b =Int(b) Or a<0 And b<0 (3)x<=y or x>=z (4)a>0 And a<>Int(a) (5)a=0 xor b=0 (6)Len(S)<10 (7)UCase(S)=S (8)Left(S,1)=”a” And Right(S,1)=”a” (9)Instr(S,”@”)<>0 (10)Trim(S)=S (11)Date=#8/8/2008#

C语言程序设计实验与习题指导课后程序设计答案,DOC

P18 (1) #include intmain(void) celsius=26; fahr=9*celsius/5+32; printf("celsius=%d,fahr=%d\n",celsius,fahr); return0; }

(3) #include intmain(void) { intaverage,math,eng,comp; intn,a,b,c; n=152; c=n%10; b=(n/10)%10; a=n/100;

printf("整数%d的个位数字是%d,十位数字是%d,百位数字是%d\n",n,c,b,a); return0; } P27 (2) #include #include intmain(void) {

intmoney,year; doublerate,interest; printf("Entermoney,year,rate:"); scanf("%d%d%lf",&money,&year,&rate); interest=money*pow(1+rate,year)-money; y=pow(x+1,2)+2*x+1/x; } else{ y=sqrt(x); }

printf("y=f(%f)=%.2f\n",x,y); return0; } (4) #include return0; } 10的阶乘 #include intmain(void)

{ inti,n,product; printf("Entern:"); scanf("%d",&n); product=1;

程序设计实践报告模板

面向对象程序设计实践(Project 2) 报告 题目: 专业软件工程(NIIT) 学生姓名 班级学号 指导教师杨健 指导单位计算机学院/软件学院 日期

评分细则 评分项优秀良好中等差遵守机房规章制度 上机时的表现 学习态度 程序准备情况 程序设计能力 团队合作精神 课题功能实现情况 算法设计合理性 用户界面设计 报告书写认真程度 内容详实程度 文字表达熟练程度 回答问题准确度 简短 评语教师签名: 年月日 评 分 等 级 备 注 评分等级有五种:优秀、良好、中等、及格、不及格

Title(Here,please write the name of your Project) (题目格式:宋体,3号,加粗,居中对齐) 一、D escription and Requirement(格式:Times New Roman,4号,加粗, 两端对齐) (正文格式:宋体(中文) Times New Roman(英文),小4号,不加粗,两端对齐, 1.5倍行距) 二、Requirement Analysis(格式:Times New Roman,4号,加粗,两端对齐) 在该部分中叙述系统的功能,由此得到相应的模块,并分析需要什么的数据,由此可以指导数据库的设计。 (正文格式:宋体(中文)Times New Roman(英文),小4号,不加粗,两端对齐,1.5倍行距) 三、High level design(格式:Times New Roman,4号,加粗,两端对齐) 在此说明每个部分的算法设计说明(可以是描述算法的流程图),每个程序中使用的存储结构设计说明(如果指定存储结构请写出该存储结构的定义,如果用面向对象的方法,应该给出类中成员变量和成员函数原型声明),数据库设计的说明(给出数据库的结构,包括有哪些表,每个表有什么字段,分别存储什么样的数据) (正文格式:宋体(中文)Times New Roman(英文),小4号,不加粗,两端对齐, 1.5倍行距) 四、Low level design格式:Times New Roman,4号,加粗,两端对齐) 各个算法实现的源程序(可以是一组源程序,每个功能模块采用不同的函数实现),源程序要按照写程序的规则来编写。要结构清晰,重点函数的重点变量,重点功能部分要加上清晰的程序注释。 注意:不要粘贴全部程序,只要把关键算法的程序粘贴过来就可以了。 (正文格式:宋体(中文)Times New Roman(英文),小4号,不加粗,两端对齐, 1.5倍行距) 五、Tested data and result analysis(格式:Times New Roman,4号,加粗,

计算机程序设计实践

《计算机程序设计实践(VC++)》教学大纲一.课程基本信息 开课单位:经济管理学院信息管理系 课程编号:000000 英文名称:Computer Programming Language (VC++) Course Design 学时:总计32学时,其中理论授课0学时,实验(含上机)32学时 学分:2.0学分 面向对象:信息管理与信息系统(含网络营销方向)本科专业 教材: 《C++程序设计》,吴乃陵,况迎辉编著,高等教育出版社,2006年3月第2版 《C++程序设计实践教程》,吴乃陵,李海文主编,高等教育出版社,2006年3月第2 版 主要教学参考书目或资料: 1.Visual C++从入门到精通.刘锐宁,宋坤编著.北京:清华大学出版社.2010年10月 2. Visual C++项目开发案例全程实录(第2版).明日科技等编著. 北京:清华大学出版社.2011年1月 二.教学目的和任务 课程设计是课程教学中的一项重要内容,是完成教学计划达到教学目标的重要环节,是一门专业基础课或专业课教学计划中综合性较强的实践教学环节,它对帮助学生全面牢固地掌握课堂教学内容、培养学生的实践能力、为毕业设计及毕业后从事专业技术工作打下基础,提高学生全面素质具有重要的意义。因此,《计算机程序设计语言(VC++)课程设计》的目的就是要通过一个学生成绩管理系统的实际开发,提高学生应用所学知识分析问题,解决问题和实际动手的能力,更加熟练地掌握C++程序开发的基本方法和工作步骤,对系统开发实践有进一步体会。从而综合复习课程中的所有理论知识点,进一步熟练面向对象程序的开发方法和流程,提高学生独立分析问题和解决问题的能力。真正理解书本知识,牢固掌握课堂教学内容。 三.教学目标与要求 学生按照课程设计任务书要求,通过两周的时间,设计出一个学生成绩管理系统,能实现对某班 级学生成绩的管理及奖学金、三好生的评定工作。要求具备查询和检索等功能,并且能够对指定文件进行操作,也可以将多个文件组成一个文件。从而进一步掌握算法的描述、了解初步的数据结构,熟悉C++语言的语句格式、功能及其应用。 四.教学内容、学时分配及其基本要求 实验项目学生课程成绩管理系统 设计内容: 设计一程序,实现对某班级学生成绩的管理及奖学金、三好生的评定工作。要求具备查询和检索等功能,并且能够对指定文件进行操作,也可以将多个文件组成一个文件。 设计要求: ⒈应严格按照开发小型项目的基本流程进行设计。 ⒉成绩管理程序至少应具有以下功能: ⑴输入:学生的基本信息,包括学号、姓名、性别、籍贯、VC++成绩、英语成绩、高数成绩等; ⑵计算:每个学生的总成绩、平均成绩,所有学生单科的平均成绩,找出总成绩和单科成绩最高的学生并输出;

(PASCAL)信息学竞赛初级篇题库

(PASCAL)信息学竞赛初级篇题库 1. 输入10个正整数,计算它们的和,平方和; 2. 输入20个整数,统计其中正、负和零的个数; 3. 在1——500中,找出能同时满足用3除余2,用5除余3,用7除余2的所有整数; 4. 输出1——999中能被3整除,且至少有一位数字是5的数; 5. 输入20个数,求出它们的最大值、最小值和平均值。 6. 甲、乙、丙三人共有384本书,先由甲分给乙、丙,所给书数分别等于乙、丙已有的书数,再由乙分给甲、丙,最后由丙分给甲、乙,分法同前,结果三人图书数相等。编程求甲、乙、丙三人原各有书多少本? 7. 某养金鱼爱好者,决定出售他的金鱼。第一次卖出了全部金鱼的一半加2分之一条金鱼;第二次卖出剩金鱼的三分之一加三分之一条金鱼;第三次卖出剩金鱼的四分之一加四分之一条金鱼;第四次卖出剩金鱼的五分之一加五分之一条金鱼,最后还剩11条。问原来有多少条金鱼?(每次卖的金鱼都是整数条) 8. 猴子吃桃子问题:猴子第一天摘下若干个桃子,当即吃了一半还不过瘾,又多吃了一个;第二天又将剩下的桃子吃掉一半又多吃了一个;以后每天早上都吃了前一天剩下的一半零一个。到了第十天想再吃时,见只剩下一个桃子,求第一天共摘了多少个桃子? 9. 从键盘输入整数l,统计出边长为整数的周长为l的不等边三角形的个数。 10. 输入三个整数,以这三个数为边长,判断是否构成三角形;若构成三角形,进一步判断它们构的是:锐角三角形或直角三角形或钝角三角形。 11. 1*2*3*...*1000结果是一个很大的数,求这个数末尾有多少个连续的零。 12. 任意输入两个整数,求这两个整数的最大公约数,并求这两个整数的最小公倍数。 13. 一个整数的立方可以表示为两个整数的平方差,如19853=19711052-19691202。 编程:输入一个整数N,自动将其写成N3=X2-Y2。 14. 求100以内的所有素数。纯粹素数是这样定义的:一个素数,去掉最高位,剩下的数仍为素数,再去掉剩下的数的最高位,余下的数还是素数。这样下去一直到最后剩下的个位数也还是素数。求出所有小于3000的四位的纯粹素数。 15. 验证回文数的猜测:左右对称的自然数称回文数。如121,4224,13731等,有人猜测:从任意一个两位或两位以上的自然数开始,将该数与它的逆序数(如1992的逆序数是2991)相加,得到一个新数,再用这个新数与它的逆序数相加,不断重复上述操作,经过若干步的逆序相加之后,总可以得到一个回文数,例如:从1992开始,1992+2991=4983;4983+3894=8877;8877+7788=16665;16665+56661=73326;73326+62337=135663;135663+366531=502194;502194+491205=993399。经过七步就得到了回文数。 设计一个程序,由计算机在局部范围内验证回文数的猜测,并将寻找回文数的每一个步骤都显示出来。16. 已知一个正整数的个位数为7,将7移到该数的首位,其它数字顺序不变,则得到的新数恰好是原数的7倍,编程找出满足上述要求的最小自然数。 17. 任意一个大于9的整数减去它的各位数字之和的差,一定能被9整除。 18. 有一个六位数,其个位数字7,现将个位数字移至首位(十万位),而其余各位数字顺序不变,均后退一们,得到一个新的六位数,假如旧数为新数的4倍,求原来的六位数。 19. 任意给定平面上三个点A(X1,Y1),B(X2,Y2),C(X3,Y3),试判断这三个点能否构成三角形。能则求出它的面积。 20. 将1至9这几个数字排成3x3方阵,并使每一横行的三个数字组成一个三位数。如果要使第三行的三位数是第一行的两倍,第三行的三位数是第一的三倍,应怎样排法?编程找出所有排法。 21. 一个合数(质数的反数),去掉最低位,剩下的数仍是合数,再去掉剩下的数的最低位,余留下来的数还是合数,这样反复,一直到最后公剩下的一位数仍是合数;我们把这样的数称为纯粹合数。求所有的三位纯粹合数。 22. 输入一个大于1的整数,打印出它的素数分解式。如输入75,则打印:"75=3*5*5"。 23. 某自然数n的所有素数的平方和等于n,(1<100),请找出二个这样的自然数n。

信息学竞赛初赛模拟试题(附答案)

信息学竞赛初赛模拟试题 一、选择一个正确答案代码(A/B/C/D),填入每题的括号内(每题分,多选无分,共30分) 1、下列叙述正确的是____。 A、指令中操作数规定准备执行的功能 B、在16位计算机中,一个字节由16位组成 C、断开电源后,DRAM中的内容便会丢失 D、软盘驱动器属于主机,软盘属于外设 2、关于中断请求信号的说法中,正确的是__ _。 A、中断请求信号总是由输入/输出设备发起的 B、中断请求信号有时是由CPU发起的 C、中断请求信号是由CPU和输入/输出设备同时发起的 D、中断请求信号是自动产生的 3、下列四项中,不属于计算机病毒特征的是。 A、潜伏性 B、传染性 C、激发性 D、免疫性 4、在资源管理器右窗格中,如果需要选定多个非连续排列的文件,应按组合键。 A、Ctrl+单击要选定的文件对象 B、Alt+单击要选定的文件对象 C、Shift+单击要选定的文件对象 D、Ctrl+双击要选定的文件对象 5、Windws98中,下列叙述正确的是。 A、“开始”菜单只能用鼠标单击“开始”按扭才能打开 B、Windows任务栏的大小是不能改变的 C、“开始”菜单是系统生成的,用户不能再设置它 D、Windows任务栏可以放在桌面四个边的任意边上 6、Internet实现了分布在世界各地的各类网络互联,其最基础和核心的协议是 A、TCP/IP B、FTP C、HTML D、HTTP 7、二进制数转换成十六进制数是________。 A、 B、77.3 C、 D、 8、能将高级语言编写的源程序转换成目标程序的是______。 A、编辑程序 B、编译程序 C、解释程序 D、链接程序 9、要存放10个24×24点阵的汉字字模,需要存储空间 A、74B B、320B C、720B D、72KB 10、下列各指标中,是数据通信系统的主要技术指标之一 A、重码率 B、传输速率 C、分辩率 D、时钟主频 11、在计算机中,既可作为输入设备又可作为输出设备的是。 A、显示器 B、磁盘驱动器 C、键盘 D、图形扫描仪 12、在微机的配置中常看到"处理器PentiumIII/667"字样,其数字667表示。 A、处理器的时钟主频是667MHZ B、处理器的运算速度是667MIPS C、处理器的产品设计系列号是第667号 D、处理器与内存间的数据交换速率是667KB/s 13 14、下列中错误的PASCAL表达式是 A、10e6* B、17 DIV 3 C、18 DIV 3* D、 15、下列表达式中,结果不为TRUE的是 A、[1. .10]=[1. .5,6. .10] B、[1,2,3]〈[1,2,3,4] C、[2,4]〉=[] D、7 IN [1. .10] 16、以下关于OSI的叙述中,错误的是________。

相关主题
文本预览
相关文档 最新文档