网友您好, 请在下方输入框内输入要搜索的题目:

题目内容 (请给出正确答案)

开始往输入串末尾和分析栈stack中放“#”,然后把文法开始符号压栈。预测分析程序总是按_________和________。

A.stack栈顶符号X 最后的输入符号b

B.stack栈顶符号X 当前输入符号a

C.stack栈尾符号X 当前输入符号a

D.stack栈尾符号X 最后的输入符号b


参考答案和解析
stack栈顶符号X、当前输入符号a
更多 “开始往输入串末尾和分析栈stack中放“#”,然后把文法开始符号压栈。预测分析程序总是按_________和________。A.stack栈顶符号X 最后的输入符号bB.stack栈顶符号X 当前输入符号aC.stack栈尾符号X 当前输入符号aD.stack栈尾符号X 最后的输入符号b” 相关考题
考题 ●试题七阅读以下说明和C++程序,将应填入(n)处的字句写在答题纸的对应栏内。【说明】以下程序的功能是设计一个栈类stackT,并建立一个整数栈。【程序】#includeiostream.h#includestdliB.hconst int Max=20;∥栈大小templateclass Tclass stack{∥栈元素数组T s[Max];∥栈顶下标int top;public:stack(){top=-1;∥栈顶初始化为-1}void push(const T &item);∥item入栈T pop();∥出栈int stackempty()const;∥判断栈是否为空};templateclass Tvoid stackT::push(const T &item){if(top== (1) ){cout"栈满溢出"endl;exit (1) ;}top++;s[top]=item;}templateclass TT stackT::pop(){T temp;if(top== (2) ){cout″栈为空,不能出栈操作″endl;exit (1) ;}temp=s[top];top--;return temp;}templateclass Tint stackT::stackempty()const{return top==-1;}void main(){stackintst;int a[]={1,2,3,4,5 };cout"整数栈"endl;cout"入栈序列:"endl;for(int i=0;i4;i++){couta[i]" ";(3) ;}coutendl"出栈序列:";while( (4) )cout (5) " ";coutendl;}

考题 ●在编译程序中,语法分析的方法有自底向上分析和自顶向下分析。自底向上分析方法自左向右扫描输入符号串,通过 (46) 分析其语法是否正确。例如, (47) 就是一种自底向上的分析方法,与其他自底向上分析方法不同,它是根据 (48) 来进行归约的。自顶向下分析方法从文法的开始符号出发,判断其能否 (49) 出输入符号串。采用自顶向下分析方法时,要求文法不含有 (50) 。(46) A.归约-移进B.归约-归约C.移进-归约D.移进-移进(47) A.算符优先分析法B.LL (1) 分析法C.递归子程序分析法D.预测分析法(48) A.短语B.素短语C.句柄D.直发短语(49) A.归约B.移进C.推理D.推导(50) A.右递归B.左递归C.直接左递归D.直接右递归

考题 请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2,此工程包含有一个源程序文件proj2.cpp,其中定义了Stack类和ArrayStack类。 Stack是一个用于表示数据结构“栈”的类,栈中的元素是字符型数据。Stack为抽象类,它只定义了栈的用户接口,如下所示: 公有成员函数 功能 push 入栈:在栈顶位置添加一个元素 pop 退栈:取出并返回栈顶元素 ArrayStack是Stack的派生类,它实现了Stack定义的接口。ArrayStack内部使用动态分配的字符数组作为栈元素的存储空间。数据成员maxSize表示的是栈的最大容量,top用于记录栈顶的位置。成员函数push和pop分别实现具体的入栈和退栈操作。 请在程序中的横线处填写适当的代码,然后删除横线,以实现上述功能。此程序的正确输出结果应为: a,b,C C,b,a 注意:只在指定位置编写适当代码,不要改动程序中的其他内容,也不要删除或移动“//****料found****”。 //proj2.cpp includeiostream using namespacc std; class Stack{ public: virtual void push(char C)=0; virtual char pop=0; };class ArrayStack:public Stack{ char*P; int maxSizc; int top; public: ArravStack(int s) { top=0; maxSize=s: //*********found********* P=______; } ~ArrayStack { //*********found********* _______; } void push(char c) } if(top==maxSize){ cerr”Overflow! \n”: return; } //*********found********* _______; top++: } char pop { if(top==0){ cerr”Underflow!、n”; return‘\0’; } Top--; //*********found********* ______; } }; void f(StacksRef) { char ch[]={‘a’,‘b’,‘c’}; coutch[0]”,”ch[1]”,”ch[2]endl; sRef.push(oh[0]);sRef.push(ch[1]);sRef.push(ch[2]); coutsRef.poP”,”; coutsRef.poP”,”; coutsRef.poPendl; } int main { ArrayStack as(10); f(as): return 0: }

考题 设输入序列为1、2、3、4、5,依次执行进栈、进栈、进栈、出栈、进栈、进栈、出栈、出栈,则栈顶栈底分别是______。A.5和4B.4和3C.3和2D.2和1

考题 ( 15 )请将下列栈类 Stack 补充完整class Stack{private:int pList[100]; // int 数组 , 用于存放栈的元素int top; // 栈顶元素 ( 数组下标 )public:Stack():top(0){}void Push(const int item); // 新元素 item 压入栈int Pop(void); // 将栈顶元素弹出栈};void Stack::Push(const int item){if(top == 99) // 如果栈满 , 程序终止exit(1);top++; // 栈顶指针增 1___________;}int Stack::Pop(){if(top0) // 如果栈空 , 程序终止exit(1);return pList[top--];}

考题 以下哪一个不是栈的基本运算( )。A)往栈中任意位置插入一个元素B)从栈中删除一个元素C)把栈的栈顶元素读到变量中D)将栈置为空栈

考题 阅读以下应用说明、图和Java代码,根据要求回答问题1至问题5。【说明】Stack类是java. ntil包中专门用来实现栈的工具类。以下Java程序是一个不使用库函数而实现字符串反转的程序。例如,输入:123456,则输出:654321:输入:asdfeg,则输出:gefdsa。【Java程序】import java.applet.Applet;import java.awt.*;import java.awt.event.*;import java.util.*;public class UseStack extends Applet implements ActionListener{ Stack MyStack;Label prompt=new Label("输入要反转字符:");Button pushBtn=new Button("压栈");Button popBtn=new Button("弹栈"); //反转TextField input=new TextField(5);int[] DrawStack =new int[10]; //记录堆栈中数据int[] PoppedOut=new int[20]; //记录被弹出的数据int StackCnt=0; //记录模拟堆栈的数组中的数据个数String msg=" ";public void init(){ MyStack=new Stack();add(prompt);add(input);add(pushBtn);add(popBtn);pushBtn.addActionListener(this);(1)}public void paint(Graphics g){ for (int i=10; i<StackCnt; i++) //模拟显示堆栈内部的数据排列情况{ g.drawRect(50,200-i*20,80,20);g.drawString(Integer.toString(DrawStack[i]),80,215-i*20);}for (int i=0;(2) ) //显示被弹出的数据g.drawString(Integer.toString(PoppedOut[i]),200+i*20,100);g.drawString("堆栈",70,236);g.drawString("栈底",135,225);g.drawString("栈顶",160,225-StackCnt*20);g.drawString(msg,200,140);}public void actionPerformed( (3) ){ if (e.getAct ionCommand () == "压栈") //压栈操作{ if(StackCnt<10){ MyStack.push(new Integer( (4) ));DrawStack[StackCnt++]=Integer.parseInt(input.getText() );input.setText (" ");}elsemsg="输入数据过多,请先弹栈!"}else if (e.getActionCommand () == "弹栈") //弹栈操作{ if( (5) ){ StackCnt--;PoppedOut[PopCnt++]=[(Integer)(MyStack.pop())).intValue();}elsemsg="堆栈已空,不能再弹栈!";}repaint();}}

考题 自底向上分析开始时,首先在栈底放置什么符号,然后将输入符号逐个推入栈内()。 A界符#及开始符号SB开始符号SC界符#号D当前的输入符号

考题 以下程序实现栈的入栈和出栈的操作。其中有两个类:一个是节点类node,它包含点值和指向上一个节点的指针 prev;另一个类是栈类 stack, 它包含栈的头指针 top。生成的链式栈如下图所示。〈IMG nClick=over(this) title=放大 src="tp/jsj/2jc++j28.1.gif"〉下面是实现程序,请填空完成此程序。include 〈iostream〉using namespace std;class stack;class node{int data;node *prev;public:node(int d, node *n){data=d;prev=n;}friend class stack;};class stack{node *top; //栈头public:stack(){top=0;}void push(int i){node *n=【 】;top=n;}int pop(){node *t=top;if (top){top=top-〉prev;int c= t-〉data;delete t;return c;}return 0;}int main (){stack s;s.push(6);s.push(3);s.push (1);return 0;}

考题 自顶向下分析方法从文法的开始符号出发,判断其能否( )出输入符号串。A.归纳B.归约C.推理D.推导

考题 阅读以下说明和C++程序,将应填入(n)处的字句写在对应栏内。【说明】以下程序的功能是设计一个栈类stack<T>,并建立一个整数栈。【程序】include < iostream. h >include < stdlib. h >const int Max =20; //栈大小template < class T >class stack{ //栈元素数组T s[Max]; //栈顶下标int top;public:stack( ){top =-1; //栈顶初始化为-1}void push( const T item); //item入栈T pop( ); //出栈int stackempty( ) const; //判断栈是否为};template < class T >void stack <T >::push(const T item){if(top==(1)){cout <<"栈满溢出" <<endl;exit(1);}top ++s[top] = item;}template < class T >T stack<T> ::pop(){T temp;if(top==(2)){cout <<"栈为空,不能出栈操作" < < endl;exit(1);}temp =s[top];top --;return temp;}template < class T >int stack < T >:: stackempty( ) const{ return top == -1;{void main( ){stack <int> st;int a[] ={1,2,3,4,5};cout <<"整数栈" <<endl;cout <<"入栈序列:" <<endl;for(int i=0;i<4;i ++){cout <<a[i] <<" ";(3);}cout << endl <<"出栈序列";while((4))tout<<(5)<<" ";cout< < endl;}

考题 在编译程序中,语法分析的方法有自顶向下分析和自底向上分析。自顶向下分析方法从文法的开始符号出发,判断其能否(151)出输入符号串。采用自顶向下分析方法时,要求文法不含有(152)。自底向上分析方法自左向右扫描输入符号串,通过(153)分析其语法是否正确。例如,(154)就是一种自底向上的分析方法,与其它自底向上分析方法不同,它是根据(155)来进行归约的。A.归纳B.归约C.推理D.推导

考题 自上而下的语法分析方法的基本思想是:从文法的开始符号开始,根据给定的输入串并按照 文法的产生式一步一步的向下进行直接推导,试图推导出文法的句子,使之与给定的输入串 匹配。 () 此题为判断题(对,错)。

考题 自下而上的语法分析方法的基本思想是从待识别的输入串开始逐步()到文法的开始符号。 A.归约B.推导C.递归D.逆序

考题 下面是一个栈类的模板,其中push函数将元素i压入栈顶,pop函数弹出栈顶元素。栈初始为空,top值为0,栈顶元素在stack[top-1]中,在下面横线处填上适当的语句,完成栈类模板的定义。template<class t>class Tstack{enum{size=1000};T stack[size]int top;public:Tsack():top(0){}void push(const Ti){if(top<size)stack[top++]=i;}T pop(){if(top==O)exit(1);//栈空时终止运行retum【 】;}};

考题 假定栈用顺序的方式存储,栈类型stack定义如下:TYPE stack=RECORDA: ARRAY[1..M0OF datatype;t:0..M0;END;下面是栈的一种基本运算的实现:PROCEDURE xxxx(VAR s:stack)BEGINIF s.t=0THEN print('underflow')ELSE s.t:=s.t-1;END;请问这是栈的哪种基本运算?( )。A) 栈的推入B) 栈的弹出C) 读栈顶元素D) 将栈置为空栈A.B.C.D.

考题 请将下列栈类Stack的横线处补充完整。class Stack{private:int pList[100]; ∥int数组,用于存放栈的元素int top; ∥栈顶元素(数组下标)public:Stack():top(0){}void Push(const int item); ∥新元素item

考题 阅读以下说明和C函数,将(1)~(5)空缺处的字句填写完整。[说明]计算机在处理算术表达式时,首先将其转换为后缀表达式。例如,表达式“46+5*120-37)”的后缀表达式形式为“46 5 120 37-*+”。计算后缀表达式时,从左至右扫描后缀表达式:若遇到运算对象,则压入栈中;遇到运算符,则从栈中弹出相关运算对象进行计算,并将运算结果压入栈中。重复以上过程,直到后缀表达式扫描结束。例如,后缀表达式“46 5 120 37-*+”的计算过程如下:a.依次将46、5、120、37压入栈中;b.遇到“-”,取出37、120,计算120-37=83,将其压入栈中;c.遇到“*”,取出83、5,计算5×83=415,将其压入栈中;d.遇到“+”,取出415、46,计算46+415=461,将其压入栈中;e.表达式结束,则计算过程完成。函数computing(char expr[],int*result)的功能是基于栈计算后缀形式的表达式(以串形式存入字符数组 expr)的值,并通过参数result返回该值。函数的返回值为-1/0,分别表示表达式有/无错误。假设表达式中仅包含数字、空格和算术运算符号,其中所有项均以空格分隔,且运算符仅包含加(“+”)、减(“-”)、乘(“*”)、除(“\”)。函数computing中所用栈的基本操作的函数原型说明如下。● void InitStack(STACK*s):初始化栈。● void Push(STACK*s,int e):将一个整数压栈,栈中元素数目增1。● void Pop(STACK*s):栈顶元素出栈,栈中元素数目减1。● int Top(STACK s):返回非空栈的栈顶元素值,栈中元素数目不变。● int IsEmpty(STACKs):若s是空栈,则返回1;否则返回0。[C函数]

考题 阅读下列说明和C代码,将应填入(n)处的字句写在对应栏内。【说明】栈(Stack)结构是计算机语言实现中的一种重要数据结构。对于任意栈,进行插入和删除操作的一端称为栈顶(Stock Top),而另一端称为栈底(Stock Bottom)。栈的基本操作包括:创建栈(NewStack)、判断栈是否为空(IsEmpty)、判断栈是否已满(IsFull)、获取栈顶数据(Top)、压栈/入栈(Push)、弹栈/出栈(Pop)。当设计栈的存储结构时,可以采取多种方式。其中,采用链式存储结构实现的栈中各数据项不必连续存储(如下图所示)。以下C代码采用链式存储结构实现一个整数栈操作。【C代码】typedef struct List {int data; //栈数据struct List* next; //上次入栈的数据地址}List;typedef struct Stack{List* pTop; //当前栈顶指针}Stack;Stack* NewStack() {return (Stack*) calloc(1/sizeof(Stack));}int IsEmpty(Stack* S){//判断栈S是否为空栈if((1))return 1;return 0;}int Top(Stack* s){//获取栈顶数据。若栈为空,则返回机器可表示的最小整数if(IsEmpty(S))return INT_ MIN;return (2);}void Push(Stack* S,int theData) {//将数据theData压栈List* newNode;newNode=(List*)calloc(1/sizeof (List));newNode->data=theData;newNode->next=S->pTop;S->pTop=(3);}void Pop(Stack* S) {//弹栈List* lastTop;if(IsEmpty(S) ) return;lastTop=S->pTop;S->pTop=(4);free(lastTop);}define MD(a) a<<2int main(){int i;Stack* myStack;myStack= NewStack();Push(myStack,MD(1));Push(myStack,MD(2));Pop(myStack);Push(myStack,MD(3)+1);while( !IsEmpty(myStack) ){printf("%d",Top(myStack));Pop(myStack);}return 0;}以上程序运行时的输出结果为:(5)

考题 试题七(共 15 分)阅读以下说明和C程序,将应填入 (n) 处的字句写在答题纸的对应栏内。【说明】现有 n(n 1000)节火车车厢,顺序编号为 1,2,3,...,n,按编号连续依次从 A方向的铁轨驶入,从 B 方向铁轨驶出,一旦车厢进入车站(Station)就不能再回到 A方向的铁轨上;一旦车厢驶入 B 方向铁轨就不能再回到车站,如图 7-1所示,其中 Station 为栈结构,初始为空且最多能停放 1000 节车厢。下面的 C 程序判断能否从 B 方向驶出预先指定的车厢序列,程序中使用了栈类STACK,关于栈基本操作的函数原型说明如下:void InitStack(STACK *s):初始化栈。void Push(STACK *s,int e): 将一个整数压栈,栈中元素数目增 1。void Pop(STACK *s):栈顶元素出栈,栈中元素数目减 1。int Top(STACK s):返回非空栈的栈顶元素值,栈中元素数目不变。int IsEmpty(STACK s):若是空栈则返回 1,否则返回 0。【C 程序】includestdio.h/*此处为栈类型及其基本操作的定义,省略*/int main( ){STACK station;int state[1000];int n; /*车厢数*/int begin, i, j, maxNo; /*maxNo 为 A端正待入栈的车厢编号*/printf("请输入车厢数: ");scanf("%d",n);printf("请输入需要判断的车厢编号序列(以空格分隔) : ");if (n 1) return -1;for (i = 0; in; i++) /* 读入需要驶出的车厢编号序列,存入数组 state[] */scanf("%d",state[i]);(1) ; /*初始化栈*/maxNo = 1;for(i = 0; i n; ){/*检查输出序列中的每个车厢号 state[i]是否能从栈中获取*/if ( (2) ){/*当栈不为空时*/if (state[i] == Top(station)){ /*栈顶车厢号等于被检查车厢号*/printf("%d ",Top(station));Pop(station); i++;}elseif ( (3) ){printf("error\n");return 1;}else {begin = (4) ;for(j = begin+1; j=state[i]; j++) {Push(station, j);}}}else { /*当栈为空时*/begin = maxNo;for(j = begin; j=state[i]; j++){Push(station, j);}maxNo = (5) ;}}printf("OK");return 0;}

考题 下面不属于LL(1)分析器的组成部分是()A、LL(1)总控程序B、LL(1)分析表C、分析栈D、源程序串

考题 Stack栈

考题 在栈中,下列说法正确的是()。A、每次插入总是在栈顶,每次删除也总是在栈顶B、每次插入总是在栈顶,每次删除总是在栈底C、每次插入总是在栈底,每次删除总是在栈顶D、每次插入总是在栈底,每次删除也总是在栈底

考题 单选题下面不属于LL(1)分析器的组成部分是()A LL(1)总控程序B LL(1)分析表C 分析栈D 源程序串

考题 单选题文法 G 所描述的语言是()的集合。A 文法G的字母表V中所有符号组成的符号串B 文法G的字母表V的闭包V*中的所有符号串C 由文法的开始符号推出的所有终极符串D 由文法的开始符号推出的所有符号串

考题 单选题在编译程序中,语法分析的方法有自底向上分析和自顶向下分析。自底向上分析方法自左向右扫描输入符号串,通过__(1)__分析其语法是否正确。例如,__(2)__就是一种自底向上的分析方法。与其他自底向上分析方法不同,它是根据__(3)__来进行归约的。自顶向下分析方法从文法的开始符号出发,判断其能否__(4)__出输入符号串。采用自顶向下分析方法时,要求文法不含有__(5)__。空白(2)处应选择()A 算符优先分析法B 预测分析法C 递归子程序分析法D LL(1)分析法

考题 单选题在编译程序中,语法分析的方法有自底向上分析和自顶向下分析。自底向上分析方法自左向右扫描输入符号串,通过__(1)__分析其语法是否正确。例如,__(2)__就是一种自底向上的分析方法。与其他自底向上分析方法不同,它是根据__(3)__来进行归约的。自顶向下分析方法从文法的开始符号出发,判断其能否__(4)__出输入符号串。采用自顶向下分析方法时,要求文法不含有__(5)__。空白(1)处应选择()A 归约一移进B 移进-移进C 移进-归约D 归约-归约

考题 单选题在编译程序中,语法分析的方法有自底向上分析和自顶向下分析。自底向上分析方法自左向右扫描输入符号串,通过__(1)__分析其语法是否正确。例如,__(2)__就是一种自底向上的分析方法。与其他自底向上分析方法不同,它是根据__(3)__来进行归约的。自顶向下分析方法从文法的开始符号出发,判断其能否__(4)__出输入符号串。采用自顶向下分析方法时,要求文法不含有__(5)__。空白(3)处应选择()A 短语B 素短语C 直接短语D 句柄