A.S20
B.S21
C.S22
D.S23
第3题
A、Me.BackgroundImage =Nothing
B、Me.BackgroundImage =””
C、Form1.BackgroundImage =””
D、Form1.BackgroundImage =Nothing
第4题
词法分析程序设计与实现 【开发语言及实现平台或实验环境】 C/C++/C#,JAVA Microsoft Visual Studio 6.0/ Microsoft Visual Studio .NET, Eclipse 【实验目的】 (1)理解词法分析在编译程序中的作用 (2)加深对有穷自动机模型的理解 (3)掌握词法分析程序的实现方法和技术 【实验内容】 对一个简单语言的子集编制一个一遍扫描的词法分析程序。 【实验要求】 (1)待分析的简单语言的词法 1) 关键字 begin if then while do end 2) 运算符和界符 := + - * / < <=> >= <> = ; ( ) # 3) 其他单词是标识符(ID)和整形常数(NUM),通过以下正规式定义: ID=letter(letter|digit)* NUM=digitdigit* 4) 空格由空白、制表符和换行符组成。空格一般用来分隔ID、NUM、运算符、界符和关键字,词法分析阶段通常被忽略。 (2)各种单词符号对应的种别编码 单词符号 种别码 单词符号 种别码 begin 1 : 17 if 2 := 18 then 3 < 20 while 4 <> 21 do 5 <= 6 22 end> 23 letter(letter|digit)* 10 >= 24 digitdigit* 11 = 25 + 13 ; 26 - 14 ( 27 * 15 ) 28 / 16 # 0 (3)词法分析程序的功能 输入:所给文法的源程序字符串 输出:二元组(syn,token或sum)构成的序列。 syn为单词种别码; token为存放的单词自身字符串; sum为整形常数。 例如:对源程序begin x:=9;if x>0 then x:=2*x+1/3;end# 经词法分析后输出如下序列:(1,begin)(10,’x’) (18,:=) (11,9) (26,;) (2,if)…… 【实验步骤】 (1)程序总体结构 代码提示: main() { p=0; printf(“\n please input string:\n”); do{ 输入源程序字符串,送到缓冲区prog[p++]中 } while(ch!=’#’); p=0; do { scanner();//调用扫描子程序 switch(syn) { case 11:输出(数的二元组);break; case –1:输出(错误);break; default:输出(其他单词二元组); } } while(syn!=0); } (2)关键字表置初值 关键字作为特殊标识符处理,把它们预先安排在一张表格中(关键字表),当扫描程序识别标识符时,查关键字表。如能查到匹配的单词,则为关键字,否则为一般标识符。 (3)编写扫描子程序 代码提示: scanner() { ……. 读下一个字符送入ch; while(ch= =’ ’) 读下一个字符; if(ch是字母或数字) { while((ch是字母或数字)) { ch=>token; 读下一个字符; } token与关键字表进行比较,确定syn的值; } else if(ch是数字) { ………….. syn=11; } else swith(ch)//其他字符情况 { case’<’: ………… case’>’: ………… ……………………………. Default:syn=-1; } } (4)调试程序,验证输出结果。 【思考题】 (1)在编程过程中遇到了哪些问题,你是如何解决的。 (2)源程序若存在注释,如何实现词法分析,在现有程序基础上进行扩充。 【参考文献】 1. 张素琴等,编译原理(第2版),清华大学出版社,2012.03 2. 胡伦骏、徐兰芳等,编译原理(第3版),电子工业出版社, 2010.7
第5题
A、设计算法,编写程序,分析问题,确定数学模型,运行和测试程序。
B、分析问题,确定数学模型,设计算法,编写程序,运行和测试程序。
C、分析问题,设计算法,编写程序,运行和测试程序,确定数学模型。
D、设计算法,分析问题,确定数学模型,编写程序,运行和测试程序。
第8题
程序功能:采用面向对象程序设计方法,编写C++程序,模拟CPU按地址对主存单元进行读写操作的过程。 用户能够进行的操作:(1)对主存指定单元的写入操作;(2)对主存指定单元的读出操作;(3)在成批显示主存所有单元的数据。 模块结构: computer.h 用于声明所有的类型、类和接口 computer.cpp 用于定义函数体内部代码 main.h 用于测试代码的正确性 公有数据类型: addressword int类型 dataword char类型 常数定义: MEMORYSIZE ,值为256 类结构: 1、 Computer类,公有类,外部可以访问。 (1) 私有数据成员:一个Cpu 类的实例,一个Memory类的实例。 (2) 公有函数成员: void writeMemory(addressword,dataword),能够实现将dataword参数数据写入由addressword参数指定的内存单元的操作; dataword readMemory(address) ,能够实现对主存指定单元的读出操作; displayMemoryAll() ,能够实现显示主存所有内存单元的内容的操作。 2、 Cpu类,为Computer类的内部类,私有类,除Computer类以外,其他类不能访问,外部不能访问。 (1) 私有数据成员:AR,addressword类型,表示地址寄存器;DR,dataword类型,表示数据缓冲寄存器。 (2) 公有函数成员:setAR() 、getAR()、setDR()、getDR(),自行设计所需的参数和返回值及其类型。 3、 Memory类,为Computer类的内部类,私有类,除Computer类以外,其他类不能访问,外部不能访问。 (1) 私有数据成员:memoryBody[MEMORYSIZE],char类型,每个数组元素代表一个内存单元,元素下标即内存单元地址,按字节编址。 (3) 公有函数成员:inputMemeory()、outputMemory(),修改或输出指定内存单元的值,自行设计所需的参数和返回值及其类型。 注意:内部类中,即使公有成员,也只能在其外部类中访问,用户不能访问。 要求: 程序设计应能模拟CPU访问存储器的过程。如: 写内存的操作应该包含如下过程:(step1)修改数据寄存器DR,(step2)设地址寄存器AR,(step3)将数据寄存器DR中的数据写入指定内存单元。 读内存的操作应该包含如下过程:(step1)设地址寄存器AR,(step2)将指定内存单元的内容送入数据寄存器DR。
第10题
A、从概念上讲,程序由数据和代码两部分组成。
B、在计算机程序中,只能通过赋值语句才能为变量赋值。
C、用高级程序设计语言编写的程序,都包含一个main()函数。
D、程序是在计算机内存中运行的。
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!