11、对于序列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)

题目

11、对于序列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();}

更多“11、对于序列s,能够返回序列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( );

    }


    正确答案:(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数组。

  • 第2题:

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

    A.i

    B.n-i

    C.j-i+1

    D.不确定


    参考答案:D

  • 第3题:

    设有字符序列(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

  • 第4题:

    下列语句序列执行后,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

  • 第5题:

    阅读以下说明和 C 代码,填补代码中的空缺,将解答填入答题纸的对应栏内。 【说明】 对一个整数序列进行快速排序的方法是:在待排序的整数序列中取第一个数作为基准值,然后根据基准值进行划分,从而将待排序列划分为不大于基准值者(称为左子序列)和大于基准值者(称为右子序列),然后再对左子序列和右子序列分别进行快速排序, 最终得到非递减的有序序列。 函数 quicksort(int a[],int n)实现了快速排序,其中,n 个整数构成的待排序列保存在数组元素 a[0]-a[n-1]中。

    【C 代码】 include < stdio.h> void quicksort(int a[] ,int n) { int i ,j; int pivot = a[0]; //设置基准值 i =0; j = n-l; while (i< j) { while (i<j &&(1)) j-- //大于基准值者保持在原位置 if (i<j) { a[i]=a[j]; i++;} while (i,j &&(2)) i++; //不大于基准值者保持在原位置 if (i<j) { a[j]=a[i]; j--;} } a[i] = pivot; //基准元素归位 if ( i>1) (3) ; //递归地对左子序列进行快速排序 if ( n-i-1>1 ) (4) ; //递归地对右子序列进行快速排序 } int main () { int i,arr[ ] = {23,56,9,75,18,42,11,67}; quicksort ( (5) ); //调用 quicksort 对数组 arr[ ]进行排序 for( i=0; i<sizeof(arr) /sizeof(int); i++ ) printf(" %d\t" ,arr[i]) ; return 0; }


    正确答案:
    (1) a[j]> pivot 或    a[j]>= pivot    或等价形式
    (2) a[i] <= pivot      或    a[i] < pivot      或等价形式
    (3) quicksort(a ,i) 或 quicksort(a,j)    或等价形式
    (4) quicksort(a+i+1,n-i-1)  或 quicksort(a+j+1,n-j -1)        或等价形式
    注: a+i+1可表示为 &a[i+1] ,a+j+1可表示为 &a[j+1]
    (5) arr,sizeof(arr)/sizeof(int)
    注: sizeof(arr)/sizeoftint) 可替换为 8

  • 第6题:

    阅读以下说明和代码,填补代码中的空缺,将解答填入答题纸的对应栏内。【说明】下面的程序利用快速排序中划分的思想在整数序列中找出第 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

  • 第7题:

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

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

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

  • 第8题:

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

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

    正确答案:E

  • 第9题:

    假设以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……,说明两个不同的合法栈操作序列的输出元素的序列一定不同。

  • 第10题:

    设有森林 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

  • 第11题:

    问答题
    如果只想得到一个序列中第k个最小元素之前的部分排序序列,最好采用什么排序方法?为什么?对于序列{57,40,38,11,13,34,48,75,25,6,19,9,7},得到其第4个最小元素之前的部分序列{6,7,9,11},使用所选择的排序算法时,要执行多少次比较?

    正确答案: 采用堆排序最合适,依题意可知只需取得第k个最小元素之前的排序序列时,堆排序的时间复杂度Ο(n+klog2n),若k≤nlog2n,则得到的时间复杂性是Ο(n)。
    对于上述序列得到其前4个最小元素,使用堆排序实现时,执行的比较次数如下:初始建堆:比较20次,得到6;
    第一次调整:比较5次,得到7;
    第二次调整:比较4次,得到9;
    第三次调整:比较5次,得到11。
    解析: 暂无解析

  • 第12题:

    问答题
    设有森林 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
    解析: 暂无解析

  • 第13题:

    现有字母序列(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指示的位置上,第一趟扫描就此宣告结束。

  • 第14题:

    下面算法是实现对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
    解析:算法中的控制结构是两重循环,所以基本操作是在内层循环中的“比较”,它的重复执行次数是:对时间复杂度而言,只需要取最高项,并忽略常数系数。

  • 第15题:

    对于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
    解析:小根堆中元素比它本身的根小,它和它的兄弟没有大小关系。

  • 第16题:

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

    A.IIOIIOIOOOB.IOIOIOIOIOC.IOOIIOIOIOD.IIOOIOIOOO


    正确答案:A

  • 第17题:

    阅读以下说明和代码,填补代码中的空缺,将解答填入答题纸的对应栏内。 【说明】 下面的程序利用快速排序中划分的思想在整数序列中找出第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

  • 第18题:

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

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

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

  • 第19题:

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

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

    答案:C
    解析:

  • 第20题:

    下面语句序列执行后,K的值是() int i=6,j=8,k=10,m=7; if(!(i>j|m>k++)) k++;

    • A、9
    • B、10
    • C、11
    • D、12

    正确答案:D

  • 第21题:

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


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

  • 第22题:

    如果只想得到一个序列中第k个最小元素之前的部分排序序列,最好采用什么排序方法?为什么?对于序列{57,40,38,11,13,34,48,75,25,6,19,9,7},得到其第4个最小元素之前的部分序列{6,7,9,11},使用所选择的排序算法时,要执行多少次比较?


    正确答案:采用堆排序最合适,依题意可知只需取得第k个最小元素之前的排序序列时,堆排序的时间复杂度Ο(n+klog2n),若k≤nlog2n,则得到的时间复杂性是Ο(n)。
    对于上述序列得到其前4个最小元素,使用堆排序实现时,执行的比较次数如下:初始建堆:比较20次,得到6;
    第一次调整:比较5次,得到7;
    第二次调整:比较4次,得到9;
    第三次调整:比较5次,得到11。

  • 第23题:

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

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

  • 第24题:

    单选题
    下面语句序列执行后,K的值是() int i=6,j=8,k=10,m=7; if(!(i>j|m>k++)) k++;
    A

    9

    B

    10

    C

    11

    D

    12


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