2011年计算机等级考试二级C语言辅导笔记:C语言程序设计

来源:计算机等级考试    发布时间:2012-08-28    计算机等级考试视频    评论


  void main(){
  int a=0,n;
  printf("/n input n: ");
  scanf("%d",&n);
  do printf("%d ",a++*2);
  while (--n);
  }
  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则可能计算多次。循环体可能多次执行,也可能一次都不执行。for 语句的执行过程如图所示。
  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);
  }
  } 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;
  }
  }
  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)语句。如在循环体中没有相应的控制手段,则造成死循环。

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答