更多“若过程p第k次被调用,则p的DISPLAY表中就有k+1个元素。”相关问题
  • 第1题:

    主程序调用findmax函数求出数组中最大元素在数组中的下标,( )中需填写的内容是。 #include<stdio.h> findmax(int*s,int t,int*k) { int p; for(p=0,*k=p;p<t;p++)if(s[p]>s[*k])( );} main() { int a[10],i,k; for(i=0;i<10;i++)scanf("%d",&a[i]); findmax(a,10,&k); printf("%d%d\n" ,k,a[k]);}

    A.k=p

    B.*k=p

    C.k=p-s

    D.*k=p-s


    正确答案:B
    解析:数组元素可以通过数组首地址和下标的方式来引用,数组元素的下标是从0开始的,也可以将数组首地址赋给一个指针变量,通过指针和下标的方式来引用数组元素。注意:通过数组的首地址引用数组元素。

  • 第2题:

    以下程序调用findmax函数求数组中值最大的元素在数组中的下标,请选择填空:includefind

    以下程序调用findmax函数求数组中值最大的元素在数组中的下标,请选择填空: #include<stdio.h> findmax(int*s,int t,int*k) { int p; for(p=0,*k=p;p<t;p++) if(s[p]>s[*k])________; } main() { int a[10],i,k; for(i=0;i<10;i++)scanf("%d",&a[i]); findmax(a,10,&k); printf("%d,%d\n",k,a[k]); }

    A.k=p

    B.*k=p-s

    C.k=p-s

    D.*k=p


    正确答案:D
    解析:k是—个指针,它的值是—个地址,要通过它为主函数的变量改变数据,必须使用*p,边样就可以把—个下标数赋给p指针指向的那个内存单元,所以横线处应填入*k=p。

  • 第3题:

    假定有k个关键字互为同义词,若用线性探查法把这些同义词存人散列表中,至少要进行(48)次探查。

    A.L(k+1)/2

    B.k(k+1)

    C.2k(k+1)

    D.不确定


    正确答案:A
    解析:存入第1个,需要探查一次;存入第2个,需要探查两次j....;存人第k个需要探查k次;因此至少要进行1+2+3+……+k=k(k+1)/2次探查。

  • 第4题:

    阅读以下说明和 C 代码,填补代码中的空缺,将解答填入答题纸的对应栏内。 【说明】 函数 GetListElemPtr(LinkList L,int i)的功能是查找含头结点单链表的第i个元素。若找到,则返回指向该结点的指针,否则返回空指针。 函数DelListElem(LinkList L,int i,ElemType *e) 的功能是删除含头结点单链表的第 i个元素结点,若成功则返回 SUCCESS ,并由参数e 带回被删除元素的值,否则返回ERROR 。 例如,某含头结点单链表 L 如图 4-1 (a) 所示,删除第 3 个元素结点后的单链表如 图 4-1 (b) 所示。图4-1

    define SUCCESS 0 define ERROR -1 typedef int Status; typedef int ElemType; 链表的结点类型定义如下: typedef struct Node{ ElemType data; struct Node *next; }Node ,*LinkList; 【C 代码】 LinkList GetListElemPtr(LinkList L ,int i) { /* L是含头结点的单链表的头指针,在该单链表中查找第i个元素结点: 若找到,则返回该元素结点的指针,否则返回NULL */ LinkList p; int k; /*用于元素结点计数*/ if (i<1 ∣∣ !L ∣∣ !L->next) return NULL; k = 1; P = L->next; / *令p指向第1个元素所在结点*/ while (p && (1) ) { /*查找第i个元素所在结点*/ (2) ; ++k; } return p; } Status DelListElem(LinkList L ,int i ,ElemType *e) { /*在含头结点的单链表L中,删除第i个元素,并由e带回其值*/ LinkList p,q; /*令p指向第i个元素的前驱结点*/ if (i==1) (3) ; else p = GetListElemPtr(L ,i-1); if (!p ∣∣ !p->next) return ERROR; /*不存在第i个元素*/ q = (4) ; /*令q指向待删除的结点*/ p->next = q->next; /*从链表中删除结点*/ (5) ; /*通过参数e带回被删除结点的数据*/ free(q); return SUCCESS; }


    正确答案:(1) k<i
    (2) p = p->next
    (3) p=L
    (4) p->next
    (5) *e = q->data

  • 第5题:

    以下子例行程序用于实现向一维数组下标为P的数组元素处插入一个整数X
    SUBROUTINE INSERT(B,N,P,X)
    INTEGER B(N),X,P
    DO 20 K=N-1,P,-1
    B(K+1)=______
    20 CONTINUE
    B(P)=X
    END
    为使程序完整,应在______处放入( )。

    A.X
    B.K
    C.B.(P)
    D.B.(K)

    答案:D
    解析:

  • 第6题:

    若人群中某疾病发生的阳性人数X服从二项分布,从该人群中随机抽取n个人,则阳性人数X不小于k人的概率为()

    • A、P(X≥k)
    • B、P(X≥k+1)
    • C、P(X≤k)
    • D、P(X≤k-1)

    正确答案:A

  • 第7题:

    若一个图中包含有k个连通分量,若要按照深度优先搜索的方法访问所有顶点,则必须调用()次深度优先搜索遍历的算法。

    • A、 k
    • B、 1
    • C、 k-1
    • D、 k+1

    正确答案:A

  • 第8题:

    在线性表的单链表存储中,若一个元素所在结点地址为p,则其后继结点的地址为()


    正确答案:p->next

  • 第9题:

    假定有k个关键字互为同义词,若用线性探测法把这k个关键字存入散列表中,至少要进行多少次探测?()

    • A、k-1次
    • B、k次
    • C、k+1次
    • D、k(k+1)/2次

    正确答案:D

  • 第10题:

    填空题
    在线性表的单链表存储中,若一个元素所在结点地址为p,则其后继结点的地址为()

    正确答案: p->next
    解析: 暂无解析

  • 第11题:

    问答题
    (1)两个并发进程并发执行,其中,A、B、C、D、E是原语,试给出可能的并发执行路径。  Process P             Process Q  begin                 begin               A;                  D;              B;                  E;              C;               end;           end;  (2) 两个并发进程P1和P2并发执行,它们的程序分别如下:        P1             P2         repeat            repeat          k:=k×2;        print k;          k:=k+1;         k:=0;       until false;       until false;  若令k的初值为5,让P1先执行两个循环,然后,P1和P2又并发执行了一个循环,写出可能的打印值,指出与时间有关的错误。

    正确答案: (1) 共有10种交错执行的路径:
    A、B、C、D、E;A、B、D、E、C;A、B、D、C、E;
    A、D、B、E、C;A、D、B、C、E;A、D、E、B、C;
    D、A、B、E、C;D、A、B、C、E;D、A、E、B、C;D、E、A、B、C。
    (2) 把语句编号,以便于描述:
    P1             P2
    repeat            repeat
    K:=k×2;   ①     print k;  ③
    K:=k+1;    ②     k:=0;   ④
    until false;        until false;
    1)K的初值为5,故P1执行两个循环后,K=23。
    2)语句并发执行有以下情况:
    ①、②、③、④,这时的打印值为:47
    ③、④、①、②,这时的打印值为:23
    ①、③、②、④,这时的打印值为:46
    ①、③、④、②,这时的打印值为:46
    ③、①、②、④,这时的打印值为:23
    ③、①、④、②,这时的打印值为:23
    由于进程P1和P2并发执行,共享了变量K,故产生了‘结果不唯一’。
    解析: 暂无解析

  • 第12题:

    单选题
    若一个图中包含有k个连通分量,若要按照深度优先搜索的方法访问所有顶点,则必须调用()次深度优先搜索遍历的算法。
    A

     k

    B

     1

    C

     k-1

    D

     k+1


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

  • 第13题:

    下面的算法是计算不带节点的单链表长度,其中能正确执行的是______。

    A.Function Length(L:Link) integer begin p:=L; j:=0; while p↑.next≠NIL DO [p:=p↑.next; j:=j+1 ] return(j) end;

    B.Function Length(L:Link) integer begin p:=L; k:=0; while p≠NIL DO [p:=p↑.next; k:=k+1) return(k) end;

    C.Function Length(L:Link)integer begin p:=L;k:=0; repeat k:=k+1; p=p↑.next until p=NIL return(k-1) end;

    D.Function Length(L:Link)integer begin p:=L↑.next; k:=1; while p≠NIL DO [k:=k+1; p:=p↑.next] return(k) end;


    正确答案:B

  • 第14题:

    主程序调用findmax函数求出数组中最大元素在数组中的下标,括号中需填写的内容是

    #include<stdio.h>

    findmax(int*s,int t,int *k)

    { int p;

    for(p=0, *k=p; p<t; p++)if(s[p]>s[*k])( ); }

    main()

    { int a[10],i,k;

    for(i=0; i<10;i++)scanf(" %d",&a[i]);

    findmax(a,10,&k);

    printf(" %d%d\n",k,a[k];) }

    A.k=p

    B.*k=p

    C.k=p-s

    D.*k=p-s


    正确答案:B
    解析:考查通过指针来引用一维数组的方法。数组元素可以通过数组首地址和下标的方式来引用,数组元素的下标是从0开始的,也可以将数组首地址赋给一个指针变量,通过指针和下标的方式来引用数组元素。 通过数组的首地址引用数组元素。

  • 第15题:

    过程P1调用P2时,连接数据不包含(11)。

    A.嵌套层次显示表

    B.老SP

    C.返回地址

    D.全局DISPLAY地址


    正确答案:A
    解析:连接数据包含老SP,返回地址和全局DISPLAY地址,故选A。

  • 第16题:

    若一个子程序起始地址为3K,调用指令CALL的内存地址为K+1,则执行CALL指令所要执行指令的地址为( )。

    A.3K

    B.3K+1

    C.3K-1

    D.K+2


    正确答案:A

  • 第17题:

    阅读以下说明和C代码,填补代码中的空缺,将解答填入答题纸的对应栏内。
    [说明]
    函数GetListElemPtr(LinkList L,int i)的功能是查找含头结点单链表的第i个元素。若找到,则返回指向该结点的指针,否则返回空指针。
    函数DelListElem(LinkList L,int i,ElemType *e)的功能是删除含头结点单链表的第i个元素结点,若成功则返回SUCCESS,并由参数e带回被删除元素的值,否则返回ERROR。
    例如,某含头结点单链表L如下图(a)所示,删除第3个元素结点后的单链表如下图(b)所示。
    1.jpg

    #define SUCCESS 0 #define ERROR -1 typedef intStatus; typedef intElemType;

    链表的结点类型定义如下:

    typedef struct Node{ ElemType data; struct Node *next; }Node,*LinkList; [C代码] LinkListGetListElemPtr(LinkList L,int i) { /*L是含头结点的单链表的头指针,在该单链表中查找第i个元素结点; 若找到,则返回该元素结点的指针,否则返回NULL */ LinkList p; int k; /*用于元素结点计数*/ if(i<1 || !L || !L->next) return NULL; k=1; p=L->next; /*令p指向第1个元素所在结点*/ while(p &&______){ /*查找第i个元素所在结点*/ ______; ++k; } return p; } StatusDelListElem(LinkList L,int i,ElemType *e) { /*在含头结点的单链表L中,删除第i个元素,并由e带回其值*/ LinkList p,q; /*令P指向第i个元素的前驱结点*/ if(i==1) ______; else p=GetListElemPtr(L,i-1); if(!P || !p->next) return ERROR; /*不存在第i个元素*/ q=______; /*令q指向待删除的结点*/ p->next=q->next; //从链表中删除结点*/ ______; /*通过参数e带回被删除结点的数据*/ free(q); return SUCCESS; }


    答案:
    解析:
    k<i
    p=p->next
    p=L
    p->next
    *e=q->data


    【解析】

    本题考查C语言的指针应用和运算逻辑。
    本问题的图和代码中的注释可提供完成操作的主要信息,在充分理解链表概念的基础上填充空缺的代码。
    函数GetListElemPtr(LinkList L,int i)的功能是在L为头指针的链表中查找第i个元素,若找到,则返回指向该结点的指针,否则返回空指针。描述查找过程的代码如下,其中k用于对元素结点进行计数。

    k=1; p=L->next; /*令p指向第1个元素所在结点*/

  • 第18题:

    当调用了程序:M98P L时,若其中的L被省略时,默认为调用()。

    • A、0次
    • B、1次
    • C、2次
    • D、3次

    正确答案:B

  • 第19题:

    设二维数组A[0…m-1][0…n-1]按行优先顺序存储在内存中,第一个元素的地址为p,每个元素占k个字节,则元素aij的地址为()。

    • A、p+[i*n+j-1]*k
    • B、p+[(i-1)*n+j-1]*k
    • C、p+[(j-1)*n+i-1]*k
    • D、p+[j*n+i-1]*k

    正确答案:A

  • 第20题:

    在线性表的单链接存储中,若一个元素所在结点的地址为p,则其后继结点的地址为(),若假定p为一个数组a中的下标,则其后继结点的下标为()。


    正确答案:p->next;a[p].next

  • 第21题:

    填空题
    在线性表的单链存储中,若一个元素所在结点的地址为P,则其后继结点的地址为(),若假定P为一个数组A中的下标,则其后继结点的下标为()。

    正确答案: p->next,a【p】-next
    解析: 暂无解析

  • 第22题:

    单选题
    若某人群某疾病发生的阳性数X服从二项分布,则从该人群中随机抽出n个人,阳性数X不少于k人的概率为()。
    A

    P(k+1)+P(k+2)+…+P(n)

    B

    P(0)+P(1)+…+P(k)

    C

    P(0)+P(1)+…+P(k+1)

    D

    P(k)+P(k+1)+…+P(n)

    E

    P(1)+P(2)+…+P(k)


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

  • 第23题:

    判断题
    若过程p第k次被调用,则p的DISPLAY表中就有k+1个元素。
    A

    B


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