第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、已知40;30;100;50,逻辑“与”运算符为,“或”运算符为,“非”运算符为。围绕这些已知条件回答问题:
(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) (B < C )的值,结果为。
(A) 100; (B) 30; (C) 真; (D) 假;
答案:C
(4) 计算表达式 (A > B +20 ) (B +60 < C )的值,结果为。
(A) 100; (B) 30; (C) 真; (D) 假;
答案:C
(5) 计算表达式C > A 的值,结果为。
(A) 120; (B) 100; (C) 真; (D) 假;
答案:D
(6) 计算表达式A + A * 5的值,结果为。
(A) 400; (B) 240; (C) 真; (D) 假;
答案:B
(7) 计算表达式A < A * 5的值,结果为。
(A) 40; (B) 200; (C) 160;(D) 真;(E) 假;
答案:D
(8) 计算表达式(X > Y) (X<)的值,结果为。
(A) 真;(B) 假;
答案:B
解释:
本题考核表达式的计算。
(1) (A + (C – B) *3) / D = (40 + (100 - 30) * 3) / 50 = 5,(A)选项正确;
(2) (A * A - B * B) + D = (40 * 40 – 30 * 30) + 50 = 750,(D)选项正确;
(3) (A > B)=(40 > 30)为真,(B < C)= (30 < 100)为真,所以(A > B) (B < C )为真,(C)选项正确;
(4) (A > B +20 ) = (40 > 30 +20 ) = ( 40 >50 )为假,(B + 60 < C) = (30 + 60 <100) = (90 < 100 )为真,所以(A > B +20 ) (B +60 < C ) 为真,(C)选项正确;
(5) 40+30+50 = 120,C>为100>120为假,(D)选项正确;
(6) *5=40+40*5=240,(B)选项正确;
(8) X>Y与X<不能同时成立,而要是“ ”为真时,必须左右两边同时成立,所以(X > Y) (X<) 为假,(B)选项正确;
具体内容请参考第六章视频之“计算机语言(程序)的基本构成要素(I)”以及第六章课件。
8. 已知21, 15, 22,围绕这些已知条件回答问题:
(1) 计算表达式 ((X>Y) (Y>Z)) ((X
结果为。
(A) 真;(B) 假;
答案:A
(2) 计算表达式 ((X>Y) (Y>Z)) ((X
结果为。
(A) 真;(B) 假;
答案:B
(3) 计算表达式 ((X>Y) (Y>Z)) ((X
结果为。
(A) 真;(B) 假;
答案:A
(4) 假设不知道X、Y的值,计算表达式(X > Y) (X<)的值,结果为。
(A) 真;(B) 假;
答案:B
解释:
本题考核表达式的计算。
(1) (X>Y)=(21>15)为真,(Y>Z)=(15>22)为假,因此((X>Y) (Y>Z))为真,(X
(2) (X>Y)=(21>15)为真,(Y>Z)=(15>22)为假,因此((X>Y) (Y>Z))为假,(X
(3) (X>Y)=(21>15)为真,(Y>Z)=(15>22)为假,因此((X>Y) (Y>Z))为假,(X
(4) X>Y与X<不能同时成立,而要是“ ”为真时,必须左右两边同时成立,所以(X > Y) (X<) 为假,(B)选项正确;
具体内容请参考第六章视频之“计算机语言(程序)的基本构成要素(I)”以及第六章课件。
9. 读程序,并回答问题:
N = 101;
20
N = 2;
N = N * 3 +1;
该程序执行完成后,N的值为。
(A) 101; (B) 55.5; (C) 304; (D) 167.5;
答案:C
解释:
本题考核分支结构。
已知N = 101,则2 = 50不等于0,不符合语句的条件,所以进入语句,N = N * 3 +1 = 101 * 3 +1 = 304,所以(C)正确。
具体内容请参考第六章视频之“计算机语言(程序)的基本构成要素(I)”以及第六章课件。
10. 已知程序如下,回答下列问题:
X = Z + Y;
Y < Z {
X = X – Y; }
{
X – Z; }
X = X – Y;
X < Z { X = Y +20; }
X = X – Z;
X>Y
{ X = X – Y; }
(1)已知10, 20, 30该程序执行完成后,X的值为。
(A) 10; (B) 20; (C) 30; (D) 40; (E)上述都不对。
答案:A
(2)已知10, 50, 30该程序执行完成后,X的值为。
(A) 10; (B) 20; (C) 30; (D) 40; (E)上述都不对。
答案:D
(3)已知30, 30, 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 < 30为真,所以执行X = Y +20 = 20 +20 = 40,接着X = X – Z = 40 – 30 = 10,X>Y = 10>20为假,所以程序结束,最终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 < 30为真,所以执行X = Y +20 = 50 +20 = 70,接着X = X – Z = 70 – 30 = 40,X>Y = 40>50为假,所以程序结束,最终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 < 30为真,所以执行X = Y +20 = 30 +20 = 50,接着X = X – Z = 50 – 30 = 20,X>Y = 20>30为假,所以程序结束,最终20,(B)正确。
具体内容请参考第六章视频之“计算机语言(程序)的基本构成要素(I)”以及第六章课件。
11. 读程序,并回答问题:
1;
2;
0;
{ = ;
1;
1;
} (<=20)
(1)该程序执行完成后,的值为。
(A) 20; (B) 21; (C) 19; (D) 18;
答案:B
(2)该程序执行完成后,X的值为。
(A) 8; (B) 9; (C) 10; (D) 11;
答案:D
解释:
本题考核循环结构。
结构先执行一遍部分,然后判断是否符合条件,若符合条件则接着执行部分直至条件为假,此时程序结束。
(1) 程序开始执行, = = 1 + 2 = 3,1 = 1+2 = 3,1 = 2 +1 = 3,此时 3 <= 20,所以接着执行部分,直到 = X + Y = 10 + 11 = 21时,此时X = 10,Y = 11,接着执行X = X + 1 = 10 + 1 = 11,Y = Y + 1 = 11 + 1 = 12,此时 = 21 > 20,条件为假,程序结束。所以该程序执行完成后,的值为21,(B)正确。
(2) 由(1)题知,该程序执行完成后,X的值为11,(D)正确。
具体内容请参考第六章视频之“计算机语言(程序)的基本构成要素(I)”以及第六章课件。
12. 读程序,并回答问题:
(10) N = 6;
(20) X = 0;
(30) Y = 1;
(40) I = 1 1 1
(50) Z = X + Y;
(60) X = Y;
(70) Y = Z;
(80) I
(1)该程序执行完成后,Z的值为。
(A) 3; (B) 5; (C) 8; (D) 13;
答案:C
(2)程序行(60)执行了多少次?次数为。
(A) 4; (B) 5; (C) 6; (D) 7;
答案:B
解释:
本题考核循环结构。
循环条件是I从1到1,即从1到5,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)正确;循环从1到5共执行了5次,程序行(60)是循环中的一部分,所以也执行了5次,(B)正确。
具体内容请参考第六章视频之“计算机语言(程序)的基本构成要素(I)”以及第六章课件。
13. 读程序,并回答问题:
(10) K = 0;
(20) I = 2;
(30) (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 = K + I = 12 + 8 = 20,I = I + 2 = 8 + 2 = 10;I = 10 > 8,条件为假,程序结束。所以该程序执行完成后,K的值为20,(B)正确。
(2)由(1)知,程序行(40)执行了4次,(B)正确。
具体内容请参考第六章视频之“计算机语言(程序)的基本构成要素(I)”以及第六章课件。
14. 已知函数的程序如下,回答下列问题:
( n)
{ x;
(n > 1)
{ x = (1);
n*x; }
1;
}
(1)(4)的值为。
(A) 10; (B) 24; (C) 120; (D) 15;
答案:B
解释:
(2)在执行(5)的过程中,函数被调用的次数为。
(A) 3; (B) 4; (C) 5; (D) 6;
答案:C
解释:
本题考核对函数的理解和运用。
(1)该程序是计算阶乘,即(n) = n!,该程序的流程图如图(a)所示,所以(4) = 4! = 24,(B)正确,具体过程如图(b)所示。
(2)由题(1)中图(b)知,在执行(4)的过程中,函数被调用了4次,所以在执行(5)时,函数会被调用5次,(C)正确。
具体内容请参考第六章视频之“计算机语言(程序)的基本构成要素()”以及第六章课件。
15. 已知函数的程序如下,回答下列问题:
( n)
{ x;
(n > 1)
{ x = (1);
()*2; }
1;
}
(1)(4)的值为。
(A) 14; (B) 24; (C) 44; (D) 64;
答案:C
解释:
本题考核算法的循环结构
由程序分析可知,调用函数4次,因此(4)的值为44。
具体内容请参考第六章视频之“计算机语言(程序)的基本构成要素”以及第六章课件。
(2)在执行(4)的过程中,函数被调用的次数为。
(A) 3; (B) 4; (C) 5; (D) 6;
答案:B
解释:
本题考核算法的循环结构
由程序分析可知,调用函数4次,因此(4)的值为44。
具体内容请参考第六章视频之“计算机语言(程序)的基本构成要素”以及第六章课件。
16. 已知程序如下,回答下列问题:
()
{
i, n;
= 0, p = 1;
... 输入n值的语句,略
(1; i<; )
{
p = p * i;
= + p;
}
... 输出值的语句,略
}
该程序实现的功能为。
(A) = 1*2*3*...*n;
(B) = 12!;
(C) = 1+2+3;
(D) = 1*2+2*3+(1)*n;
(E) 上述都不正确。
答案:B
解释:
本题考核算法的分析及循环结构的分析
很明显是1到n的阶乘,选B。
具体内容请参考第六章视频之“计算机语言(程序)的基本构成要素”以及第六章课件。
17. 已知程序如下,回答下列问题:
(10) ()
(20) { ;
(30) ... 输入N值的语句,略
(40) = 1;
(50) = 1 N 2
(60) { = * ; }
(70) ;
(80) }
(1)该程序实现的功能为。
(A) = 1*2*3*...*(1);
(B) = 1+ 2+3 (1);
(C) = 1*3*5*...* (1);
(D) = 1+3+5(1);
(E) 上述都不正确。
答案:C
解释:
本题考核算法与结构分析
由程序可知,为求1*3*5*...*(1)的值。
具体内容请参考第六章视频之“计算机语言(程序)的基本构成要素”以及第六章课件。
(2)当程序行(60)执行了3次以后,和的值分别为。
(A) 105,5;
(B) 15,7;
(C) 15,5;
(D) 105,7;
(E) 上述都不正确。
答案:C
解释:
本题考核算法与结构分析
在程序执行3次时,带入可知为15,为5。
具体内容请参考第六章视频之“计算机语言(程序)的基本构成要素”以及第六章课件。
18. 已知如下多元素变量,回答下列问题:
(1)已知2;4;则M[I][J]的值为。
(A) 44; (B) 83;(C) 22; (D) 21; (E)上述都不正确。
答案:A
解释:
本题考核数据结构及算法分析。
(1)看表得知M[2][4]=44。
具体内容请参考第六章视频之“计算机语言(程序)的基本构成要素”以及第六章课件。
(2)已知2;2;则M[1][1]的值为。
(A) 39; (B) 11;(C) 0; (D) 16; (E)上述都不正确。
答案:C
解释:
本题考核数据结构及算法分析。
(2)看表得知M[3][3]=0。
具体内容请参考第六章视频之“计算机语言(程序)的基本构成要素”以及第六章课件。
(3)已知1;1;则M[1][J]+2的值为。
(A) 13; (B) 47;(C) 8; (D) 10; (E)上述都不正确。
答案:B
解释:
本题考核数据结构及算法分析。
(3)看表得知M[2][1]+2=47。
具体内容请参考第六章视频之“计算机语言(程序)的基本构成要素”以及第六章课件。
(4)执行下列程序,回答问题。
(10) I = 3,J;
(20) 1=0,2=0;
(30) 1 4 1
(40) { 1 = 1 + M[I][J];
(50) 2 = 2 + M[J][I]; }
上述程序执行完成后,1和2的值分别为。
(A) 576, 576;
(B) 136, 175;
(C) 149,105;
(D) 105,149;
(E)上述都不正确。
答案:C
解释:
本题考核数据结构及算法分析。
(4)4次循环1=149,2=105。
具体内容请参考第六章视频之“计算机语言(程序)的基本构成要素”以及第六章课件。
(5)执行下列程序,回答问题。
(10) J;
(20) 1=0,2=0;
(30) 1 4 1
(40) { 1 = 1 + M[J][J];
(50) 2 = 2 + M[5][5]; }
上述程序执行完成后,1和2的值分别为。
(A) 95,95;
(B) 95,66;
(C) 66,95;
(D) 66,66;
(E)上述都不正确。
答案:D
解释:
本题考核数据结构及算法分析。
(5)4次循环1=66,2=66。
具体内容请参考第六章视频之“计算机语言(程序)的基本构成要素”以及第六章课件。
(6)执行下列程序,回答问题。
(10) J;
(20) 1=0,2=0;
(30) 1 4 1
(40) { 1 = 1 + M[J][J];
(50) 2 = 2 + M[5][J]; }
上述程序执行完成后,1和2的值分别为。
(A) 95,95;
(B) 95,66;
(C) 66,95;
(D) 66,66;
(E)上述都不正确。
答案:C
解释:
本题考核数据结构及算法分析。
(6)4次循环1=66,2=95。
具体内容请参考第六章视频之“计算机语言(程序)的基本构成要素”以及第六章课件。
19. 关于不同抽象层面的计算机,下列说法不正确的是。
(A)实际机器层面之上,不同层次的计算机即是指各种层次的软件系统;
(B)实际机器层面之上,不同层次的计算机,其本质是为用户提供一个计算机语言,用户可用该语言表达具体的操作需求,同时提供一个编译器将操作需求转换为机器可以执行的程序,最终实现用户的操作需求;
(C)不同抽象层次的计算机指的是各种抽象层次的硬件系统,只有硬件计算机才能被称为计算机;
(D)上述有不正确的。
答案:C
解释:
本题考核不同抽象层面计算机的概念。
C选项中,不同抽象层次的计算机指的不仅是各种层次的硬件系统,同样包括软件系统,同理,不只有硬件计算机被称为计算机,比如虚拟机。所以C选项错误。
具体内容请参考第六章视频之“不同抽象层级计算机(虚拟机器)”以及第六章课件。
20. 关于不同抽象层面的计算机,由低层向应用层(高层)的基本层次划分是。
(A)实际机器 微程序机器 操作系统机器 汇编语言机器 高级语言机器;
(B)高级语言机器 汇编语言机器 操作系统机器 实际机器 微程序机器;
(C)微程序机器 实际机器 操作系统机器 汇编语言机器 高级语言机器;
(D)上述有不正确的。
答案:C
解释:
本题考核不同抽象层面计算机的概念。
不同抽象层面的计算机,由低层向应用层(高层)的基本层次划分是微程序机器实际机器操作系统机器汇编语言机器高级语言机器;
所以C选项正确。
具体内容请参考第六章视频之“不同抽象层级计算机(虚拟机器)”以及第六章课件。
¥29.8
¥9.9
¥59.8