以下程序的执行结果是【 】。
include<iostream.h>
int f(int b[],int n)
{
int i,r=1;
for(i=0;i<n;i++)
r=r*b[i];
return r;
}
void main()
{
int x,a[]={2,3,4,5,6,7,8,9};
x=f(a,3);
cout<<x<<endl;
}
查看答案
下面程序的功能是利用逻辑尺对BUF变量中的数据进行变换,执行该程序后,以RESULT为首地址的前两个字节单元中的数据依次为【 】。
DSEG SEGMENT
BUF DB 1,5,4,0,7,9,2,6
L EQU 00111001B ;用做逻辑尺
RESULT DB 10 DUP()
DSEG ENDS
SSEG SEGMENT STACK
DB 256 DUP(0)
SSEG ENDS
CSEG SEGMENT
ASSUME DS:DSEG,SS:SSEG,CS:CSEG
START PROC FAR
PUSH DS
XOR AX,AX
PUSH AX
MOV AX,DSEG
MOV DS,AX
MOV SI,0
MOV CX,8
MOV DL,L
GOON: SHR DL,1
JC FILL
MOV AL,BUF[SI]
JMP NEXT
FILL: MOV AL,OFFH
NEXT: MOV RESULT[SI],AL
INC SI
LOOP GOON
RET
START ENDP
CSEG ENDS
END START
阅读以下说明和流程图8-11,完成程序(n)处的语句写在对应栏内。
[说明]
对于数学上一个猜想:任何自然数平方的36倍等于两对孪生素数的和。初始的情形如下:
12×36=(5+7)+(11+13)
22×36=(29+31)+(41+43)
32×36=(11+13)+(149+151)
再往下,N取4,5,6,时,只要N不太大,也都可以找到N(上标)2×36等于两对孪生素数的和。但是当N是一个任意的正整数时,证明N2×36总是等于两对孪生素数的和,这还是一个目前尚未解决的问题。甚至当考察的数较大时,找出一组符合条件的两对孪生素数都是计算量相当大的工作。每尝试一次,都要作4次是否是素数的判断,要作许多次的尝试,才可能找到一组解。下面流程图设计了一种优化算法来对这个猜想进行验证。仔细阅读流程图8-11,完成程序部分。
[程序部分]
main ()
{
int t, i, j, prime_index; is_p rime:
long n, p, p1, p2, p3, p4, s, s1;
long primes [ 16000 ];
for (n=1; n<98; ++n)
{
t=0;
s= n* n* 36;
prime_index= 2;
primes[0]=2; primes[1]=3;
for (p=5: p<=s/2; p=p+2)
{
is_p rime= 1;
for (i=1;(1)++i)
if (p%primes [i] = = 0 ) is_p rime= 0;
if (is_p rime)
{
(2)
}
}
for (i=1; (3)++i)
{
(4)
if (p2=p1+ 2 )
{
s1=s- (p1+p2)
p3=sl/2-1; p4=p3+2:
for (j=0; j<=prime_index-1; ++j )
if ((5))
{
printf ("%d* % d*36= (%d+ %d) + (%d+%d) \n", \ n,n, p1, p2, p3, p4 ) ;
++t;
}
}
}
if (t! = 0 ) printf ("%d\n", t )
else
printf ("%d* %d*36=no so lution\n ", n, n ) ; }
}
}
辨析题
第58小题,8分。要求对命题进行判断并着重阐明理由。请将答案写在答题纸指定位置上。
一商店保管处牌子上写明:“在本商店保管的物品,丢失概不负责。”请运用合同法的知识和理论对该说法加以辨析。