niusouti.com

8、以下代码描述的是Moore型状态机: always @(in or state) case (state) zero: begin out = 0; if (in) next_state = one; else next_state = zero; end …………

题目

8、以下代码描述的是Moore型状态机: always @(in or state) case (state) zero: begin out = 0; if (in) next_state = one; else next_state = zero; end …………


相似考题
更多“8、以下代码描述的是Moore型状态机: always @(in or state) case (state) zero: begin out = 0; if (in) next_state = one; else next_state = zero; end …………”相关问题
  • 第1题:

    下面程序的输出结果是( )。 public class Sun { public static void main(String args[ ]) { int i = 1; switch (i) { case 0: System.out.println("zero"); break; case 1: System.out.println("one"); case 2; System.out.println("two"); default: System.out.println("default"); } } }

    A.one

    B.one,default

    C.one,two,default

    D.default


    正确答案:C
    解析:该题考查对switch-case-break的理解。每个分支语句后面必须有break语句,否则程序向下执行,直到遇到break语句或程序结束。所以,该题i=1时执行case1分支语句,而case1分支语句后没有break语句,程序继续向下执行case2分支语句和 default分支语句。A只执行了case 1;B只执行了case 1和default;C;只执行了default。故本题的正确答案是C。

  • 第2题:

    以下程序的输出结果为【】。 include using namespace std; void initialize(int printNo

    以下程序的输出结果为【 】。

    include<iostream>

    using namespace std;

    void initialize(int printNo,int state=0);

    void initialize(int printNo=l,int state);

    int main()

    {

    initialize();

    return 0;

    }

    void initialize(int printNo,int state)

    {

    cout<<printNo<<","<<state<<end1;

    }


    正确答案:10
    1,0 解析:本题考核带有默认值的函数,本题中函数initialize()进行了两次函数原型的说明,使本来不带默认值的形参带上默认值。由于主函数中调用initialize()时没有给定实参,所以函数自动调用其参数默认值,输出1和0。

  • 第3题:

    下面程序的输出结果是( )。 public class Sun { public static void main(String args[ ]) { int i = 1; switch (i) { case 0: System.but.println("zero"); break; case 1: System.out.println("one"); case 2: System.out.println("two"); default: System.out.println ("default"); } } }

    A.one

    B.one, default

    C.one, two, default

    D.default


    正确答案:C
    解析:该题考查对switch-case-break的理解。每个分支语句后面必须有break语句,否则程序向下执行,直到遇到break语句或程序结束。所以,该题i=1时执行casel分支语句,而casel分支语句后没有break语句,程序继续向下执行case2分支语句和 default分支语句。A只执行了case 1:B只执行了casel和default;C:只执行了default。故本题的正确答案是C。

  • 第4题:

    下列语句能给数组赋值而不使用for循环的是

    A.myArray{[1]="One";[2]="Two";[3]="Three";}

    B.String s[5]=new String[]{"Zero", "One", "Two", "There", "Four"};

    C.String s[]=new String[]{"Zero", "One", "Two", "There", "Four"};

    D.String s[]=new String[]=|"Zero", "One", "Two", "There", "Four"};


    正确答案:C
    解析:A)、D)语法不正确,B)中s[5]的形式只能通过for循环的格式进行赋值,而不能直接赋值。C)中表达式左侧的“[]”说明现在定义一个数组,不需要指明数组长度,而表达式右侧“[]”在后面直接紧跟初始内容时也是不需要指定数组大小的,数组大小直接由初值长度决定。

  • 第5题:

    下面程序的输出结果为【】。include using namespace std;void initialize(int printNo,i

    下面程序的输出结果为【 】。

    include <iostream>

    using namespace std;

    void initialize(int printNo,int state=0);

    void initialize(int printNo=1,int state);

    int main()

    {

    initialize();

    return 0;

    }

    void initialize(int printNo, int state)

    {

    cout<<printNo<<","<<state<<end1;

    }


    正确答案:10
    1,0 解析:本题考核带有缺省值的函数,本题中函数initialize()进行了两次函数原型的说明,使本来不带默认值的形参带上默认值。由于主函数中调用initialize()时没有给定实参,所以函数自动调用其参数缺省值。输出1和0。

  • 第6题:

    请认真阅读以下关于某传输系统的技术说明、状态转换图及C++代码,根据要求回答问题1和问题2。

    【说明】

    传输门是传输系统中的重要装置。传输门具有Open(打开)、Closed(关闭)、Opening(正在打开)、StayOpen(保持打开)和Closing(正在关闭)5种状态。触发状态的转换事件有click、complete和timeout 3种,事件与其相应的状态转换如图6-18所示。

    下面的【C++代码1】与【C++代码2】分别用两种不同的设计思路对传输门进行状态模拟,请填补代码段中的空缺语句。

    【C++代码1】

    const int CLOSED = 1; const int PENING = 2;

    const int PEN = 3; const int CLOSING = 4;

    const int STAYOPEN = 5; //定义状态变量,用不同整数表示不同状态

    class Door {

    private:

    private:

    int state; //传输门当前状态

    void setState(int state) { this->state = stale; } //设置当前状态

    public:

    Door () :state (CLOSED) { };

    void getState() { //根据当前状态输出相应的字符串

    switch(state) {

    case OPENING: cout <<"OPENING" << endl; break;

    case CLOSED: cout << "CLOSED" << endl; break;

    case OPEN: cout << "OPEN" << endl; break;

    case CLOSING: cout << "CLOSING" << endl; break;

    case STAYOPEN: cout << "STAYOPEN" << endl; break;

    }

    }

    void click() { //发生click事件时进行状态转换

    if ( (1) ) setState(OPENING);

    else if ( (2) ) setState(CLOSING);

    else if ( (3) ) setState(STAYOPEN);

    }

    void timeout() { //发生timeout事件时进行状态转换

    if (state == OPEN) setState(CLOSING);

    }

    void complete() { //发生complete事件时进行状态转换

    if (state == OPENING) setState(OPEN);

    else if (state == CLOSING) setState(CLOSED);

    }

    };

    int main(){

    Door aDoor;

    aDoor.getState(); aDoor.click(); aDoor.getState(); aDoor.complete();

    aDoor.getState(); aDoor.click(); aDoor.getState(); aDoor.click();

    aDoor.getState(); return 0;

    }

    【C++代码2】

    class Door {

    public:

    DoorState *CLOSED, *OPENING, *OPEN, *CLOSING, *STAYOPEN, *state;

    Door();

    virtual ~Door() { ... //释放申请的内存,此处代码省略};

    void s


    正确答案:(1)state==CLOSED || state==CLOSING (2)state==OPENING || state==STAYOPEN (3)state==OPEN (4)state->click() (5)state->timeout() (6)state->complete() (7)door->setState(door->OPENING)
    (1)state==CLOSED || state==CLOSING (2)state==OPENING || state==STAYOPEN (3)state==OPEN (4)state->click() (5)state->timeout() (6)state->complete() (7)door->setState(door->OPENING) 解析:这是一道要求读者掌握状态转换图的程序设计与实现的综合题。本试题的解答思路如下。
    根据(1)空缺处所在的程序段给出的注释信息“发生click事件时进行状态转换”可知,(1)空缺处所在的方法为click,表示当发生click事件时应该发生什么状态转换。找出传输门响应事件与其状态转换图(见图6-18)与click事件相关的内容,并特别注意箭头所指的方向。由于发生click事件前的状态Closed、Closing分别跳转到状态Opening,因此(1)空缺处所填写的内容是“state == CLOSED || state == CLOSING”。
    同理,由如图6-18所示中的状态转换关系可知,发生click事件前的状态Opening、Stayopen分别跳转到状态Closing,即(2)空缺处所填写的内容是“state == OPENING || state == STAYOPEN”;发生click事件前的状态Open跳转到状态StayOpen,即(3)空缺处所填写的内容是“state == OPEN”。
    仔细阅读【C++代码2】程序段,由语句“private DoorState state=CLOSED;”可知,类Door的state成员变量用于记录类Door所处的状态,而state变量的类型为Doorstate*。由语句“virtual void click(){}”、“virtual void complete(){}”和“virtual void timeout(){}”可知,Doorstate中分别具有click、timeout和 complete方法用来响应对应的事件。根据(4)空缺处所在程序段“voidDoor::click()”可得,(4)空缺处所填写的内容是“state->click()”。
    同理,根据(5)空缺处所在程序段“void Door::timeout()”可得,(5)空缺处所填写的内容是“state->timeout()”:根据(6)空缺处所在程序段“void Door::complete()”可得,(6)空缺处所填写的内容是“state->complete()”。
    根据(7)空缺处所在程序段给出的注释信息“定义一个基本的Closed状态”和语句“void DoorClosed::click()”可知,(7)空缺处所填写的内容与传输门当前状态为Closed且发生Click事件时状态的迁移有关。结合如图6-18所示中的状态转换关系可知,在Click事件下Closed状态将迁移到Opening,因此(7)空缺处应该将传输门的状态设置为Opening。由于Doorstate变量存储了当前其存储的传输门的实例,因此可直接调用其方法setState设置状态。同时考虑到传输门的状态采用类的实例变量表示,故(7)空缺处所填写的内容为“door->setState(door->OPENING)”。

  • 第7题:

    下列语句能给数组赋值,而不使用for循环的是

    A.myArray{[1]="One";[2]="Two";[3]="Three";}

    B.String s[5]=new String[] {"Zero","One","Two","Three","Four"};

    C.String s[]=new String[] {"Zero","One","Two","Three","Four"};

    D.String s[]=new String[]= {"Zero","One","Two","Three","Four"};


    正确答案:C
    解析:字符串数组赋初值的方法有两种,一种是如选项C一样初始化。另外一种是先为每个数组元素分配引用空间,再为每个数组元素分配空间并赋初值。例如还可做如下赋值:
      string s[]=new String[5];
      s[0]="Zero";
      s[1]="One";
      s[2]="Two";
      s[3]="Three";
      s[4]="Four";

  • 第8题:

    针对以下程序段,对于变量c的取值,至少需要(61)个测试用例才能够满足语句覆盖的要求。c=((u8_t*)q->payload)[i];switch(c){case SLIP_END: sio_send(SLIP_ESC,netif->state); sio_send(SLIP_ESC_END,netif->state); break;case SLIP_ESC: sio_send(SLIP_ESC,netif->state); sio_send(SLIP_ESC_ESC,netif->state); break;default: sio_send(c,netif->state); break; }

    A.4

    B.3

    C.2

    D.1


    正确答案:B
    解析:本题考查白盒测试中测试用例的设计方法——语句覆盖法。
      语句覆盖法的概念如下。
      每一个可执行语句至少执行一次。
      此程序段中开关语句共有三个分支,对于变量c的取值,需要三个测试用例能够满足语句覆盖的要求。

  • 第9题:

    有如下代码段:

    switch ( x ){

    case 1:System.out.println("One");break;

    case 2:

    case 3:System.out.println("Two");break;

    default:System.out.println("end");

    }

    变量x的取值下列哪些情形时,能使程序输出"Two" 。

    A. 1

    B. 2

    C. 3

    D. default


    正确答案:BC

  • 第10题:

    英语中号码“96100”的表示方法是“()”。

    • A、nine six-one zero zero   
    • B、nine-six-one-zero-zero
    • C、nine-six one-zero-zero  
    • D、nine six one zero zero

    正确答案:D

  • 第11题:

    public static void main(String[]args){ String str="null"; if(str==null){ System.out.println("null"); }else(str.length()==0){ System.out.println("zero"); }else{ System.out.println("some"); } } What is the result?()

    • A、null
    • B、zero
    • C、some
    • D、Compilationfails.
    • E、Anexceptionisthrownatruntime.

    正确答案:D

  • 第12题:

    单选题
    public static void main(String[] args) {  String str = “null‟;  if (str == null) {  System.out.println(”null”);  } else (str.length() == 0) {  System.out.println(”zero”);  } else {  System.out.println(”some”);  }  }  What is the result?()
    A

     null

    B

     zero

    C

     some

    D

     Compilation fails.

    E

     An exception is thrown at runtime.


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

  • 第13题:

    对于常量定义zero(const zero = 0.0),zero是浮点型常量()

    此题为判断题(对,错)。


    参考答案:错

  • 第14题:

    publicstaticvoidmain(String[]args){Stringstr=null?;if(str==null){System.out.println(”null”);}else(str.length()==0){System.out.println(”zero”);}else{System.out.println(”some”);}}Whatistheresult?()

    A.null

    B.zero

    C.some

    D.Compilationfails.

    E.Anexceptionisthrownatruntime.


    参考答案:D

  • 第15题:

    编译和执行以下代码,输出结果是( )。 int i=1; switch (i) { case 0: System.out.print("zero,"); break; case 1: System.out.print("one,"); case 2: System.out.print("two,"); default: System.out.println("default"); }

    A.one,

    B.one,two,

    C.one,two,default

    D.default


    正确答案:C

  • 第16题:

    阅读以下说明和C++代码。

    【说明】

    传输门是传输系统中的重要装置。传输门具有Open(打开)、Closed(关闭)、Opening (正在打开)、StayOpen(保持打开)和Closing(正在关闭)五种状态。触发传输门状态转换的事件有click、complete和timeout三种。事件与其相应的状态转换如下图所示。

    下面的C++代码1与C++代码2分别用两种不同的设计思路对传输门进行状态模拟,请填补代码中的空缺。

    【C++代码1】

    const int CLOSED=1; const int PENING=2;

    const int PEN=3; const int CLOSING=4;

    const int STAYOPEN=5; //定义状态变量,用不同整数表示不同状态

    class Door {

    Private:

    int state; //传输门当前状态

    void setState(int state){ this->state=state;} //设置当前状态

    public:

    Door():state(CLOSED){};

    void getState(){ //根据当前状态输出相应的字符串

    switch(state){

    case OPENING: cout<<"OPENING"<<endl; break;

    case CLOSED: cout<<"CLOSED"<<endl; break;

    case OPEN: cout<<"OPEN"<<endl; break;

    case CLOSING: cout<<"CLOSING"<<endl; break;

    case STAYOPEN:cout<<"STAYOPEN"<<endl; break;

    }

    };

    void click() { //发生click事件时进行状态转换

    if ((1)) setState(OPENING);

    else if ((2)) setState(CLOSING);

    else if ((3)) setState(STAYOPEN);

    }

    void timeout(){ //发生timeout事件时进行状态转换

    if (state == OPEN) setState(CLOSING);

    }

    void complete(){ //发生complete事件时进行状态转换

    if (state == OPENING) setState(OPEN);

    else if (state == CLOSING) setState(CLOSED);

    }

    };

    int main(){

    Door aDoor;

    aDoor.getState();aDoor.click(); aDoor.getState();

    aDoor.complete();aDoor.getState(); aDoor.click();

    aDoor.getState();aDoor.click(); aDoor.getState(); return 0;

    }

    【C++代码2】

    class Door {

    public:

    DoorState *CLOSED,*OPENING,*OPEN,*CLOSING,*STAYOPEN,*state;

    Door();

    virtual~Door(){……//释放申请的内存,此处代码省略);

    void setState(DoorState *state) { this->state = state;}

    void getState(){

    //此处代码省略,本方法输出状态字符串,

    //例如,当前状态为CLOSED时,输出字符串为“CLOSED”

    };

    void click();

    void timeout();

    void complete();

    };

    Door::Door(){

    CLOSED = new DoorClosed(this); OPENING = new DoorOpening(this);

    PEN = new DoorOpen(this); CLOSING = new DoorClosing(this);

    STAYOPEN = new DoorStayOpen(this);state = CLOSED;

    }

    void Door :: click() {(4);)

    void Door :: timeout() {(5);)

    void Door :: complete() {(6);}

    class DoorState//定义一个抽象的状态,它是所有状态类的基类

    {

    protected:Door *door;

    public:

    DoorState(Door *door) {this->door = door;}

    virtual~DoorState(void);

    virtual void click() {}

    virtual void complete(


    正确答案:(1)state == CLOSED || state == CLOSING (2)state == OPENING || state == STAYOPEN (3)state == OPEN (4)state->click() (5)state->timeout() (6)state->complete() (7)door->setState(door->OPENING)
    (1)state == CLOSED || state == CLOSING (2)state == OPENING || state == STAYOPEN (3)state == OPEN (4)state->click() (5)state->timeout() (6)state->complete() (7)door->setState(door->OPENING) 解析:本题考查的是状态转换图的程序设计与实现。
    空(1)、(2)和(3)需要根据状态转换图来填写,空(1)、(2)和(3)所在的方法为click,表示当发生click事件时应该发生什么状态转换。根据代码可知,发生click事件时,状态分别跳转到OPENING,CLOSING和STAYOPEN,则发生click前的状态由状态转换图可以得到,分别为CLOSED或CLOSING、STAYOPEN或OPENING以及OPEN。
    代码2中空(4)、(5)和(6)考查当发生click、timeout以及complete事件的时候,状态应该如何迁移。类Door的state成员变量用于记录类Door所处的状态,而state变量的类型为DoorState *,DoorState中分别具有click、timeout和complete方法用来响应对应的事件,因此,空(4)、(5)和(6)分别为:state->click()、state->timeout()和 state->complete()。
    空(7)主要考查门的当前状态为CLOSED时,发生click事件时状态的迁移。根据状态图可知,CLOSED状态的在click事件下将迁移到OPENING,因此,此处应该将传输门状态设置为OPENING,DoorState变量存储了当前其存储的传输门的实例,因此,可直接调用其方法setState来设置状态,由于传输门状态采用类的实例变量表示,所以此处应该填写door->setState(door->OPENING)。
    代码1和代码2的区别是:代码2将状态间的转换规则封装到具体的类中,当状态转换图的转换规则发生变化时,只需更改部分对应类中的状态迁移规则,而代码1中的迁移规则散落在程序中,维护起来较为困难。

  • 第17题:

    以下语句正确的是:______。

    A.Select Case a Case b=1 Case “B” b=2 Case Else b=3 End Select

    B.Select Case a Case “A” b=1 Case “B” b=2 Case Default b=3 End Select

    C.Switch a Case “A” b=1 Case “B” b=2 Case Else b=3 End Switch

    D.Switch a Case “A” b=1 Case “B” b=2 Case Default b=3 End Select


    正确答案:A

  • 第18题:

    运行下列程序: x=InputBox("input value of x") Select Case X Case Is>0 y=y+1 Case Is=0 y=x+2 Case ELse y=x+3 End Select Print x;y 运行时,从键盘输入-5,输出的结果是( )。

    A.-7

    B.-9

    C.-8

    D.-10


    正确答案:A
    解析:本题考查Select Case选择语句的用法,在Select Case选择语句中,Case后面不但可以为指定的值,也可以为取值范围或者多个取值,如:Case1,2或者Casels>0等。本题x值没有改变,y值随x值的改变而改变,根据题意,从键盘输入-5,则y=x+3=-2,答案为A。

  • 第19题:

    有如下程序: x = InputBox("Input value of x") Select Case x Case Is > 0 y=y+1 Case Is = 0 y=x + 2 Case Else y=x + 3 End Select Print x, y运行时,从键盘输入-5,输出的结果是( )。

    A.-7

    B.-9

    C.-8

    D.-10


    正确答案:A
    解析:在SelectCase选择语句中,Case后面不但可以为指定的值,也可以为取值范围或者多个取值,如:Case1,2或者CaseIs>0等。本题x值没有改变,y值随x值的改变而改变,根据题意,从键盘输入-5,则y=x+3=-2。

  • 第20题:

    以下代码段的输出结果为1. int x = 0, y = 4, z = 5;2. if (x >2、{3. if (y <5、{4. Syst

    以下代码段的输出结果为

    1. int x = 0, y = 4, z = 5;

    2. if (x >2、{

    3. if (y<5、{

    4. System. out .println ( "message one" );

    5. }

    6. else {

    7. System.out.println( "message two");

    8. }

    9. }

    10. else if (z >5、{

    11. System.out.println("message three");

    12. }

    13. else {

    14. System.out.println( "message four");

    15. }

    A. message one

    B. message two

    C. message three

    D. message four


    正确答案:D

  • 第21题:

    public static void main(String[] args) {  String str = “null‟;  if (str == null) {  System.out.println(”null”);  } else (str.length() == 0) {  System.out.println(”zero”);  } else {  System.out.println(”some”);  }  }  What is the result?()

    • A、 null
    • B、 zero
    • C、 some
    • D、 Compilation fails.
    • E、 An exception is thrown at runtime.

    正确答案:D

  • 第22题:

    下列对条件语句、分支语句、固定循环次数语句、不定循环次数语句关键字排序正确的是()

    • A、if elseend;for end;switch case end;while end;
    • B、if elseend;switch case end;for end;while end;
    • C、for end;if else end;while end;switch case end;
    • D、while end;for end;switch case end;if else end;

    正确答案:B

  • 第23题:

    单选题
    下列对条件语句、分支语句、固定循环次数语句、不定循环次数语句关键字排序正确的是()
    A

    if elseend;for end;switch case end;while end;

    B

    if elseend;switch case end;for end;while end;

    C

    for end;if else end;while end;switch case end;

    D

    while end;for end;switch case end;if else end;


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

  • 第24题:

    单选题
    public static void main(String[]args){ String str="null"; if(str==null){ System.out.println("null"); }else(str.length()==0){ System.out.println("zero"); }else{ System.out.println("some"); } } What is the result?()
    A

    null

    B

    zero

    C

    some

    D

    Compilationfails.

    E

    Anexceptionisthrownatruntime.


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