首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C语言程序,将应填入(n)处的字句写在对应栏内。 【说明】 魔方阵,又叫幻方,在我国古代称为“纵横图”。由1…N2共N2个自然数构成每行、每列及两对角线上各数之和都相等的N×N方阵,这样的方阵就叫做N阶魔方阵。顾名思义,奇阶魔方阵
阅读以下说明和C语言程序,将应填入(n)处的字句写在对应栏内。 【说明】 魔方阵,又叫幻方,在我国古代称为“纵横图”。由1…N2共N2个自然数构成每行、每列及两对角线上各数之和都相等的N×N方阵,这样的方阵就叫做N阶魔方阵。顾名思义,奇阶魔方阵
admin
2010-01-15
46
问题
阅读以下说明和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
[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
[j]/10==0)
printf("%d ",a
[j]); //对程序无影响,只是使输出的数每一列对齐
else
printf("%d ",a
[j]);
if(j==(n-1))
printf("\n");
}
}
选项
答案
(1)j=(n+1)/2-1; (2)m<=n*n (3)i=i+2; (4)i=i+n; (5)j=j-n;
解析
本题考查我们对魔方阵的理解及用C语言的实现。
题目给出了魔方阵的原理和生成过程,现在要我们往15×15的二维数组中添加元素,使其呈现魔方阵的结构。程序中的变量i和,i确定增加的元素在数组中的位置,每次增加的元素在原来的基础上加1,只是位置按魔方阵的原理存放。
下面来看代码,在第(1)空处,还没有进入增加元素的循环中,应该是赋初值阶
段,而用来确定元素在数组中位置的变量i已有值,i没有,再根据魔方阵的生成过程的第一条(第一个位置在第一行正中)可知,此空的答案应该是i=(n+1)/2-1。
第(2)空处是一个循环条件,结合全过程来看,我们知道这个循环是不停往数组中增加元素,直到添加完n×n个元素。因此,此处是判断要添加的元素应该小于n×n。答案为m<=n*n。
第(3)空前面是个条件选择语句,其条件是判断最近一个插入元素m是否可以被n整除。根据魔方阵的生成过程的第三条(若最近一个插入元素为N的整倍数,则选下面一行同列上的位置为新位置),即i=i+1,i不变。但由于在插入一个元素后,变量i和j会分别自动减1和加1。因此,答案为i=i+2。
第(4)空前面也是个条件选择语句,其条件是判断是否超出上界,根据魔方阵的生成过程的第二条可以知道,如右上方位置已超出方阵上边界,则新位置取应选列的最下一个位置,因此,此空应该填i=i+n。
第(5)空前面是个条件选择语句,其条件是判断是否超出右边界,根据魔方阵的生成过程的第二条可以知道,如超出右边界则新位置取应选行的最左一个位置。因此,此空应该填j=j-n。
转载请注明原文地址:https://kaotiyun.com/show/VBjZ777K
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
数据________________是将数据以图形图像形式表示,并利用数据分析工具发现其中未知信息的处理过程。
《数据中心设计规范》GB50174-2017属于()。
某软件公司规定,该公司软件产品的版本号由二至四个部分组成:主版本号次版本号[.内部版本号][.修订号]。对该公司同一软件的以下四个版本号中最新的版本号是(
数据的收集方式可有多种,分别适用于各种情况。以下数据收集方式,不恰当的是______。
在Word2007中,为使内容更加醒目,文章更具有条理性,可在若干段落前面添加__________。
西部某省考试机构工作人员统计了去年下半年三个地区四种资格的报考人数,将统计表抄录如下(其中有一个数据抄错了): 信息处理技术员小王很快就找出了错误的数据,并进行了纠正。错误的数据是(32),该数据应纠正为(33)。32.
关系代数运算是以集合操作为基础的运算,其5种基本运算是并、差、(57)、投影和选择。
以下()并没有采用抽样调查方法。
Windows7中,在控制面板中,通过(32)________________可以查看系统的一些关键信息,如显示当前的硬件参数、调整视觉效果、调整索引选项、调整电源设置及磁盘清理等。
随机试题
肺痨的主要临床特点为
2016年11月,某居民企业向其控股95%的关联企业转让一项6年的非独占许可使用权,取得总收入3600万元(其中非独占许可使用权转让收入2700万元,与非独占许可使用权转让项目密不可分的技术咨询、技术服务、技术培训等收入200万元,转让设备、仪器等非技术性
2017年10月,甲融资租赁公司(下称“甲公司”)与乙公司订立一份融资租赁合同。该合同约定:甲公司按乙公司要求,从国外购进一套玻璃生产线设备租赁给乙公司使用;租赁期限10年,从设备交付时起算;年租金400万元(每季支付100万元),从设备交付时起算;租期届
星期一,A老师埋怨说:“萱萱在家过了一个双休日,再回到幼儿园后,许多良好的行为习惯就退步了,不认真吃饭,乱扔东西,活动时喜欢说话,真不知孩子在家时,家长是怎么教育的?”站在一旁的B老师颇有同感地说:“是啊。如果家长都能按我们的要求去教育萱萱,我们的工作就好
《自由引导人民》被视为浪漫主义美术的伟大宣言。()
古希腊著名哲学家、思想家柏拉图认为:“所有的研究,所有的学习不过是回忆而已。”对他的这一观点分析正确的是()。
简述最小变化法常出现的误差及其控制方法。
Astheneweconomyhascooled,therehasBeenasteadydrumbeatoflayoffannouncements.Morethan36,000dotcomemployeeswe
A、Inhischildhood.B、Inhismiddleage.C、Inhissixties.D、Inhisteens.A①选项都是表示年龄段的介词短语,因此推测问题与年龄相关。②女士问男士发生这一切时是多大,男士回答是fiv
Thefirstthingpeoplerememberaboutfailingatmathisthatitfeltlikesuddendeath.Whethertheincidentoccurredwhilelear
最新回复
(
0
)