首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下应用程序说明和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
75
问题
阅读以下应用程序说明和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
程序员下午应用技术考试
软考初级
相关试题推荐
数据的收集方式可有多种,分别适用于各种情况。以下数据收集方式,不恰当的是______。
在Excel2007中,在单元格A1中输入函数“=LEN(”信息处理技术员”)”,按回车键后,则A1单元格中的值为__________。
在Windows环境中,选择某一部分信息(例如一段文字、一个图形)移动到别处,可以首先执行“编辑”菜单下的(5)命令。
数据录入工作有两个指标:录入速度和错误率。一般而言,数据录入员在录入大批数据时,录入速度会(65),错误率会(66)。66
某咨询顾问公司派小强统计本市各品牌汽车的占有率,以下4种统计方法中,小强应采用______方法,使估算结果较为可信。
计算机使用一段时间后发现,系统启动时间变长,系统响应迟钝,应用程序运行缓慢,为此,需要进行系统优化。系统优化工作不包括___________。
若在Excel的A1单元格中输入函数“=SUM(1,12,false)”,按回车键后,则A1单元格中显示的值为________。
计算机中数据输入输出的控制方式有多种,“中断”方式的优点不包括(8)。
连接主机A与交换机的单根网线的最大长度为多少?为了控制局域网用户访问Internet时只能进行WWW浏览,网管应该在路由器上采取什么措施?
该公司用一个C类地址块202.119.110.0/24组网,将下表中的(1)~(6)处空缺的主机地址或子网掩码填写在答题纸的相应位置。可以采用(10)方法防止IP地址被盗用。(10)A.IP地址与子网掩码进行绑定B.IP地址与MAC地址进行
随机试题
历史上制造了“巴比伦之囚”的国王是()
在PowerPoint中,要使每张幻灯片的标题具有相同的字体格式、有相同的图标,应通过()快速地实现。
下列SPECT分辨率测试步骤(半高宽型)错误的一项
感染后引起的食物中毒以神经症状为主的细菌是
手术前准备的最根本目的是
领导权变并非是一种权术,其实质是一切从实际出发,根据领导活动的具体情境,灵活采用合适的领导方式去实现领导价值。在领导活动中权变的是方法和策略,不变的是价值和方向。根据上述定义,下列属于领导权变的是:
企业开展会计电算化工作,既可以选购商品化的会计软件,也可自行开发或委托开发会计软件,但所选择的会计软件必须达到财政部印发的《会计核算软件基本功能规范》的要求。()
封建制五刑中,由五等刑罚构成的刑种有()。
Childrenmodelthemselveslargelyontheirparents.Theydosomainlythroughidentification.Childrenidentify【B1】______aparen
有两个关系R和T如下:则由关系R得到关系T的操作是()。
最新回复
(
0
)