itgle.com

在定义int n[5][6];后,若认为n[0][0]为第1个元素,则第10个元素是________。A.n[2][5]B.n[2][4]C.n[1][3]D.n[1][4]

题目

在定义int n[5][6];后,若认为n[0][0]为第1个元素,则第10个元素是________。

A.n[2][5]

B.n[2][4]

C.n[1][3]

D.n[1][4]


相似考题
参考答案和解析
A
更多“在定义int n[5][6];后,若认为n[0][0]为第1个元素,则第10个元素是________。”相关问题
  • 第1题:

    在一个长度为n的单链表中,在第i个元素之后删除一个元素时,需向前移动()个元素。

    A、n-i

    B、0

    C、n-i-1

    D、i


    参考答案:B

  • 第2题:

    阅读下列函数说明和C代码,将应填入(n)处的字句写在对应栏内。

    【说明】

    函数void rcr(int a[],int n,int k)的功能是:将数组a中的元素s[0]~9[n-1]循环向右平移k个位置。

    为了达到总移动次数不超过n的要求,每个元素都必须只经过一次移动到达目标位置。在函数rcr中用如下算法实现:首先备份a[0]的值,然后计算应移动到a[0]的元素的下标 p,并将a[P]的值移至a[0];接着计算应移动到a[p]的元素的下标q,并将a[q]的值移至 a[p];依次类推,直到将a[0]的备份值移到正确位置。

    若此时移动到位的元素个数已经为n,则结束;否则,再备份a[1]的值,然后计算应移动到a[1]的元素的下标p,并将a[p]的值移至9[1];接着计算应移动到a[p]的元素的下标q,并将a[q]的值移至a[p];依次类推,直到将a[1]的备份值移到正确位置。

    若此时移动到位的元素个数已经为n,则结束;否则,从a[2]开始,重复上述过程,直至将所有的元素都移动到目标位置时为止。

    例如,数组a中的6个元素如图1(a)所示,循环向右平移两个位置后元素的排列情况如图1(b)所示。

    void rcr( int a[] ,int n,int k)

    { int i,j,t,temp,count;

    count =0; /*记录移动元素的次数*/

    k=k%n;

    if((1)){ /*若k是n的倍数,则元素无须移动;否则,每个元素都要移动*/

    i=0

    while(count<n) {

    j=i;t=i;

    temp =a[1]; /*备份a[i]的值*/

    /*移动相关元素,直到计算出a[i]应移动到的目标位置*/

    while((j=(2))! =i){

    a[t]=a[j];

    t=(3);

    count++;

    }

    (4)= temp;count ++;

    (5);

    }

    }

    }


    正确答案:(1)k或k!=0 (2)(j-k+n)%n或(t-k+n)%n (3)j (4)a[t]或等价表达式 (5)i++或等价表达式
    (1)k或k!=0 (2)(j-k+n)%n或(t-k+n)%n (3)j (4)a[t]或等价表达式 (5)i++或等价表达式 解析:(1)判断k执行k=k%n后是否为0,即是否是n的倍数,应填入k或k!=0。(2)j表示要移动到a[t]的元素的位置,于是j和t的关系为j=(t-k+n)%n;当执行完j=i,t=i后,j=t,于是此处可填入(j-k+n)%n或(t-k+n)%n。(3)将a[j]移动到a[t]后,需要将 t指向j,即此处填入j。(4)将暂存在temp中的值移动到a[t]中。即此处填入a[t]或等价表达式。(5)此处while循环的递增条件,显然应该是i++或其他等价表达式。

  • 第3题:

    阅读下列函数说明和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列。

  • 第4题:

    函数swap(arr,n)可完成对arr数组从第1个元素到第n个元素两两交换。在运行调用函数中的语句后,a[0]和a[1]的值分别为【 】。

    a[0]=1;a[1]=2;swap(a,2);


    正确答案:21
    2,1 解析:本题考核函数参数的传递。数组名作为函数参数传递的是数组的首地址,即实参数组名把实参数组的首地址传给了形参数组名,形参数组名就指向了相应的实参数组,就是说形参数组和实参数其实就是同一个数组,对形参数组元素的修改也同样影响到对应的实参数组元素。

  • 第5题:

    在长度为n的顺序表中,删除第i个元素(0<i<n+1)时,需向前移动的元素个数为( )。

    A.n-i

    B.n-i-1

    C.n-i+l

    D.i


    正确答案:A

  • 第6题:

    阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。

    【说明】

    函数void rcr(int a[],int n,int k)的功能是:将数组a中的元素a[0]~a[n-1]循环向右平移k个位置。

    为了达到总移动次数不超过n的要求,每个元素都必须只经过一次移动到达目标位置。在函数rcr中用如下算法实现:首先备份a[0]的值,然后计算应移动到a[0]的元素的下标p,并将a[p]的值移至a[0];接着计算应移动到a[p]的元素的下标q,并将a[q]的值移至a[p];依次类推,直到将a[0]的备份值移到正确位置。

    若此时移动到位的元素个数已经为n,则结束;否则,再备份a[1]的值,然后计算应移动到a[1]的元素的下标p,并将a[p]的值移至a[1];接着计算应移动到a[p]的元素的下标q,并将a[q]的值移至a[p];依次类推,直到将a[1]的备份值移到正确位置。

    若此时移动到位的元素个数已经为n,则结束;否则,从a[2]开始,重复上述过程,直至将所有的元素都移动到目标位置时为止。

    例如,数组a中的6个元素如图1(a)所示,循环向右平移两个位置后元素的排列情况如图1(b)所示。

    【函数】

    void rcr(int a[],int n,int k)

    {int i,j,t,temp,count;

    count=0;/*记录移动元素的次数*/

    k=k%n;

    if( (1) ){/*若k是n的倍数,则元素无须移动;否则,每个元素都要移动*/

    i=0;

    while(count<n){

    j=i;t=i;

    temp=a[i];/*备份a[i]的值*/

    /*移动相关元素,直到计算出a[i]应移动到的目标位置*/

    while((j= (2) )!=i){

    a[t]=a[j];

    t= (3) ;

    count++;

    }

    (4) =temp;count++;

    (5) ;

    }

    }

    }


    正确答案:
    【答案】(1)k或k!=0(2)(j-k+n)%n或(t-k+n)%n(3)j(4)a[t]或等价表达式(5)i++或等价表达式【解析】(1)判断k执行k=k%n后是否为0,即是否是n的倍数,应填入k或k!=0。(2)j表示要移动到a[t]的元素的位置,于是j和t的关系为j=(t-k+n)%n;当执行完j=i,t=i后,j=t,于是此处可填入(j-k+n)%n或(t-k+n)%n。(3)将a[j]移动到a[t]后,需要将t指向j,即此处填入j。(4)将暂存在temp中的值移动到a[t]中。即此处填入a[t]或等价表达式。(5)此处while循环的递增条件,显然应该是i++或其他等价表达式。

  • 第7题:

    试题二(共15分)

    阅读以下说明和C函数,填充函数中的空缺,将解答填入答题纸的对应栏内。

    【说明】

    如果矩阵A中的元素A[i,j]满足条件:A[i,j]是第i行中值最小的元素,且又是第j列中值最大的元素,则称之为该矩阵的一个马鞍点。

    一个矩阵可能存在多个马鞍点,也可能不存在马鞍点。下面的函数求解并输出一个矩阵中的所有马鞍点,最后返回该矩阵中马鞍点的个数。

    【C函数】

    Int findSaddle(int a[][N],int M),

    { /*a表示M行N列矩阵,N是宏定义符号常量量*/

    int row,column,i,k;

    int minElem;

    int count=0;/*count用于记录矩阵中马鞍点的个数*/

    for( row = 0;row< (1) ;row++) {

    /*minElem用于表示第row行的最小元素值,其初值设为该行第0列的元素值*/

    (2) ;

    for( column = 1;column< (3) ;column++)

    if( minElem> a[row][column]) {

    minElem = a[row][column];

    }

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

    if(a[row][k]==minElem){

    /术对第row行的每个最小元素,判断其是否为所在列的最大元素*/

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

    if( (4) >minElem) break;

    if(i>=(5) ){

    printf("(%d,%d):%d\n",row,k,minElem);/*输出马鞍点*/

    count++;

    }/*if*/

    }/*if*/

    }/*for*/

    return count,

    }/*findSaddle*/


    正确答案:

    (1)M
    (2)  minElem= a[row][0]或其等价形式
    (3)N
    (4)a[i][k]或其等价形式
    (5)M

     

  • 第8题:

    第二题 阅读以下说明和代码,填补代码中的空缺,将解答填入答题纸的对应栏内。
    【说明】
    对n个元素进行简单选择排序的基本方法是:第一趟从第1个元素开始,在n个元素中选出最小者,将其交换至第一个位置,第二趟从第2个元素开始,在剩下的n-1个元素中选出最小者,将其交换至第二个位置,依此类推,第i趟从n-i+1个元素中选出最小元素,将其交换至第i个位置,通过n-1趟选择最终得到非递减排序的有序序列。 问题:2.1 【代码】
    #include
    void selectSort(int data[ ],int n)
    //对 data[0]~data[n-1]中的n个整数按非递减有序的方式进行排列
    {
    int i,j,k;
    int temp;
    for(i=0;i for(k=i,j=i+1;(1);(2)) //k表示data[i]~data[n-1]中最小元素的下标
    if(data[j] if(k!=i) {
    //将本趟找出的最小元素与data[i]交换
    temp=data[i]; (4) ;data[k]=temp;
    }
    }
    }

    int main()
    {
    int arr[ ]={79,85,93,65,44,70,100,57};
    int i,m;
    m=sizeof(arr)/sizeof(int); //计算数组元素的个数,用m表示
    (5); //调用selectSort对数组arr进行非递减排序
    for((6);i printf(“%d\t”,arr[i]);
    printf(“\n”);
    return 0;
    }


    答案:
    解析:
    j(2)j++
    (3)k=j
    (4)data[i]=data[k]
    (5)selectSort(arr,m)此处m也可以填8或者sizeof(arr)/sizeof(int), arr可以改成&arr[0]
    (6)i=0

    【解析】

    本题考查 C 程序设计基本技能及应用。简单选择排序方法是设所排序序列的记录个数为n。i取1,2,…,n-1,从所有n-i+1个记录(Ri,Ri+1,…,Rn)中找出排序码最小的记录,与第i个记录交换。执行n-1趟后就完成了记录序列的排序。
    第1空应填j循环结束条件,j应该运行至序列末尾。填j第2空填j循环控制语句,j每次递增1,往后移动一个元素与a[i]进行比较。
    第3空为自动保存最大元素的下标,k=j。
    第4空为交换两个元素,temp为临时变量,保存data[i]的值,使用data[i]=data[k]使data[i]为后面n-i+1个记录(Ri,Ri+1,…,Rn)中找出排序码最小的记录,再将temp赋给data[k]。
    第5空为调用selectSort对数组arr进行非递减排序,selectSort有两个参数,数组和排序元素个数,为selectSort(arr,m)。
    第6空进行元素遍历输出所有的数组元素,从下标为0开始,所以填i=0。

  • 第9题:

    已知有一维数组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。

  • 第10题:

    在搜索解图的过程中,若解图的耗散值记为k(n,N),则若n是N的一个元素,则k(n,N)=()

    • A、n
    • B、N
    • C、N-n
    • D、0

    正确答案:D

  • 第11题:

    在一个长度为n的顺序表中向第i个元素(0<i<n+l )之前插入一个新元素时,需向后移动()个元素。

    • A、n-i
    • B、n-i+l
    • C、n-i-1
    • D、i

    正确答案:B

  • 第12题:

    单选题
    要求定义一个具有6个元素的int型一维数组,以下选项中错误的是(  )。
    A

    int N = 6,a[N];

    B

    int a[2*3]={0};

    C

    #define N 3
    int a[N+N];

    D

    int a[]={1,2,3,4,5,6};


    正确答案: C
    解析:
    数组名后面括号内,必须是整型常量,不可以是变量,答案选择A选项。

  • 第13题:

    在一个长度为n的顺序表中向第i个元素(0

    A、n-i

    B、n-i+l

    C、n-i-1

    D、i


    参考答案:B

  • 第14题:

    在定义inta[5][6];后,数组a中的第10个元素是()。(设a[0][0]为第一个元素)

    A.a[2][5]

    B.a[2][4]

    C.a[1][3]

    D.a[1][5]


    正确答案:C

  • 第15题:

    函数YangHui的功能是把杨辉三角形的数据赋给二位数组的下半三角,形式如下:

    其构成规律是:

    ①第0列元素和主对角线元素均为1。

    ②其余元素为其左上方和正上方元素值之和。

    ③数据的个数每行递增1。

    请将程序补充完整。

    define N 6

    void YangHui(int x[N][N])

    {

    int i,j;

    x[0] [0] =1;

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

    {

    x[i][0] =【 】= 1;

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

    x[i][j]=【 】;

    }

    }


    正确答案:x[i][0] x[i-1][j-1]+x[i-1][j]
    x[i][0] x[i-1][j-1]+x[i-1][j] 解析:本题考核数组的应用,属于综合型考题。在函数YangHui中,通过嵌套的for语句实现杨辉三角各个位置元素的赋值。
    ①由于杨辉三角中,第0列元素和主对角线元素均为1。所以可知,x[i][0]=1,x[i][i] =1。
    ②杨辉三角中,其余元素为其左上方和正上方元素值之和。若元素为x[i][j],那么其左上方的元素为x[-1][j-1),正上方的元素为x[i-1][j]。所以x[i][j]的值为 x[i-1][j-1]+x[i-1][j]。

  • 第16题:

    已知有一维数组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列。

  • 第17题:

    在一个长度为n的顺序表中删除第i个元素(0≤i≤n-1)时,需要从前向后依次前移(33)个元素。

    A.n-i

    B.n-i+1

    C.n-i-1

    D.i


    正确答案:C
    解析:从i+1开始的元素都需要依次前移,直到n-1位置。需要移动n-1-(i+1)+1=n-i+1个元素。

  • 第18题:

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

    [说明]

    函数int psort(int a[],int n)实现将含n个整数的数组a[]的不同元素按从小到大顺序存于数组a[]中。实现方法是从未确定的元素列中找到最小元素并将a[]的第i最小元素交换至a[i]位置。如该最小元素比已确定的最后一个最小元素大,则将它接在已确定的元素序列的后面;否则,忽视该元素。

    [C函数]

    int psort(int a[],int n)

    {int i,J,k,P;

    for(i=0,k=0;i<(1);i++){

    for(j=i+1, (2) ;j<n; j++)

    if(a[p]>a[j])

    p=j;

    if(p!=i){

    t=a[p];

    a[p]=a[i];

    a[i]=t;

    }

    if( (3) ) k++;

    else if( (4) <a[i])

    (5)=a[i];

    }

    return k;

    }

    int a[]={5,7,5,6,4,3,4,6,7};

    main()

    {int k,n;

    for(k=0;k<(Sizeof a)/Sizeof(int);k++)

    printf("%5d",a[k]);

    printf ("\n\n");

    n=psort(a,(sizeof(a))/sizeof(int));

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

    printf("%5d",a[k]);

    printf("\n\n");

    }


    正确答案:(1) n-1 (2) P=i (3) k==0 (4) a[k-1] (5) a[k++]
    (1) n-1 (2) P=i (3) k==0 (4) a[k-1] (5) a[k++] 解析:本程序排序方法是从未确定的元素列中找到最小元素并将a[]的第i最小元素交换至a[i]位置。如该最小元素比已确定的最后一个最小元素大,则将它接在已确定的元素序列的后面;否则,忽视该元素。这是采用选择法对数组元素进行排序,因此空(1)填“n-1”,空(2)填“p=i”。若该最小元素比已确定的最后一个最小元素大,则将它接在已确定的元素序列的后面;否则,忽视该元素。因此,空(3)填“k==0”;而当a[k-1]a[i]时”,则a[k++]=a[i];否则忽略元素a[i]。所以空(4)填“a[k-1]”空(5)填“a[k++]”。

  • 第19题:

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




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

    答案:D
    解析:

  • 第20题:

    若某线性表长度为n且采用顺序存储方式,则运算速度最快的操作是(37)。

    A.查找与给定值相匹配的元素的位置
    B.查找并返回第i个元素的值(1≤i≤n)
    C. 删除第i个元素(1≤i≤n)
    D.在第i个元素(1≤i≤n)之前插入一个新元素

    答案:B
    解析:
    本题考查数据结构基础知识。
    线性表(a1,a2,…,an)采用顺序存储时占用一段地址连续的存储单元,元素之间没有空闲单元,如下图所示。在这种存储方式下,插入和删除元素都需要移动一部分元素,这是比较耗时的操作。按照序号来查找元素,实际上是直接计算出元素的存储位置,例如,第i个元素ai的存储位置为LOC(ai)=LOC(a1)+(i-1)×L,其中L是每个元素所占用的存储单元数。按照值来查找元素时,需要与表中的部分元素进行比对,相对于按照序号来查找元素,需要更多的时间

  • 第21题:

    若某线性表长度为n且采用顺序存储方式,则运算速度最快的操作是
    ( )。

    A.查找与给定值相匹配的元素的位置
    B.查找并返回第i个元素的值(1≤i≤n)
    C.删除第i个元素(1≤iD.在第i个元素(1≤i≤n)之前插入一个新元素

    答案:B
    解析:
    在线性表中插入和删除元素都需要修改前驱和后继的指针。查找并返回第i个元素的值,这个只要找到该位置读取即可。查找与给定值相匹配的元素的位置,先读取第一个元素再比较,依次类推直到找到该元素。

  • 第22题:

    在一个长度为n的顺序表中删除第i个元素(0<=i<=n)时,需向前移动()个元素。

    • A、n-i
    • B、n-i+l
    • C、n-i-1
    • D、i

    正确答案:A

  • 第23题:

    若对n个元素进行直接插入排序,则进行第i趟排序时,为寻找插入位置最多需要进行()次元素的比较,假定第0号元素放有待查的关键字。

    • A、1
    • B、i-1
    • C、i+1

    正确答案:C

  • 第24题:

    单选题
    若对n个元素进行直接插入排序,则进行第i趟排序时,为寻找插入位置最多需要进行()次元素的比较,假定第0号元素放有待查的关键字。
    A

    1

    B

    i-1

    C

    i+1


    正确答案: C
    解析: 暂无解析