b=a;a=t;//b=5;a=4
所以结果为4599
三)switch语句
(1)switch的执行过程(根据switch后面的表达式的值找到case的入口,从入口处执行直到遇到break。
)
(2)break的用法
例题:
1.#include
voidmain()
{intx=1,y=1,a=0,b=0;
switch(x)
{case0:
b++;
case1:
a++;
case2:
a++;b++;break;
case3:
a++;b++;
}
printf(“a=%d,b=%d\n”,a,b);
}
输出结果:
a=2,b=1
四)算法
1.分段函数
输入出租车里程S,输出应付车费F。
S和F的关系如下:
2.奇偶判断
if(x%2==0)//偶数条件
3.整除判断
if(x%n==0)//表示x能被n整除
4.大写字母字符的判断
if(ch>=’A’&&ch<=’Z’)//表示ch是大写字母字符的条件
5.小写字母字符的判断
if(ch>=’a’&&ch<=’z’)//表示ch是小写字母字符的条件
6.字母字符的判断
if((ch>=’A’&&ch<=’Z’)||(ch>=’a’&&ch<=’z’))//表示ch是字母字符的条件
7.数字字符的判断
if(ch>=’0’&&ch<=’9’)//表示ch是数字字符的条件
四、循环结构
一)循环条件均以条件为真(非0)进行循环,以条件为假(0)结束循环)
例题:
1.以下叙述正确的是()
A)do-while语句构成的循环不能用其它语句构成的循环来代替
B)do-while语句构成的循环只能用break语句退出
C)do-while语句构成的循环,在while后的表达式为非零时结束循环
D)do-while语句构成的循环,在while后的表达式为零时结束循环
解答:
D
2.设有程序段:
intk=10;
while(k=0)k=k-1;
则循环体执行的次数为( )
A)10次 B)9次 C)0次 D)1次
解答:
注意条件为k=0,一个等号,这是将0赋值给k,故表达式为0,结束循环,所以选C
二)三种循环的执行流程
例题:
1.设变量y值为3,执行下列循环语句后,变量y的值的是()
doy++;while(y<4);
A)3B)4C)5D)6
解答:
++,--独立书写时不用管是后置还是先置,就认为是y=y+1,所以选B
2.执行语句for(I=1;I<4;I=I+2);后变量I的值是()
A)3B)4C)5D)0
解答:
I=1,1<4y
I=3,3<4y
I=5,5<4n,所以选C
3.已知:
intx=0,y=10;while(xA.是无限循环B.执行次数不定
C.执行6次D.执行5次
解答:
x=0,y=100<10yx=1,y=9
x=1,y=91<9yx=2,y=8
x=2,y=82<8yx=3,y=7
x=3,y=73<7yx=4,y=6
x=4,y=64<6yx=5,y=5
x=5,y=55<5n结束循环
所以选D
4.设有inti;,则执行for(i=1;i++<=4;);后变量i的值为______。
A.4B.5
C.6D.7
解答:
注意i++<=4是后置++则改为i<=4i=i+1
i=1,1<=4i=2y
i=2,2<=4i=3y
i=3,3<=4i=4y
i=4,4<=4i=5y
i=5,5<=4i=6n结束循环
所以选C
三)循环嵌套的执行次数
例题:
1.#include“stdio.h”
voidmain()
{intI,j;
for(I=0;I<=3;I++)
{for(j=0;j
printf(”%d”,I);
printf(“*\n”);
}
}
输出结果:
解答:
I=0I<=3yj=0j<0n结束第二个for循环,执行printf(“*\n”);
I=1I<=3yj=0j<1yprintf(”%d”,1);
j=1j<1n结束第二个for循环,执行printf(“*\n”);
I=2I<=3yj=0j<2yprintf(”%d”,2);
j=1j<2yprintf(”%d”,2);
j=2j<2n结束第二个for循环,执行printf(“*\n”);
I=3I<=3yj=0j<3yprintf(”%d”,3);
j=1j<3yprintf(”%d”,3);
j=2j<3yprintf(”%d”,3);
j=3j<3n结束第二个for循环,执行printf(“*\n”);
I=3I<=3n结束外层循环。
所以结果是:
*
1*
22*
333*
四)break和continue的用法
例题:
1.有以下程序
#include
voidmain()
{inta=1,b;
for(b=1;b<=10;b++)
{if(a