首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下应用程序说明和C程序,将C程序段中(1)~(7)空缺处的语句填写完整。 【说明】 以下【C程序】能将自然数1,2,…,N2按蛇形方式逐个存入N阶矩阵。换言之,程序从anO开始到 aOn。为止(n=N-1)顺序填入自然数,交替地对每一斜
阅读以下应用程序说明和C程序,将C程序段中(1)~(7)空缺处的语句填写完整。 【说明】 以下【C程序】能将自然数1,2,…,N2按蛇形方式逐个存入N阶矩阵。换言之,程序从anO开始到 aOn。为止(n=N-1)顺序填入自然数,交替地对每一斜
admin
2012-12-10
61
问题
阅读以下应用程序说明和C程序,将C程序段中(1)~(7)空缺处的语句填写完整。
【说明】
以下【C程序】能将自然数1,2,…,N2按蛇形方式逐个存入N阶矩阵。换言之,程序从anO开始到 aOn。为止(n=N-1)顺序填入自然数,交替地对每一斜列从左上元素向右下元素或从右下元素向左上元素存数。
例如,当N=5时,程序输出结果如图2-12所示;当N=8时,程序输出结果如图2-13所示。
【C程序】
#include <stdio.h>
#define SIZE 10
int a[SIZE][SIZE], k;
main()
{ int i, j, n, N;
for (N = 3; N<=SIZE; N++)
{ k = 1;
makeArray (n = N-1);
printf ("\nN = %d;\n", n+1);
for (i = 0; i<=n; i++)
{ for (j = 0; j<=n; j++)
printf("%4d", a
[j]);
printf ("\n");
}
}
}
makeline (int row_start, int col_start, int row end)
{ /*完成矩阵一条斜线的整数填写*/
int i, j, sign =(1);
for (i = row_start, j = col start;(2); i += sign, j += sign)
a
[j] = k++;
}
makeArray (int n)
{ /*完成矩阵每条斜线的整数填写*/
int d;
for (d = 1; d <=(3); d++)
if (d <= n)
if (d%2)
makeline ((4));
else
makeline ((5));
else
if (d%2)
makeline ((6));
else
makeline ((7));
选项
答案
(1)row_start<row_end?1:-1 或((row end-row start)>0)*2-1或其他等价的代码形式 (2)(row-end-i)*sign>=0或其等价的代码形式 (3)2*n+1或其等价的代码形式 (4)n,d-1,n+1-d (5)n+1-d,0,n (6)2*n-d+1,n,0 (7)0,d n-1,2*n-d+1
解析
这是一道要求读者掌握二维数组应用的程序设计题。本题的解答思路如下。
本程序由主函数main、函数makeline和函数makeArray组成。函数makeArray通过对函数makeline的调用,每次形成矩阵的一条斜线,直到完成整个矩阵。主函数main通过调用函数makeArray分别形成了1阶至10阶(由常量SIZE决定)的蛇形矩阵,并将其输出。
函数makeline的3个参数分别为起点的行号、列号及终点的行号。sing是行列号的增量。当从人上到右下方填数时,变量sing值为1,此时终点行号(row_end)大于起点行号(row_start);当从右下方到左上方填数时,变量sing值为-1,此时终点行号小于起点行号。(1)空缺处所填写内容的功能是对变量sing赋值,应填入“row_start<row_end?1:-1”,或“((row_end-row_start)>0)*2-1”,或其他等价的代码形式。
函数makeline中的for循环是对斜线的元素进行赋值。(2)空缺处是循环的结束条件,所填入的内容是“(row_end-i)*sign>=0”。
函数makeArray通过多次调用makeline形成矩阵的各条斜线。顺序是从左下角填起,第奇数条斜线从右下方向左上方填写,第偶数条斜线从左上方向右下方填。对于第d条斜线,如果在主对角线左下(即 d<=n),其左上角的行号、列号分别为n+1-d和0,右下角的行号、列号分别为n和d-1。而(4)、(5)空缺处所填写的语句是处理主对角线左下的各条斜线,根据斜线方向和起止位置,应分别填入“n,d-1, n+1-d”和“n+1-d,0,n”。
如果在主对角线右上,其左上角的行号、列号分别为0和d-n-1,右下角的行号、列号分别为2*n -d+1和n。(6)、(7)空缺处所填写的语句是处理主对角线右上的各条斜线。根据斜线方向利起止位置,应分别填入“2*n-d+1,n,0”和“0,d-n-1,2*n-d+1”。
需要注意的是:函数makeArray中的n不是阶数N,而是N-1。函数makeArray通过调用函数makeline形成矩阵的2*n+1条斜线。而(3)空缺处是控制for循环的终值,其所填写的内容是“2*n+1”。
转载请注明原文地址:https://kaotiyun.com/show/HnjZ777K
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
某计算机房夏季的环境温度要求控制在28℃至32℃,该范围可简写为______。
在Word2007文档中查找所有的“广西”“广东”,可在查找内容中输入______,再陆续检查处理。
以下关于数据录入人员和数据校验人员工作职责的叙述中,不正确的是______。
在D盘中有一个文件,其文件名为“D:\信息处理技术员.DOC”,现需要在桌面上建立该文件的快捷方式,可用鼠标右键单击该文件图标,然后______。
某企业长期从事大量的数据处理工作,所建立的一系列规范中一般不包括________。
统计报表中常包括填表说明,以指导填表者填写。填表说明中一般不包括______。
在PowerPoint2007中,为精确控制幻灯片的放映时间,可使用______功能。
在Access2007中,若要想查询所有姓名为2个汉字的学生记录,应在准则中输入______。
以下(1)属于ASP.NET创建的网页程序文件。(1)A.index.aspB.index.htmC.index.aspx从以下备选答案内为程序中(3)~(7)处空缺选择正确答案。(3)A.requestB.res
随机试题
思瑞公司不能清偿到期债务,债权人向法院申请破产清算。法院受理并指定了管理人。在宣告破产前,持股20%的股东甲认为如引进战略投资者乙公司,思瑞公司仍有生机,于是向法院申请重整。关于重整,下列哪一选项是正确的?
引起语言障碍的因素一般是由生理、心理或()
Lifeisnotpredictable:eventheworst______becomethebest.
影响药物经皮吸收的基质因素有()
A、Molish反应B、红外光谱C、Liebermann-BurChard反应D、Keller-Kiliani反应E、Hammarsten反应可用于区别胆酸和鹅去氧胆酸的反应为()
房地产经纪机构与房地产经纪从业人员的关系不包含()。
货主、物主或其代理人输入水果前必须事先提出申请,并应当在贸易合同或者协议签订后及时办理检疫审批手续。
下列税费中,按照规定一般计入管理费用的有( )。
在冬夜里歌唱的鱼①天空是一片灰蒙蒙的苍茫,鸟儿去了沉寂的北方。火烧云沉到山那一边,山冈上,风一阵冷过一阵,蒿草在风中萧瑟。目光越过一道道山梁,一个人的影子在昏暗中挟裹着晚风,逐渐清晰。我和妹妹就在这样的黄昏,在这样的山梁上等待父亲,还有父亲手中的鱼。②
按照软件测试的一般步骤,集成测试应在【】测试之后进行。
最新回复
(
0
)