首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下应用程序说明和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
63
问题
阅读以下应用程序说明和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℃,该范围可简写为______。
在Excel2007中,在单元格A1中输入函数“=POWER(2,3)/MAX(1,2,4)”,按回车键后,则A1单元格中的值为__________。
西部某省考试机构工作人员统计了去年下半年三个地区四种资格的报考人数,将统计表抄录如下(其中有一个数据抄错了): 信息处理技术员小王很快就找出了错误的数据,并进行了纠正。错误的数据是(32),该数据应纠正为(33)。32.
在Excel2007中,若在单元格A1中输入函数“=MID(“RUANKAO”,1,4)”,按回车键后,则A1单元格中的值为()。
在PowerPoint中,下列关于自定义放映的叙述不正确的是(63)。
在Excel2007的A1单元格中输入函数“=LEFT(“CHINA”,1)”,按回车键后,则A1单元格中的值为()。
数据存在(40)是数据可以被压缩的前提。
某软件公司职工以下的行为中,除________外,都侵害了本单位的权益。
在网页中创建一个如下图所示的表单控件的HTML代码是(26)。
防火墙包过滤规则的默认策略为拒绝,下表给出防火墙的包过滤规则配置界面。若要求内部所有主机能使用IE浏览器访问外部IP地址为202.117.118.23的Web服务器,为图中(1)~(4)空缺处选择正确答案。(1)A.允许B.拒绝(2)A.192
随机试题
IwrotedownthenumbersothatI________rememberit.
患儿,男,2岁。以怕陌生人、不爱讲话就诊。查体:头发稀疏,色黄,皮肤发白,目光呆滞,表情木然,认知能力差,神经反射弱,体液及尿液均有较强的鼠臭气味。病史:家族中无类似患者,父母均健康,非近亲婚配,母亲孕期无异常。患儿出生时正常,无窒息,无癫痫发生。检验:血
呼吸衰竭最主要的临床表现是
急性阑尾炎的临床鉴别诊断应除外的疾病是
施工预算一般由()和()两大部分组成。
用友软件中,关于记账的说法正确的有()。
甲公司是一家在境内、外上市的综合性国际能源公司。该公司在致力于内涵式发展的同时,也高度重视企业并购以实现跨越式发展。以下是该公司近年来的一些并购资料:(1)2011年9月30日,甲公司与其母公司乙集团签订协议。以100000万元购入乙集团下属全资子公司
甲企业11月份销售商品收入为1000万元,其他业务收入30万元,发生销售退回15万元、现金折扣20万元、销售折让25万元。该企业11月份的营业收入为()万元。
Theworldwillbeadullplaceindeedwhenallthedifferentnationalitiesbehaveexactlyalike,andsomepeoplemightsaythat
AnnouncementTheswimmingpoolofShanghaiUniversitywillbeopentothepubliconJuly10ththisyear.Time:8:00a.
最新回复
(
0
)