执行以下程序段后,变量e的值是______。
a$="3":b$="5"
c=Val(a$)+Val(b$)
d=Val(a$+b$)
e=c+d
第1题:
有如下程序: #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
第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
第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
第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。