设m≥3为奇数。试对任意的h>0,构造一棵高度为h的m节B-树,使得若反复地对该树交替地执行插入、删除操作,则每次插入或删除操作都会引发h次分裂或合并。
A.小于m的最大奇数
B.小于m的最大素数
C.小于m的最大偶数
D.小于m的最大合数
阅读以下说明和C语言函数,将应填入(n)处的字句写在对应栏内。
[说明]
如图所示的一圆圈上分布6个环,请在每个环中填一个数字,使得从任一环开始按顺时针所得的六位数与按逆时针所得的6位数都为素数。
[函数]
main ()
{
int i, j, a, b, k;
long m,m1,n,t,u,v;
for (n=100001;n<999999;n+2 ) /* n穷举所有 6位奇数*/
{
a=0;(1); /* 设 m 为一个顺转6 位数*/
for (i=1; i<=6; i++ )
{t=-m/1000000;(2);
for (v=u,m1=0,k=1;k<=5;k++ )
{b=v%10;v=v/10;m1=m1*m1* 10+b;}
(3); /*m1 为相应的逆转 6 位数*/
/* m 为顺圈数, m1 为逆圈数*/
for (j=2; j<=999;j++ )
if (m%j==0||.(4)) /* 判别 m,m1 是否为素数*/
{ a= 1; break; }
(5); /*原m 转一环得新顺转数m*/
/*原 m 转一环得新顺圈数m*/
if (a==1) break;}
if (a==0 )
{prinff ("%1d\n",n ) ;break;}
}
}
图3-22(a)所示为一个三铰拱式屋架。上弦通常用钢筋混凝土或预应力混凝土,拉杆用角钢或圆钢,结点不在上弦杆的轴线上而有偏心。图(b)为其计算简图.设l=12m,h=2.2m,e1=0.2mm,e=0,q=1.2kN/m。试求支座反力和内力。
设B为A=(1,2,3,...,n)的任一排列。
a)试证明,B是A的一个栈混洗,当且仅当对于任意1≤i<j<k≤n,P中都不含如下模式:{...,k,...,i,...,j,...}
b)若对任意1≤i<j<k<n,B中都不含模式{...,j+1,...,i,...,j,...},则B是否必为A的一个栈混洗?若是,试给出证明;否则,试举一反例。
c)若对任意1<i<j<k≤n,B中都不含模式{...,k,...,j-1,...,j,...},则B是否必为A的一个栈混洗?若是,试给出证明;否则,试举一反例。
【程序说明】 计算1~30之间能够被3整除的奇数的阶乘和。
【程序】
** 主程序
SET TALK OFF
S=0
FOR I=1 TO 30 STEP 2
IF (4)
(5)
S=S+N
ENDIF
ENDFOR
?“1到30之间能被3整除的奇数阶乘和为:”+ (6)
SET TALK ON
RETURN
** 过程 P1.PRG
PARAMETERS M
(7)
N=1
FOR J=1 TO M
N=N*J
ENDFOR
(8)
(4)
A.MOD(I,3)>=0
B.MOD(I,3)>0
C.MOD(I,3)<>0
D.MOD(I,3)=0
阅读以下说明和C语言程序,将应填入(n)处的字句写在对应栏内。
【说明】
魔方阵,又叫幻方,在我国古代称为“纵横图”。由1…N2共N2个自然数构成每行、每列及两对角线上各数之和都相等的N×N方阵,这样的方阵就叫做N阶魔方阵。顾名思义,奇阶魔方阵就是N为奇数的幻方。
奇数阶魔方阵的生成方法如下:
(1)第一个位置在第一行正中。
(2)新位置应当处于最近一个插入位置右上方,但如果右上方位置已超出方阵上边界,则新位置取应选列的最下一个位置;如果超出右边界,则新位置取应选行的最左一个位置。
(3)若最近一个插入元素为N的整数倍,则选下面一行同列上的位置为新位置。本题要求输入一个数据n,然后打印由自然数1到n2的自然数构成的魔方阵(n为奇数)。例如,当n=3时,魔方阵为:
8 1 6
3 5 7
4 9 2
了解其生成方法后,就可以根据此方法来写出程序了。首先设置int变量i,j,m, n。其中i标记魔方阵的行;j标记魔方阵的列;n表示魔方阵的维数,通过输入得到;通过m递加得到插入的数据。数组a[MAX][MAX]用于存放魔方阵元素。这里预定义了 MAX的大小,没有采用动态分配,在此设置为15,即最大求得15×15阶魔方阵。
【程序】
include <stdio.h>
define MAX 15
void main()
{
int n;
int m=1;
int i,j;
int a[MAX][MAX];
printf("Please input the rank of matrix:");
scanf("%d",&n);
i=0;
(1)
while((2))
a[i][j]=m;
m++;
i--;
j++;
if((m-1)%n==0 && m>1)
{
(3)
j=j-1;
}
if(j>(n-1)) //超出上界
(4)
if(j>(n-1))
(5)
}
for(i=0;i<n;i++) //输出魔方阵
for(j=0;j<n;j++)
{
if(a[i][j]/10==0)
printf("%d ",a[i][j]); //对程序无影响,只是使输出的数每一列对齐
else
printf("%d ",a[i][j]);
if(j==(n-1))
printf("\n");
}
}
A.i*m+j
B.j*m+i
C.i*m+j-1
D.i*m+j+1