考试首页 | 考试用书 | 培训课程 | 模拟考场 | 考试论坛  
全国  |             |          |          |          |          |         
  当前位置:计算机等级 > 二级考试 > C语言程序设计 > C语言辅导 > 文章内容
  

计算机二级C语言考点解析:循环语句和循环函数

中华IT学院   【 】  [ 2017年9月5日 ]

  循环语句和循环函数

  Turbo C 2.0提供三种基本的循环语句: for语句、while语句和do-while语句。

  一、循环语句

  (一)、for循环 它的一般形式为:

  for(<初始化>;<条件表过式>;<增量>)

  语句;

  初始化总是一个赋值语句,它用来给循环控制变量赋初值;条件表达式是一个关系表达式,它决定什么时候退出循环;增量定义循环控制变量每循环一次后按什么方式变化。这三个部分之间用;分开。

  例如:

  for(i=1;i<=10;i++)

  语句;

  上例中先给i赋初值1,判断i是否小于等于10,若是则执行语句,之后值增加1。再重新判断,直到条件为假,即i>10时,结束循环。

  注意:

  (1).for循环中语句可以为语句体,但要用{和}将参加循环的语句括起来。

  (2).for循环中的初始化、条件表达式和增量都是选择项,即可以缺省,但;不能缺省。省略了初始化,表示不对循环控制变量赋初值。省略了条件表达式,则不做其它处理时便成为死循环。省略了增量,则不对循环控制变量进行操作,这时可在语句体中加入修改循环控制变量的语句。

  (3).for循环可以有多层嵌套。

  例如:

  for(;;) 语句;

  for(i=1;;i+=2) 语句;

  for(j=5;;) 语句;

  这些for循环语句都是正确的。

  main()

  {

  int i,j;

  printf(i j\n);

  for(i=0;i<2;i++)

  for(j=0;j<3;j++)

  printf(%d %d\n,i,j);

  }

  输出结果为:

  i j

  0 0

  0 1

  0 2

  1 0

  1 1

  1 2

  用for循环求1+2+……+100的和:

  main()

  {

  int sn=0,i;

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

  sn+=i; /*1+2+……+100*/

  printf(%d\n,sn);

  }

  从程序可以看出,使用循环语句可以大大简化代码。

  (二)、while循环 它的一般形式为:

  while(条件)

  语句;

  while循环表示当条件为真时,便执行语句。直到条件为假才结束循环。并继续执行循环程序外的后续语句。

  例如:

  #include stdio.h

  main()

  {

  char c;

  c='\0'; /*初始化c*/

  while(c!='\n') /*回车结束循环*/

  c=getche(); /*带回显的从键盘接收字符*/

  }

  上例中,while循环是以检查c是否为回车符开始,因其事先被初始化为空,所以条件为真,进入循环等待键盘输入字符;一旦输入回车,则c='\n',条件为假,循环便告结束。与for循环一样,while循环总是在循环的头部检验条件,这就意味着循环可能什么也不执行就退出。

  注意:

  (1).在while循环体内也允许空语句。

  例如:

  while((c=getche())!='\n');

  这个循环直到键入回车为止。

  (2).可以有多层循环嵌套。

  (3).语句可以是语句体, 此时必须用{和}括起来。

  用while循环求1+2+……+100的和:

  main()

  {

  int sn=0,i=0;

  while(++i<=100)

  sn+=i; /*求1+2+……+100*/

  printf(%d\n,sn);

  }

  (三)、do--while循环 它的一般格式为:

  do

  {

  语句块;

  }

  while(条件);

  这个循环与while循环的不同在于:它先执行循环中的语句,然后再判断条件是否为真,如果为真则继续循环;如果为假,则终止循环。因此,do-while循环至少要执行一次循环语句。

  同样当有许多语句参加循环时,要用{和}把它们括起来。

  用do--while循环求1+2+……+100的和:

  main()

  {

  int sn=0,i=1;

  do

  sn+=i; /*求1+2+……+100*/

  while(++i<=100);

  printf(%d\n,sn);

  }

  从上面三个程序看出,使用for,while和do--while求解同样的问题,基本思路都差不多,只是在第一次计算时,注意初值。

首页 1 2 3 尾页
分享到:
本文纠错】【告诉好友】【打印此文】【返回顶部
将考试网添加到收藏夹 | 每次上网自动访问考试网 | 复制本页地址,传给QQ/MSN上的好友 | 申请链接 | 意见留言 TOP
关于本站  网站声明  广告服务  联系方式  站内导航  考试论坛
Copyright © 2006-2017 中华考试网(Examw.com) All Rights Reserved  营业执照