程序设计试题汇编(答案)

程序设计试题汇编(答案)
程序设计试题汇编(答案)

程序设计试题及答案

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

212100S =++

+;

(3)246100S =++++;

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

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

2

22

2

111

16

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、利用格利高公式求π。

11114357

π

=-+-+,直到最后一项的值小于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;

汇编语言程序设计练习题

汇编语言程序设计练习题 一、字符与串处理类 1.逆序输出字符串“BASED ADDRESSING”。 2.试编写一段程序,要求对键盘输入的小写字母用大写字母显示出来。 3.编写程序,从键盘接收一个小写字母,然后找出它的前导字符和后续字符,再按顺序显示这三个字符。 4.从键盘上输入一系列以$为结束符的字符串,然后对其中的非数字字符计数,并显示计数结果。 5.从键盘上输入一串字符(用回车键结束,使用0A号功能调用。)放在STRING中,试编制一个程序测试字符串中是否存在数字。如有,则把CL的第5位置1,否则将该位置置0。 6.从键盘上输入一串字符(用回车键结束,使用0A号功能调用。),将其中的小写英文字母变换为大写英文字母,其他字符保持不变。然后将变换后的字符串显示出来。 7.试编制一个程序:从键盘输入一行字符,要求第一个键入的字符必须是空格符,如不是,则退出程序;如是,则开始接收键入的字符并顺序存放在首地址为buffer的缓冲区中(空格符不存入),直到接收到第二个空格符时退出程序。 8.试编写一段程序,要求比较两个字符串string1和string2所含字符是否相等,如相等则显示“MATCH”, 若不相同则显示“NO MATCH”。 9.试编写一段程序,要求输入两个字符串,如两个字符串相等则显示“MATCH”, 否则显示“NO MATCH”。 10.试编写一段程序,要求在长度为100H字节的数组中,找出大于61H的无符号数的个数并存入字节单元UP中,找出小于2FH的无符号数的个数并存入字节单元DOWN中。 11.在内存区域0B800:0000-0B800:0FFFF(都是16进制数)内查找首地址为SOURCE的串(SOURCE的首字节为串长度),如果找到,则把AL的第0位置0,否则将该位置置1。 12.已知数组A包含15个互不相等的整数,数组B包含20个互不相等的整数。试编制一个程序,把既在A中又在B中出现的整数存放于数组C中。 13.在附加段中,有一个首地址为LIST和未经排序的字数组。在数组的第一个字中,存放着该数组的长度,数组的首地址已存放在DI寄存器中,AX寄存器中存放着一个数。要求编制一个程序:在数组中查找该数,如果找到此数,则把它从数组中删除。 二、数字输入输出类 1. 试编制一个程序,把BX寄存器内的二进制数以十六进制数的形式在屏幕上显示出来。 2. 试编制一个程序,把BX寄存器内的二进制数以八进制数的形式在屏幕上显示出来。 3. 试编制一个程序,把BX寄存器内的二进制数以十进制数的形式在屏幕上显示出来。 4.从键盘上输入2个一位数,求出它们的和(假设和不超过1位)。 5.试编写一段程序,从键盘接收一个四位的十六进制数,并在终端上显示与它等值的二进制数。 6.试编写一段程序,从键盘接收一个0-65535间的十进制无符号数,并在终端上显示与它等值的二进制数。 7.试编写一段程序,从键盘接收一个-32768-32767间的十进制有符号数,并在终端上显示与它等值的二进制数。 8.编写一个程序,从键盘输入一个0~65535之间的10进制无符号数,然后以16进制

网络程序设计—ASP考试试题(A卷)答案[1]

《网络程序设计—ASP》考试试题1答案 一、单项选择题(本大题共15小题.每小题1分。共15分) 1.A 2. D 3. B 4. B 5. B 6. B 7. A 8.C 9.B 10.B 11.A 12.D 13.B 14.A 15.C 二、判断题(本大题10小题,每小题1.5分,共15分)。 16.ABCD 17.AD 18.AB 19. ABCD 20.CD 21. ABCD 22. BD 23. CD 24. ABCD 25. AB 三、程序填空题(本大题10小题,每空1.5分,共15分) 26. “11”、2、“11”、“11”27. ac 28. 3 29.2 30. 空(Empty)31. 空(Empty)32. "<p>" 33. &lt;p&gt; 34. 与intAge的值有关35.全部 四、名词解释(本大题5小题,每小题2分,共10分) 36.静态网页——所谓静态网页,就是说该网页文件里没有程序代码,只有HTML标记,这种网页的扩展名一般是.htm或.html。静态网页一经制成,内容就不会再变化,不管何时何人访问,显示的都是同样的内容,如果要修改内容,就必须修改源文件,然后重新上传到服务器上。 37.相对路径——所谓相对路径,就是以“/”或“\”开头的路径。 38.子程序——就是只执行程序而不返回值的程序模块。 39.会话——是指用户访问网站的过程;状态,就是指会话过程中的一些变量、设置等信息。 40.数据库——所谓数据库,就是按照一定数据模型组织、存储在一起的,能为多个用户共享的,与应用程序相对独立的、相互关联的数据集合。 五、简答题(本大题4小题,每小题4分,共20分) 41.什么是应用程序?为什么要建立应用程序? 答案:简单的说,添加了虚拟目录的文件夹就可以称为应用程序。建立应用程序后,多个网站之间就可以独立了,一些公共变量就不会混淆。 42.如果同时设置了背景颜色和背景图片,会出现什么情况? 答案:如果同时设置了背景颜色和背景图片,将只有背景图片起作用。 43.请简述四类运算符的优先级顺序。 答案:算术运算符>连接运算符>比较运算符>逻辑运算符。 44.某程序可以显示记录,但不能更新记录,请简述可能的原因。 答案:可能是没有对数据库文件设置相应的访问权限。(比如,去掉只读;对于Windows 2000、Windows XP 系统,如果安装时采用了NTFS文件系统,还要设置“Internet来宾帐户”可以完全控制该数据库文件。) 六、编程题(本大题2小题,第1小题15分,第二小题10分,共25分) 45.请编写程序段,随机产生一个0到9的整数。如果是偶数,则在页面上输出“生成的是偶数”,否则输出“生成的是奇数”。 程序清单: <% Dim s s=Int(10 * Rnd()) If (s Mod 2)=0 Then Response.Write "生成的是偶数" Else Response.Write "生成的是奇数"

汇编语言程序的设计试卷与答案

汇编语言程序设计试卷 一、单项选择题(在每小题的四个备选答案中,选出一个正确的答案,并将其号码填在题干后的括号内,每小题1分,共20分) 1.十六进制数88H,可表示成下面几种形式,请找出错误的表示()。 ① 无符号十进制数136 ② 带符号十进制数-120 ③ 压缩型BCD码十进制数88 ④ 8位二进制数-8的补码表示 2.指令指针寄存器是()。 ① IP ② SP ③ BP ④ PSW 3.当执行指令ADD AX,BX后,若AX的内容为2BA0H, 设置的奇偶标志位PF=1,下面的叙述正确的是()。 ① 表示结果中含1的个数为偶数 ② 表示结果中含1的个数为奇数 ③ 表示该数为偶数 ④ 表示结果中低八位含1的个数为偶数 4.完成将累加器AL清零,并使进位标志CF清零, 下面错误的指令是()。 ① MOV AL,00H ② AND AL,00H

③ XOR AL,AL ④ SUB AL,AL 5.下列指令执行后总是使CF=0,OF=0的是()。 ① AND ② NEG ③ NOT ④ INC 6.完成同指令XCHG AX,BX相同功能的指令或指令序列是()。 ① MOV AX,BX ② MOV BX,AX ③ PUSH AX POP BX ④ MOV CX,AX MOV AX,BX MOV BX,CX 7.设AH=0,AL=06H,BL=09H,执行指令 ADD AL,BL AAA 之后,其结果应是()。 ① AH=01,AL=05 ② AH=1 AL=15 ③ AH=0 AL=0FH ④ AH=0 AL=05 8.设AL=0B4H,BL=11H,指令“MUL BL”和指令“IMUL BL”分别执行后OF,CF的值为

汇编语言程序设计期末考试试卷及参考答案

【汇编语言程序设计】期末考试-试卷及参考答案

执行上述两条指令后,正确的结果是( B )。 A.(AX)=1001H; B.(AX)=0FFFH; C.(AX)=1000H; D.(AX)=0111H。 6.串指令中的目的操作数地址一定是由____A_ _提供。()A.ES:[DI] ; B.SS:[BP]; C.DS:[SI] ; D.CS:[IP]。 7.将DX的内容除以2,正确的指令是( C )。 A.DIV 2 ; B.DIV DX,2 ; C.SAR DX,1; D.SHL DX,1。 8. 用户为了解决自己的问题,用汇编语言所编写的程序,称为( B )。 A.目标程序; B.汇编语言源程序; C.可执行程序; D.汇编程序。 9.用一条指令仅实现将AX←BX+SI的方法是( D )。 A.XCHG AX,[BX][SI] ; B.MOV AX,[BX+SI]; C.LEA AX,BX[SI] ; D.LEA AX,[BX][SI]。 10.设SP初值为2000H,执行指令“PUSH AX”后,SP的值是( C )。 A.1FFFH; B.1998H; C.1FFEH; D.2002H。 2. C 二、指出下列指令的出错原因,并改正。(每小题2分,共12分) 1.MOV BX,DL;操作数类型不匹配,改正为:MOV BL,DL 或MOV BX,DX 2.MOV CS,AX;代码段寄存器CS不能作目的操作数,改正为MOV DS,AX 3.ADD AX,DS;段寄存器DS的内容不能作为加法指令的操作数,改正为 MOV BX,DS ADD AX,BX 4.TEST BX,[CX];不能使用CX实现寄存器间接寻址,改正为 MOV SI,CX TEST BX,[SI] 5.SUB [BX],[BP+SI];两个操作数不能同为存储器操作数,且两个操作数的数据类型不确定,改正为:MOV AX,[BX] SUB AX,[BP+SI] 或:MOV AL,[BX] SUB AL,[BP+SI] 6.SHL DX ;没有给出移位次数,改正为SHL DX,1或 SHL DX,CL 三、程序填空题(注意:每空只能填一条指令,并注释说明所填指令的作用!每空3分,共18分) 1.在表TABLE处存放着N个无符号字节数,求表中前10个字节数的总和并

汇编语言程序设计练习题及答案

一、单项选择题(在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。) 1.为在一连续的存储单元中,依次存放数据41H,42H,43H,44H,45H,46H,可选用的数据定义语句是(D) A.DB 41,42,43,44,45,46 B.DW 4142H,4344H,4546H C.DW ‘AB’,‘CD’,‘EF’D.DW ‘BA’,‘DC’,‘FE’ 2.DA2 DB‘AB’,‘CD’ ┇ MOV AX,WORD PTR DA2+1 上述语句执行后AX中的值是(D) A.‘AD’B.‘BC’ C.‘DA’D.‘CB’ 3.下列数据定义语句中可实现留空20H个字节存储单元的是(D) A.DB 20 DUP(?) B.DW 20H DUP(?) C.DB 10H DUP(4 DUP(?)) D.DD 08H DUP(?) 4.如某存储器分段时,表示偏移地址是17位二进制代码,那么一个段最多的存储单元数是(D) A.32K字节B.32K字 C.64K字节D.64K字 5.下列寄存器中用来指示堆栈中任意数据区的偏移地址的是(B)A.BX B.BP C.SI D.DI 6.下列指令中有语法错误的是(C) A.PUSH AX B.PUSH [20H+SI+BX] C.POP CS D.PUSH CS 7.执行PUSH BP指令时,目的操作数的物理地址表达式是(D) A.16*SS+BP B.16*DS+BP C.16*CS+IP D.16*SS+SP 8.把BL中的数据输出到端口8CH中正确指令是(C) A.OUT 8CH,BL B.IN 8CH,BL C.MOV AL,BL D.MOV AL,BL OUT 8CH,AL IN 8CH,AL 9.结果为零的条件转移指令,其测试条件是(A) A.ZF=1 B.ZF=0 C.SF=l D.SF=0 10.下面程序段完成测试DA-BYTE字节单元中数是否为负数,若是则将全l送DH中,否则全0送DH中,那么程序段中方框里应填的语句是 MOV CH,0 MOV CH,0FFH ZERO:MOV DH,CH(C) A.JNZ ZERO B.JS ZERO

网络程序设计复习题(带答案)

网络程序设计复习题 1、为了实现网络的互联,互联网技术必须保证使用不同硬件结构的计算机能够进行通信 适用于多种不同的操作系统、能够使用多种分组交换网络硬件 2、因特网体系结构委员会的英文简称是ICCB 3、协议的实现要落实到一个个具体的硬件模块和软件模块上,在网络中将这些实现特定功能的模块称为实体 4、连接控制、流控制、报文分段等属于传输层功能 5、IP数据报协议标识字段指明了IP数据报封装的协议,当标识字段为 6 时 表示封装的是TCP协议 6、ICMP报文不包括地址解析报文 7、套接字是指IP地址和端口号的组合。 8、SOCKET编程中的全相关是指源端口号、目的端口号、源IP、目的IP、协议 9、IP分组的中的TTL值描述,每经过一个路由器,它的值会减1是正确的 10、TELNET通过TCP/IP协议模块在客户机和远程登录服务器之间建立一个TCP 11、以下提供可靠服务不是UDP协议的特性 12、虚拟局域网通常采用交换机端口号、MAC地址、网络层地址或IP广播组地 址定义 13、办公自动化服务不是网络操作系统提供的服务 14、分析IP数据报所携带的TCP内容不是IP路由器应具备的主要功能 15、java当中网络编程的接口是在https://www.360docs.net/doc/677871288.html,包当中提供的。 16、会话的建立、维护和交互过程中的同步等属于会话层功能 17、在网络层,IP模块根据IP数据报首部中的协议值决定将数据报中的数据交 给哪一个模块去处理,当协议值为17,应将数据交给UDP模块处理 18、ARP请求帧在物理网络中是以广播方式发送的 19、ICMP在重组定时器超时情况下会产生数据报超时报告。 20、回应请求与应答报文的目的是对网络进行诊断和测试,使用它可以了解 设备的可达性 21、网络的功能主要由各层的协议来完成,互联网技术经过多年的发展形成了现在的TCP/IP协议。 22、为了保证网络的各个功能的相对独立性,以及便于实现和维护,通常将协议划分为多个子协议,并且让这些协议保持一种层次结构,子协议的集合通常称为协议簇。 23、IP协议是TCP/IP协议簇中的核心协议,提供数据传输的最基本服务,是实现网络互联的基本协议。 24、ICMP协议将请求转变为ICMP报文,然后将报文封装在IP协议中进行发送。包含ICMP报文的IP数据报首部的协议字段为1。

汇编语言程序设计期末考试题

汇编语言程序设计期末考试题 学院(系):学号: 姓名: 计分: 一、项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号 内。每小题1分,共10分) 1.CPU发出的访问存储器的地址是( ) A.物理地址 B.偏移地址C.逻辑地址D.段地址 2.将高级语言的程序翻译成机器码程序的实用程序是( ) A.编译程序 B.汇编程序 C.解释程序 D.目标程序 3.DEC BYTE PTR[BX]指令中的操作数的数据类型是( ) A.字 B.双字C.字节D.四字 4.在下列语句中,BUFFER称为( ) BUFFER DB 01H,0AH A.符号 B.变量 C.助记符D.标号 5.串操作指令中,源串操作数的段地址一定在( )寄存器中。 A. CS B. SS C. DS D. ES 6.使计算机执行某种操作的命令是( ) A.伪指令B.指令 C.标号D.助记符 7.将数据5618H存放在存储单元中的伪指令是( ) A. DATA1 DW 1856H B. DATA1 DB 18H,56H C. DATA1EQU 5618H D. DATA1 DB 18H,00H,56H,00H 8.若AX=3500H,CX=56B8H,当AND AX,CX指令执行后,AX=( ) A.1400H B. 77F8H C. 0000H D. 0FFFFH 9.计算机处理问题中会碰到大量的字符、符号,对此必须采用统一的二进制编码。目前,微机中普遍 采用的是( )码。 A. BCD码 B.二进制码 C.ASCII码D.十六进制码 10.用指令的助记符、符号地址、标号和伪指令、宏指令以及规定的格式书写程序的语 言称为( ) A.汇编语言 B.高级语言 C.机器语言 D.低级语言 二、填空题(每空1分,共20分) 1.在8086/8088汇编语言中,有五条串操作指令,其中搜索字符串指令的助记符是______。 2.通常所说的计算机系统包括________和________两大部分。 3.8086/8088存储器分四个段,这四个段的段名所对应的段寄存器分别是________、_____ ___、________、________。 4.现有AX=2000H,BX=1200H, DS=3000H, DI=0002H, (31200H)=50H,(31201H)=02H, (31202H)=40H,请写出下列各条指令独立执行完后有关寄存器及存储单元的内容,并指出标 志位ZF、CF的值。 A.ADDAX,1200H;问AX=________H,ZF=________

汇编语言程序设计期末考试题

汇编语言程序设计期末考试题 学院(系):________ 学号:__________ 姓名:____________ 计分:_ 项选择题(在每小题的四个备选答案中,选岀一个正确答案,并将正确答案的序号填在题干的括号内。每小题1分,共10分) 1.CPU发出的访问存储器的地址是() A.物理地址 B.偏移地址 C.逻辑地址 D.段地址 2.将高级语言的程序翻译成机器码程序的实用程序是() A.编译程序 B.汇编程序 C.解释程序 D.目标程序 3.DEC BYTE PTR: BX]指令中的操作数的数据类型是() A.字 B. 双字 C. 字节 D. 四字 4.在下列语句中,BUFFER称为() BUFFER DB 01H 0AH A.符号 B.变量 C.助记符 D.标号 5.串操作指令中,源串操作数的段地址一定在()寄存器中。 A.CS B. SS C. DS D. ES 6.使计算机执行某种操作的命令是() A.伪指令 B.指令 C.标号 D.助记符 7.将数据5618H存放在存储单元中的伪指令是() A.DATA1 DW 1856H B. DATA1 DB 18H,56H C. DATA1 EQU 5618H D. DATA1 DB 18H ,OOH, 56H,00H 8.若AX=3500H,CX=56B8H 当AND AX CX指令执行后,AX=() A.1400H B. 77F8H C.0000H D. 0FFFFH 9.计算机处理问题中会碰到大量的字符、符号,对此必须采用统一的二进制编码。目前,微机中普遍采用 的是()码。 A. BCD码 B. 二进制码 C.ASCII码 D.十六进制码 10.用指令的助记符、符号地址、标号和伪指令、宏指令以及规定的格式书写程序的语言称为() A.汇编语言 B.高级语言 C.机器语言 D. 低级语言 填空题(每空1分,共20分) 1.在8086/8088汇编语言中,有五条串操作指令,其中搜索字符串指令的助记符是 2.通常所说的计算机系统包括_________ 和_________ 两大部分。 3.8086/8088存储器分四个段,这四个段的段名所对应的段寄存器分别是 _____________ 4.现有AX=2000H, BX=1200H, DS=3000H, DI=0002H, (31200H)=50H, (31201H)=02H, (31202H)=40H, 请写岀下列各条指令独立执行完后有关寄存器及存储单元的内容,并指岀标志位ZF、CF的值。 A.ADD AX 1200H;问AX= __________ H ZF= _______ B.SUB AX BX 问AX= _________ H ZF= ________

汇编语言程序设计课后习题解答宋人杰2版

第1章汇编语言基础知识 1.简述汇编语言源程序、汇编程序、和目标程序的关系。 答:用汇编语言编写的程序称为汇编源程序;汇编源程序在汇编程序的翻译下转换成计算机语言变成目标程序。 2. 简述汇编语言的优缺点。 答:(1) 汇编语言的优点: ①可有效地访问、控制计算机各种硬件设备,如磁盘、存储器、CPU、I/O端口等。. ②目标代码简短,占用内存少,执行速度快,是高效的程序设计语言。 ③可与高级语言配合使用,应用十分广泛。 (2) 汇编语言的缺点: ①通用性和可移植性较差 ②相对于高级语言来说较繁锁、易出错、不够直观。 3.CPU的寻址能力为8KB,那么它的地址总线的宽度为多少? 答:13 4. 1KB的存储器有多少个存储单元? 答:1024个字节。 5. 指令中的逻辑地址由哪两部分组成? 答:指令中的逻辑地址由段基址和偏移量组成。 6. 以下为用段基址:偏移量形式表示的内存地址,试计算它们的物理地址。 (1) 12F8:0100 (2) 1A2F:0103 (3) 1A3F:0003 (4) 1A3F:A1FF 答: (1) 13080H (2) 1A3F3H (3) 1A3F3H (4) 245EFH 7. 自12FA:0000开始的内存单元中存放以下数据(用十六进制形式表示): 03 06 11 A3 13 01,试分别写出12FA:0002的字节型数据、字型数据及双字型数据 的值。 答:字节型数据:11H 字型数据:0A311H 双字型数据:0113A311H 8. 内存中某单元的物理地址是19318H,段基地址为1916H,则段内偏移地址为 多少?若段内偏移地址为2228H,则段基地址为多少? 答:若段基地址为1916H,则段内偏移地址为01B8H;若段内偏移地址为2228H,则段基地址为170FH 9. 在实模式环境中,一个段最长不能超过多少字节? 答:64KB 10. 实模式可寻址的内存范围是多少? 答:1MB

《网络程序设计》期末考试试题.doc

学习中心_________ 姓名_____________ 学号 西安电子科技大学网络与继续教育学院 2019学年上学期 《网络程序设计》期末考试试题 (综合大作业) 考试说明: 1、大作业试题于2019年4月25日公布,2019年4月26日至2019年5月12日在线上传大作业答卷(最多上传10张图片); 2、考试必须独立完成,如发现抄袭、雷同均按零分计; 3、答案须用《西安电子科技大学网络与继续教育学院综合大作业答题纸》手写完成,要求字迹工整、卷面干净; 4、文字描述部分需手写,系统界面以图片形式保存,且总页面不超过10页,上传考试系统。 一、(30分/题,共1个)以access数据库作为后台数据库,完成某学校教材信息的录入、修改和查询。要求所有教材信息必须存储在数据库中,最终提交作业报告,内容包括题目内容,题目总体分析,实现方案,数据库设计,功能模块设计,网页结构设计,运行结果,主要源程序。 总体分析 根据题目要求选择了使用桌面应用程序实现,而没有选择web实现。所以选择java作为开发语言,使用java提供的swing组件实现交互界面。题目要求使用access做为后台数据库,java提供了JDBC-ODBC驱动连接access数据库。

实现方案 使用access数据库(JDBC-ODBC连接) 使用java语言编程(JDK1.6) 使用swing实现交互界面 使用Netbeans7.0 IDE 数据库设计 表结构: 表:book 字段类型说明Id 长整型图书编号 book_name 字符串书名 author 字符串作者 publisher 字符串出版社 publish_date 时间出版时间 功能模块设计 程序中实现了图书信息的查询、添加、修改、删除。 1、查询模块 可以显示所有的图书信息, 可以按条件查询,可分别通过书名、作者、出版社进行查询相关图书信息。 2、添加模块 添加新的图书信息到数据库中 3、修改模块 对数据库中存储的图书信息进行修改。 4、删除模块 删除数据库中的图书信息。 详细设计 代码结构:

汇编语言程序设计试题A卷

陕西电子信息职业技术学院考试试卷(A) 2011至2012学年度第一学期 期末 班级: 09成教 课程: 汇编语言程序设计 题 号 一 二 三 四 五 合分人 分 数 总 分 (考试时间:120分钟 满分100分) 一、单项选择题(本大题共10小题,每小题2分,共20分) 1. 计算机硬件中最核心的部件是( )。 A. 运算器 B. 主存储器 C. CPU D. 输入 / 输出设备 2. 指令指针寄存器(IP )中存放的内容( )。 A. 指令 B. 指令地址 C. 操作数 D. 操作数地址 3. 寄存器间接寻址方式中,要寻找的操作数位于( )中。 A. 通用寄存器 B. 内存单元 C. 段寄存器 D. 堆栈 4. I/O 端口的编址方式分为统一编址和( )。 A. 独立编址 B. 选择编址 C. 设置编址 D. 控制编址 5. 汇编语言程序中可执行的指令位于( )中。 A. 数据段 B. 堆栈段 C. 代码段 D. 附加数据段 6. 循环结构设计中,要考虑的核心问题是( )。 A. 循环的控制 B. 选择循环结构 C. 设置循环参数初始值 D. 修改循环控制参数 7. 在汇编中用于管理和控制计算机相关功能的指令是( )。 A. 伪指令 B. 机器指令 C. 宏指令 D. 目标指令 班级 姓名 学号 — — — — — — — — — — — — — — — — 密 — — — — — — — — — 封 — — — — — — — — — — 线 — — — — — — — — — — — — — — — —

8. 识别中断源的方法包括查询中断和()共两种类型。 A. 指令中断 B. 故障中断 C. 矢量中断 D. 实时时钟中断 9. CPU与I/O设备之间需要传输的信息通常包括()、状态信息 和控制信息。 A. 编址信息 B. 格式信息 C. 中断信息 D. 数据信息 10. 一般情况下,汇编源程序应由数据段、()和代码段共三个逻 辑段组成。 A. 逻辑段 B. 堆栈段 C. 指令段 D. 类型段 二、名词解释(本大题共5小题,每小题4分,共20分) 11. 微处理器: 12. 寻址方式: 13. 伪指令: 14. 中断源:

汇编语言程序设计期末复习题及答案

《汇编语言程序设计》期末复习题及答案 一、选择(30题) 1.下列是8位带符号二进制数的补码,其中最大的是( B )。 B、00000001 2.在一段汇编语言程序中多次调用另一段程序,用宏指令比用子程序实现( C ) C、占内存空间大,但速度快 3.数据定义为:EE DB 3,4 CC DW 3456H,6789H 执行指令“MOV CX,WORD PTR EE+1”后,(CX)= ( B ) B、5604H 4.有如下指令序列: MOV AL,95H MOV CL,2 SAR AL,CL 上述指令序列执行后,AL的内容是( D ) D、0E5H 5.设A=18610,B=2738,C=0BB16,把这三个数看成无符号数,则它们之间的关系是( D )D、A

A、ENDP 11.用来存放下一条将要执行的指令代码段地址的段寄存器是( D ) D、CS 12.假定(SS)=1000H,(SP)=0100H,(AX)=5609H,执行指令PUSH AX后,存放数据56H的物理地址是( D ) D、100FFH 13.执行“SUB AX,[BP][DI]”指令,取源操作数时,使用的物理地址表达式是( A ) A、16*SS+BP+DI 14.设AX中有一带符号数8520H,执行“SAR AX,1”指令后,AX中的值是( C ) C、0C290H 15.设(BX)=1234H,(DS)=2000H,(21234H)=5678H,则指令“LEA SI,[BX]”执行后的结果是:( B ) B、SI=1234H 16.测试BL中的数是否为负数,若为负数则转移至AA1处,横线处的指令应为( A ) A、JNE 17.设DF=0,(SI)=20H,(CX)=10,执行“REP LODSW”指令后,SI中的内容是( C ) C、34H 18.在程序执行过程中,IP寄存器中始终保存的是( B ) B、下一条指令的首地址 19.设SP初值为2000H,执行指令“POP AX”后,SP的值是( A ) A、2002H 20.若AX=3500H,CX=56B8H,当AND AX,CX指令执行后,AX=( A ) A、1400H 21.汇编源程序时,出现语法错误的语句是( A ) A、MOV DS,1200H 22.将数据1234H存放在存储单元中的伪指令是( C ) C、DATA1 DB 34H,12H 23.下面指令执行后,可能改变AL寄存器内容的指令是( D ) D、AND AL,BL

《网络程序设计》期末考试复习题及参考答案

网络程序设计复习题 (课程代码 252284) 一.选择题 1、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( )。 A. java B. class C. html D. exe 2、设int型变量x = 1 , y = 2 , z = 3,则表达式y+=z--/x++ 的值是( )。 A. 3 B. 3. 5 C. 4 D. 5 3、在Java Applet程序用户自定义的Applet子类中,一般需要重载父类的( )方法来完成一些画图操作。 A. start( ) B. stop( ) C. init( ) D. paint( ) 4、不允许作为类及类成员的访问控制符的是( )。 A. public B. private C. static D. protected 5、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( )。 A. static void method( ) B. public void method( ) C. final void method( ) D. abstract void method( ) 6、下列浏览器中,可以运行HTML中的Applet,而忽略其他HTML命令的是( )。 A. Netscape 3.0 B. Internet Explorer5.0 C. Hot Java D. Appletviewer 7、以下哪一个不是JA V A的标准数据流( )。 A. 标准输出数据流 B. 标准输入数据流 C. 标准错误数据流 D. 标准运算数据流 8、下面声明数组的写法错误()。 A. int a[ ]; B: int[ ] a; C: int[ ][ ] a[3][ ]; D; int[ ][ ] a[ ][3]; 9: 设x为float型变量,y为double型变量,a为int型变量,b为long型变量,c为char 型变量,则表达式x+y*a/x+b/y+c的值为( )类型。

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

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

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

汇编语言程序设计试题

汇编语言程序设计试题 一、单项选择题(本大题共20小题,每小题1分,共20分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.设SS=2050H,SP=0140H,则栈顶存贮单元的物理地址是( A ) A.20640H B.2063EH C.2063FH D.21900H 2.使用DOS功能调用时,子程序编号应放在( B ) A.AL B.AH C.AX D.任意指定 3.没有 ..语法错误的输出指令是( B ) P76 A.OUT AX,30H B.OUT DX,AL C.OUT AL,DX D.OUT 30H,AH 4.用MOV指令将十进制数89以非压缩BCD码格式送入AX,可使用的指令是( B ) A.MOV AX,89 B.MOV AX,0809H C.MOV AX,89H D.MOV AX,0809 5.设AX=8765H,DX=4321H,执行CWD指令后,DX中的内容是( B ) P117 A.4321H B.0FFFFH C.8000H D.0001H 6.设CL=05H,要获得CL=0AH,可选用的指令是( A) A.XOR CL,0FH B.NOT CL C.OR CL,0AH D.AND CL,0FH 7.假设执行ADD指令后AL=8CH,再执行DAA指令,AL中的值是( A ) A.92H B.0104H C.74H D.8CH 8.MOV AL,79H ADD AL,B1H 上面指令执行后,设置的标志位CF和ZF的值是( D ) A.CF=0,ZF=1 B.CF=l,ZF=1 C.CF=0,ZF=0 D.CF=1,ZF=0 9.TEST DL,55H P123 JZ NEXT NEXT:…… … 上述程序段,执行JZ指令时能产生转移的情况是( D ) A.DL>55H B.DL<55H C.DL=55H D.DL中第0、2、4、6位均为0 10.假设AL=28H, 执行ROL AL,1 指令之后的情况是( D ) P125 A.AL=14H, CF=1 B.AL=50H, CF=1 C.AL=14H, CF=0 D.AL=50H, CF=0 11. 98的BCD码是(B) A)10011001 B) 10011000 C) 10011010 D) 10001010 12. –0110110 的补码是(A) A) 11001010 B) 11001001 C) 10110110 D) 00110110

网络程序设计试题A卷- 最新版本

西安电子科技大学《网络程序设计》试题 (2013年A卷) 考试时间120 分钟试卷编号 班级学号姓名任课老师姓名 一、单选题(10×2分=20分) 1.以下字段中,不属于IP首部的是 A. 协议类型 B. 生存时间 C. 源IP地址 D. 目的端口号 2.以下函数中,不会产生阻塞的是 A. send( ) B. sendto( ) C. connect( ) D. listen( ) 3.进程A是进程B的父进程,当A正在运行时B退出,下列叙述中正确的是 A.进程A也将退出 B.进程A将收到SIGCHLD信号 D.进程A将收到SIGKILL信号 D.进程A会成为僵尸进程

4.整数0x12345678在little-endian字节序主机内存中的存储形式是_________(注:内存由低到高) A. 12 34 56 78 B. 78 56 34 12 C. 34 12 78 56 D. 56 78 12 34 5.使用信号驱动I/O时哪一个不是必须要执行的操作 A.为信号SIGIO关联一个信号处理函数 B.设置套接字为非阻塞模式 C.设置套接字所有者 D.允许套接字进行信号驱动I/O 6.对使用UDP协议的套接字调用connect函数,下面叙述中正确的是A.connect函数将阻塞 B.connect函数将导致3次握手操作 C.connect函数记录对方的IP地址和端口后立刻返回 D.不能对使用UDP协议的套接字描述符调用connect函数 7.对函数调用send(sockfd,“12xyz”,5,MSG_OOB)的描述中正确的是 A.只有字符z被写入发送缓冲区 B.只有字符串12xy被写入发送缓冲区 C.字符串12xyz中的每个字符都将作为带外数据发送 D.TCP协议发送的下一个报文段中URG标志将置位 8.在给网络地址附值时,程序如果使用“INADDR_ANY”,则表明A.对于只有一个IP地址的主机,使用“127.0.0.1”地址 B.对于有多个网卡的主机,使用其中任意一个IP地址 C.对于有多个网卡的主机,表示所有IP地址,并处理所有地址的请求D.以上均不对

全国1月高等教育自学考试汇编语言程序设计试题历年试卷

做试题,没答案?上自考365,网校名师为你详细解答! 全国2005年1月高等教育自学考试 汇编语言程序设计试题 课程代码:02321 一、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填 在题干的括号内。每小题1分,共16分) 1.已知某操作数的物理地址是2117AH,则它的段地址和偏移地址可能是( )。 A.2025∶0F2A B.2108∶00EA C.2000∶017A D.2100∶117A 2.某程序装入内存后,DS=1200H,CS=1400H,则程序中数据段中的数据最多是( )字节。 A.2K B.4K C.8K D.16K 3.以寄存器DI间接寻址的存储器字节单元内容加1的指令是( )。 A.INC [DI] B.INC DI C.INC BYTE PTR[DI] D.ADD [DI],1 4.有语句:COUNT EQU 256,下列四种叙述中,正确的是( )。 A.COUNT是变量 B.COUNT占用一个字节存储单元 C.COUNT是符号常数 D.COUNT占用二个字节存储单元 5.下面指令中,源操作数的寻址方式为立即寻址的是( )。 A.MOV AX,OFFSET A B.MOV AX,A C.MOV AX,A+1 D.MOV AX,A[BX] 6.已知SP=2110H,执行POP AX后,SP寄存器的值是( )。 A.2111H B.2112H C.210FH D.210EH 7.将AX中有符号数除以2的正确指令是( )。 A.SHR AX,1 B.SAR AX,1 C.ROR AX,1 D.RCR AX,1 8.比较BX和SI中的两个存储器地址,若BX≥SI转向HIGH的正确指令是( )。 A.JAE HIGH B.JBE HIGH C.JEG HIGH D.JLE HIGH 9.指令SCASB操作数的段地址一定在( )寄存器中。 A.CS B.DS C.ES D.SS 10.有数据定义语句BUF DW 0ABH,1,10 DUP(3 DUP(1,0),2)汇编后,为变量BUF分配 的存储单元字节数是( )。 A.48H B.90H C.120 D.60 11.下列指令执行后,不改变AL寄存器内容的指令是( )。 1

汇编语言程序设计试题

汇编语言程序设计试题 一、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。每小题2分,共50分) 1.CPU发出的访问存储器的地址是( A ) A.物理地址 B.偏移地址 C.逻辑地址 D.段地址 2.使计算机执行某种操作的命令是( B ) A.伪指令 B.指令 C.标号 D.助记符 3.若AX=3500H,CX=56B8H,当AND AX,CX指令执行后,AX=(A) A. 1400H B. 77F8H C. 0000H D. 0FFFFH 4.计算机处理问题中会碰到大量的字符、符号,对此必须采用统一的二进制编码。目前,微机中普遍采用的是( C)码。 A. BCD码 B.二进制码 C.ASCII码 D.十六进制码 5.下列关于8086CPU的工作原理的描述错误的是__C___。 A.汇编程序员可以通过对各种寄存器中内容的修改实现对CPU的控制。B.CPU在访问内存时,采用“段地址*16+偏移地址”的形式给出要访问的内存单元的物理地址。 C.任意时刻,CS:IP指向的内容即是此刻CPU正在执行的指令。 D.传送指令能够更改所有通用寄存器的内容。 6.一个有128个字的数据区,它的起始地址为12ABH:00ABH,请给出这个数据区最末一个字单元的物理地址是(C) A.12CFBH B.12B6BH C.12C5BH D.12BFEH 7. 16位结构的CPU 不一定具备的特性是(D)。 A. 运算器一次最多可以处理16位的数据 B. 寄存器的最大宽度为16位 C. 寄存器和运算器之间的通路为16位 D. 地址总线为16根 8. 下列指令的书写正确的是(C)。 A. push al B. mov cs:[0],ds:[10] C. pop si D. mov ds:[0],2 9.在DEBUG工具中,显示寄存器内容的命令是( D )。 A. G B. D C. T D. R 10. 能够将ax中的内容送到内存0000:0200H处的指令序列是(D)。

相关文档
最新文档