位置:首页 > 自考专业

2012年自考“高级语言程序设计”经典习题及答案(6)

  • 发布时间:2024-09-15 16:21:23
  • 来源:本站整理
  • 阅读:
导读:
  9.下列语句中,句法错误的是(不考虑语义)( )
  ① while(x=y)5 ; ② do x++ while(x==10) ;
  ③while(0); ④do 2;while(a==b);
  “解” while语句的一般形式是:
  while(表达式) 语句
  这里的表达式可以是任何合理的表达式,语

9.下列语句中,句法错误的是(不考虑语义)( )

① while(x=y)5 ; ② do x++ while(x==10) ;

③while(0); ④do 2;while(a==b);

解 while语句的一般形式是:

while(表达式) 语句

这里的表达式可以是任何合理的表达式,语句可以是任何语句,包括空语句,或表达式语句。可能书写的while语句没有任何意义,如供选择的①while(x=y)5;和③while(0);,但这两个语句的句法没有任何错误。do-While语句的一般形式是:

do语句while(表达式);

其中的成分语句也可以是任何语句,但供选择答案②do x++while(x==10) ;中的代码x++是一个表达式,不是语句,所以是错误的。正确解答是②。

10,循环语句 for(x=0, y=0;(y!=123)||( x 4);x++); 的循环执行( )

①无限次 ②不确定次 ③4次 ④3次

解 for循环语句的初始化部分置变量x和y的初值为0,循环条件是(y!=123)||(x 4),每次循环后变量X的值增1.由于循环过程中变量y的值本被修改过,循环条件又是一个逻辑或,其左分量(y!=123)永远成立,也就是循环条件永远成立。所以该循环语句将循环执行无限次。正确解答是①。

11.若i、j已定义为int类型,则以下程序段中的内循环体的执行次数是( )

for( i=5; i; i )

for(j= 0; j 4;j++){ }

①20 ② 24 ③ 25 ④ 30

解 问题所给的程序段的外循环是一个阶循环语句,它的初始化部分置变量i的初值为5,循环条件简写成i,即i!=0,每次循环后变量i的值减1.所以外循环共控制5次循环。内循环也是一个for循环语句,它的初始化部分置变量j的初值为0,循环条件是j 4,每次循环后变量j的值增1.所以内循环共控制4次循环。这样,如内循环的体内未曾对变量i和j有修改,在内、外循环一起控制下,内循环的体共被重复执行20次。正确解答是①。

12.假定a和b为int型变量,则执行以下语句后b的值为( )

a=1; b=10;

do b-=a; a++;

}while (b 0);

①9 ②-2 ③-1 ④8

解 在这个程序段中,循环开始前变量a的值为1,b的值为10,每次循环从变量b减去a,并让a增1,并在循环条件判定时,又让b减去1.第一次循环后,变量b的值变成9,变量a的值变为2,循环判断时,因b的值大于0,循环条件不成立,结束循环。但在循环判断时,让b减去了1,所以循环结束时,变量b的值为8.正确的解答是④。

解 语句序列 x=l;y=0;z=2; y++ ++z||++x; 先使变量x的值为 1,变量y的值为0,变量Z的值为2.由逻辑与和逻辑或构成的逻辑表达式的特别计算规则,顺序计算各逻辑子表达式,并当一旦能得到逻辑子表达式的结果时,就立即结束逻辑子表达式的计算,不再计算该逻辑子表达式。计算y++因y的值为0,使y++ ++z的结果为0,立即去计算++X,这次计算使变量y的值变成1,而变量Z的值本改变。接着计算++X,使X的值变为2.所以经上述语句执行后,X、y、Z的值依次为2、1、Z. 确解答为④。

7.假定所有变量均已正确定义,下列程序段运行后X的值是( )

a=b=c=0; x=35;

if(!a)x ; else if(b);if(c)x=3;else x=4;

①34 ② 4 ③ 35 ④ 3

解 以变量 a,b,c的值均为 0,变量x的值为 35,语句:

if(!a)x ;else if(b);if(c)x=3;else x=4;

由两个证语句组成。首先执行前一个if语句 if(!a)x ;else if(b); ,因变量a的值为0,条件!a成立,执行x 使x的值变为34.接着执行后继的if语句 if(c)x=3; else X=4; ,因变量c的值为0,条件不成立而执行X=4,最终使变量X的值为4.正确解答是②。

注意前一个if语句的else部分的成分语句只有 if(b); ,这是一个单分支if语句,且其成分语句为空语句。

相关阅读