自考《高级语言程序设计》习题及答案(5)

发布时间:2012-07-25 共3页

本文导航
  • 第3页:第12-14题
  12.设x和y为int型变量,则执行下面的循环后,y的值为( )
  for(y=l, x=l; y<=50; y++){
  if(x>=10) break;
  if(x%2==1){ x+=5; continue;}
  X -= 3;
  }
  ①2 ②4 ③6 ④8
  「解」 for循环语句的初始化部分置变量x和y的初值为1,循环条件是(y<=50),每次循环后变量y的值增1,控制循环最多执行50次。循环体有三个语句:首先在发现变量X的值大于等于10时,结束循环;接着是当变量X除2的余数为1(即变量X是奇数)时,让变量X值增5,让X变成偶数,并直接进入下一轮循环;如变量X是偶数,则从变量X减去3,让变量X变成奇数。由上述分析知,每两次循环使变量X的值增加2.第一次循环后,变量X的值变成6.第二次循环后,变量X的值变成3.第三次循环后,变量X的位变成8.第四次循环后,变量X的值变成5.第五次循环后,变量X的值变成 10.第六次循环时,因变量X的位大于等于 10,直接跳出循环,这次循环是非正常结束,对变量y的修正只执行了5次。所以循环结束后,变量y的值增至6.正确的解答是③。
  13.在C语言中,下列说法中正确的是( )
  ①不能使用“do语句while(条件)”的循环
  ②“do语句While(条件)”的循环中必须使用“break”语句退出循环
  ③“do语句while(条件)”的循环中,当条件非0时将结束循环
  ④“do语句while(条件)”的循环中,当条件为0时将结束循环
  「解」 do-while语句的一般形式是:
  do语句
  while(表达式);
  其语义是重复执行其成分语句,直至表示条件的表达式值为0时结束。do-while语句是正常使用的一种循环结构之一。do-while语句的循环结束条件由while后的表达式值为0所控制,并不一定要有break语句跳出循环来结束循环。do-while语句在条件值非0时,将继续循环,而不是结束循环。条件值为0时,才结束循环。所以正确的选择是④。
  14.若有以下程序段,W和k都是整型变量,则不能与该程序段等价的循环语句是( )
  W= k;
  LB: if(w==0) gotO LE;
  w - -;
  printf(“*”);
  goto LB;
  LE:
  ①for(w=k;w!=0;W——)printf(“*”);
  ② w= k;
  While(W——!=0) Prinif(“* ”);
  ③ w= k;
  do{w——; prinif(“*”);
  } while( W!= 0);
  ④ for(w=k;W;——W) printf(“*”);
  「解」问题所给出的程序段用goto语句构造一个循环控制结构,该循环结构的初值是让变量W的值为k的值,循环结束条件是W的情等于0,循环体是让变量W的值减1,并输出一个字符* .上述循环控制过程用for循环可描述如下:
  for=(w=k;W!=0; W——) printh(“*”);
  或写成:
  for(w=k ;w;——w) printf(“*”);
  若用while语句,可描述如下:
  W=k;
  while(w——!=0)printf(“*”);
  w++;/*在w等于0时,也执行了一次 w——,这里是对w最后减1的补尝*/
  或更直观地写成:
  W=k;
  while(w!=0){ w——;Printf(“*”);}
  若用do-while语句,可描述如下:
  W=k;
  if(W)
  do{
  w——; prinif(“*”);
  } while(w);
  若写成:
  W=k;
  do{
  W——; printf(“*”);
  } while(w!=0);
  是不正确的,因为原代码当k的值为0时,不输出字符*,而上面的改写,当k的值为0时,将输出许许多多的字符*.所以解答应是③。  

  为广大考生提供在线模考免费课程,欢迎免费使用。同时为您提供考试指南,遇到疑问可进入你问我答 进行咨询。

自考

上一页123下一页

百分百考试网 考试宝典

立即免费试用