阅读以下说明和C语言程序,将应填入(n)处的字句写在答题纸的对应栏内。【说明】魔方阵,又叫幻方,在我国古代称为纵横图.由1…N2共N2个自然数构成每行、每列及两对角线上各数之和都相等的N×N方阵,这样的方阵就叫做N阶魔方阵。顾名思义,奇阶魔方阵就是N为奇数的幻方。奇数阶魔方阵的生成方法如下:(1)第一个位置在第一行正中。(2)新位置应当处于最近一个插入位置右上方,但如果右上方位置已超出方阵上边界,则新位置取应选列的最下一个位置;如果超出右边界,则新位置取应选行的最左一个位置。(3)若最近一个插入元素为N的整数倍,则选下面一行同列上的位置为新位置。本题要求输入一个数据n,然后打印由自然数1到n2的自然数构成的魔方阵(n为奇数)。例如,当n=3时,魔方阵为:816357492了解其生成方法后,就可以根据此方法来写出程序了。首先设置int变量i,j,m,n.其中i标记魔方阵的行;j标记魔方阵的列;n表示魔方阵的维数,通过输入得到;通过m递加得到插入的数据。数组a[MAX][MAX]用于存放魔方阵元素。这里预定义了MAX的大小,没有采用动态分配,在此设置为15,即最大求得15×15阶魔方阵。【程序】#include#defineMAX15voidmain(){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==0m1){(3)j=j-1;}if(i0)//超出上界(4)if(j(n-1))//超出右边界(5)}for(i=0;ifor(j=0;j{if(a[i][j]/10==0)printf(%d,a[i][j]);//对程序无影响,只是使输出的数每一列对齐elseprintf(%d,a[i][j]);if(j==(n-1))printf(\n);}}

阅读以下说明和C语言程序,将应填入(n)处的字句写在答题纸的对应栏内。

【说明】

魔方阵,又叫幻方,在我国古代称为"纵横图".由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");

}

}


相关考题:

给定程序中,函数fun的功能是:判定形参a所指的NxN(规定N为奇数)的矩阵是否是“幻方”,若是,函数返回值为1: 不是,函数返回值为O。“幻方”的判定条件是:矩阵每行、每列、主对角线及反对角线上元素之和都相等。例如,以下3×3的矩阵就是一个“幻方”:4 9 23 5 78 1 6请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANKl.C中。不得增行或删行,也不得更改程序的结构!

阅读以下说明和C语言程序,将应填入(n)处的字句写在对应栏内。【说明】魔方阵,又叫幻方,在我国古代称为“纵横图”。由1…N2共N2个自然数构成每行、每列及两对角线上各数之和都相等的N×N方阵,这样的方阵就叫做N阶魔方阵。顾名思义,奇阶魔方阵就是N为奇数的幻方。奇数阶魔方阵的生成方法如下:(1)第一个位置在第一行正中。(2)新位置应当处于最近一个插入位置右上方,但如果右上方位置已超出方阵上边界,则新位置取应选列的最下一个位置;如果超出右边界,则新位置取应选行的最左一个位置。(3)若最近一个插入元素为N的整数倍,则选下面一行同列上的位置为新位置。本题要求输入一个数据n,然后打印由自然数1到n2的自然数构成的魔方阵(n为奇数)。例如,当n=3时,魔方阵为:8 1 63 5 74 9 2了解其生成方法后,就可以根据此方法来写出程序了。首先设置int变量i,j,m, n。其中i标记魔方阵的行;j标记魔方阵的列;n表示魔方阵的维数,通过输入得到;通过m递加得到插入的数据。数组a[MAX][MAX]用于存放魔方阵元素。这里预定义了 MAX的大小,没有采用动态分配,在此设置为15,即最大求得15×15阶魔方阵。【程序】include <stdio.h>define MAX 15void 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]); //对程序无影响,只是使输出的数每一列对齐elseprintf("%d ",a[i][j]);if(j==(n-1))printf("\n");}}

【您的答案】:空 【正确答案】:D【参考解析】: 题中规律是直角三角形以顺时针方向旋转;每行每列圆点数量均是由1,2,3,且黑色圆点每行均为2;“伞柄”“状的直线每行每列和对角线都是两个出头,一个不出头。依此规律只有D项符合题意。正确答案为D。

图所示的桁架,当仅增大桁架高度,其他条件不变时,对杆1和杆2的内力影响是(  )。 A、N1,N2均减少 B、N1,N2均不变 C、N1减少,N2不变 D、N1增大,N2不变

2、有一种中国传统游戏,它是将若干个自然数排成纵横各为若干个数的正方形,使在同一行、同一列和同一对角线上的几个数的和都相等,这种游戏叫做幻方。以下哪个选项不是它的别称A.魔方B.纵横图C.数独D.九宫格

7、7、 若二维数组a有m列,则在a[i][j]之前的元素个数为() (A)j*m+i (B)i*m+j (C)i*m+j-1 (D)i*m+j+1A.a[i][j]前有0到i-1共i行及0到j-1共j列,每行有m列,因此之前的元素个数为i*m+jB.a[i][j]前有0到i-1共i行及0到j-1共j列,每行有m列,因此之前的元素个数为i*m+jC.a[i][j]前有0到i-1共i行及0到j-1共j列,每行有m列,因此之前的元素个数为i*m+jD.a[i][j]前有0到i-1共i行及0到j-1共j列,每行有m列,因此之前的元素个数为i*m+j

单色光波从折射率为n1的透明介质1空间入射到折射率为n2的透明介质2空间,并在两介质的分界面上发生反射和折射现象,其入射角为qi,反射角角为qr,折射角为qt。则反射光波发生全反射的条件为()。A.n1>n2且qi³aresin(n1/n2)B.n1>n2且qi³arestg(n1/n2)C.n1>n2且qi³aresin(n2/n1)D.n1>n2且qi³aretg(n2/n1)

26、单色光波从折射率为n1的透明介质1空间入射到折射率为n2的透明介质2空间,并在两介质的分界面上发生反射和折射现象,其入射角为qi,反射角角为qr,折射角为qt。则反射光波发生全反射的条件为()。A.n1>n2且qi³aresin(n1/n2)B.n1>n2且qi³arestg(n1/n2)C.n1>n2且qi³aresin(n2/n1)D.n1>n2且qi³aretg(n2/n1)

有一种中国传统游戏,它是将若干个自然数排成纵横各为若干个数的正方形,使在同一行、同一列和同一对角线上的几个数的和都相等,这种游戏叫做幻方。以下哪个选项不是它的别称A.魔方B.纵横图C.数独D.九宫格