算术表达式采用逆波兰式表示时不用括号,可以利用(1)进行求值。与逆波兰式ab-cd+*对应的中缀表达

  • A+

答案查询网公众号已于近期上线啦

除基本的文字搜题外,准备上线语音搜题和拍照搜题功能!微信关注公众号【答案查询网】或扫描下方二维码即可体验。

(1)【◆题库问题◆】:[单选] 算术表达式采用逆波兰式表示时不用括号,可以利用(1)进行求值。与逆波兰式ab-cd+*对应的中缀表达式是(2)。空白(1)处应选择()
A.数组
B.栈
C.队列
D.散列表

【◆参考答案◆】:B

【◆答案解析◆】:逆波兰式表示方式把运算符写在运算对象的后面,不需要使用括号。由于逆波兰式表示中的各个运算是按顺序执行的,因此,它的计值很容易实现。为此,仅需从左到右依次扫视表达式中的各个符号,每遇到一个运算对象,就把它压入栈顶暂存起来;每遇到一个二元(或一元)运算符时,就取出栈顶的两个(或一个)运算对象进行相应的运算,并用运算结果去替换栈顶的这两(或一)个运算对象,然后再继续扫视余留的符号,如此等等,直到扫视完整个表达式为止。当上述过程结束时,整个表达式的值将留于栈顶。a-b+c*d对应的逆波兰式为ab-cd*+。(a-b)*c+d对应的逆波兰式为ab-c*d+。(a-b)*(c+d)对应的逆波兰式为ab-cd+*。a-b*c+d对应的逆波兰式为abc*-d+。

·ℳ°.·※°∴ ╰☆╮ 。·ℳ°.·※°∴ ╰☆╮ 。·ℳ°.·※°∴ ╰☆╮ 。·ℳ°.·※°∴ ╰☆╮ 。·ℳ°.·※°∴ ╰☆╮ 。

(2)【◆题库问题◆】:[单选] 如图所示为一个有限自动机(其中,A是初态、C是终态),该自动机识别的语言可用正规式()表示。
A.(0|1)*01
B.1*0*10*1
C.1*(0)*01
D.1*(0|10)*1*

【◆参考答案◆】:A

【◆答案解析◆】:在正规式中,符号"*"表示重复若干次(包括0次),符号"1"表示"或"。在状态A,可以输入1或0,如果输入1还可以回到状态A,如果输入0直接到达状态B;在状态B,可以输入0或1,如果输入0则还回到状态B,如果输入1则进入状态C,在状态C,可以输入0或1,如果输入0到达状态B,如果输入1到达状态A,但由于C是终态,自动机可识别的语言是由0、1构成的字符串的集合,但该集合必须以01结尾,因此选项A正确。

·ℳ°.·※°∴ ╰☆╮ 。·ℳ°.·※°∴ ╰☆╮ 。·ℳ°.·※°∴ ╰☆╮ 。·ℳ°.·※°∴ ╰☆╮ 。·ℳ°.·※°∴ ╰☆╮ 。

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

【◆参考答案◆】:B

【◆答案解析◆】:数据是程序操作的对象,类型说明数据占用的内存和存放形式。数据类型不仅可用于在基础机器中完成对值的布局,还可以用于检查表达式中对运算的应用是否正确。

·ℳ°.·※°∴ ╰☆╮ 。·ℳ°.·※°∴ ╰☆╮ 。·ℳ°.·※°∴ ╰☆╮ 。·ℳ°.·※°∴ ╰☆╮ 。·ℳ°.·※°∴ ╰☆╮ 。

(4)【◆题库问题◆】:[单选] 若二维数组arr[1..M,1..N]的首地址为base,数组元素按列存储且每个元素占用K个存储单元,则元素arr[i,j]在该数组空间的地址为()。
A.base+((i-1)*M+j-1)*K
B.base+((i-1)*N+j-1)*K
C.base+((j-1)*M+i-1)*K
D.base+((j-1)*N+i-1)*K

【◆参考答案◆】:C

【◆答案解析◆】:数据arr共M行N列,下标均从1开始。元素arr[i,j]在数据arr的第i行第j列,如果数组元素按列存储,则1~j-1列共有(j-1)*M个元素,a[i,j]之前共(j-1)*M+i-1个元素,元素arr[i,j]在该数组空间的地址为base+((j-1)*M+i-1)*K。

·ℳ°.·※°∴ ╰☆╮ 。·ℳ°.·※°∴ ╰☆╮ 。·ℳ°.·※°∴ ╰☆╮ 。·ℳ°.·※°∴ ╰☆╮ 。·ℳ°.·※°∴ ╰☆╮ 。

(5)【◆题库问题◆】:[单选] 函数t、f的定义如下所示,其中,a是整型全局变量。设调用函数t前a的值为5,则在函数中以传值调用(callbyvalue)方式调用函数f时,输出为(1);在函数t中以引用调用(callbyreference)方式调用函数时,输出为(2)()。空白(2)处应选择
A.12
B.16
C.20
D.24

【◆参考答案◆】:D

【◆答案解析◆】:本题主要考查函数调用时参数的传递方式。如果采用传值方式调用,则形参值的变化不会影响实参;如果采用引用方式调用,则形参值的变化会直接反映到实参。本题中如果在函数t中采用传值方式调用函数f,a的值传给形参r,在函数f中,a的值变为6,r的值为10并返回赋给变量x,由于a是全局变量,退出函数f后a的值依然为6,所以函数t的输出结果为16。如果函数t采用传值方式调用函数f,则形参r就是对实参a的引用,对r的修改就是对a的修改,在执行a=r+1时,a和r的值都变为6,执行r=r*2,a和r的值都变为12,并将r的值返回给x,因此函数t的输出结果为24。

·ℳ°.·※°∴ ╰☆╮ 。·ℳ°.·※°∴ ╰☆╮ 。·ℳ°.·※°∴ ╰☆╮ 。·ℳ°.·※°∴ ╰☆╮ 。·ℳ°.·※°∴ ╰☆╮ 。

(6)【◆题库问题◆】:[单选] 算术表达式采用逆波兰式表示时不用括号,可以利用(1)进行求值。与逆波兰式ab-cd+*对应的中缀表达式是(2)。空白(1)处应选择()
A.数组
B.栈
C.队列
D.散列表

【◆参考答案◆】:B

【◆答案解析◆】:逆波兰式表示方式把运算符写在运算对象的后面,不需要使用括号。由于逆波兰式表示中的各个运算是按顺序执行的,因此,它的计值很容易实现。为此,仅需从左到右依次扫视表达式中的各个符号,每遇到一个运算对象,就把它压入栈顶暂存起来;每遇到一个二元(或一元)运算符时,就取出栈顶的两个(或一个)运算对象进行相应的运算,并用运算结果去替换栈顶的这两(或一)个运算对象,然后再继续扫视余留的符号,如此等等,直到扫视完整个表达式为止。当上述过程结束时,整个表达式的值将留于栈顶。a-b+c*d对应的逆波兰式为ab-cd*+。(a-b)*c+d对应的逆波兰式为ab-c*d+。(a-b)*(c+d)对应的逆波兰式为ab-cd+*。a-b*c+d对应的逆波兰式为abc*-d+。

·ℳ°.·※°∴ ╰☆╮ 。·ℳ°.·※°∴ ╰☆╮ 。·ℳ°.·※°∴ ╰☆╮ 。·ℳ°.·※°∴ ╰☆╮ 。·ℳ°.·※°∴ ╰☆╮ 。

(7)【◆题库问题◆】:[单选] 函数t、f的定义如下所示,其中,a是整型全局变量。设调用函数t前a的值为5,则在函数中以传值调用(callbyvalue)方式调用函数f时,输出为(1)();在函数t中以引用调用(callbyreference)方式调用函数时,输出为(2)。空白(1)处应选择
A.12
B.16
C.20
D.24

【◆参考答案◆】:B

【◆答案解析◆】:本题主要考查函数调用时参数的传递方式。如果采用传值方式调用,则形参值的变化不会影响实参;如果采用引用方式调用,则形参值的变化会直接反映到实参。本题中如果在函数t中采用传值方式调用函数f,a的值传给形参r,在函数f中,a的值变为6,r的值为10并返回赋给变量x,由于a是全局变量,退出函数f后a的值依然为6,所以函数t的输出结果为16。如果函数t采用传值方式调用函数f,则形参r就是对实参a的引用,对r的修改就是对a的修改,在执行a=r+1时,a和r的值都变为6,执行r=r*2,a和r的值都变为12,并将r的值返回给x,因此函数t的输出结果为24。

·ℳ°.·※°∴ ╰☆╮ 。·ℳ°.·※°∴ ╰☆╮ 。·ℳ°.·※°∴ ╰☆╮ 。·ℳ°.·※°∴ ╰☆╮ 。·ℳ°.·※°∴ ╰☆╮ 。

(8)【◆题库问题◆】:[单选] 算术表达式采用逆波兰式表示时不用括号,可以利用(1)进行求值。与逆波兰式ab-cd+*对应的中缀表达式是(2)。空白(2)处应选择()
A.a-b+c*d
B.(a-B.*c+d
C.(a-B.*(c+D.
D.a-b*c+d

【◆参考答案◆】:C

【◆答案解析◆】:逆波兰式表示方式把运算符写在运算对象的后面,不需要使用括号。由于逆波兰式表示中的各个运算是按顺序执行的,因此,它的计值很容易实现。为此,仅需从左到右依次扫视表达式中的各个符号,每遇到一个运算对象,就把它压入栈顶暂存起来;每遇到一个二元(或一元)运算符时,就取出栈顶的两个(或一个)运算对象进行相应的运算,并用运算结果去替换栈顶的这两(或一)个运算对象,然后再继续扫视余留的符号,如此等等,直到扫视完整个表达式为止。当上述过程结束时,整个表达式的值将留于栈顶。a-b+c*d对应的逆波兰式为ab-cd*+。(a-b)*c+d对应的逆波兰式为ab-c*d+。(a-b)*(c+d)对应的逆波兰式为ab-cd+*。a-b*c+d对应的逆波兰式为abc*-d+。

·ℳ°.·※°∴ ╰☆╮ 。·ℳ°.·※°∴ ╰☆╮ 。·ℳ°.·※°∴ ╰☆╮ 。·ℳ°.·※°∴ ╰☆╮ 。·ℳ°.·※°∴ ╰☆╮ 。

(9)【◆题库问题◆】:[单选] 若C程序的表达式中引用了未赋初值的变量,则()。
A.编译时一定会报告错误信息,该程序不能运行
B.可以通过编译并运行,但运行时一定会报告异常
C.可以通过编译,但链接时一定会报告错误而不能运行
D.可以通过编译并运行,但运行结果不一定是期望的结果

【◆参考答案◆】:D

【◆答案解析◆】:全局变量和静态局部变量在定义时如果没有初始化,编译时会自动初始化为0;而普通的局部变量,如果没有初始化,则其值是一个随机数。在C程序表达式中,只要引用的变量定义了,就可以通过编译并运行,但运行结果不一定是期望的结果。

·ℳ°.·※°∴ ╰☆╮ 。·ℳ°.·※°∴ ╰☆╮ 。·ℳ°.·※°∴ ╰☆╮ 。·ℳ°.·※°∴ ╰☆╮ 。·ℳ°.·※°∴ ╰☆╮ 。

(10)【◆题库问题◆】:[单选] 若C程序的表达式中引用了未赋初值的变量,则()。
A.编译时一定会报告错误信息,该程序不能运行
B.可以通过编译并运行,但运行时一定会报告异常
C.可以通过编译,但链接时一定会报告错误而不能运行
D.可以通过编译并运行,但运行结果不一定是期望的结果

【◆参考答案◆】:D

【◆答案解析◆】:全局变量和静态局部变量在定义时如果没有初始化,编译时会自动初始化为0;而普通的局部变量,如果没有初始化,则其值是一个随机数。在C程序表达式中,只要引用的变量定义了,就可以通过编译并运行,但运行结果不一定是期望的结果。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: