首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C语言程序,将应填入(n)处的字句写在对应栏内。 【说明】 设有3n+2个球互连,将自然数1~3n+2分别为这些球编号,使相连的两球编号之差的绝对值正好是数列1,2,…,3n+1中的各数,如下图所示: 其中填自然数
阅读以下说明和C语言程序,将应填入(n)处的字句写在对应栏内。 【说明】 设有3n+2个球互连,将自然数1~3n+2分别为这些球编号,使相连的两球编号之差的绝对值正好是数列1,2,…,3n+1中的各数,如下图所示: 其中填自然数
admin
2010-01-15
86
问题
阅读以下说明和C语言程序,将应填入(n)处的字句写在对应栏内。
【说明】
设有3n+2个球互连,将自然数1~3n+2分别为这些球编号,使相连的两球编号之差的绝对值正好是数列1,2,…,3n+1中的各数,如下图所示:
其中填自然数的思想如下;
(1)先自左向右,第1列中间1个填数,然后第2列上、下2个填数,每次2列;但若n为偶数,最后1次只排第1列中间一个数。
(2)自右向左,先右第1列中间填数;若n是奇数,再右第2列中间填数。然后依次右第1列上、下2个填数,再右第2列中间1个填数,直到左第2列为止。
【程序】
#include <stdio.h>
#define size 10
int a[3][size];
void main()
{
int i,k,m,n;
printf("imput the n:");
scanf("%d",&n);
k=1;
for(i=0; i<=n/2; i++)
{
a[1][2*i]=k; k++;
if((i==n/2)&& (1) ||(i<n/2))
{
a[0][2*i+1]=k;
k++;
(2)
k++;
}
}
if(n%2==1)
{
(3)
k++;
m=n;
}
else
(4)
for(i=0; i<n/2; i++)
{
a[1][m-2*i]=k; k++;
(5)
k++;
a[2][m-2*i-1]=k; k++;
}
a[1][1]=k;
printf("\n");
printf(" ");
for(i=1; i<=n; i++)
printf("%6d",a[0]
);
printf("\n\n");
for(i=0; i<=n+1; i++)
printf("%6d",a[1]
);
printf("\n\n");
printf(" ");
for(i=1; i<=n; i++)
printf("%6d",a[2]
);
printf("\n");
}
选项
答案
(1)(n%2==1) (2)a[2][2*i+1]=k; (3)a[1][n+1]=k; (4)m=n+1; (5)a[0][m-2*i-1]=k;
解析
本题考查C语言中具体算法的实现。
题目中要求将3n+2个球互连,并用自然数1~3n+2分别为这些球编号,使相连的两球编号之差的绝对值正好是数列1,2,…,3n+1中的各数。题目中还给出了具体的填自然数的思想。我们要完成的工作就是用C语言描述出题目中给出的思想。首先我们需要对其思想有个正确的认识,这是关键所在。
下面,我们来分析代码。结合整段程序代码,我们可以分析出,二维数组a用来存放我们要填的数字,第一维表示行数,总行数应该是3。第二维表示列数,总列数应该是n+2。其中的第(1)空所在的位置是表示一个条件判断语句的条件,在这之前已经对第1列的中间1个进行了填数,那么根据“先自左向右,第1列中间1个填数,然后第2列上、下2个填数,每次2列”的思想,再结合下面的填数程序语句,我们可以知道,此语句就是用来实现在先第1列中间1个填数后,对第2列上、下2个进行填数,每次2列这个思想的。因此,第(2)空的答案就出来了,是对第2列下(第3行)进行填数,因此,答案为“a[2][2*i+1]=k”。因为条件判断语句下面是进行了2次填数,因此可以判断n应该是个奇数,因为若n为偶数,最后1次只排第1列中间一个数,就不需要这个操作了。因此,第(1)空的作用应该是用来判断n是奇数,所以此空答案为 (n%2==1)。
第(3)空所在的位置在条件n%2==1成立的情况下才执行,条件n%2==1成立表明 n是奇数,根据若n是奇数,再右第2列中间填数的思想,我们可以知道,此处应该是对右第2列中间填数,因此,答案为a[1][n+1]=k。
第(4)空所在的位置是条件n%2==1不成立的情况下才执行,在上面我们知道 n%2==1是用来判断n是否为奇数,如果n不是奇数,我们不做什么,但为了方便后面的操作,应该将n+1的值保存起来,因此,此空的答案为m=n+1。
根据思想:若n是奇数,再右第2列中间填数。然后依次右第1列上、下2个填数,再右第2列中间1个填数,直到左第2列为止。在前面程序中,我们已经完成了前面部分,第(5)空所在的循环体就是用来完成后面部分的,在循环体中已经实现了对中、下进行填数,缺一个对上进行填数的代码,因此,第(5)空要完成的任务就是对上行进行填数,因此,答案为a[0][m-2*i-1]=k。
转载请注明原文地址:https://kaotiyun.com/show/9BjZ777K
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
为向相关人员以可视化方式展示数据分析结果,首先需要明确目标受众(即需要给哪些人看),并了解他们考虑的一些问题。这些问题一般不包括(69)________________。
在Windows7中,若删除桌面上某个应用程序的快捷方式图标,则(31)。
交通信号能同时被多人接收,说明信息具有(23)。
双击某个非可执行程序的文件名将(24)。
在Excel“单元格格式”对话框的“对齐”选项卡中,“垂直对齐”选项中不包括(56)。
下图主板接口中,①处是(28),②处可以接的设备是(29),③处可以接的设备是(30)28.
计算机在接通电源后,系统首先由(41)程序对内部每个设备进行测试。
阅读以下说明,回答问题1至问题5,将解答填入答题纸对应的解答栏内。说明在一台计算机上安装完成Windows2000服务器及相应的服务组件。
如果在网络设计过程中划分了很多VLAN,则可采用VTP来简化其管理。交换机管理IP地址只能创建在(1)中,而VTP信息只能在(2)端口上传播。共享相同VLAN数据库的交换机构成一个(3)。不同交换机平台、不同的IOS版本支持的VLAN数量不同,从图8-10
先阅读以下说明,然后回答司题1至问题3。[说明]综合布线系统(PDS,PremisesDistributionSystem)是为具有综合业务需求的计算机数据网开发的,可以满足各种通信与计算机信息传输的要求,图12-2是综合布线系统的构成
随机试题
不属于家族共同体的地缘合作的是()
目前,国际货物运输保险缺乏统一的国际公约,调整国际货物运输保险的法律主要是各国的________。
坚持思想建党与制度治党相结合,二者之间的关系是()
A、精B、广C、快D、真E、新药物信息的特点中必须去伪存真反映的是()。
患者,男性。高处坠落后出现严重呼吸困难、四肢不能活动。查体:颈部压痛,四肢瘫痪,高热,有较重痰鸣音。X线摄片提示:C4~C5骨折,合并脱位。减轻脊髓水肿和继发性损伤应可采取
红星工厂以场地使用权作价作为投资与外商兴办了合资企业。合营期第四年,该厂以作价偏低为由向外商要求提高投资作价,外商拒绝的理由应当是()。
做市商的要价一定()出价
根据个人所得税相关规定,计算合伙企业生产经营所得时准予扣除的是()。
某水果店去苹果产地收购苹果.收购价为每千克1.5元,从产地到水果店距离300千米,运费为每吨每千米3元。其他费用为每吨300元,在运输及批发售出过程中,苹果的损耗是10%,水果店要想达到30%的利润,每千克应定价()元。
设f(x)=|(x一1)(x一2)2(x一3)3|,则导数f’(x)不存在的点的个数是()
最新回复
(
0
)