首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下应用程序说明和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
72
问题
阅读以下应用程序说明和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
程序员下午应用技术考试
软考初级
相关试题推荐
某班级有40名学生,本次数学考试大多在80分上下。老师为了快速统计平均分,对每个学生的分数按80分为基准,记录其相对分(多出的分值用正数表示,减少的分值用负数表示,恰巧等于80分时用0表示),再统计出各种相对分的人数,如下表:根据上表可推算出,这次考试
某计算机房夏季的环境温度要求控制在28℃至32℃,该范围可简写为______。
计算机操作系统的主要功能是______。
人类传播信息的五大类媒体按其出现的先后顺序排列为________。
在Excel的A2单元格中输入:“=1=2”,则显示的结果是______。
在Excel2007中,单元格中的绝对地址在被复制或移动到其他单元格时,其单元格地址(42)________________。
Windows XP的许多应用程序的“文件”菜单中,都有“保存”和“另存为”两个命令。以下对这两个命令的叙述,正确的是(36)。
在Excel中,在单元格C1中输入函数“=ROUND(653.54897,2)”,按回车键后,C1单元格中的值为()。
某软件公司职工以下的行为中,除________外,都侵害了本单位的权益。
在网页中创建一个如下图所示的表单控件的HTML代码是(26)。
随机试题
本案中,作为许可方的王某擅自许可第三人私营公司在北京市内实施其专利,其行为违反了合同约定,构成了对某生产厂家独家实施权的侵犯。因此,王某要对某生产厂家承担违约责任,同时,还要与私营公司共同承担侵权责任。
A.预防褥疮、肢体置功能位及被动关节运动,呼吸训练及排痰训练和防止泌尿系感染B.肌力训练、床上全面锻炼,坐位练习、轮椅训练,站立和步行训练,作业疗法C.痉挛、性功能障碍和疼痛D.运动功能障碍和姿势异常E.早期发现,早期康复,康复与游戏及教育相结合,
A.推动作用B.温煦作用C.防御作用D.固摄作用E.气化作用
关于屋面细石混凝土找平层的说法,错误的是()。
在价值工程的工作程序中,()是对新构思方案进行初步研究,其目的是从众多的方案中进行粗略的筛选,以减少详细评价的工作量,使精力集中于优秀方案的评价。
请简述出口产品质量的构成要素。
在我国,行政职能的服务特性集中体现在()。
中共十三大明确提出我国正处在社会主义的初级阶段。这个论断表明()
所谓概念模型,指的是______。
EveryyearBerryBros&Rudd,Britain’soldestwinemerchant,issuesapocket-sizedpricelist.Readingoldcopiesmakesamateur
最新回复
(
0
)