printf(“%d,%d,%d\\n”,a,b,c); }
第三章 选择语句和循环语句
【要点归纳】
1、if语句
if语句有三种使用形式 ⑴单分支if语句。
if(条件) 语句; ⑵双分支if语句。
if(条件) 语句1; else 语句2; ⑶多分支if语句。
if(〈条件1〉) 语句1; else if(〈条件2〉)语句2; ?
else if (〈条件n〉)语句n; else 语句n+1;
2、switch(开关)语句
switch语句用于方便地从多个语句中选择一个或多个语句执行。 switch(〈表达式〉) {
case 常量表达式1: 语句1; case 常量表达式2: 语句2; ?
case 常量表达式n: 语句n; default: 语句n+1; }
注:表达式的值一定是整型值,若为其他类型,最后都要转换为整型数。 3、while循环语句
while(条件)语句;
注:先判断条件,后执行语句; 4、do-while循环语句
do 语句;
while(条件);
注:先执行一次循环体,再判断条件。
While和do-while语句的差别是,后者至少执行“语句”一次,而前者有时一次也不执行语句。
5、for循环语句
for(表达式1;表达式2;表达式3) 语句;
13
注:省略各个表达式时,应能够知道其意义。
⑴“表达式1”可以省略,此时应在该语句之前给循环变量赋初值。其后的分号不能省略。
⑵“表达式2”可以省略,即无判定条件,循环无终止进行下去。需要在循环体中用break等语句退出循环。
⑶“表达式3”可以省略,这样需要在循环体“语句”中让循环变量变化,以保证循环能正常结束。
⑷“表达式1”和“表达式3”可以同时省略,这样为⑴和⑶两种情况同时出现,需要使用相关语句保证循环结束。
⑸三个表达式都可省略,这样为⑵和⑷两种情况同时出现,需要使用相关语句保证循环结束。
#include
int i=1,sum=0; for(; ;) {
if(i>100) break; sum+=i; i++; }
printf(“sum=%d”,sum); }
6、 break语句
break语句的使用格式很简单,由关键字break和分号构成,其功能如下:
? 在switch语句中,break用来使程序流程跳出switch语句,继续执行switch后的语
句;
? 在循环语句中,break用来从最近的循环体内跳出来。 7、 continue语句
continue语句只能用于循环语句中,作用为结束本次循环,即跳过循环体中尚末执行的语句,接着进行是否执行下一次循环的判定。
【本节例题选编】 1、选择题
【例3.1】以下语句错误的是
A.if(x>y);                                     B.if(x=y)&&(x!=0) x+=y; C.if(x!=y) scanf(“%d”,&x); esle scanf(“%d”,&y);     D.if(x 【例3.2】C语言的if语句中,用作判断的条件表达式为          A.任意表达式    B.逻辑表达式   C.关系表达式    D.算术表达式   【例3.3】为了避免在嵌套的条件语句if-else中产生二义性,C语言规定:else子句总是与   配对。  A.缩排位置相同的if    B.同一行上的if    C.其之后最近的if      D.其之前最近的if   【例3.4】以下程序的输出结果是             14  #include    int i=1,j=1,k=2;     if((j++ || k++) && i++)  printf(“%d,%d,%d\\n”,i,j,k); }  A.1,1,2       B.2,2,1    C.2,2,2       D.2,2,3   【例3.5】已知int x=10,y=20,z=30; 以下语句执行后x,y,z的值是         。  if(x>y)  z=x; x=y; y=z;  A.x=10,y=20,z=30        B.x=20,y=30,z=30 C.x=20,y=30,z=10        D.x=20,y=30,z=20  【例3.6】以下程序的运行结果是           。  #include    int m=5;     if(m++>5)  printf(“%d\\n”,m);    else       printf(“%d\\n”,m--); }  A.4         B.5       C.6        D.7  【例3.7】以下程序的输出结果是           。  #include    int a=100,x=10,y=20,ok1=5,ok2=0;    if(x          if(ok2)     a=10;    a=-1;     printf(“%d\\n”,a); }  A.1       B.0        C.-1         D.值不确定  【例3.8】若a,b均是整型变量,正确的switch语句是          A.switch(a)                        B.switch(a)  {                                  {     case 1.0: printf(“i\\n”);                 case  b: printf(“i\\n”);    case 2: printf(“you\\n”);                case  1: printf(“you\\n”); }                                  }  C.switch(a+b)                      D.switch(a+b)    15  {                                  {     case 1: printf(“i\\n”);                   case 1: printf(“i\\n”);    case 2*a: printf(“you\\n”);               case 2: printf(“you\\n”); }                                  }  【例3.9】对for(表达式1;;表达式3),可理解为          A.for(表达式1;0;表达式3)    B.for(表达式1;表达式3;表达式3) C.for(表达式1;1;表达式3)    D.for(表达式1;表达式1;表达式3)  【例3.10】执行以下程序段后,变量a,b,c的值分别是         。  int x=10,y=9; int a,b,c;  a=(--x= =y++)? --x: ++y; b=x++; c=y;  A.a=9,b=9,c=9          B.a=8,b=8,c=10 C.a=9,b=10,c=9         D.a=1,b=11,c=10  【例3.11】有以下程序段:  int n=0, p; do{  scnaf(“%d”,&p); n++;  }while(p!=12345 && n<3);  此处do-while循环的结束条件是       。 A.p的值不等于12345并且n的值小于3 B.的值等于12345并且n的值大于等于3 C.p的值不等于12345或者n的值小于3 D.p的值等于12345或者n的值大于等于3  【例3.12】下面程序中循环体的执行次数是           。  a=10; b=0;  do{ b+=2;  a-=2+b;  }while(a>=0);  A.1        B.2         C.3        D.4  【例3.13】以下程序段          。  x=-1; do     {  x=x*x;  } while(!x);  A.是死循环              B.循环执行二次 C.循环执行一次          D.有语法错误  【例3.14】以下程序的执行结果是           #include    int a=0, i;     for(i=1; i<5; i++)    {   switch(i)    16 
相关推荐: