关于C语言标识符作用域的说法 正确的是,编译原理 第六章 语义分析和符号表 作业... |
您所在的位置:网站首页 › c语言程序的编译单位是什么 › 关于C语言标识符作用域的说法 正确的是,编译原理 第六章 语义分析和符号表 作业... |
一.单选题(共20题,70.0分) 1 下列哪项工作属于语义分析的范畴? A、 单词拼写错误检查 B、 括号不匹配 C、 加法运算两个操作数的类型不兼容 D、 寄存器分配 正确答案: C 我的答案:C 得分: 3.5分 2 程序设计语言的语义分为静态语义和动态语义,其中编译时能检查的语义是_______. A、 静态语义 B、 动态语义 正确答案: A 我的答案:A 得分: 3.5分 3 语义分析所依据的是_______. A、 源语言的语法规则 B、 源语言的语义规则 C、 等价变换规则 D、 目标语言的语义规则 正确答案: B 我的答案:B 得分: 3.5分 4 下列错误属于静态语义错误的是_______ A、 括号不匹配 B、 出现非法字符 C、 类型不相容 D、 无效指针 正确答案: C 我的答案:C 得分: 3.5分 5 编译程序不能检查处理的错误是_______. A、 静态语义错误 B、 动态语义错误 C、 语法错误 D、 词法错误 正确答案: B 我的答案:D 得分: 0.0分 6 编译过程中符号表的作用是记录_______中各个符号的必要信息,以辅助语义的正确性检查和代码生成. A、 源程序 B、 目标程序 C、 汇编程序 D、 可执行程序 正确答案: A 我的答案:A 得分: 3.5分 7 符号表常用的操作不包括_______. A、 查询给定的名字是否已在表中 B、 检查名字是否符合标识符命名的文法 C、 对给定名字,往表中填写或更新它的某些信息 D、 删除一个或一组无用的项 正确答案: B 我的答案:B 得分: 3.5分 8 属于标识符“种类”属性信息的描述是_______. A、 整型 B、 函数 C、 地址 D、 指针 正确答案: B 我的答案:A 得分: 0.0分 9 编译一个源程序时,符号表可以是一张统一的表,也可以按名字的不同种类分为几张不同的表。以上说法_______. A、 正确 B、 不正确 正确答案: A 我的答案:A 得分: 3.5分 答案解析: 10 在目标代码生成阶段,符号表用于_______. A、 语义检查 B、 地址分配 C、 目标代码生成 D、 优化 正确答案: B 我的答案:B 得分: 3.5分 11 关于全局变量与局部变量的说法,正确的是_______. A、 全局变量的作用域是从声明该变量的位置开始,一直到程序结束 B、 局部变量的作用域是声明该局部变量的函数或复合语句 C、 当发生作用域嵌套时,标识符的使用遵循“最近嵌套”原则 正确答案: C 我的答案:C 得分: 3.5分 12 函数标识符内部表示中有一项是函数的目标代码的入口地址,该项信息是在_______时填写的. A、 语法分析 B、 语义分析 C、 中间代码生成 D、 目标代码生成 正确答案: D 我的答案:D 得分: 3.5分 13 约定整型占1个单元,实型占2个单元。根据下面的声明,每个类型为date的变量占______个单元。 union category { int grade; float score; } struct date { int year, month, day; union category property; } A、 2 B、 4 C、 5 D、 6 正确答案: C 我的答案:C 得分: 3.5分 14 约定整型占1个单元,实型占2个单元。根据下面的声明,变量score占______个单元。 float score[100]; A、 2 B、 100 C、 200 正确答案: C 我的答案:C 得分: 3.5分 15 约定整型占1个单元,实型占2个单元。根据下面的声明,变量score占______个单元。 float score[10][10]; A、 2 B、 100 C、 200 D、 2000 正确答案: C 我的答案:C 得分: 3.5分 答案解析: 16 约定整型占1个单元。根据下面的声明,变量papercolor占______个单元。 enum color {red, yellow, blue, green,white }; color papercolor; A、 1 B、 2 C、 5 D、 0 正确答案: A 我的答案:A 得分: 3.5分 17 约定每个局部化单位的起始偏移为0,操作系统为每个整型、字符型变量分配1个字节的内存空间。在下面的程序中,第1行代码中变量i的层数和偏移量是_______. int i , j ; int main() { char i ; i=’A’; { int i ; i = 0; } i = ‘B’; } A、 0,0 B、 0,1 C、 1,0 D、 1,1 正确答案: A 我的答案:A 得分: 3.5分 答案解析: 18 约定每个局部化单位的起始偏移为0,整型、字符型占1个单元。在下面的程序中,第3行代码中变量i的层数和偏移量是_______. int i , j ; int main() { char i ; i=’A’; { int i ; i = 0; } i = ‘B’; } A、 0,0 B、 0,1 C、 1,0 D、 1,1 正确答案: C 我的答案:C 得分: 3.5分 答案解析: 19 约定每个局部化单位的起始偏移为0,整型、字符型占1个单元,实型占2个单元。在下面的程序中,第5行代码中变量i的层数和偏移量是_______. int i , j ; int main() { char i ; i=’A’; { float i ; i = 0; } i = ‘B’; } A、 1,0 B、 1,1 C、 2,0 D、 2,1 正确答案: B 我的答案:C 得分: 0.0分 答案解析: 20 约定每个局部化单位的起始偏移为0,整型、字符型占1个单元,实型占2个单元,不考虑优化。在下面程序中,第7行代码中变量i的层数和偏移量是_______. int i , j ; int main() { char i ; i=’A’; { float i ; i = 0; } { int i; i = 10; } i = ‘B’; 10.} A、 1,1 B、 1,3 C、 2,0 D、 2,1 正确答案: B 我的答案:C 得分: 0.0分 答案解析: 二.多选题(共8题,30.0分) 1 下面C语言程序中,可能存在的语义(包括动态语义)错误有_______. int x = 0,z; float y(){…}; int main(){ z = x() + t; z /= x; x = y(); } A、 标识符使用时的种类和声明时的种类不一致 B、 标识符未声明 C、 除零溢出 D、 赋值语句左右部的类型不相容 正确答案: ABCD 我的答案:ABD 得分: 1.8分 答案解析: 2 构建符号表时,为提高符号表的查找效率,可将符号表组织成________. A、 二叉树形式 B、 散列表 C、 顺序表 D、 多表结构 正确答案: ABD 我的答案:ABC 得分: 0.0分 3 符号表中的标识符,一般设置的属性有______. A、 名字 B、 类型 C、 存储分配信息 D、 作用域及可见性 正确答案: ABCD 我的答案:AB 得分: 1.8分 4 函数标识符的属性表示中一般应包含_______. A、 函数名 B、 函数参数信息 C、 函数体对应目标代码入口地址 D、 函数返回值类型 正确答案: ABCD 我的答案:ACD 得分: 1.8分 答案解析: 5 构造类型如数组,结构体等的内部表示中一般应包含_______. A、 构造类型的名字 B、 构造类型的种类 C、 构造类型所占内存空间的大小 D、 构造类型相关的详细信息,如数组的上下界,成分类型,结构体的各个域的信息等 正确答案: BCD 我的答案:ABCD 得分: 0.0分 答案解析: 6 关于标识符的作用域,以下说法正确的是______. A、 用户定义的每一个标识符都有作用域 B、 标识符的作用域是编译时确定的 C、 标识符的作用域是目标代码运行时确定的 D、 标识符在其作用域内使用它是合法的;反之在作用域外使用它是非法的。 正确答案: ABD 我的答案:ABD 得分: 3.5分 7 关于C语言标识符作用域的说法,正确的是______. A、 在C语言中,每个源程序编译单位、每个函数定义、复合语句都各自构成一个作用域区域 B、 标识符必须先声明再使用,同一作用域内标识符不得重复声明 C、 在嵌套结构中,内层标识符可以与外层标识符同名 D、 在嵌套结构中,外层标识符的作用域要去掉内层同名标识符的作用域区域 正确答案: ABCD 我的答案:ABCD 得分: 3.5分 答案解析: 8 全局符号表可以采用______解决符号表的局部化问题. A、 删除法 B、 驻留法 C、 散列法 D、 局部符号表 正确答案: ABC 我的答案:ABC |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |