📑前言
本文主要是【程序设计语言基础】——程序设计语言基础的相关题目,如果有什么需要改进的地方还请大佬指出⛺️
🎬作者简介:大家好,我是听风与他🥇
☁️博客首页:CSDN主页听风与他
🌄每日一句:狠狠沉淀,顶峰相见
目录
- 📑前言
- 程序设计语言基础
- 1.编译器和解释器是两种基本的高级语言处理程序。编译器对高级语言源程序的处理过程可以划分为词法分析、语法分析、语义分析、中间代码生成、代码优化、目标代码生成等阶段,其中,( )并不是每个编译器都必需的,与编译器相比,解释器( )。
- 2.表达式采用逆波兰式表示时,利用( )进行求值。
- 3.以下关于程序设计语言的叙述中,错误的是( )。
- 4.与算术表达式“(a+(b-c))*d”对应的树是( )。
- 5.C程序中全局变量的存储空间在( )分配。
- 📑文章末尾
程序设计语言基础
1.编译器和解释器是两种基本的高级语言处理程序。编译器对高级语言源程序的处理过程可以划分为词法分析、语法分析、语义分析、中间代码生成、代码优化、目标代码生成等阶段,其中,( )并不是每个编译器都必需的,与编译器相比,解释器( )。
(A) 词法分析和语法分析
(B) 语义分析和中间代码生成
© 中间代码生成和代码优化
(D) 代码优化和目标代码生成
(A) 不参与运行控制,程序执行的速度慢
(B) 参与运行控制,程序执行的速度慢
© 参与运行控制,程序执行的速度快
(D) 不参与运行控制,程序执行的速度快
答案与解析
- 试题难度:一般
- 知识点:程序设计语言基础>编译器工作过程
- 试题答案:[[‘C’],[‘B’]]
- 试题解析:在编译过程中:词法分析;语法分析;语义分析;目标代码生成是必须的,而代码优化和中间代码生成是可以不需要的。
编译与解释的区别在于:
编译直接生成目标代码,在机器上执行而编译器不需要参与执行,因此程序执行速度快;
解释则生成中间代码或其等价形式,程序执行时需要解释器的参与,并且由解释器控制程序的执行,因此执行速度慢。
2.表达式采用逆波兰式表示时,利用( )进行求值。
- (A) 栈
- (B) 队列
- © 符号表
- (D) 散列表
答案与解析
- 试题难度:一般
- 知识点:程序设计语言基础>后缀表达式
- 试题答案:[[A]]
- 试题解析:逆波兰使用栈的基本操作流程为:从左至右将数字入栈,当遇运算符时,出栈运算符所需数据进行操作,再将操作结果入栈,依此类推。
3.以下关于程序设计语言的叙述中,错误的是( )。
- (A) 程序设计语言的基本成分包括数据、运算、控制和传输等
- (B) 高级程序设计语言不依赖于具体的机器硬件
- © 程序中局部变量的值在运行时不能改变
- (D) 程序中常量的值在运行时不能改变
答案与解析
- 试题难度:容易
- 知识点:程序设计语言基础>多种程序语言特点
- 试题答案:[[‘C’]]
- 试题解析:本题考查程序语言基础知识。
选项 A 涉及程序语言的一般概念,程序设计语言的基本成分包括数据、运算、控制和传输等。
选项 B 考查高级语言和低级语言的概念。对于程序设计语言,高级语言和低级语言是指其相对于运行程序的机器的抽象程度。低级语言在形式上更接近机器指令,汇编语言就是与机器指令一一对应的。高级语言对底层操作进行了抽象和封装,其一条语句对应多条机器指令,使编写程序的过程更符合人类的思维习惯,并且极大简化了人力劳动。高级语言不依赖于具体的机器硬件。
选项 C 考查局部变量的概念,凡是在函数内部定义的变量都是局部变量(也称作内部变量),包括在函数内部复合语句中定义的变量和函数形参表中说明的形式参数 。局部 变量只能在函数内部使用,其作用域是从定义位置起至函数体或复合语句体结束为止。 局部变量的值通常在其生存期内是变化的。
选项D考查常量的概念,程序中常量的值在运行时是不能改变的。
4.与算术表达式“(a+(b-c))*d”对应的树是( )。
- (A)
- (B)
- ©
- (D)
答案与解析
- 试题难度:容易
- 知识点:程序设计语言基础>后缀表达式
- 试题答案:[[‘B’]]
- 试题解析:本题考查的是表达式的树形表示,我们常见的表达式形式是树的中序遍历序列。
对算术表达式“(a+(b-c))*d”求值的运算处理顺序是:先进行b-c, 然后与 a 相加,最后再与 d 相乘。只有选项 B 所示的二叉树与其相符。
5.C程序中全局变量的存储空间在( )分配。
- (A) 代码区
- (B) 静态数据区
- © 栈区
- (D) 堆区
答案与解析
- 试题难度:一般
- 知识点:程序设计语言基础>多种程序语言特点
- 试题答案:[[B]]
- 试题解析:全局变量、静态局部变量、静态全局变量都存放在静态数据存储区。