niusouti.com

对于序列s,能够返回序列s中第i到j以k为步长的元素子序列的表达是‪‪‪‪‪‪‫‪‪‪‪‪‫‫‪‪‪‪‪‪‪‪‪‪‪‫‪‪‪‪‪‪‫‪‪‪‪‪‫()。A.s[i, j, k]B.s(i, j, k)C.s[i:j:k]D.s[i; j; k]

题目

对于序列s,能够返回序列s中第i到j以k为步长的元素子序列的表达是‪‪‪‪‪‪‫‪‪‪‪‪‫‫‪‪‪‪‪‪‪‪‪‪‪‫‪‪‪‪‪‪‫‪‪‪‪‪‫()。

A.s[i, j, k]

B.s(i, j, k)

C.s[i:j:k]

D.s[i; j; k]


相似考题

1.●试题四阅读以下说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】将一正整数序列{K1,K2,…,K9}重新排列成一个新的序列,新序列中,比K1小的数都在K1的前面(左面),比K1大的数都在K1的后面(右面),最后调用writeDat()函数的新序列输出到文件out.dat中。在程序中已给出了10个序列,每个序列有9个正整数,并存入数组a[10][9]中,分别求出这10个新序列。例:序列 {6,8,9,1,2,5,4,7,3}经重排后成为{3,4,5,2,1,6,8,9,7}【函数】#include<stdio.h>#include<conio.h>void jsValue(int a[10][9]){int i,j,k,n,temp;int b[9];for(i=0;i<10;i++){temp=a[i][0];k=8;n=0;for(j=8;j=0;j--){if(temp<a[i][j]) (1) =a[i][j];if(temp>a[i][j]) (2) =a[i][j];if(temp=a[i][j]) (3) =temp;}for(j=0;j<9;j++)a[i][j]=b[j];}}void main(){int a[10][9]={{6,8,9,1,2,5,4,7,3},{3,5,8,9,1,2,6,4,7},{8,2,1,9,3,5,4,6,7},{3,5,1,2,9,8,6,7,4},{4,7,8,9,1,2,5,3,6},{4,7,3,5,1,2,6,8,9},{9,1,3,5,8,6,2,4,7},{2,6,1,9,8,3,5,7,4},{5,3,7,9,1,8,2,6,4},{7,1,3,2,5,8,9,4,6}};int i,j;(4) ;for(i=0;i<10;i++){for(j=0;j<9;j++){printf("%d",a[i][j]);if( (5) )printf(",");}printf("\n");}getch();}

更多“对于序列s,能够返回序列s中第i到j以k为步长的元素子序列的表达是‪‪‪‪‪‪‫‪‪‪‪‪‫‫‪‪‪‪‪‪‪‪‪‪‪‫‪‪‪‪‪‪‫‪‪‪‪‪‫()。”相关问题
  • 第1题:

    假设以I和O分别表示入栈和出栈操作。栈的初态和终态均为空,入栈和出栈的操作序列可表示为仅由I和O组成的序列,称可以操作的序列为合法序列,否则称为非法序列。

    ①下面所示的序列中哪些是合法的?

    A. IOIIOIOO B. IOOIOIIO C. IIIOIOIO D. IIIOOIOO

    ②通过对①的分析,写出一个算法,判定所给的操作序列是否合法。若合法,返回true,否则返回false(假定被判定的操作序列已存入一维数组中)。


    参考答案:
      ①A和D是合法序列,B和C 是非法序列。
      ②设被判定的操作序列已存入一维数组A中。
      int Judge(char A[])
      //判断字符数组A中的输入输出序列是否是合法序列。如是,返回true,否则返回false。
      {i=0; //i为下标。
      j=k=0; //j和k分别为I和字母O的的个数。
      while(A[i]!=‘\0’) //当未到字符数组尾就作。
      {switch(A[i])
      {case‘I’: j++; break; //入栈次数增1。
      case‘O’: k++; if(k>j){cout<<“序列非法”<  }
      i++; //不论A[i]是‘I’或‘O’,指针i均后移。}
      if(j!=k) {cout<<“序列非法”<  else { cout<<“序列合法”<  }//算法结束。
      [算法讨论]在入栈出栈序列(即由‘I’和‘O’组成的字符串)的任一位置,入栈次数(‘I’的个数)都必须大于等于出栈次数(即‘O’的个数),否则视作非法序列,立即给出信息,退出算法。整个序列(即读到字符数组中字符串的结束标记‘\0’),入栈次数必须等于出栈次数(题目中要求栈的初态和终态都为空),否则视为非法序列。

  • 第2题:

    现有字母序列(D,W,A,J,C,Z,K,S,P),若采用快速排序的方法将这个序列按字母的升序进行重排,那么以第一个字母作为分界元素,完成第一次扫描的结果为【 】。


    正确答案:C A DJ WZ K S P
    C, A, D,J, W,Z, K, S, P 解析:根据题意,待排序的序列中的第一个字母D为关键字比较的基准。进行快速排序时,指针p2首先从后向前,寻找比D小的字母(下图中过程①),发现后将p2所指字母移到D所在的位置上(下图中过程②)。随后指针p1再从前向后,寻找比基准字母D大的字母(下图中过程③),找到后将这个字母移至指针p2指示的位置上(下图中过程④)。交替使用指针p2和p1在两个方向上进行查找,直到指针p1和p2相遇为止。此时,位于指针左侧的字母均小于基准字母D,而居于p1和p2右侧的字母均大于基准字母 D。最后将基准字母D移至p1和p2指示的位置上,第一趟扫描就此宣告结束。

  • 第3题:

    下面算法是实现对n个整数的序列进行选择排序,其中序列的“长度”n为问题的规模。该算法的时间复杂度为(11)。 void select_sort(int a[],int n){ //将a中整数序列重新排列成从小到大有序的整数序列 for(i=0;i<n-1;++i){ j=i; for(k=i+1;k<n;++k)if(a[k]<a[j])j=k; if(j!=i){w=a[j];a[j];a[i];a[i]=w} )//select_sort

    A.O(n2)

    B.O(n3)

    C.O(n4)

    D.O(n)


    正确答案:A
    解析:算法中的控制结构是两重循环,所以基本操作是在内层循环中的“比较”,它的重复执行次数是:对时间复杂度而言,只需要取最高项,并忽略常数系数。

  • 第4题:

    设有字符序列(Q,H,C,Y,P,A,M,S,R,D,F,x),则新序列(F,H,C,D,P,A,M,Q,R,S,Y,x)是下列( )排序算法-趟扫描的结果。

    A.起泡排序

    B.初始步长为4的希尔排序

    C.二路归并排序

    D.以第一个元素为分界元素的快速排序


    正确答案:D
    根据快速排序的算法,新序列(F,H,C,D,P,A,M,Q,R,S,Y,X)为字符序列(Q,H,C,Y,P,A,M,S,R,D,F,X)经过快速排序的算法第-趟扫描后的结果。

  • 第5题:

    对于n个元素的关键字序列K1,K2,…,Kn,若有Ki≤K2i≤且Ki≤2i+1(i=1,2,…,[n/2],2i+1≤n),则称其为小根堆。以下关于小根堆及其元素关系的叙述中,错误的是( )。

    A.关键字序列K1,K2,…,Kn呈非递减排序时一定为小根堆

    B.小根堆中的序列K1,K2,K4…,K2j(2j≤n)一定为非递减序列

    C.小根堆中元素K2i与K2i+1(2i≤n,2i+1≤n)之间的大小关系不能确定

    D.小根堆的最后一个元素一定是序列的最大元素


    正确答案:D
    解析:小根堆中元素比它本身的根小,它和它的兄弟没有大小关系。

  • 第6题:

    已知栈S 初始为空,用 I 表示入栈、O表示出栈,若入栈序列为a1a2a3a4a5,则通过栈 S 得到出栈序列a2a4a5a3a1的合法操作序列( )。

    A.IIOIIOIOOOB.IOIOIOIOIOC.IOOIIOIOIOD.IIOOIOIOOO


    正确答案:A

  • 第7题:

    阅读以下说明和代码,填补代码中的空缺,将解答填入答题纸的对应栏内。【说明】下面的程序利用快速排序中划分的思想在整数序列中找出第 k 小的元素(即 将元素从小到大排序后,取第 k 个元素)。对一个整数序列进行快速排序的方法是:在待排序的整数序列中取第一个数 作为基准值,然后根据基准值进行划分,从而将待排序的序列划分为不大于基准 值者(称为左子序列)和大于基准值者(称为右子序列),然后再对左子序列和 右子序列分别进行快速排序,最终得到非递减的有序序列。例如,整数序列“19, 12, 30, 11,7,53, 78, 25"的第 3 小元素为 12。整数序列“19, 12,7,30, 11, 11,7,53. 78, 25, 7"的第 3 小元素为 7。函数 partition(int a[], int low,int high)以 a[low]的值为基准,对 a[low]、 a[low+l]、…、a[high]进行划分,最后将该基准值放入 a[i] (low≤i≤high),并 使得 a[low]、a[low+l]、,..、A[i-1]都小于或等于 a[i],而 a[i+l]、a[i+2]、..、 a[high]都大于 a[i]。函 教 findkthElem(int a[],int startIdx,int endIdx,inr k) 在 a[startIdx] 、 a[startIdx+1]、...、a[endIdx]中找出第 k 小的元素。【代码】#include #include
    Int partition(int a [],int low, int high){//对 a[low..high]进行划分,使得 a[low..i]中的元素都不大于 a[i+1..high]中的 元素。int pivot=a[low]; //pivot 表示基准元素 Int i=low,j=high;while(( 1) ){While(ipivot)--j; a[i]=a[ j] While(ipivot)++i; a[ j]=a[i]}(2) ; //基准元素定位 return i;}Int findkthElem(int a[],int startIdx,int endIdx, int k){//整数序列存储在 a[startldx..endldx]中,查找并返回第 k 小的元素。if (startldx<0 ||endIdx<0 || startIdx>endIdx || k<1 ||k-l>endIdx||k-1 if (loc==k-1) ∥找到第 k 小的元素return (3) ;if(k-l 小的元素}return 0;}


    答案:
    解析:
    1) CountStr
    2) p[i]
    3) p[i]
    4) num 3、
    1、!i=j
    2、a[i]=pivot
    3、a[loc]
    4、stratIdx,Loc-1
    5、Loc+1,endIdx

  • 第8题:

    用s表示入栈操作,*表示出栈操作,栈的初态、终态均为空,人栈和出栈的操作序列可表示成仅为由S和*组成的序列。下面的序列中合法的操作序列有()。

    A.S*SS*S**
    B.SSS****S
    C.S**S*SS*
    D.SSS*S*S*

    答案:A
    解析:
    要使栈的初态、终态均为空,入栈和出栈的操作次数应该相等,因此排除D项。而BC两项项都出现某一时刻栈已空的情况下执行出栈操作。

  • 第9题:

    原核生物的翻译起始阶段,mRNA中的SD序列与哪段序列互补结合?()

    • A、23S rRNA的5’端序列
    • B、16S rRNA的5’端序列
    • C、5S rRNA的5’端序列
    • D、23S rRNA的3’端序列
    • E、16S rRNA的3’端序列

    正确答案:E

  • 第10题:

    假设以S和X分别表示入栈和出栈的操作,则初态和终态均为空栈的入栈和出栈的操作序列可以表示为仅由S和X组成的序列。称可以操作的序列为合法序列(例如,SXSX为合法序列,SXXS为非法序列)。试给出区分给定序列为合法序列或非法序列的一般准则,并证明:两个不同的合法(栈操作)序列(对同一输入序列)不可能得到相同的输出元素(注意:在此指的是元素实体,而不是值)序列。


    正确答案: 任何前n个序列中S的个数一定大于X的个数。
    设两个合法序列为:
    T.1=S……X……S……
    T.2=S……X……X……
    假定前n个操作都相同,从第n+1个操作开始,为序列不同的起始操作点。由于前n个操作相同,故此时两个栈(不妨为栈A、B)的存储情况完全相同,假设此时栈顶元素均为a。
    第n+1个操作不同,不妨T1的第n+1个操作为S,T2的第n+1个操作为X。T1为入栈操作,假设将b压栈,则T1的输出顺序一定是先b后a;而T2将a退栈,则其输出顺序一定是先a后b。由于T1的输出为……ba……,而T2的输出顺序为……ab……,说明两个不同的合法栈操作序列的输出元素的序列一定不同。

  • 第11题:

    设有森林 B=(D,S), D={A,B,C,D,E,F,G,H,I,J}, r∈S r={〈A,B〉,〈A,C〉,〈A,D〉,〈B,E〉,〈C,F〉,〈G,H〉,〈G,I〉,〈I,J〉} 请回答: 写出此二叉树的前序、中序、后序遍历序列。


    正确答案: 前序遍历序列:ABECFDGHIJ
    中序遍历序列:EBFCDAHJIG
    后序遍历序列:EFDCBJIHGA

  • 第12题:

    问答题
    试证明:若借助栈由输入序列12…n得到的输出序列为p1p2…pn(它是输入序列的一个排列),则在输出序列中不可能出现这样的情形:存在着i<j<k使pj<pk<pi。

    正确答案: 因为输入序列是从小到大排列的,所以若pj<pk<pi,则可以理解为通过输入序列pjpkpi可以得到输出序列pipjpk,显然通过序列123是无法得到312的,所以不可能存在着i<j<k使pj<pk<pi
    解析: 暂无解析

  • 第13题:

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

    【说明】

    将一正整数序列{K1,K2,…,K9}重新排列成一个新的序列,新序列中,比K1小的数都在K1的前面(左面),比K1大的数都在K1的后面(右面),最后调用writeDat()函数的新序列输出到文件out.dat中。

    在程序中已给出了10个序列,每个序列有9个正整数,并存入数组a[10][9]中,分别求出这10个新序列。

    例:序列{6,8,9,1,2,5,4,7,3}

    经重排后成为{3,4,5,2,1,6,8,9,7}

    【函数】

    include < stdio. h >

    include < conio. h >

    void jsValue( int a [10] [9] )

    { int i,j,k,n,temp;

    int b[9];

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

    { temp=a[i] [0];

    k=8;n=0;

    for(j=8;j=0;j--)

    { if(temp < a[i] [j]) (1)=a[i][j];

    if(temp >a[i] [j]) (2)=a[i][j];

    if(temp =a[i] [j]) (3)= temp;

    }

    for(j=0;j<9;j++) a[i][j] =b[j];

    }

    }

    void main( )

    int a[10] [9] = {{6,8,9,1,2,5,4,7,3},{3,5,8,9,1,2,6,4,7},

    {8,2,1,9,3,5,4,6,7}, {3,5,1,2,9,8,6,7,4},

    {4,7,8,9,1,2,5,3,6}, {4,7,3,5,1,2,6,8,9},

    {9,1,3,5,8,6,2,4,7}, {2,6,1,9,8,3,5,7,4},

    {5,3,7,9,1,8,2,6,4}, {7,1,3,2,5,8,9,4,6}

    };

    int i,j;

    (4);

    for(i=0;i<10;i++) {

    for(j=0;j<9;j++) {

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

    if((5))printf(",");

    }

    printf(" \n" );

    }

    getch( );

    }


    正确答案:(1)b[k--] (2)b[n++] (3)b[n] (4)jsValue(a) (5)j=7
    (1)b[k--] (2)b[n++] (3)b[n] (4)jsValue(a) (5)j=7 解析:在主函数中先要调用函数jsValue()对数组a进行处理,所以(4)空应填入“jsValue(a)”。然后输出数组元素,同一行的元素之间用逗号分隔,所以(5)空应填入“j=7”。
    函数jsValue()是将数组按题目要求进行排序。通过观察发现处理后的数组中元素的顺序与原来的顺序相反,并且每一行中没有与第一个数相同的数,所以是从后往前处理,也就是将每组从最后往前倒序逐个问第一个数比较,比它大的就放到临时数组b中的最后,比它小的就放到临时数组b中的最前面,以次类推,所以(1)空应填入“b[k- -]”,(2)空应填入“b[n++],(3)空应填入“b[n]”。最后将b数组赋给a数组。

  • 第14题:

    已知一个栈的进栈序列是1,2,3,…,n,其输出序列的第一个元素是i(1≤i≤n),则第j(1≤j≤n)个出栈元素是()。

    A.i

    B.n-i

    C.j-i+1

    D.不确定


    参考答案:D

  • 第15题:

    已知栈S初始为空,对于一个符号序列a1a2a3a4a5(入栈次序也是该次序),当用I表示入栈、O表示出栈,则通过栈S得到符号序列a2a4a5a3a1的操作序列为______。

    A.I O I I O O I O O I

    B.I I O I O I O I O O

    C.I O O I I O I O I O

    D.I I O I I O I O O O

    A.

    B.

    C.

    D.


    正确答案:D

  • 第16题:

    设有字符序列(Q,H,C,Y,P,A,M,S,R,D,F,X),新序列(F, H,C,D,P,A,M,Q,R,S,Y,X)是下列哪一个排序算法的一趟扫描的结果? ( )

    A.起泡排序

    B.初始步长为4的希尔排序

    C.二路归并排序

    D.以第一元素为分界元素的快速排序


    正确答案:D

  • 第17题:

    下列语句序列执行后,k的值是 ( ) int j=8,k=15; for(int i=2;i!=j;i++) {j-=2;k++;}

    A.18

    B.15

    C.16

    D.17


    正确答案:D

  • 第18题:

    阅读以下说明和代码,填补代码中的空缺,将解答填入答题纸的对应栏内。 【说明】 下面的程序利用快速排序中划分的思想在整数序列中找出第k小的元素(即将元素从小到大排序后,取第k个元素)。 对一个整数序列进行快速排序的方法是:在待排序的整数序列中取第一个数作为基准值,然后根据基准值进行划分,从而将待排序的序列划分为不大于基准值者(称为左子序列)和大于基准值者(称为右子序列),然后再对左子序列和右子序列分别进行快速排序,最终得到非递减的有序序列。 例如,整数序列“19, 12, 30, 11,7,53, 78, 25"的第3小元素为12。整数序列“19,12,7,30,11,11,7,53,78,25,7"的第3小元素为7。 函数partition(int a[ ], int low,int high)以a[low]的值为基准,对a[low]、a[low+1]、…、 a[high]进行划分,最后将该基准值放入a[i] (low≤i≤high),并使得a[low]、a[low+1]、,..、 A[i-1]都小于或等于a[i],而a[i+1]、a[i+2]、..、a[high]都大于a[i]。 函教findkthElem(int a[],int startIdx,int endIdx,inr k)在a[startIdx]、a[startIdx+1]、...、a[endIdx]中找出第k小的元素。

    【代码】 include <stdio.h> include <stdlib.h> Int partition(int a [ ],int low, int high) {//对 a[low..high]进行划分,使得a[low..i]中的元素都不大于a[i+1..high]中的元素。 int pivot=a[low]; //pivot表示基准元素 Int i=low,j=high; while(( 1) ){ While(i<j&&a[j]>pivot)--j; a[i]=a[j] While(i<j&&a[i]<=pivot)++i; a[j]=a[i] } (2) ; //基准元素定位 return i; } Int findkthElem(int a[ ],int startIdx,int endIdx, int k) {//整数序列存储在a[startldx..endldx]中,查找并返回第k小的元素。 if (startldx<0 ||endIdx<0 || startIdx>endIdx || k<1 ||k-1>endIdx ||k-1<startIdx) Return-1; //参数错误 if(startIdx<endldx){ int loc=partition(a, startIdx, endldx); ∥进行划分,确定基准元素的位置 if (loc==k-1) ∥找到第k小的元素 return (3) ; if(k-1 <loc) //继续在基准元素之前查找 return findkthElem(a, (4) ,k); else //继续在基准元素之后查找 return findkthElem(a, (5) ,k); } return a[startIdx]; } int main() { int i, k; int n; int a[] = {19, 12, 7, 30, 11, 11, 7, 53, 78, 25, 7}; n= sizeof(a)/sizeof(int) //计算序列中的元素个数 for (k=1;k<n+1;k++){ for(i=0;i<n;i++){ printf(“%d/t”,a[i]); } printf(“\n”); printf(“elem %d=%d\n,k,findkthElem(a,0,n-1,k));//输出序列中第k小的元素 } return 0; }


    正确答案:1、i!=j或者i<j
    2、a[i]=pivot
    3、a[loc]
    4、startIdx,loc-1  
    5、loc+1,endIdx

  • 第19题:

    若一个栈的输入序列为1,2,3…,n,输出序列的第一个元素是i,则第j个输出元素是()。

    A.i-j-1
    B.i-j
    C.j-i+l
    D.不确定

    答案:D
    解析:
    栈是一种后进先出的线性表结构,但本题无法确定输入和输出的时间顺序,即不一定是在所有元素输入栈后再进行输出。

  • 第20题:

    A.超螺旋结构
    B.启动子序列
    C.S-D序列
    D.α-螺旋结构
    E.回文序列

    16S核糖体特异结合的序列是( )。

    答案:C
    解析:

  • 第21题:

    下列各语句序列中,能够将变量u、s中最大值赋值到变量t中的是()。

    • A、if(u>s)t=u;t=s;
    • B、t=s;if(u>s)t=u;
    • C、if(u>s)t=s;elset=u;
    • D、t=u;if(u>s)t=s;

    正确答案:B

  • 第22题:

    试证明:若借助栈由输入序列12…n得到的输出序列为p1p2…pn(它是输入序列的一个排列),则在输出序列中不可能出现这样的情形:存在着i<j<k使pj<pk<pi


    正确答案:因为输入序列是从小到大排列的,所以若pj<pk<pi,则可以理解为通过输入序列pjpkpi可以得到输出序列pipjpk,显然通过序列123是无法得到312的,所以不可能存在着i<j<k使pj<pk<pi

  • 第23题:

    问答题
    假设以S和X分别表示入栈和出栈的操作,则初态和终态均为空栈的入栈和出栈的操作序列可以表示为仅由S和X组成的序列。称可以操作的序列为合法序列(例如,SXSX为合法序列,SXXS为非法序列)。试给出区分给定序列为合法序列或非法序列的一般准则,并证明:两个不同的合法(栈操作)序列(对同一输入序列)不可能得到相同的输出元素(注意:在此指的是元素实体,而不是值)序列。

    正确答案: 任何前n个序列中S的个数一定大于X的个数。
    设两个合法序列为:
    T.1=S……X……S……
    T.2=S……X……X……
    假定前n个操作都相同,从第n+1个操作开始,为序列不同的起始操作点。由于前n个操作相同,故此时两个栈(不妨为栈A、B)的存储情况完全相同,假设此时栈顶元素均为a。
    第n+1个操作不同,不妨T1的第n+1个操作为S,T2的第n+1个操作为X。T1为入栈操作,假设将b压栈,则T1的输出顺序一定是先b后a;而T2将a退栈,则其输出顺序一定是先a后b。由于T1的输出为……ba……,而T2的输出顺序为……ab……,说明两个不同的合法栈操作序列的输出元素的序列一定不同。
    解析: 暂无解析

  • 第24题:

    问答题
    设有森林 B=(D,S), D={A,B,C,D,E,F,G,H,I,J}, r∈S r={〈A,B〉,〈A,C〉,〈A,D〉,〈B,E〉,〈C,F〉,〈G,H〉,〈G,I〉,〈I,J〉} 请回答: 写出此二叉树的前序、中序、后序遍历序列。

    正确答案: 前序遍历序列:ABECFDGHIJ
    中序遍历序列:EBFCDAHJIG
    后序遍历序列:EFDCBJIHGA
    解析: 暂无解析