下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、感谢你的观看2003 年编译原理试题1 (20分)写出字母表=a, b上语言L = w | w中a的个数是偶数的正规式,并画出接受该语言的最简 DFA 。2 ( 15 分)考虑下面的表达式文法,它包括数组访问、加和赋值:E EE | E + E | E = E | (E) |id该文法是二义的。请写一个接受同样语言的LR(1)文法,其优先级从高到低依次是数组访问、加和赋值,并且加运算是左结合,赋值是右结合。3 ( 10 分)下面是产生字母表= 0, 1, 2 上数字串的一个文法:SD S D | 2D0 | 1写一个语法制导定义,它打印一个句子是否为回文数(一个数字串, 从左向右读和从右向左读
2、都一样时,称它为回文数) 。4 ( 10 分)教材上7.2.1 节的翻译方案P offset := 0DD D ; DDid : T enter(, T.type, offset); offset := offset + T.width Tinteger T.type := integer; T.width := 4 T real T.type := real; T.width := 8 使用了变量offset。请重写该翻译方案,它完成同样的事情,但只使用文法符号的属性,而不使用变量。5 ( 5 分)一个 C 语言程序如下:void fun(struct int x; doubl
3、e r; val) main()struct int x; double r; val;fun(val);该程序在X86/Linux机器上的用cc命令编译时,报告的错误信息如下:1: warning: structure defined inside parms2: warning: anonymous struct declared inside parameter list3: warning: its scope is only this definition or declaration,4: warning: which is probably not what you want.7
4、: incompatible type for argument 1 of fun 请问, 报告最后一行的错误的原因是什么?如何修改程序, 使得编译时不再出现这个错误信息。6 ( 10 分)一个 C 语言程序如下:typedef struct _ashort i;short j;short k;a;typedef struct _blong i;short k;b;main()printf("Size of short, long, a and b = %d,%d,%d,%dn",sizeof(short), sizeof(long),sizeof(a),sizeof(b)
5、;该程序在 X86/Linux 机器上的运行结果如下:Size of short, long, a and b = 2, 4, 6, 8已知short类型和long类型分别对齐到2的倍数和4的倍数。试问,为什么类型 b的size会等于8?7 (15分)一个C语言程序如下:int fact(i)int i;if(i=0)return 1;elsereturn i* fact(i-1);main()printf("%dn", fact(5);printf("%dn", fact(5,10,15);printf("%dn", fact(5.
6、0);printf("%dn", fact();该程序在 X86/Linux 机器上的运行结果如下:1201201Segmentation fault (core dumped)请解释下面问题:? 第二个fact 调用:结果为什么没有受参数过多的影响??第三个fact调用:为什么用浮点数5.0作为参数时结果变成1? 第四个fact 调用:为什么没有提供参数时会出现Segmentation fault?8 ( 5 分) C 语言的赋值操作并非仅对简单类型而言,例如若有类型声明 longa100, b100;,则赋值a=b是允许的。同样,若a和b是同一类型的两个结构, 则赋值a
7、=b也是允许的。用教材上第七章所给出的三地址语句, 我们能否为这种赋值产生中间代码?若你持肯定态度, 请你给出对应这种赋值的中间代码序列; 否则请你为这种赋值 设计一种三地址语句。你所选用或设计的三地址语句要便于目标代码的生成。9 ( 5 分)一个 C 程序的三个文件的内容如下: head.h:short int a = 10;file1.c:#include "head.h"main() file2.c:#include "head.h"在 X86/Linux 机器上的编译命令如下:cc file1.c file2.c编译结果报错的主要信息如下:multiple definition of a试分析为什么会报这样的错误。10 (5分)按照教材上介绍的方法,把下面C+语言的函数翻译成C的函数。void zoom (GraphicalObj &obj, double zoom_f
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 江西师范大学科学技术学院《建筑设备施工组织设计》2023-2024学年第一学期期末试卷
- 湖南中医药大学湘杏学院《水电站建筑物》2023-2024学年第一学期期末试卷
- 湖南工艺美术职业学院《多媒体信息处理与检索技术》2023-2024学年第一学期期末试卷
- 衡阳科技职业学院《统计软件操作》2023-2024学年第一学期期末试卷
- 浙江师范大学《能源与动力工程测试技术》2023-2024学年第一学期期末试卷
- 长春师范大学《卫生检验综合技术》2023-2024学年第一学期期末试卷
- 榆林职业技术学院《太阳能热利用技术》2023-2024学年第一学期期末试卷
- 使用二手设备节约资本开支
- 实践学习实施报告
- 业务操作-2018-2019年房地产经纪人《房地产经纪业务操作》真题汇编
- 生产车间工艺员年终总结
- 特色酒吧方案计划书
- 重庆市南开中学2023-2024学年中考三模英语试题含答案
- 2023年上海高中物理合格考模拟试卷一含详解
- 2022版义务教育(地理)课程标准(附课标解读)
- 2024年滑雪用品行业分析报告及未来发展趋势
- 经方治疗脑梗塞的体会
- 新版DFMEA基础知识解析与运用-培训教材
- 制氮机操作安全规程
- 衡水市出租车驾驶员从业资格区域科目考试题库(全真题库)
- 护理安全用氧培训课件
评论
0/150
提交评论