第6章由机器语言到高级语言-程序编写和编译练习题答案解析.doc_第1页
第6章由机器语言到高级语言-程序编写和编译练习题答案解析.doc_第2页
第6章由机器语言到高级语言-程序编写和编译练习题答案解析.doc_第3页
第6章由机器语言到高级语言-程序编写和编译练习题答案解析.doc_第4页
第6章由机器语言到高级语言-程序编写和编译练习题答案解析.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

大学计算机-计算思维练习题集第6章 由机器语言到高级语言:程序编写与编译1、关于计算机语言,下列说法不正确的是_。(A)所有源程序最后都需被转换为汇编语言程序,机器才能够执行;(B)所谓“高级语言”和“低级语言”是指其和机器硬件的相关程度,不涉及机器硬件的语言为高级语言,而与机器硬件相关的语言则为低级语言; (C)低级语言程序执行效率高是因为用低级语言编程时可以充分利用硬件的各种特殊性,而高级语言则只能使用硬件的标准结构;(D)高级语言编程效率高是因为其可用大粒度积木块来构造程序,比一行行语句、一条条指令来编程效率高出很多。(E)上述有不正确的。答案:A解释:本题考核对“计算机语言”的理解。(A) 所有源程序最后都需被转换为机器语言程序,机器才能够执行,所以(A)错误;(B)(C)和(D)的叙述都是正确的。具体内容请参考第六章视频之“从机器语言到汇编语言”以及第六章课件。2、关于计算机语言,下列说法不正确的是_。 (A)汇编语言和机器语言是以指令为单位来编写程序;(B)高级语言是以语句为单位来编写程序,一条语句相当于若干条指令(或者说一条语句可用若干条指令来实现); (C)面向对象语言或可视化构造语言是以对象(类)为单位来编写程序,一个对象相当于若干条语句(或者说一个对象可用若干条语句来实现);(D)我们可以设计一种新语言,让用户以其更熟悉的对象(类)来编写源程序,然后提供一个编译器将该源程序转换成某种已广泛使用的高级语言源程序,就可以让机器执行该程序。(E)上述有不正确的。答案:E解释:本题考核对“计算机语言”的理解。(A)(B)(C)和(D)的叙述都是正确的,所以选择(E)。具体内容请参考第六章视频之“从机器语言到汇编语言”以及第六章课件。3、关于计算机语言的编译,下列说法不正确的是_。 (A)需要“分词”,将其中的常量、变量名和保留字识别出来,并分类及编号; (B)需要识别每一条语句所对应的“模式”。任意语句的常量和变量名被归为“标识符”类别,而标识符与保留字的不同组合关系构成了语句的模式;计算机语言是由有限的语句模式构成的; (C)对每一种模式,都有相应的组合构造方法,即模式可被认为是由原子模式或说基本模式通过组合的方法构造出来的,对原子模式或者基本模式可以事先写好其相应的目标语言的指令或语句;(D)按照模式由原子模式的组合次序,可将模式语句转换成目标语言的指令或语句;进一步按照分类及编号将常量、变量名代入形成最终的目标语言程序,完成编译; (E)上述有不正确的。答案:E解释:本题考核计算机语言编译的基本思想。(A)(B)(C)和(D)的叙述都是正确的,所以选择(E)。具体内容请参考第六章视频之“高级语言编译器-基本思想”以及第六章课件。4、从语言编译角度看计算机语言,下列说法不正确的是_。 (A)计算机语言就是由标识符和保留字构成的,标识符是可由程序员按规则任意命名的符号,而保留字则是编译器识别语句模式的重要符号; (B)计算机语言定义了基本元素的集合,以及基本元素的组合构造规则,所谓基本元素即是指标识符和保留字,所谓组合构造规则即是指语句的书写模式,即不同标识符和保留字的组合规则; (C)标识符可以是常量、变量名,也可以是函数名;保留字可以是赋值符号如“=”、语句结束符号如“;”、基本运算符号如“+”“-”“*”“/”、程序段落符号如“ ”等,保留字还可以是其他语句模式的标志性符号。(D)上述有不正确的。答案:D解释:本题考核从语言编译角度理解计算机语言。(A)(B)(C)的叙述都是正确的,所以选择(D)。具体内容请参考第六章视频之“高级语言编译器-基本思想”以及第六章课件。5、关于普通计算机语言(或者说程序)的基本构成要素,下列说法最完整的是_。 (A)常量与变量和表达式; (B)常量与变量、表达式和语句;(C)常量与变量、表达式、语句和函数;(D)都不完整。答案:C解释:本题考核程序的基本构成要素。程序的基本构成要素包括常量与变量、表达式、语句和函数,所以(C)正确,(A)和(B)叙述不完整。具体内容请参考第六章视频之“计算机语言(程序)的基本构成要素(I)”以及第六章课件。6、关于表达式,下列说法不正确的是_。(A)由常量、变量及各种算术运算符构造的表达式,被称为算术表达式,其结果为一数值; (B)由常量、变量和各种比较运算符构造的表达式,被称为比较表达式,其结果只能为逻辑“真”或“假”;(C)由常量、变量和各种逻辑运算符构造的表达式,被称为逻辑表达式,其结果只能为逻辑“真”或“假”;(D)比较表达式中不能含有算术表达式,逻辑表达式中可以含算术表达式。(E)上述有不正确的。答案:D解释:本题考核对“表达式”的理解。比较表达式和逻辑表达式中都可以含算术表达式,所以(D)错误;(A)(B)和(C)的叙述都是正确的。具体内容请参考第六章视频之“计算机语言(程序)的基本构成要素(I)”以及第六章课件。7、已知A=40;B=30;C=100;D=50,逻辑“与”运算符为and,“或”运算符为or,“非”运算符为not。围绕这些已知条件回答问题:(1) 计算表达式(A + (C B) *3) / D的值,结果为_。 (A) 5; (B) -5; (C) 10;(D) 4;答案:A(2) 计算表达式(A * A - B * B) + D的值,结果为_。 (A) 70; (B) 150; (C) 570;(D) 750;答案:D(3) 计算表达式(A B) and (B B +20 ) or (B +60 A +B +D的值,结果为_。(A) 120; (B) 100; (C) 真;(D) 假;答案:D(6) 计算表达式A + A * 5的值,结果为_。(A) 400; (B) 240; (C) 真;(D) 假;答案:B(7) 计算表达式A Y) and (X B)=(40 30)为真,(B C)= (30 B) and (B B +20 ) = (40 30 +20 ) = ( 40 50 )为假,(B + 60 C) = (30 + 60 100) = (90 B +20 ) or (B +60 A+B+D为100120为假,(D)选项正确;(6) A+A*5=40+40*5=240,(B)选项正确;(7) A*5=40*5=200,AA*5为40Y与X Y) and (XY) or (YZ) and (XY) or (YY) AND (YZ) OR (XY) AND (YY) AND (YZ) OR (XZ) AND (Y Y) and (XY)=(2115)为真,(YZ)=(1522)为假,因此(XY) or (YZ)为真,(XY) = (2115)为假,(YZ)=(1522)为真,因此(XY) or (YY) or (YZ) and (XY) or (YY)=(2115)为真,(YZ)=(1522)为假,因此(XY) and (YZ)为假,(XY) = (2115)为假,(YZ)=(1522)为真,因此(XY) and (YY) AND (YZ) OR (XY) AND (YY)=(2115)为真,(YZ)=(1522)为假,因此(XY) and (YZ)为假,(XZ) = (2122)为真,(YZ)=(1522)为真,因此(XY) and (YY) AND (YZ) OR (XZ) AND (YY与X Y) and (X=Y) 为假,(B)选项正确;具体内容请参考第六章视频之“计算机语言(程序)的基本构成要素(I)”以及第六章课件。9. 读程序,并回答问题:N = 101;If N/2=0 ThenN = N/2;Else N = N * 3 +1;End If 该程序执行完成后,N的值为_。(A) 101; (B) 55.5; (C) 304; (D) 167.5;答案:C解释:本题考核分支结构。已知N = 101,则N/2 = 50不等于0,不符合If语句的条件,所以进入Else语句,N = N * 3 +1 = 101 * 3 +1 = 304,所以(C)正确。具体内容请参考第六章视频之“计算机语言(程序)的基本构成要素(I)”以及第六章课件。10. 已知程序如下,回答下列问题:X = Z + Y;If Y Z X = X Y; Else X= X Z; X = X Y;If X Y X = X Y; (1)已知X=10, Y=20, Z=30该程序执行完成后,X的值为_。(A) 10; (B) 20; (C) 30; (D) 40; (E)上述都不对。答案:A(2)已知X=10, Y=50, Z=30该程序执行完成后,X的值为_。(A) 10; (B) 20; (C) 30; (D) 40; (E)上述都不对。答案:D(3)已知X=30, Y=30, Z=30该程序执行完成后,X的值为_。 (A) 10; (B) 20; (C) 30; (D) 40; (E)上述都不对。答案:B解释:本题考核分支结构。(1) 程序开始执行,X = Z + Y = 30 + 20 = 50,Y Z = 20 30为真,所以执行X = X Y = 50 20 = 30,接着X = X Y = 30 20 = 10,X Z = 10 Y = 1020为假,所以程序结束,最终X=10,(A)正确。(2) 程序开始执行,X = Z + Y = 30 + 50 = 80,Y Z = 50 30为假,所以执行X = X Z = 80 30 = 50,接着X = X Y = 50 50 = 0,X Z = 0 Y = 4050为假,所以程序结束,最终X=40,(D)正确。(3) 程序开始执行,X = Z + Y = 30 + 30 = 60,Y Z = 30 30为假,所以执行X = X Z = 60 30 = 30,接着X = X Y = 30 30 = 0,X Z = 0 Y = 2030为假,所以程序结束,最终X=20,(B)正确。具体内容请参考第六章视频之“计算机语言(程序)的基本构成要素(I)”以及第六章课件。11. 读程序,并回答问题:X=1;Y=2; Sum=0;Do Sum = X+Y;X=X+1;Y=Y+1; While (Sum=20)(1)该程序执行完成后,Sum的值为_。(A) 20; (B) 21; (C) 19; (D) 18;答案:B(2)该程序执行完成后,X的值为_。(A) 8; (B) 9; (C) 10; (D) 11;答案:D解释:本题考核循环结构。Do-While结构先执行一遍Do部分,然后判断是否符合条件,若符合条件则接着执行Do部分直至条件为假,此时程序结束。(1) 程序开始执行,Sum = X+Y = 1 + 2 = 3,X=X+1 = 1+2 = 3,Y=Y+1 = 2 +1 = 3,此时Sum= 3 20,条件为假,程序结束。所以该程序执行完成后,Sum的值为21,(B)正确。(2) 由(1)题知,该程序执行完成后,X的值为11,(D)正确。具体内容请参考第六章视频之“计算机语言(程序)的基本构成要素(I)”以及第六章课件。12. 读程序,并回答问题:(10) N = 6;(20)X = 0;(30)Y = 1;(40)For I = 1 To N-1 Step 1(50)Z = X + Y;(60) X = Y;(70) Y = Z;(80)Next I(1)该程序执行完成后,Z的值为_。(A) 3; (B) 5; (C) 8; (D) 13;答案:C(2)程序行(60)执行了多少次?次数为_。(A) 4; (B) 5; (C) 6; (D) 7;答案:B解释:本题考核循环结构。For循环条件是I从1到N-1,即从1到5,I=1时,Z = X + Y = 0 + 1 = 1,X = Y = 1,Y = Z = 1;I = 2时,Z = X + Y = 1 + 1 = 2,X = Y = 1,Y = Z =2;I = 3时,Z = X + Y = 1 + 2 = 3,X = Y = 2,Y = Z =3;I = 4时,Z = X + Y = 2 + 3 = 5,X = Y = 3,Y = Z =5;I = 5时,Z = X + Y = 3 + 5 = 8,X = Y = 5,Y = Z =8;程序结束。所以该程序执行完成后,Z的值为8,(C)正确;For循环从I=1到5共执行了5次,程序行(60)是For循环中的一部分,所以也执行了5次,(B)正确。具体内容请参考第六章视频之“计算机语言(程序)的基本构成要素(I)”以及第六章课件。13. 读程序,并回答问题:(10) K = 0;(20)I = 2;(30)While (I=8)(40) K = K + I; (50)I = I + 2;(1)该程序执行完成后,K的值为_。(A) 35; (B) 20; (C) 36; (D) 12;答案:B(2)程序行(40)执行了多少次?次数为_。(A) 2; (B) 4; (C) 6; (D) 8;答案:B解释:本题考核循环结构。(1)程序开始执行,I = 2 =8,条件为真,执行K = K + I = 0 + 2 = 2,I = I + 2 = 2 + 2 = 4;I = 4 =8,条件为真,执行K = K + I = 2 + 4 = 6,I = I + 2 = 4 + 2 = 6;I = 6 =8,条件为真,执行K = K + I = 6 + 6 = 12,I = I + 2 = 6 + 2 = 8;I = 8 8,条件为假,程序结束。所以该程序执行完成后,K的值为20,(B)正确。(2)由(1)知,程序行(40)执行了4次,(B)正确。具体内容请参考第六章视频之“计算机语言(程序)的基本构成要素(I)”以及第六章课件。14. 已知函数Fact的程序如下,回答下列问题:Long Int Fact(int n)Long Int x;If (n 1) x = Fact(n-1); return n*x; else return 1; (1)Fact(4)的值为_。(A) 10; (B) 24; (C) 120; (D) 15;答案:B解释:(2)在执行Fact(5)的过程中,Fact函数被调用的次数为_。(A) 3; (B) 4; (C) 5; (D) 6;答案:C解释:本题考核对函数的理解和运用。(1)该程序是计算阶乘,即Fact(n) = n!,该程序的流程图如图(a)所示,所以Fact(4) = 4! = 24,(B)正确,具体过程如图(b)所示。 (2)由题(1)中图(b)知,在执行Fact(4)的过程中,Fact函数被调用了4次,所以在执行Fact(5)时,Fact函数会被调用5次,(C)正确。具体内容请参考第六章视频之“计算机语言(程序)的基本构成要素(II)”以及第六章课件。15. 已知函数Fact的程序如下,回答下列问题:Long Int Fact(int n)Long Int x;If (n 1) x = Fact(n-1); return (n+x)*2; else return 1; (1)Fact(4)的值为_。(A) 14; (B) 24; (C) 44; (D) 64;答案:C解释:本题考核算法的循环结构由程序分析可知,调用函数4次,因此Fact(4)的值为44。具体内容请参考第六章视频之“计算机语言(程序)的基本构成要素”以及第六章课件。(2)在执行Fact(4)的过程中,Fact函数被调用的次数为_。(A) 3; (B) 4; (C) 5; (D) 6;答案:B解释:本题考核算法的循环结构由程序分析可知,调用函数4次,因此Fact(4)的值为44。具体内容请参考第六章视频之“计算机语言(程序)的基本构成要素”以及第六章课件。16. 已知程序如下,回答下列问题:main()int i, n;long sum = 0, p = 1; . /输入n值的语句,略for (i=1; i=n; i+)p = p * i; sum = sum + p;. /输出sum值的语句,略该程序实现的功能为_。(A) sum = 1*2*3*.*n; (B) sum = 1!+2!+.+n!; (C) sum = 1+2+3+.+n; (D) sum = 1*2+2*3+(n-1)*n;(E) 上述都不正确。答案:B解释:本题考核算法的分析及循环结构的分析很明显是1到n的阶乘,选B。具体内容请参考第六章视频之“计算机语言(程序)的基本构成要素”以及第六章课件。17. 已知程序如下,回答下列问题:(10)main()(20) int counter;(30). /输入N值的语句,略(40)long product = 1; (50)for counter = 1 to N step 2 (60) product = product * counter; (70)return product; (80)(1)该程序实现的功能为_。(A) product = 1*2*3*.*(N-1); (B) product = 1+ 2+3+.+ (N-1); (C) product = 1*3*5*.* (N-1); (D) product = 1+3+5+.+(N-1);(E) 上述都不正确。答案:C解释:本题考核算法与结构分析由程序可知,为求1*3*5*.*(N-1)的值。具体内容请参考第六章视频之“计算机语言(程序)的基本构成要素”以及第六章课件。(2)当程序行(60)执行了3次以后,Product和Counter的值分别为_。(A) 105,5; (B) 15,7; (C) 15,5; (D) 105,7;(E) 上述都不正确。答案:C解释:本题考核算法与结构分析在程序执行3次时,Product带入可知为15,Counter为5。具体内容请参考第六章视频之“计算机语言(程序)的基本构成要素”以及第六章课件。18. 已知如下多元素变量,回答下列问题:(1)已知I=2;J=4;则MIJ的值为_。(A) 44; (B) 83;(C) 22; (D) 21; (E)上述都不正确。 答案:A解释:本题考核数据结构及算法分析。(1)看表得知M24=44。具体内容请参考第六章视频之“计算机语言(程序)的基本构成要素”以及第六章课件。(2)已知I=2;J=2;则MI+1J+1的值为_。(A) 39; (B) 11;(C) 0; (D) 16; (E)上述都不正确。 答案:C解释:本题考核数据结构及算法分析。(2)看表得知M33=0。具体内容请参考第六章视频之“计算机语言(程序)的基本构成要素”以及第六章课件。(3)已知I=1;J=1;则MI+1J+2的值为_。(A) 13; (B) 47;(C) 8; (D) 10; (E)上述都不正确。 答案:B解释:本题考核数据结构及算法分析。(3)看表得知M21+2=47。具体内容请参考第六章视频之“计算机语言(程序)的基本构成要素”以及第六章课件。(4)执行下列程序,回答问题。(10)int I = 3,J;(20)int Sum1=0,Sum2=0;(30)For J=1 to 4 Step 1(40)Sum1 = Sum1 + MIJ; (50)Sum2 = Sum2 + MJI; 上述程序执行完成后,Sum1和Sum2的值分别为_。(A) 576, 576; (B) 136, 175;(C) 149,105; (D) 105,149; (E)上述都不正确。 答案:C解释:本题考核数据结构及算法分析。(4)4次循环Sum1=149,Sum2=105。具体内容请参考第六章视频之“计算机语言(程序)的基本构成要素”以及第六章课件。(5)执行下列程序,回答问题。(10)int J;(20)int Sum1=0,Sum2=0;(30)For J=1 to 4 Step 1(40)Sum1 = Sum1 + MJJ; (50)Sum2 = Sum2 + M5-J5-J; 上述程序执行完成后,Sum1和Sum2的值分别为_。(A) 95,95; (B) 95,66;(C) 66,95; (D) 66,66; (E)上述都不正确。 答案:D解释:本题考核数据结构及算法分析。(5)4次循环Sum1=66,Sum2=66。具体内

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论