首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明及C++程序代码,将应填入(n)处的语句写在对应栏内。 【说明】 本程序的功能是生成螺旋方阵,用户可以输入该方阵的行列数,然后就生成对应的螺旋方阵。例如:当n=5时,对应的螺旋方阵如下: 1 16 15 1
阅读以下说明及C++程序代码,将应填入(n)处的语句写在对应栏内。 【说明】 本程序的功能是生成螺旋方阵,用户可以输入该方阵的行列数,然后就生成对应的螺旋方阵。例如:当n=5时,对应的螺旋方阵如下: 1 16 15 1
admin
2010-01-15
52
问题
阅读以下说明及C++程序代码,将应填入(n)处的语句写在对应栏内。
【说明】
本程序的功能是生成螺旋方阵,用户可以输入该方阵的行列数,然后就生成对应的螺旋方阵。例如:当n=5时,对应的螺旋方阵如下:
1 16 15 14 13
2 17 24 23 12
3 18 25 22 11
4 19 20 21 10
5 6 7 8 9
【C++代码】
#include"stdio.h"
#include"iostream,h"
int array[11][11];
int temp;
int ROW;
void godown(int &m,int &a)
{
for(temp=1; temp<=ROW;temp++)
if(array[temp][a]==0)
array[temp][a]=(1);
a++;
}
void goright(int &m,int &b)
{
for(temp=1;temp<=ROW;temp++)
if(array
[temp]==0)
array
[temp]=m++;
b--;
}
void goup(int &m.int &c)
{
for(temp=ROW;temp>0;temp-)
if(array[temp][c]==0)
array[temp][c]=m++;
c--;
}
void goleft(int &m,int &d)
{
for(temp=ROW;temp>0;temp--)
if(array[d][temp]==0)
array[d][temp]=m++;
(2);
}
void main()
{
int a,b,c,d,max,m;
cin>>ROW;
cout>>end1;
for(a=1;a<=ROW;a++)
for(b=1;b<=ROW;b++)
(3);
m=1;
a=d=1;
b=c=ROW;
max=(4);
whiie(m<=max)
{
godown(m,a);
(5) (m,b);
goup(m,c);
goleft(m,d):
}
for(a=1;a<=ROW;a++)
{
for(b=1;b<=ROW;b++)
printf("%3d ",array[a]
);
cout<<end1;
}
}
选项
答案
(1)m++ (2)d++ (3)array[a][b]=0 (4)ROW*ROW (5)goright
解析
本题考查C++中螺旋方阵的实现。
题目要求在用户输入该方阵的行列数后,自动生成对应的螺旋方阵。首先我们来简单分析一下螺旋方阵的特点,顾名思义,其基本结构是成螺旋形状的,按照螺旋的方向数值逐渐增大,直到最中间的一点结束。程序中分别用4个函数来实现其螺旋方向向下、向右、向上和向左时,数组中相应元素的变化,结合程序可以发现数组的初值是全0。
第(1)空在螺旋方向向下的实现函数中,当螺旋方向向下时,二维数组中列不变而逐行加1,从程序中可以看出此空所在行的作用就是用来改变数组中元素的值,结合整个程序知道变量m中存放的是当前位置的数值,因此,此空答案为m++。
第(2)空在螺旋方向向左的实现函数中,当螺旋方向向左时,二维数组中行不变而随列下标temp的变化逐列加1,直到数组元素不为0,这个时候说明已经到了被螺旋线经过的列,因此,要往后退一列即列下标变量d加1,此空答案为d++。
第(3)空在一个二重循环下面,程序声明了一个二维数组且没有初值,结合程序可以推断出此空的任务就是给数组赋初值。而根据上面的分析,数组的初值应该是全0,因此,此空答案为array[a]
=0。
第(4)空很明显是给变量max赋初值,这要求先去弄清楚变量max的作用。由语句while(m<=max)我们可以推断出变量max中存放的是最大的数据项,而一个n阶的方阵中最多有n×n个元素,从程序中可以知道,这是一个ROW阶的方阵,因此,此空答案为ROW*ROW。
第(5)空是调用上面的4个函数,根据螺旋方阵的生成规则,应该是先向下,接着向右,再向上,最后向左,结合程序我们知道此空是调用向右的函数。因此,此空答案为goright。
转载请注明原文地址:https://kaotiyun.com/show/XBjZ777K
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
在Excel2010中,C3:C7单元格中的值分别为10、OK、20、YES和48,在。D7单元格中输入函数“=COUNT(C3:C7)”,按回车键后,D7单元格中显示的值为________________。
操作系统的资源管理功能不包括________________。
数据分析经常需要把复杂的数据分组,并选取代表,将大量数据压缩或合并得到一个较小的数据集。这个过程称为()。
在Windows7中,磁盘文件类型可以根据______来识别。
西部某省考试机构工作人员统计了去年下半年三个地区四种资格的报考人数,将统计表抄录如下(其中有一个数据抄错了): 信息处理技术员小王很快就找出了错误的数据,并进行了纠正。错误的数据是(32),该数据应纠正为(33)。33.
在Word2010“查找和替换”文本框中,输入()符号可以搜索0到9的数字。
在Excel2007中,若在单元格A1中输入函数“=ROUNDUP(3.1415926,2)”,按回车键后,则A1单元格中的值为______。
某企业的大数据工程项目包括如下四个阶段的工作:①数据获取,②数据清洗与整理,③数据分析,④数据展现。一般来说,工作量较大、花费时间较长的阶段是______(1),技术含量最高的阶段是______(2),准备向有关部门递交成果的阶段是______(3)。
某工厂信息处理技术员设计了如下统计表:该表设计中包含的问题以及改进方法是______。
解决网络安全问题的技术分为主动防御保护技术和被动防御保护技术两大类,__________属于被动防御保护技术。
随机试题
重组DNA中技术中常用到的酶是
经代谢后,能抑制脱氧胸苷酸合成酶的药物是( )。
患者,男性,52岁,肝硬化,大量腹水。入院后给予利尿剂治疗。腹水量明显减少,但患者出现了淡漠少言、反应迟钝、言语不清等症状。该患者可能出现的电解质紊乱是()。
自动化仪表工程的调试程序是()。
某固定资产原值为10万元,预计净残值为4000元,折旧年限5年,若采用双倍余额递减法计算折旧,则第五年应计提折旧额为( )元。
选择当前光标所在的段落,可用鼠标在段落左侧不可见的选定栏()。
合理确定作业组的规模一般为()人左右为宜。
《中华人民共和国教育法》规定,必备的办学资金和稳定的经费来源是学校必须具备的基本条件。()
弗洛伊德认为,在人格结构中最难接近的部分是()
A、Reduceviolationsofintellectualpropertyrights.B、Controlthegrowingpopulation.C、Workingtogethertofightterrorism.B
最新回复
(
0
)