首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
给定程序中,函数fun的功能是:判定形参a所指的N×N(规定N为奇数)的矩阵是否是“幻方”,若是,函数返回值为1;不是,函数返回值为0。“幻方”的判定条件是:矩阵每行、每列、主对角线及反对角线上元素之和都相等。 例如,以下3×3的矩阵就是一个“幻方
给定程序中,函数fun的功能是:判定形参a所指的N×N(规定N为奇数)的矩阵是否是“幻方”,若是,函数返回值为1;不是,函数返回值为0。“幻方”的判定条件是:矩阵每行、每列、主对角线及反对角线上元素之和都相等。 例如,以下3×3的矩阵就是一个“幻方
admin
2018-09-27
50
问题
给定程序中,函数fun的功能是:判定形参a所指的N×N(规定N为奇数)的矩阵是否是“幻方”,若是,函数返回值为1;不是,函数返回值为0。“幻方”的判定条件是:矩阵每行、每列、主对角线及反对角线上元素之和都相等。
例如,以下3×3的矩阵就是一个“幻方”:
4 9 2
3 5 7
8 1 6
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK 1.C中。
不得增行或删行,也不得更改程序的结构!
1 #include<stdio.h>
2 #define N 3
3 int fun(int(*a)[N])
4 { int i,j,m1,m2,row,colum;
5 m1=m2=0;
6 for(i=0;i<N;i++)
7 {j=N-i-1;m1+=a
;m2+=a
[j];}
8 if(m1!=m2)return 0;
9 for(i=0;i<N;i++) {
10 /**********found**********/
11 row=colum=__1__;
12 for(j=0;j<N;j++)
13 {row+=a
[j];colum+=a[j]
;}
14 /**********found**********/
15 if((row!=colum)__2__(row!=m1))return 0;
16 }
17 /**********found**********/
18 return __3__;
19 }
20 main()
21 { int x[N][N],i,j;
22 printf(’’Enter number for array:\n’’);
23 for(i=0;i<N;i++)
24 for(j=0;j<N;j++) scanf("%d’’,&x(i][j]);
25 printf("Array:\n’’);
26 for(i=0;i<N;i++)
27 {for(=0;j<N;j++) printf(’’%3d’’,x
[j]);
28 printf(’\n’’);
29 }
30 if(fun(x))printf(’’The Array is a magic square.\n’’);
31 else printf(’’The Array isn’t at magic square.\n’’);
32 }
选项
答案
(1)0 (2)|| (3)1
解析
函数fun的功能是判定形参a所指的N×N的矩阵是否是”幻方”。第一空:由“row+==a
[j];colum+=a[j]
;”可知row是计算行和,colum是计算列和,故第一空处的初始化应将行和与列和初始化为0,即第一空处应为“0”。第二空:“if((row!=colum) __2__(row!=m1))return 0;”如果行和不等于列和,那么矩阵不是幻方,如果行和不等对角线和,那么矩阵也不是幻方,即两者是或的关系,故第二空处应为“||”第三空:不是幻方的情况在前面都会返回0,所有不是幻方的情况都已经考虑到了,剩下的就是幻方,故第三空处为“1”。
转载请注明原文地址:https://kaotiyun.com/show/28xp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
有以下程序:#include<string.h>structSTU{charname[10];intnum;};voidf(char*name,intnum){structSTU
若变量c为char类型,能正确判断出c为小写字母的表达式是()
若以“a+”方式打开一个已存在的文件,则下列叙述正确的是()。
以下程序的输出结果是【】。 #define MCRA(m) 2*m #define MCRB(n,m) 2*MCRA(n)+m main( ) { inti=2,j=3; printf("%d\n",MCRB(j,MCRA(i)
若有如下程序:main(){intx=4,y=3,x=2,t;t=x<y<z;printf("%d\n",t);}则程序运行后的输出结果是【】。
若输入000051,下列程序的运行结果为______。main(){unsignedinta;scanf("%o",&a);printf("%o\n",getbits(a));}getbits(value)unsignedint
有如下程序: main() {char ch[2][5]={"6937","8254"},*p[2]; int i,j,s=0; for(i=0;i<2;i++)p[i]=ch[i]; for(i=0;i<2;i++) for(j=0;p[i][j]!=’
以下关于函数的叙述中正确的是______。
有以下程序段: typedef struct NODE {int num; struct NODE *next; }OLD; 以下叙述中正确的是 ______。
编制一个好的程序,首先要保证它的正确性和可靠性,还应强调良好的编程风格,在书写功能性注释时应考虑
随机试题
简述量变和质变的辩证关系。
违反重大动物疫情应急条例规定,(),由动物防疫监督机构给予警告,并处5000元以下的罚款;构成犯罪的,依法追究刑事责任
企业经营战略的核心是()的具体内容,它们构成经营投资战略选择的前提。
某设备安装工程的双代号网络计划如下图所示,图中已标出每项工作的最早开始时间和最迟开始时间,该计划表明()。
下列不属于税金项目清单所包括的内容的是()。
文明的发展就像一场梦,虽然醒来觉得______,而______时是认真而严肃的。用精神分析的方法剥去梦的果实,留下梦的种子______本能的种子,就是宗教的起源。依次填入画横线部分最恰当的一项是()。
设f(x)=a|cosx|+b|sinx|在x=处取得极小值,=2.求常数a,b的值.
使用VC++6.0打开考生文件夹下的源程序文件2.cpp。完成fun函数,其功能是求出M行N列二维数组每行元素中的最小值,并计算它们的和,并通过形参传回主函数并输出。注意:不能修改程序的其他部分,只能修改fun函数。试题程序:#inc
Whattimeisitnow?
Toimpressafutureboss,oneshoulddressneatly,be______,anddisplayinterestinthejob.
最新回复
(
0
)