设A是n阶可逆方阵,将A的第i行和第j行对换后得到的矩阵记为B.(1)证明B可逆;(2)求AB^-1.

题目
设A是n阶可逆方阵,将A的第i行和第j行对换后得到的矩阵记为B.
  (1)证明B可逆;
  (2)求AB^-1.


相似考题
参考答案和解析
答案:
解析:
更多“设A是n阶可逆方阵,将A的第i行和第j行对换后得到的矩阵记为B. ”相关问题
  • 第1题:

    设A,B均为n阶矩阵,(I一B)可逆,则矩阵方程A+BX=X的解X=()。


    正确答案:(I-B)^(-1)A

  • 第2题:

    设下三角矩阵A:

    如果以行序为主序将A的非零元素存储在一维数组B[n(n+1)/2]中,那么A的第i行第j列的非零元素aij(i≥j)在数组B中的下标为______。


    正确答案:B
    解析:按行优先存储就是把矩阵中的数据一行一行地顺次存入存储单元,此题中就按a11、a21、a22、a31、a32、a33、…、an1、an2、an3、…、ann的顺序来存储。从第1行到第i-1行(a11~ai-1,i-1)共有个非零元素;在第i行,从ai1至aij共有j个非零元素,因此a11至aij共有个非零元素,而a11对应的下标为0,于是aij对应的下标为。

  • 第3题:

    阅读以下说明和C语言程序,将应填入(n)处的字句写在对应栏内。

    【说明】

    魔方阵,又叫幻方,在我国古代称为“纵横图”。由1…N2共N2个自然数构成每行、每列及两对角线上各数之和都相等的N×N方阵,这样的方阵就叫做N阶魔方阵。顾名思义,奇阶魔方阵就是N为奇数的幻方。

    奇数阶魔方阵的生成方法如下:

    (1)第一个位置在第一行正中。

    (2)新位置应当处于最近一个插入位置右上方,但如果右上方位置已超出方阵上边界,则新位置取应选列的最下一个位置;如果超出右边界,则新位置取应选行的最左一个位置。

    (3)若最近一个插入元素为N的整数倍,则选下面一行同列上的位置为新位置。本题要求输入一个数据n,然后打印由自然数1到n2的自然数构成的魔方阵(n为奇数)。例如,当n=3时,魔方阵为:

    8 1 6

    3 5 7

    4 9 2

    了解其生成方法后,就可以根据此方法来写出程序了。首先设置int变量i,j,m, n。其中i标记魔方阵的行;j标记魔方阵的列;n表示魔方阵的维数,通过输入得到;通过m递加得到插入的数据。数组a[MAX][MAX]用于存放魔方阵元素。这里预定义了 MAX的大小,没有采用动态分配,在此设置为15,即最大求得15×15阶魔方阵。

    【程序】

    include <stdio.h>

    define MAX 15

    void main()

    {

    int n;

    int m=1;

    int i,j;

    int a[MAX][MAX];

    printf("Please input the rank of matrix:");

    scanf("%d",&n);

    i=0;

    (1)

    while((2))

    a[i][j]=m;

    m++;

    i--;

    j++;

    if((m-1)%n==0 && m>1)

    {

    (3)

    j=j-1;

    }

    if(j>(n-1)) //超出上界

    (4)

    if(j>(n-1))

    (5)

    }

    for(i=0;i<n;i++) //输出魔方阵

    for(j=0;j<n;j++)

    {

    if(a[i][j]/10==0)

    printf("%d ",a[i][j]); //对程序无影响,只是使输出的数每一列对齐

    else

    printf("%d ",a[i][j]);

    if(j==(n-1))

    printf("\n");

    }

    }


    正确答案:(1)j=(n+1)/2-1; (2)m=n*n (3)i=i+2; (4)i=i+n; (5)j=j-n;
    (1)j=(n+1)/2-1; (2)m=n*n (3)i=i+2; (4)i=i+n; (5)j=j-n; 解析:本题考查我们对魔方阵的理解及用C语言的实现。
    题目给出了魔方阵的原理和生成过程,现在要我们往15×15的二维数组中添加元素,使其呈现魔方阵的结构。程序中的变量i和,i确定增加的元素在数组中的位置,每次增加的元素在原来的基础上加1,只是位置按魔方阵的原理存放。
    下面来看代码,在第(1)空处,还没有进入增加元素的循环中,应该是赋初值阶
    段,而用来确定元素在数组中位置的变量i已有值,i没有,再根据魔方阵的生成过程的第一条(第一个位置在第一行正中)可知,此空的答案应该是i=(n+1)/2-1。
    第(2)空处是一个循环条件,结合全过程来看,我们知道这个循环是不停往数组中增加元素,直到添加完n×n个元素。因此,此处是判断要添加的元素应该小于n×n。答案为m=n*n。
    第(3)空前面是个条件选择语句,其条件是判断最近一个插入元素m是否可以被n整除。根据魔方阵的生成过程的第三条(若最近一个插入元素为N的整倍数,则选下面一行同列上的位置为新位置),即i=i+1,i不变。但由于在插入一个元素后,变量i和j会分别自动减1和加1。因此,答案为i=i+2。
    第(4)空前面也是个条件选择语句,其条件是判断是否超出上界,根据魔方阵的生成过程的第二条可以知道,如右上方位置已超出方阵上边界,则新位置取应选列的最下一个位置,因此,此空应该填i=i+n。
    第(5)空前面是个条件选择语句,其条件是判断是否超出右边界,根据魔方阵的生成过程的第二条可以知道,如超出右边界则新位置取应选行的最左一个位置。因此,此空应该填j=j-n。

  • 第4题:

    已知有一维数组A(0..m*n-1],若要对应为m行、n列的矩阵,则下面的对应关系(4)可将元素A[k](0≤k<m*n)表示成矩阵的第i行、第j列的元素(0≤i<m,0≤j<n)。

    A.i=k/n,j=k%m

    B.i=k/m,j=K%m

    C.i=k/n,j=k%n

    D.i=k/m,j=k%n


    正确答案:C
    解析:此题是求一维数组向二维数组转化的问题。最原始的方法就是把数组A的前n个元素放到数组B的第一行,数组A的第n个元素放到数组B的第二行中,依次类推,数组A的最后n个元素放到数组B的最后一行中。求且[幻在数组B中的位置,应先确定A[k]处在哪一行,显然应该是k/n行,然后再确定处在k/n行的哪一列,显然是k%n列。

  • 第5题:

    下面程序的功能是 : 将 N 行 N 列二维数组中每一行的元素进行排序 , 第 0 行从小到大排序 , 第 1 行从大到小排序,第 2 行从小到大排序,第 3 行从大到小排序,例如:

    define N 4

    void sort(int a[][N])

    { int i, j, k, t;

    for (i=0; i<N;i++)

    for (j=0; j<N-1:j++)

    for (k= 【 13 】 ; k<N;K++)

    /* 判断行下标是否为偶数来确定按升序或降序来排序 */

    if ( 【 14 】 ? a[i][j]<a[i][k]); a[i][j]>a[i][k])

    { t = a[i][j];

    a[i][j]=a[i][k];

    a[i][k] = t;

    }

    }

    void outarr(int a[N][N])

    { …… }

    main()

    { int aa[N][N]={{2,3,4,1},{8,6,5,7},{11,12,10,9},{15,14,16,13}};

    outarr(aa); /* 以矩阵的形式输出二维数组 */

    sort(aa);

    outarr(aa);

    }


    正确答案:
    答案j+1;i%2或i%2==1解析:k表示i行中从第j个元素之后的元素的列小标;判断第i行是否是偶数

  • 第6题:

    设A是3阶方阵,将A的第1列与第2列交换得B,再把B的第2列加到第3列得C, 则满足AQ=C的可逆矩阵Q为



    答案:D
    解析:

  • 第7题:

    设 A 为n阶方阵,且|A| =0,则必有




    A.A 中某一行元素全为 0
    B.A 的第n行是其余,n - 1 行的线性组合
    C.A 中有两列对应元素成比例
    D.A 中某一列是其余 n - 1 列的线性组合

    答案:D
    解析:

  • 第8题:

    设为3阶矩阵,将的第2列加到第1列得矩阵,再交换的第2行与第3行得单位矩阵,记,,则A=( )



    答案:D
    解析:

  • 第9题:

    设A是n阶可逆方阵,将A的第i行和第j行对换后得到的矩阵记为B, (1)证明B可逆; (2)求.


    答案:
    解析:

  • 第10题:

    设A是3阶矩阵,矩阵A的第1行的2倍加到第2行,得矩阵B,则以下选项中成立的是( )。
    A. B的第1行的-2倍加到第2行得A B. B的第1列的-2倍加到第2列得A
    C.B的第2行的-2倍加到第1行得A D. B的第2列的-2倍加到第1列得A


    答案:A
    解析:
    提示:B的第1行的-2倍加到第2行得矩阵A。

  • 第11题:

    设A为n阶方阵,A*是A的伴随矩阵,则||A|A*|等于( ).



    答案:D
    解析:

  • 第12题:

    问答题
    给定一个m×n的数值矩阵A,如果矩阵A中存在这样的一个元素A[i][j]满足条件:A[i][j]是第i行中值最小的元素,且又是第j列中值最大的元素,则称之为该矩阵的一个马鞍点。编写一个方法计算出m*n的矩阵A的所有马鞍点。

    正确答案: inti,j,k,m=4,n=5,max,min;
    int[,]array=newint[,]{{30,20,25,40,45},{80,19,70,90,11},{24,14,42,91,96},{32,17,82,72,38}};
    Console.Write("/n{0}行{1}列的数值矩阵为:");
    for(i=0;i{
    Console.WriteLine();
    for(j=0;j{
    Console.Write("{0}",array[i,j]);
    }
    }
    for(i=0;ifor(j=0;j{
    max=array[i,j];
    min=array[i,j];
    for(k=0;kfor(k=0;kmax)max=array[k,j];
    if(array[i,j]==max&&array[i,j]==min)
    {
    Console.WriteLine("/n马鞍点是第{0}行,第{1}列的{2}",i,j,array[i,j]);
    }
    }
    解析: 暂无解析

  • 第13题:

    阅读下列函数说明和C函数,回答问题1~2,将解答填入栏内。

    [说明]

    若矩阵Am×n中存在某个元素aij满足:aij…是第i行中最小值且是第j列中的最大值,则称该元素为矩阵A的一个鞍点。下面程序的功能是输出A中所有鞍点,其中参数A使用二维数组表示,m和n分别是矩阵A的行列数。

    [程序]

    void saddle (int A[ ] [ ], int m, int n)

    { int i,j,min;

    for (i=0;i <m;i + + )

    { min: (1);

    for (j=1; j<n; j+ +)

    if(A[i][j]<min) (2);

    for (j=0; j<n; j+ +)

    if ((3))

    { p=0;

    while (p<m&&(4))p+ +;

    if (p > = m)printf ("%d,%d,%d\n",i,j,min);

    }

    }

    }

    [问题1] 将函数代码中的(1)~(4)处补充完整

    [问题2]在上述代码的执行过程中,若A为矩阵,则调用saddle(A,3,3)后输出是(5)。


    正确答案:[问题1](1)A[i][0] (2)min=A[i][j] (3)A[i] [j]==min (4)A[p][j]=min或min=A[P] [j] [问题2](5)1211
    [问题1](1)A[i][0] (2)min=A[i][j] (3)A[i] [j]==min (4)A[p][j]=min或min=A[P] [j] [问题2](5)1,2,11 解析:本算法的基本思想是:对矩阵A逐行处理,求出每一行的最小值,对于这一行上等于最小值的那些元素,逐个判断该元素是否是所在列的最大元,如果是则打印输出。
    (1)由上下文可知min代表第i行的最小值,此处应对其赋初值:本行第一个元素;
    (2)遍历第i行后面的元素,若有元素比miu小,则应更新min的值;
    (3)此处应挑出本行中取最小值的元素进行判断;
    (4)此循环用于判断min是否是本列的最大元。
    (5)所给矩阵中只有一个鞍点11,若行列号从。开始计,它位于第l行第2列。

  • 第14题:

    将一个n阶三对角矩阵A的三条对角线上的元素按行压缩存放于一个一维数组B中, A[0][0]存放于B[0]中。对于任意给定数组元素A[i][j],它应是数组A中第______行的元素。


    正确答案:2i+j-3
    2i+j-3 解析:在三对角矩阵中,按行压缩存储,其转换公式为k=2i+j-3。

  • 第15题:

    阅读以下说明和C语言程序,将应填入(n)处的字句写在答题纸的对应栏内。

    【说明】

    魔方阵,又叫幻方,在我国古代称为"纵横图".由1…N2共N2个自然数构成每行、每列及两对角线上各数之和都相等的N×N方阵,这样的方阵就叫做N阶魔方阵。顾名思义,奇阶魔方阵就是N为奇数的幻方。

    奇数阶魔方阵的生成方法如下:

    (1)第一个位置在第一行正中。

    (2)新位置应当处于最近一个插入位置右上方,但如果右上方位置已超出方阵上边界,则新位置取应选列的最下一个位置;如果超出右边界,则新位置取应选行的最左一个位置。

    (3)若最近一个插入元素为N的整数倍,则选下面一行同列上的位置为新位置。本题要求输入一个数据n,然后打印由自然数1到n2的自然数构成的魔方阵(n为奇数)。例如,当n=3时,魔方阵为:

    816

    357

    492

    了解其生成方法后,就可以根据此方法来写出程序了。首先设置int变量i,j,m,n.其中i标记魔方阵的行;j标记魔方阵的列;n表示魔方阵的维数,通过输入得到;通过m递加得到插入的数据。数组a[MAX][MAX]用于存放魔方阵元素。这里预定义了MAX的大小,没有采用动态分配,在此设置为15,即最大求得15×15阶魔方阵。

    【程序】

    #include

    #defineMAX15

    voidmain()

    {

    intn;

    intm=1;

    inti,j;

    inta[MAX][MAX];

    printf("Pleaseinputtherankofmatrix:");

    scanf("%d",&n);

    i=0;

    (1)

    while((2))

    {

    a[i][j]=m;

    m++;

    i--;

    j++;

    if((m-1)%n==0&&m>1)

    {

    (3)

    j=j-1;

    }

    if(i<0)//超出上界

    (4)

    if(j>(n-1))//超出右边界

    (5)

    }

    for(i=0;i

    for(j=0;j

    {

    if(a[i][j]/10==0)

    printf("%d",a[i][j]);//对程序无影响,只是使输出的数每一列对齐

    else

    printf("%d",a[i][j]);

    if(j==(n-1))

    printf("\n");

    }

    }


    答案:(1)j=(n+1)/2-1;(2)m<=n*n(3)i=i+2;(4)i=i+n;(5)j=j-n;


    解析:

    本题考查我们对魔方阵的理解及用C语言的实现。


    题目给出了魔方阵的原理和生成过程,现在要我们往15×15的二维数组中添加元素,使其呈现魔方阵的结构。程序中的变量i和j确定增加的元素在数组中的位置,每次增加的元素在原来的基础上加1,只是位置按魔方阵的原理存放。


    下面来看代码,在第(1)空处,还没有进入增加元素的循环中,应该是赋初值阶段,而用来确定元素在数组中位置的变量i已有值,j没有,再根据魔方阵的生成过程的第一条(第一个位置在第一行正中)可知,此空的答案应该是j=(n+1)/2-1.


    第(2)空处是一个循环条件,结合全过程来看,我们知道这个循环是不停往数组中增加元素,直到添加完n×n个元素。因此,此处是判断要添加的元素应该小于n×n.答案为m<=n*n.


    第(3)空前面是个条件选择语句,其条件是判断最近一个插入元素m是否可以被n整除。根据魔方阵的生成过程的第三条(若最近一个插入元素为N的整倍数,则选下面一行同列上的位置为新位置),即i=i+1,j不变。但由于在插入一个元素后,变量i和j会分别自动减1和加1.因此,答案为i=i+2.


    第(4)空前面也是个条件选择语句,其条件是判断是否超出上界,根据魔方阵的生成过程的第二条可以知道,如右上方位置已超出方阵上边界,则新位置取应选列的最下一个位置,因此,此空应该填i=i+n.


    第(5)空前面是个条件选择语句,其条件是判断是否超出右边界,根据魔方阵的生成过程的第二条可以知道,如超出右边界则新位置取应选行的最左一个位置。因此,此空应该填j=j-n.

  • 第16题:

    在窗体上画2个命令按钮,名称分别为Command1、Command2,然后编写下列事件过程。 Const n=5.m=4 Dim a(m,n) Private Sub+Command1 Click( ) k=1 For i=1 To m For j=1 To n a(i,j)=k k=k+1 Next j Next i End Sub Private Sub Command2 Click( ) summ=0 For i=1 To m For j=1 To n If i=1 Or i=m Then summ=summ+a(i,j) Else If j=1 Or j=n Then summ=summ+a(i,j) End If End If Next j Next i Print summ End Sub 过程Command1_Click( )的作用是在二维数组a中存放1个m行n列的矩阵;过程Command2 Click( )的作用是( )。

    A.计算矩阵外围一圈元素的累加和

    B.计算矩阵除外围一圈以外的所有元素的累加和

    C.计算矩阵第1列和最后一列元素的累加和

    D.计算矩阵第1行和最后一行元素的累加和


    正确答案:A
    A。【解析】IF语句的Then语句是用于计算第一行和最后一行元素的累加和,而Else语句是计算第一列和最后一列元著的累加和。故应该是计算外围的一圈元素的累加和。

  • 第17题:

    设A是n阶矩阵,矩阵A的第1列的2倍加到第2列,得矩阵B,则以下选项中成立的是( )。

    A.B的第1列的-2倍加到第2列得A
    B.B的第1行的-2倍加到第2行得A
    C.B的第2行的-2倍加到第1行得A
    D.B的第2列的-2倍加到第1列得A

    答案:A
    解析:
    B的第1行的-2倍加到第2行得A,故应选A。

  • 第18题:

    设A为3阶矩阵,将A的第2行加到第1行得B,再将B的第1列的-1倍加到第2列得C,记,则( ?)


    答案:B
    解析:

  • 第19题:

    设A是3阶方阵,将A的第1列与第2列交换得B,再把B的第2列加到第3列得C,则满足的可逆矩阵Q为( ?).



    答案:D
    解析:

  • 第20题:

    设A为n(n≥2)阶可逆矩阵,交换A的第1行与第2行得矩阵B,分别为A,B的伴随矩阵,则(  )。

    A.交换A的第1列与第2列得B
    B.交换A的第1行与第2行得B
    C.交换A的第1列与第2列得-B
    D.交换A的第1行与第2行得-B

    答案:C
    解析:

  • 第21题:

    已知有一维数组A[0.m×n-1],若要对应为m行n列的矩阵,则下面的对应关系(),可将元素A[k](O≤<k≤<m×n)表示成矩阵的第i行、第j列的元素(0≤i≤m,0匀≤n)。

    A. i=k/n,j=k%m
    B.i=k/m,j=k%m
    C.i=k/n,j=k%n
    D.i=k/m,j=k%n

    答案:C
    解析:
    矩阵每一行有n个元素,则第i+l行、第j+l到的元素~在A中是第n×i+j+l个元素,对应的下标k=nXi+j(因为下标从0开始)。反过来:i=k/n,j=k%n。

  • 第22题:

    设A为n阶方阵,B是A经过若干次矩阵的初等变换后所得到的矩阵,则有( ).《》( )


    答案:C
    解析:

  • 第23题:

    给定一个m×n的数值矩阵A,如果矩阵A中存在这样的一个元素A[i][j]满足条件:A[i][j]是第i行中值最小的元素,且又是第j列中值最大的元素,则称之为该矩阵的一个马鞍点。编写一个方法计算出m*n的矩阵A的所有马鞍点。


    正确答案: inti,j,k,m=4,n=5,max,min;
    int[,]array=newint[,]{{30,20,25,40,45},{80,19,70,90,11},{24,14,42,91,96},{32,17,82,72,38}};
    Console.Write("/n{0}行{1}列的数值矩阵为:");
    for(i=0;i{
    Console.WriteLine();
    for(j=0;j{
    Console.Write("{0}",array[i,j]);
    }
    }
    for(i=0;ifor(j=0;j{
    max=array[i,j];
    min=array[i,j];
    for(k=0;kfor(k=0;kmax)max=array[k,j];
    if(array[i,j]==max&&array[i,j]==min)
    {
    Console.WriteLine("/n马鞍点是第{0}行,第{1}列的{2}",i,j,array[i,j]);
    }
    }