软件设计师真题,程序设计语言专项练习(二)

视频讲解

软件设计师 上午题 程序设计专题

基本控制结构

程序的三种基本控制结构是 (33) 。(2010年上半年)
(33)
A. 过程、子程序和分程序 B. 顺序、选择和重复
C. 递归、堆栈和队列 D. 调用、返回和跳转

程序的三种基本控制结构是顺序结构、选择结构和重复结构。

通用的高级程序设计语言一般都会提供描述数据、运算、控制和数据传输的语言成分,其中,控制包括顺序、 (20) 和循环结构。(2019年上半年)
(20) A. 选择 B. 递归 C. 递推 D. 函数

程序(算法)的基本控制有顺序、分支(选择)和循环结构。

数据类型

许多程序设计语言规定,程序中的数据都必须具有类型,其作用不包括 (20) 。(2009年下半年)
(20)
A. 便于为数据合理分配存储单元
B. 便于对参与表达式计算的数据对象进行检查
C. 便于定义动态数据结构
D. 便于规定数据对象的取值范围及能够进行的运算

数据具有类型,便于编译程序在基础机器中完成对值的布局,同时还可用于检查表达式中对运算的应用是否正确。

若一种程序设计语言规定其程序中的数据必须具有类型,则有利于 (22) 。(2011年上半年)
①在翻译程序的过程中为数据合理分配存储单元
②对参与表达式计算的数据对象进行检查
③定义和应用动态数据结构
④规定数据对象的取值范围及能够进行的运算
⑤对数据进行强制类型转换
(22) A. ①②③ B. ①②④ C. ②④⑤ D. ③④⑤

程序中的数据具有类型属性时,就可以规定数据对象的取值范围及能够进行的运算,在运算前便于进行类型检查,也更有利于为数据合理分配存储单元。

某程序设计语言规定在源程序中的数据都必须具有类型,然而, (28) 并不是做出此规定的理由。(2011年下半年)
(28)
A. 为数据合理分配存储单元
B. 可以定义和使用动态数据结构
C. 可以规定数据对象的取值范围及能够进行的运算
D. 对参与表达式求值的数据对象可以进行合法性检查

在机器层面上,所有的数据都是二进制形式的。应用领域中的数据可以有不同的形
式、意义和运算,程序中的数掂心红乒1了I重合理地安排存储空间。不同类型的数据空间,因此为程序中的数据规定类型后,可以更合理地安排存储空间。不同类型的数据
其取值方式和运算也不同,引入类型信息后,在对源程序进行编译时就可以对参与表达式求值的数据对象可以进行合法性检查。

在程序运行过程中, (22) 时涉及整型数据转换为浮点型数据的操作。(2018年下半年)
(22)
A. 将浮点型变量赋值给整型变量
B. 将整型常量赋值给整型变量
C. 将整型变量与浮点型变量相加
D. 将浮点型常量与浮点型变量相加

由于整数和实数在机器层面采用不同的方式表示,因此进行运算或赋值时,若数据类型不同则需要进行转换。一般规则是将低精度或占用位数少的数值转换为高精度或占用位数多的数值形式。

常量变量

以下关于变量和常量的叙述中,错误的是 (20) 。(2010年下半年)
(20)
A. 变量的取值在程序运行过程中可以改变,常量则不行
B. 变量具有类型属性,常量则没有
C. 变量具有对应的存储单元,常量则没有
D. 可以对变量赋值,不能对常量赋值

变量是计算机内存单元的抽象,在程序中表示数据,具有名称、类型、值、地址、作用域、存储类别等属性,其值在运行过程中由指令进行修改。常量也用于在程序中表示数据,但常量在程序运行过程中不能修改,常量也具有类型,如整型常量、浮点型常量、字符串常量等,也称为字面量或文字。

以下关于程序设计语言的叙述中,错误的是 (20) 。(2015年上半年)
(20)
A. 程序设计语言的基本成分包括数据、运算、控制和传输等
B. 高级程序设计语言不依赖于具体的机器硬件
C. 程序中局部变量的值在运行时不能改变
D. 程序中常量的值在运行时不能改变

选项A涉及程序语言的一般概念,程序设计语言的基本成分包括数据、运算、控制和传输等。
选项B考查高级语言和低级语言的概念。对于程序设计语言,高级语言和低级语言是指其相对于运行程序的机器的抽象程度。低级语言在形式上更接近机器指令,汇编语言就是与机器指令一一对应的。高级语言对底层操作进行了抽象和封装,其一条语句对应多条机器指令,使编写程序的过程更符合人类的思维习惯,并且极大简化了人力劳动。高级语言不依赖于具体的机器硬件。
选项C考查局部变量的概念,凡是在函数内部定义的变量都是局部变量(也称作内部变量),包括在函数内部复合语句中定义的变量和函数形参表中说明的形式参数。局部变量只能在函数内部使用,其作用域是从定义位置起至函数体或复合语句体结束为止。局部变量的值通常在其生存期内是变化的。选项D考查常量的概念,程序中常量的值在运行时是不能改变的。

逻辑表达式

对于逻辑表达式“x and y or not z”,and、or、not分别是逻辑与、或、非运算,优先级从高到低为not、and、or,and、or为左结合,not为右结合,若进行短路计算,则 (20) 。(2012年上半年)
(20)
A. x为真时,整个表达式的值即为真,不需要计算y和z的值
B. x为假时,整个表达式的值即为假,不需要计算y和z的值
C. x为真时,根据y的值决定是否需要计算z的值
D. x为假时,根据y的值决定是否需要计算z的值

对逻辑表达式可以进行短路计算,其依据是: a and b的含义是a和 b同时为“真”,则a and b为“真”,因此,若a为“假”,则无论b的值为“真”或“假”,a and b必然为“假”; a or b的含义是a和 b同时为“假”,则a or b为“假”,因此,若a为“真”,则无论b的值为“真”或“假”,a or b必然为“真”。
在优先级和结合性规定下,对逻辑表达式“x and y or not z”求值时,应先计算“x andy”的值,若为“假”,才去计算“notz”的值。因此,若x的值为“假”,则“x and y"的值为“假”,需要计算“not z”来确定表达式的值而不管y是“真”是“假”。当x的值为“真”,则需要计算y的值:若y的值为“真”,则整个表达式的值为“真”(从而不需再计算“not z”);若y的值为“假”,则需要计算“notz”来确定表达式的值。

逻辑表达式求值时常采用短路计算方式。“&&”、“||”、“!”分别表示逻辑与、或、非运算,“&&”、“||”为左结合,“!”为右结合,优先级从高到低为“!”、“&&”、“||”。对逻辑表达式“x&&(y || !z)”进行短路计算方式求值时, (20) 。(2016年下半年)
(20)
A. x为真,则整个表达式的值即为真,不需要计算y和z的值
B. x为假,则整个表达式的值即为假,不需要计算y和z的值
C. x为真,再根据z的值决定是否需要计算y的值
D. x为假,再根据y的值决定是否需要计算z的值

由“逻辑与”“逻辑或”运算构造的逻辑表达式可采用短路计算的方式求值。“逻辑与”运算“&&”的短路运算逻辑为:a&&b为真当且仅当a和 b都为真,当a为假,无论b 的值为真还是假,该表达式的值即为假,也就是说此时不需要再计算b的值。
“逻辑或”运算“II”的短路运算逻辑为: al|[b为假当且仅当a和 b都为假,当a为真,无论b的值为真还是假,该表达式的值即为真,也就是说此时不需要再计算b 的值。
对逻辑表达式“x &&(y |l ! z)”进行短路计算方式求值时,x为假则整个表达式的值即为假,不需要计算y和z的值。若x的值为真,则再根据y的值决定是否需要计算z的值,y为真就不需要计算z的值,y为假则需要计算z的值。

在这里插入图片描述

(20) A. d为true B. a为true C. b为true D. c为true
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_50843918/article/details/134904879