招生考试网
学历类| 阳光高考 美术高考 研究生 自考 成人高考 专升本 中考会考 外语类| 四 六 级 职称英语 商务英语 公共英语 日语能力
资格类| 公 务 员 报 关 员 银行从业 司法考试 导 游 证 教师资格 财会类| 会 计 证 经 济 师 会计职称 注册会计 税 务 师
工程类| 一级建造 二级建造 造 价 师 造 价 员 咨 询 师 监 理 师 医学类| 卫生资格 执业医师 执业药师 执业护士 国际护士
计算机| 等级考试 软件水平 应用能力 其它类| 论文 驾照考试 书法等级 少儿英语 报检员 单证员 教案 专题 考试资讯 文档
 3773考试网 - 计算机等级考试 - 考试辅导 - 计算机二级 - 正文

2013计算机等级考试二级《C语言》复习:第三章第4节

来源:2exam.com 2013-1-26
2013计算机等级考试二级《C语言》复习:第三章第4节

 

 do-while语句

  do-while语句的一般形式为:

  do

  语句;

  while(表达式);

  其中语句是循环体,表达式是循环条件。

  do-while语句的语义是:

  先执行循环体语句一次, 再判别表达式的值,若为真(非0)则继续循环,否则终止循环。

  do-while语句和while语句的区别在于do-while是先执行后判断,因此do-while至少要执行一次循环体。而while是先判断后执行,如果条件不满足,则一次循环体语句也不执行。

  while语句和do-while语句一般都可以相互改写。

  void main(){

  int a=0,n;

  printf("\n input n: ");

  scanf("%d",&n);

  do printf("%d ",a++*2);

  while (--n);

  }

  在本例中,循环条件改为--n,否则将多执行一次循环。这是由于先执行后判断而造成的。

  对于do-while语句还应注意以下几点:

  1.在if语句,while语句中, 表达式后面都不能加分号, 而在 do-while语句的表达式后面则必须加分号。

  2.do-while语句也可以组成多重循环,而且也可以和while语句相互嵌套。

  3.在do和while之间的循环体由多个语句组成时,也必须用{}括起来组成一个复合语句。

  4.do-while和while语句相互替换时,要注意修改循环控制条件。

  for语句

  for语句是C语言所提供的功能更强,使用更广泛的一种循环语句。其一般形式为:

  for(表达式1;表达式2;表达3)

  语句;

  表达式1 通常用来给循环变量赋初值,一般是赋值表达式。也允许在for语句外给循环变量赋初值,此时可以省略该表达式。

  表达式2 通常是循环条件,一般为关系表达式或逻辑表达式。

  表达式3 通常可用来修改循环变量的值,一般是赋值语句。

  这三个表达式都可以是逗号表达式, 即每个表达式都可由多个表达式组成。三个表达式都是任选项,都可以省略。

  一般形式中的“语句”即为循环体语句。for语句的语义是:

  1.首先计算表达式1的值。

  2.再计算表达式2的值,若值为真(非0)则执行循环体一次, 否则跳出循环。

  3.然后再计算表达式3的值,转回第2步重复执行。在整个for循环过程中,表达式1只计算一次,表达式2和表达式,3则可能计算多次。循环体可能多次执行,也可能一次都不执行。

  void main(){

  int n,s=0;

  for(n=1;n<=100;n++)

  s=s+n;

  printf("s=%d\n",s);

  }

  用for语句计算s=1+2+3+…+99+100

  int n,s=0;

  for(n=1;n<=100;n++)

  s=s+n;

  printf("s=%d\n",s);

  本例for语句中的表达式3为n++,实际上也是一种赋值语句,相当于n=n+1,以改变循环变量的值。

  void main(){

  int a=0,n;

  printf("\n input n: ");

  scanf("%d",&n);

  for(;n>0;a++,n--)

  printf("%d ",a*2);

  }

  用for语句修改例题。从0开始,输出n个连续的偶数。

  int a=0,n;

  printf("\n input n: ");

  scanf("%d",&n);

  for(;n>0;a++,n--)

  printf("%d ",a*2);

  本例的for语句中,表达式1已省去,循环变量的初值在for语句之前由scanf语句取得,表达式3是一个逗号表达式,由a++,n-- 两个表达式组成。每循环一次a自增1,n自减1。a的变化使输出的偶数递增,n的变化控制循次数。

  在使用for语句中要注意以下几点:

  1.for语句中的各表达式都可省略,但分号间隔符不能少。如:for(;表达式;表达式)省去了表达式1.for(表达式;;表达式)省去了表达式2。

  for(表达式;表达式;)省去了表达式3.for(;;)省去了全部表达式。

  2.在循环变量已赋初值时,可省去表达式1,如例3.27即属于这种情形。如省去表达式2或表达式3则将造成无限循环, 这时应在循环体内设法结束循环。例题即属于此情况。

  void main(){

  int a=0,n;

  printf("\n input n: ");

  scanf("%d",&n);

  for(;n>0;)

  { a++;n--;

  printf("%d ",a*2);

  }

  }

  本例中省略了表达式1和表达式3,由循环体内的n--语句进行循环变量n的递减,以控制循环次数。

  void main(){

  int a=0,n;

  printf("\n input n: ");

  scanf("%d",&n);

  for(;;){

  a++;n--;

  printf("%d ",a*2);

  if(n==0)break;

  }

  }

  本例中for语句的表达式全部省去。由循环体中的语句实现循环变量的递减和循环条件的判断。当n值为0时,由break语句中止循环,转去执行for以后的程序。在此情况下,for语句已等效于while( 1)语句。如在循环体中没有相应的控制手段,则造成死循环。

  • 上一个文章:
  • 网站版权与免责声明
    ①由于各方面情况的不断调整与变化,本网所提供的相关信息请以权威部门公布的正式信息为准.
    ②本网转载的文/图等稿件出于非商业性目的,如转载稿涉及版权等问题,请在两周内来电联系.
    最新文章
    推荐文章
  • 此栏目下没有推荐文章

  • 报名考试全国   黑龙江   吉林   辽宁   内蒙古   青海   宁夏   甘肃   新疆   陕西   西藏   北京   天津   河北   山东   江苏   安徽   河南
    上海   浙江   福建   广东   山西   湖南   湖北   江西   广西   海南   云南   贵州   四川   重庆
    分省高校计算机考试黑龙江   吉林   辽宁   内蒙古   河北   北京   天津   新疆   甘肃   宁夏   青海   陕西   山西   河南   山东   江苏   安徽   浙江
    福建   广东   海南   广西   江西   湖北   湖南   四川   上海   重庆   贵州   云南   西藏
    成绩查询
    报考指南
    试题答案
    模拟试题
    考试辅导计算机一级   计算机二级   计算机三级   计算机四级
    经验交流
    高校计算机

    | 关于我们 | 联系我们 | 版权申明 | 网站导航 |
    琼ICP备12003406号