参考答案和解析
正确答案: struct Worker*r
解析: 暂无解析
更多“填空题假定要动态分配一个类型为struct Worker的具有n个元素的数组,并由r指向这个动态数组,则使用的语句表达式为()=malloc(n*sizeof(struct Worker))。”相关问题
  • 第1题:

    有以下程序: inClude structNODE{ int num; structNODE*next; }; main() {StructN00E

    有以下程序:

    #inClude <stdlib.h>

    struct NODE{

    int num;

    struct NODE *next;

    };

    main()

    { Struct N00E *p,*q,*r;

    int sum;0;

    p=(struct NODE *)malloc(sizeof(struct NODE));

    q=(struct NODE *)malloc(sizeof(struct NODE));

    r=(struct NODE *)malloc(Sizeof(struct NODE));

    p->num=1;q->num=2;r->num=3;

    p->next=q;q->next=r;r->next=NULL;

    sum+=q->next->num;sum+=p->num;

    printf("%d\n",sum);

    }

    执行后的输出结果是

    A.3

    B.4

    C.5

    D.6


    正确答案:B
    解析:本题中定义了一个结点structNODE,在主函数中定义了三个结点变量指针p、q和r,接着通过malloc函数分配了三个结点并让p、q和r分别指向他们,再接着给p、q和r所指向的结点的hum域赋值为1、2、3,然后让结点p指向q,让q指向r,r指向NULL。显然q->next->num的值为指针r所指向结点的num域的值为3,p->num的值为指针p所指向结点的num域的值为1,故最后输出s的值为3+1=4。所以,4个选项中选项B符合题意。

  • 第2题:

    有以下程序 include struct NODE {int num;stmct NODE*next;}; main() { struct NODE

    有以下程序

    #include<stdlib.h>

    struct NODE

    { int num;stmct NODE*next;};

    main()

    { struct NODE*p,*q,*r;

    p=(struct NODE*)malloc(sizeof(struct NODE));

    q=(struct NODE*)malloc(sizeof(struct NODE));

    r=(struct NODE*)malloc(sizeof(struct NODE));

    p->num=10;q->num=20;r->num=30;

    p->next=q;q->next=r;

    printf(“%d\n”,p->num+q->next->num);

    }

    程序运行后的输出结果是

    A.10

    B.20

    C.30

    D.40


    正确答案:D
    解析:主函数中首先定义了三个结构体指针变量p,q,r。然后调用内存分配函数分别为其分配地址空间,程序中变量q->num的值为20,指针变量q->next指向指针变量r,r->num的值为30,所以变量q->next->num的值为30,因此,表达式q-> num+q->next->num的值为20+30=50。

  • 第3题:

    有以下程序: include struct NODE{ int num; struct NODE*next; } main() {structNOD

    有以下程序:

    #include<stdlib.h>

    struct NODE{

    int num;

    struct NODE *next;

    }

    main()

    { struct NODE *p,*q,*r;

    int sum=0;

    p=(struct NODE *)malloc(sizeof(struct NODE));

    q=(Struct NODE *)malloc(sizeof(struct NODE));

    r=(Struct NODE *)malloc(sizeof(struct NODE));

    p->num=1; q->num=2; r->num=3;

    p->next=q; q->next=r; r->next=NULL;

    sum+=q->next->num;sum+=p->num;

    printf("%d\n",sum);

    }

    执行后的输出结果是( )。

    A.3

    B.4

    C.5

    D.6


    正确答案:B
    解析:本题中定义了一个结点结构stmct NODE,在主函数中定义了3个结点指针p、q和r,接着通过malloc函数分配了3个结点并让p、q和r分别指向他们,再接着给p、q和r所指向的结点的num域赋值为1、2、3,然后让结点p指向q,让q指向r, r指向NULL。显然q->next->num的值为指针r所指向结点的hum域的值为3,p->hum的值为指针p所指向结点的num域的值为1,故最后输出s的值为3+1=4。所以,4个选项中选项B符合题意。

  • 第4题:

    有以下程序: include struct NODE { int num; struct NODE*next; }; main() { struct

    有以下程序:

    #include <stdlib.h>

    struct NODE

    { int num; struct NODE *next; };

    main()

    { struct NODE *p,*q,*r;

    p=(struct NODE*)malloc(sizeof(struct NODE));

    q=(struct NODE*)mallloc(sizeof(struct NODE));

    r=(struct NODE*)malloc(sizeof(struct NODE));

    p->num=10;q->num=20; r->num=30;

    p->next=q;q->next=r;

    printf("%d\n",p->num+q->next->num);

    }

    程序运行后的输出结果是( )。

    A.10

    B.20

    C.30

    D.40


    正确答案:D
    解析:本题在主函数中首先定义了3个结构体指针变量p,q,r。然后调用内存分配函数分别为其分配地址空间,程序中变量p->num的值为10,指针变量q->next指向指针变量r,r->num的值为30,所以变量q->next->num的值为30,因此,表达式p->num+q->next->num的值为10+30=40。所以4个选项中D正确。

  • 第5题:

    有以下程序 include struct NODE { int num;struct NODE*next;}; main() { struct NO

    有以下程序

    #include<stdlib.h>

    struct NODE

    { int num;struct NODE*next;};

    main()

    { struct NODE*p,*q,*r;

    p=(struct NODE*)malloc(sizeof(struct NODE));

    q=(struct NODE*)malloc(sizeof(struct NODE));

    r=(struct NODE*)malloc(sizeof(struct NODE));

    p->num=10;q->num=20;r->num=30;

    p->next=q;q->next=r;

    printf("%d\n",p->num+q->next->num);}

    程序运行后的输出结果是

    A.10

    B.20

    C.30

    D.40


    正确答案:D
    解析:该题中考查的是简单的单链表,下图就是赋完值后的示意图:容易看到p->num=10,而q->next就是r,所以q->next->num=30,故答案为40。

  • 第6题:

    有以下程序 include struct NODE {int num;struct NODE*next;} main() {struct NODE

    有以下程序

    #include<stdlib.h>

    struct NODE

    {int num;struct NODE*next;}

    main()

    {struct NODE *P,*q,*r;

    p=(struct NODE *)malloc(sizeof(struct NODE));

    q=(struct NODE *)malloc(sizeof(struet NODE));

    r=(struct NODE*)malloc(sizeof(struct NODE)):

    p->num=10;q->num=20;r->num=30;

    p->next=q;q->next=r;

    printf("%d\n",p->num+q->next->num):

    }

    程序运行后的输出结果是( )

    A.10

    B.20

    C.30

    D.40


    正确答案:D

  • 第7题:

    有以下程序: include struct NODE{int nurn;struct NODE *next; }; main() { struct

    有以下程序:

    #include <stdlib.h>

    struct NODE{

    int nurn;

    struct NODE *next;

    };

    main()

    { struct NODE *p,*q,*r;

    int sum=0;

    P=(struct NODE*)malloc(sizeof(struct NODE));

    q=(struct NODE*)malloc(sizeof(struct NODE));

    r=(struct NODE*)malloc(sizeof(struct NODE));

    p->num=1;q->num=2;r->num=3;

    p->next=q;q->next=r;r->next=NULL;

    sum+=q->next->num;sum+=p->num;

    Printf("%d\n",sum);

    }

    执行后的输出结果是( )。

    A.3

    B.4

    C.5

    D.6


    正确答案:B
    解析:本题中定义了一个结点structNODE,在主函数中定义了三个结点变量指针p、q和r,接着通过malloc函数分配了三个结点并让p、q和r分别指向他们,再接着给p、q和r所指向的结点的num域赋值为1、2、3,然后让结点p指向小让q指向r,r指向NULL。显然q->next->num的值为指针r所指向结点的num域的值为3,p->num的值为指针p所指向结点的num域的值为1,故最后输出s的值为3+1=4。所以,4个选项中选项B符合题意。

  • 第8题:

    执行malloc(sizeof(struct BB))函数调用时,得到的动态存储空间能够保存具有struct BB结构类型的一个对象。()

    A

    B



  • 第9题:

    假定要动态分配一个类型为struct Worker的对象,并由r指针指向这个对象,则使用的表达式为()=malloc(sizeof(struct Worker))。
    struct Worker* r

  • 第10题:

    一维数组定义语句intn=10,a[n];则()

    • A、数组长度为10
    • B、数组中最后一个元素的下标是n-1
    • C、数组中第一个元素是a[1]
    • D、语法错

    正确答案:D

  • 第11题:

    判断题
    执行malloc(sizeof(struct BB))函数调用时,得到的动态存储空间能够保存具有struct BB结构类型的一个对象。()
    A

    B


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

  • 第12题:

    填空题
    假定要动态分配一个类型为struct Worker的对象,并由r指针指向这个对象,则使用的表达式为()=malloc(sizeof(struct Worker))。

    正确答案: struct Worker* r
    解析: 暂无解析

  • 第13题:

    有以下程序: include include struct NODE {int num;struct NODE *next; }

    有以下程序:

    #include <stdio.h>

    #include <stdlib.h>

    struct NODE

    { int num;

    struct NODE *next;

    };

    main()

    { struet NODE *p,*q,*r;

    int sum=0;

    p=(struct NODE *) malloc(sizeof(struct NODE));

    q=(struct NODE *) malloc(sizeof(struet NODE));

    r=(struct NODE *) malloc(sizeof(struct NODE));

    P- >num=1;q- >num=2;r->num=3;

    p- >next=q;q- >next=r;r- >next=NULL;

    sum + =q- >next- >num;sum + =P- >num;

    printf("%d\n",sum);

    }

    执行后的输出结果是( )

    A.3

    B.4

    C.5

    D.6


    正确答案:B
    解析:程序中q->next=r,所以q->next->num即为r->num,值为3,而p->num=1,所以sum=3+1=4。

  • 第14题:

    设有结构体类型定义: struct try { int one; float two; }*str;若要动态开辟一个结构单元,使指针str指向其首地址,正确的语句是______。

    A.str=(try*)malloc(sizeof(try));

    B.*str=(struct try*)malloc(sizeof(struct try));

    C.str=(strucy try*)malloc(sizeof(struct try));

    D.str=(struc try)malloc(sizeof(struct try));


    正确答案:C
    解析:由于在ANSIC中malloc函数返回的地址为void,故在调用函数时,必须利用强制类型转换将其转换成所需的类型。

  • 第15题:

    有以下程序 include struct NODE{ int num; struct NODE *next;}; main( )

    有以下程序

    #include <stdlib.h>

    struct NODE{

    int num;

    struct NODE *next;};

    main( )

    { struct NODE *p,*q,*r;

    int sum=0;

    p=(struct NODE *)malloc(sizeof(struct NODE));

    q=(struct NODE *)malloc(sizeof(struct NODE));

    r=(struct NODE *)malloc(sizeof(struct NODE));

    p->num=1;q->num=2;r->num=3;

    p->next=q;q->next=r;r->next=NULL;

    sum+=q->next->num;sum+=p->num;

    printf(“%d\n”,sum);}

    执行后的输出结果是

    A.3

    B.4

    C.5

    D.6


    正确答案:B
    解析:q—>next—>num=3,p—>num=1,所以结果为4。

  • 第16题:

    有以下程序 include gtruet NODE {intnum;struct NODE *next;}; main() {struct NODE

    有以下程序

    #include <stdlib.h>

    gtruet NODE

    { int num; struct NODE *next; };

    main()

    {

    struct NODE *p,*q,*r;

    p=(struct NODE*)malloc(sizeof (struct NODE));

    q=(struct NODE*)malloc(sizeof (struct NODE));

    r=(struct NODE*)malloc(sizeef (struct NODE));

    p->num=10; q->num=20; r->num=30;

    p->next=q; q->next-r;

    printf("%d\n",p->num+q->next->num);

    }

    程序运行后的输出结果是

    A.10

    B.20

    C.30

    D.50


    正确答案:D
    解析:本题考查的知识点是对结构体指针变量的正确引用与计算。主函数中首先定义了三个结构体指针变量p,q,r。然后调用内存分配函数分别为其分配地址空间,程序中变量q->num的值为20,指针变量q->next指向指针变量r,r->nnm的值为30,所以变量q->next->nm的值为30,因此,表达式q->num+q->next->num的值为20+30=50.所以4个选项中D正确。

  • 第17题:

    有以下程序: include struct NODE {int num;stmct NODE *next;}; main( ) { str

    有以下程序:

    #include<stdlib.h>

    struct NODE

    { int num;stmct NODE *next;};

    main( )

    { struct NODE * p, * q,* r;

    p=(struct NODE * )malloc(sizeof(struct NODE) );

    q=(struct NODE * )malloc(sizeof(struct NODE) );

    r=(struct NODE * )malloc(sizeof(struct NODE) );

    p->num=10; q->num=20; r->num=30;

    p->next=q; q->next=r;

    printf("%d\n",p->num+q->next->num);

    }

    程序运行后的输出结果是

    A.10

    B.20

    C.30

    D.40


    正确答案:D
    解析:本题主要考查利用结构体变量构成链表,链表关系如下:

  • 第18题:

    有以下程序 inGlude struct NODE { int num; struct NODE *next; } main() {struct N

    有以下程序

    #inGlude<stdlib.h>

    struct NODE {

    int num;

    struct NODE *next;

    }

    main()

    { struct NODE *p,*q,*r;

    int sum=0;

    p=(struct NODE*)malloc(sizeof(struct NODE));

    q=(struct NODE*)malloc(sizeof(struct NODE));

    r=(stnlct NODE*)malloc(sizeof(struct NODE));

    p->num=1;q->num=2;r->num=3;

    p->next=q;q->next;r;r->next=NULL;

    sum+=q->next->Num,sum+=p->num;

    printf("%d\n",sum);

    }

    执行后输出结果是

    A.3

    B.4

    C.5

    D.6


    正确答案:B
    解析:本题中定义了一个结点struct NODE,在主函数中定义了三个结点变量指针p、q和r,接着通过malloc函数分配了三个结点并让p、q和r分别指向他们,再接着给p、q和r所指向的结点的num域赋值为1、2、3,然后让结点p指向q,让q指向r,r指向NULL。显然q->next->num的值为指针r所指向结点的num域的值为3,p->hum的值为指针P所指向结点的num域的值为1,故最后输出s的值为3+1=4。

  • 第19题:

    下面程序的功能是建立一个有 3 个 结 点的单向循环链表,然后求各个 结 点数值域 data 中数据的和。请填空。

    include <stdio.h>

    include <stdlib.h>

    struct NODE{ int data;

    struct NODE *next;

    };

    main()

    { struct NODE *p,*q,*r;

    int sum=0;

    p=(struct NODE*)malloc(sizeof(struct NODE));

    q=(struct NODE*)malloc(sizeof(struct NODE));

    r=(struct NODE*)malloc(sizeof(struct NODE));

    p->data=100; q->data=200; r->data=200;

    p-> next =q; q-> next =r; r-> next =p;

    sum=p->data+p->next->data+r->next->next 【 19 】 ;

    printf("%d\n",sum);

    }


    正确答案:
    (16)答案->next->data解析:r->next->next->next指向的是r结点,r->next->next->next->data是r的数据域data中的数据。

  • 第20题:

    假定要动态分配一个类型为struct Worker的具有n个元素的数组,并由r指向这个动态数组,则使用的语句表达式为()=malloc(n*sizeof(struct Worker))。
    struct Worker*r

  • 第21题:

    假定AB为一个类,则执行 “AB *px=new AB[n];”语句时将()

    • A、 动态分配一个数组
    • B、 动态分配一个对象
    • C、 静态分配一个数组
    • D、 静态分配一个对象

    正确答案:A

  • 第22题:

    单选题
    假定AB为一个类,则执行 “AB *px=new AB[n];”语句时将()
    A

     动态分配一个数组

    B

     动态分配一个对象

    C

     静态分配一个数组

    D

     静态分配一个对象


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

  • 第23题:

    单选题
    有如下定义:struct st{ int a; float b;}x[10];FILE *fp;若文件已正确打开,且数组x的10个元素均已赋值,以下将数组元素写到文件中的语句错误的是(  )。
    A

    for(i=0; i<10; i++) fwrite(x,sizeof(struct st), 1,fp);

    B

    fwrite(x,10*sizeof(struct st), 1,fp);

    C

    fwrite(x,sizeof(struct st), 10,fp);

    D

    for(i=0; i<10; i++) fwrite(&x[i],sizeof(struct st), 1,fp);


    正确答案: A
    解析:
    A项中,因为函数fwrite中第三个参数为1,即每次写入1个结构体数据,x是数组的首地址,因此,每次写入的数据都是数组的首个结构体元素,没有将整个数组写入文件中去。答案选择A选项。