已知如下多元素变量,已知I=2;J=2;则M[I+1][J+1]的值为_____。
A.39
B.11
C.0
D.16
A.39
B.11
C.0
D.16
【说明】
魔方阵,又叫幻方,在我国古代称为"纵横图".由1…N2共N2个自然数构成每行、每列及两对角线上各数之和都相等的N×N方阵,这样的方阵就叫做N阶魔方阵。顾名思义,奇阶魔方阵就是N为奇数的幻方。
奇数阶魔方阵的生成方法如下:
(1)第一个位置在第一行正中。
(2)新位置应当处于最近一个插入位置右上方,但如果右上方位置已超出方阵上边界,则新位置取应选列的最下一个位置;如果超出右边界,则新位置取应选行的最左一个位置。
(3)若最近一个插入元素为N的整数倍,则选下面一行同列上的位置为新位置。本题要求输入一个数据n,然后打印由自然数1到n2的自然数构成的魔方阵(n为奇数)。例如,当n=3时,魔方阵为:
816
357
492
了解其生成方法后,就可以根据此方法来写出程序了。首先设置int变量i,j,m,n.其中i标记魔方阵的行;j标记魔方阵的列;n表示魔方阵的维数,通过输入得到;通过m递加得到插入的数据。数组a[MAX][MAX]用于存放魔方阵元素。这里预定义了MAX的大小,没有采用动态分配,在此设置为15,即最大求得15×15阶魔方阵。
【程序】
#include
#defineMAX15
voidmain()
{
intn;
intm=1;
inti,j;
inta[MAX][MAX];
printf("Pleaseinputtherankofmatrix:");
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(i<0)//超出上界
(4)
if(j>(n-1))//超出右边界
(5)
}
for(i=0;i
for(j=0;j
{
if(a[i][j]/10==0)
printf("%d",a[i][j]);//对程序无影响,只是使输出的数每一列对齐
else
printf("%d",a[i][j]);
if(j==(n-1))
printf("\n");
}
}
B、2
C、3
D、4
B、10
C、20
D、90
已知如下多元素变量。执行下列程序,执行完成后,Sum1和Sum2的值分别为_____。 (10) int I = 3,J; (20) int Sum1=0,Sum2=0; (30) For J=1 to 4 Step 1 (40) { Sum1 = Sum1 + M[I][J]; (50) Sum2 = Sum2 + M[J][I]; }
A、567,576
B、136,175
C、149,105
D、105,149
A、高级语言机器汇编语言机器操作系统机器实际机器微程序机器
B、实际机器微程序机器操作系统机器汇编语言机器高级语言机器
C、微程序机器实际机器操作系统机器汇编语言机器高级语言机器
D、上述都不正确
对于计算式,其正确的运算组合式(前缀表示法)为_____。
A、(/ (+ 10 / 20 + 8 4) (+ * 3 6 * 8 2 ))
B、((10 + (20 / (8 + 4))) / ((3 * 6) + (8 * 2)))
C、(/ (+ 10 (/ 20 (+ 8 4))) (+ (* 3 6) (* 8 2)))
D、(/ (/ 20 (+ 10 (+ 8 4))) (* (+ 3 6) (+ 8 2)))
请用define运算,定义一个过程实现计算,其正确定义的过程为_____。
A、(define cube a (* a a a))
B、(define (cube x) (* x x x))
C、(define (cube a (* a a a)))
D、(define (cube a) (* x x x)))
A、(define secondCalc (+ (firstCalc x) (firstCalc y) (firstCalc z)))
B、(define (secondCalc x y z) (+ firstCalc x y z))
C、(define (secondCalc x y z) (+ (firstCalc x) (firstCalc y) (firstCalc z)))
D、(define secondCalc x y z (+ (firstCalc x) (firstCalc y) (firstCalc z)))
为了保护您的账号安全,请在“简答题”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!