niusouti.com
更多“执行以下程序段后,变量e的值是______。a$="3":b$="5"c=Val(a$)+Val(b$)d=Val(a$+b$)e=c+d ”相关问题
  • 第1题:

    有如下程序:includeusing namespace std;class MyClass{public: MyClass(int x):val(

    有如下程序: #include<iostream> using namespace std; class MyClass{ public: MyClass(int x):val(x) {} void Print() const {cout<<"const:val="<<val<<'\t';} void Print() {cout<<"val="<<val<<'t';} private: int val; }; int main() const MyClass obj1(10); MyClass obi2(20); obj1.Print(); obj2.Print(); return 0; } 程序的输出结果是( )。

    A.val=10 const:val=20

    B.const:val=10 const:val=20

    C.const:val=10 val=20

    D.val=10 val=20


    正确答案:C
    解析:此题考查的是常成员函数的重载。常成员函数是使用const关键字说明的函数。COHM关键字可用于区分重载函数。此时,常对象调用常成员函数,一般对象调用一般成员函数;题目中的Print()就是通过const重载的两个成员函数,主函数中声明的。obj1是常对象,obj2是一般对象。故输出结果是const::val=10val=20。

  • 第2题:

    有文法G及其语法制导翻译如下所示(语义规则中的*和+分别是常规意义下的算术运算符): E→E(1) ∧ T {E.val = E(1).val * T.val} E→T {E.val = T.val} T→T(1)# n {T.val = T(1).val + n.val } T→ n {T.val = n.val} 则分析句子3 ∧ 3 # 4其值为()。

    A.10

    B.21

    C.14

    D.24


    14

  • 第3题:

    采用语法制导翻译思想,表达式E 的“值”的描述如下: 产生式 语义动作 S′→E {print E.VAL} E→E1+E2 {E.VAL∶=E1.VAL+E2.VAL} E→E1*E2 {E.VAL∶=E1.VAL*E2.VAL} E→(E1) {E.VAL∶=E1.VAL} E→n {E.VAL∶=n.LEXVAL} 请采用LR 分析方法,给出表达式(5*4+8)*2 的语法树并在各结点注明语义值VAL。


    语法 和语义

  • 第4题:

    有如下程序: #inClude<iostream> using namespaCe std; Class MyClass{ publiC: MyClass(int X):val(X){} void PrintConst}tout<<”Const:val=”<<val<<’\t’;} void Print{tout<<”val=”<<val<<’\t’;} private: int val; }; int main{ Const MyClass objl(10); MyClass obj2(20); objl.Print; obj2.Print; retum 0; } 执行这个程序的输出结果是( )。

    A.val=10 Const:val=20

    B.Const:val=10 Const:val=20

    C.Const:val=10 val=20

    D.val=10 val=20


    正确答案:C
    本题考查常对象、常成员函数及构造函数。常对象只能调用常成员函数,普通对象调用普通成员函数。所以本题中obj1为常对象,执行obj1.print后,会执行常构造函数,输出const:val=10;而obj2为普通对象,执行obj2.print时,会执行默认构造函数,输出va1=20。放答案为C。

  • 第5题:

    采用语法制导翻译思想,表达式E 的“值”的描述如下: 产生式 语义动作 S′→E {print E.VAL} E→E1+E2 {E.VAL∶=E1.VAL+E2.VAL} E→E1*E2 {E.VAL∶=E1.VAL*E2.VAL} E→(E1) {E.VAL∶=E1.VAL} E→n {E.VAL∶=n.LEXVAL} 如采用LR 分析方法,给出表达式(5*4+8)*2 的语法树并在各结点注明语义值VAL。


    所谓语法制导翻译,是为语言的文法规则配上相应的语义子程序,在语法分析过程中,当某条规则被用来扩展一个文法非终结符(自上而下的分析),或者被用来归约可归约串(自下而上的语法分析)时,执行相应的语义子程序,完成属性的计算和中间代码的生成。