更多"下面程序的功能是:先从键盘上输入一个3行3列矩阵的各个元素的值,然后输"的相关试题:
[填空题]下面程序用于计算矩阵的两条对角线上的元素之和。补充下列语句,实现该功能。
#include<iostream.h>
void main( )
int a[3],[3]=9,8,7,6,5,4,3,2,1;
int sum1=0,sum2=0,i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
if(i==j)sum1+=a[i][j];
for(i=0;i<3:i++)
for(j=2; [8] ;j--)
if(i+j==2)sum2+=a[i][j];
[填空题]下列给定程序中,函数fun的功能是:计算N×N矩阵的主对角线元素和反向对角线元素之和,并作为函数值返回。要求先累加主对角线元素中的值,再累加反向对角线元素中的值。
请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
#define N 4
fun(int t[][N], int n)
int i, sum;
/******************found*******************/
(1) ;
for(i=0; i<n; i++)
/******************found*******************/
sum+= (2) ;
for(i=0; i<n; i++)
/水半丰拳术水术枣木车术木木水丰半术fbund木木木水串术半半术术术半术丰木丰年,
sum+=t[i][n-i- (3) ;
return sum;
main( )
int t[][N]=21, 2, 13, 24, 25, 16, 47, 38, 29, 11, 32, 54, 42, 21, 3, 10, i, j;
printf("/nThe original data:/n");
for(i=0; i<N; i++)
for(j=0; j<N; j++)
printf("%4d", t[i][j]);
printf("/n");
printf("The result is:%d", fun(t, N));
[填空题]下列给定程序中,函数fun( )的功能是:先从键盘上输入一个3行3列的矩阵的各个元素的值,然后输出主对角线元素之积。
请改正函数fun( )中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include<stdio.h>
int fun( )
int a[3][3],mu1;
int i,j;
mu1=l;
for (i=0;i<3;i++)
/*************found*************/
for(i=0;i<3;j++)
scanf(“%d”,&a[i][j]);
for(i=0;i<3;i++)
/*************found*************/
mu1=mu1*a[i][j];
printf("Mu1=%d/n",mu1);
main( )
fun( );
[单项选择]
三对角矩阵是指除对角线及在主对角线上下最邻近的两条对角线上的元素外,所有其他元素均为0。现在要将三对角矩阵ann中三对角线上的元素按行存放在一维数组bN中,则N至少为 (53) ,若a00存放于b0,那么a在三对角线上的元素aij(0≤i≤n-1,i-1≤j≤i+1)在一维数组b中的存放位置为 (54) ,bk存储的元素在矩阵a中的行下标为 (55) 。
(53)处填()。
A. 3n
B. 3n-1
C. 3n-2
D. 3n-3
[简答题]下列给定程序中,函数fun的功能是:有N×N矩阵,以主对角线为对称线,对称元素相加并将结果存放在左下三角元素中,右上三角元素置为O。
例如,若N=3,有下列矩阵:
1 2 3
……
4 5 6
……
7 8 9
计算后结果为:
1 0 0
……
6 5 0
……
10 14 9
请在下划线处填人正确的内容并把下划线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include<scdio.h>
#define N 4
/********found********/
void fun(int(*t) (1) )
int i,j;
for(i=l;i<N;i++)
for(j=0;j<i=j++)
/********found********/
(2) =t[i][j]+t[j][i];
/********found********/
(3) =0;
main( )
int t[][N]=21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10,i,j;
printf("/nThe original array:/n");
for(i=0;i<N;i++)
for(j=0;j<N;j++)
printf("%2d",t[i][j];
printf("/n");
fun(t);
printf("/nThe result is:/n");
for(i=0;i<N;i++)
for(j=0;j<N;j++)
printf("%2d",t[i][j])=
printf("/n");
[填空题]在给定程序中,函数fun的功能是:有N×N矩阵,以主对角线为对称线,对称元素相加并将结果存放在左下三角元素中,右上三角元素置为0。例如,若N=3,有下列矩阵:
1 2 3
4 5 6
7 8 9
则计算结果为:
1 0 0
6 5 0
10 14 9
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构。
文件BLANK1.C内容如下:
#include <stdio.h>
#define N 4
/**********found**********/
void fun(int(*t) (1) )
int i,j;
for(i=1;i<N;i++)
for(j=0;j<i;j++)
/**********found**********/
(2) =t[i][j]+t[j][i];
/**********found**********/
(3) =0;
void main( )
int t[][N]=21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10,i,j;
printf("/nThe original array: /n");
for(i=0;i<N;i++)
for(j=0;j<N;j++)printf("%2d",t[i][j]);
printf("/n");
fun(t);
printf("/nThe result is: /n");
for(i=0;i<N;i++)
for(j=0;j<N;j++) printf("%2d",t[i][j]);
printf("/n");
[简答题]【说明】
下面的程序用DoleRob算法生成N阶(N为奇数)魔方阵(各行、列、对角线数字之和相等)。该算法的过程为:从1开始,按如下方法依次插入各自然数,直到N2为止。
a.在第一行的正中插入1。
b.新位置应当处于最近插入位置的右上方,若该位置已超出方阵的上边界,则新位置取应选列的最下一个位置;若超出右边界,则新位置取应选行的最左一个位置。
c.若最近插入的元素是N的整数倍,则选同列的下一行位置为新位置。
例如,3阶魔方阵如下所示:
8 1 6
3 5 7
4 9 2
【C程序】
#include<stdio.h>
#include<stdlib.h>
#define SIZE 50
main( )
{ int row, col, n,value;
int a[SIZE+1][SIZE+1]; /*不使用下标为0的元素*/
printf("请输入要输出魔方阵的阶数n(奇数,<%d):n=",SIZE);
scanf("%d",&n);
if (!(n % 2)||n < 1 || (1) ) {
printf("输入数据有误!/n"); exit(0);
}
row=1; col = (n+1)/2; value=1;
while(value< = (2) ) {
a[row][col] = value;
/*计算下一位置*/
if(value%n !=0){
row--; (3) ;
if(row<1) row=n;
if(col>n) (4) ;
}
else row++;
value = (5) ;
}
printf("/n%d阶魔方阵如下所示:/n/n",n);
for(row = 1;row <= n; row++){
for(col = 1; col <=n; col++)
printf("%5d"
[填空题]请补充main函数,该函数的功能是:输出一个N×N矩阵,要求非对角线上的元素赋值为0,对角线元素赋值为1。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在 main函数的横线上填入所编写的若干表达式或语句。
试题程序:
#include<stdio. h>
#define N 10
main ( )
int bb[N] [N];
int i, j,n;
clrscr ( );
printf (" /nInput n:/n");
scanf ("%d", &n);
for (i=0; i<n; i++)
for (j=0; j<n; j++)
【1】 ;
if (i==j)
bb[i] [j]= 【2】 ;
if ( 【3】 )
bb[i] [j]=1;
printf(" /n***** the result ***** /n");
for (i=0; i<n; i++)
printf (" /n/n");
for (j=0; j<n; j++)
printf ("%4d",bb [i] [j] );