c语言程序设计:C语言程序设计初步(5)



转移语句

语句通常总是按顺序方向 或按语句功能所定义方向执行如果需要改变正常流向 可以使用本小节介绍转移语句在C语言中提供了4种转移语句:
goto,, continue和
其中语句只能出现在被调 用于返回主调我们将在章中具体介绍 本小节介绍前 3种转移语句

1.goto语句

goto语句也称为无条件转移语句般格式如下: goto 语句标号; 其中语句标号是按标识符规定书写符号 放在某语句行
前面标号后加冒号(:)语句标号起标识语句作用和goto 语句配合使用
如: label: i;
loop: while(x<7);
C语言不限制中使用标号次数但各标号不得重名goto语句语义是改变流向 转去执行语句标号所标识语句
goto语句通常和条件语句配合使用可用来实现条件转移 构成循环跳出循环体等功能
但是在结构化设计中般不主张使用goto语句 以免造成流程混乱使理解和调试都产生困难
统计从键盘输入个数
#\"stdio.h\"
void {
n=0;
prf(\"input a \\n\");
loop: (getchar!=\'\\n\')
{ n;
goto loop;
}
prf(\"%d\",n);
}
本例用语句和goto语句构成循环结构当输入不为\'\\n\'时即执行n进行计数然后转移至语句循环执行直至输入为\'\\n\'才停止循环

break语句

语句只能用在switch 语句或循环语句中 其作用是跳出switch语句或跳出本层循环转去执行后面由于语句转移方向是明确所以不需要语句标号和的配合语句般形式为: ; 上面例题中分别在switch语句和for语句中使用了 语句作为跳转使用语句可以使循环语句有多个出口些场合下使编程更加灵活、方便

continue语句

continue语句只能用在循环体中般格式是:
continue;
其语义是:结束本次循环即不再执行循环体中continue 语句的后语句转入下次循环条件判断和执行应注意 本语句只结束本层本次循环并不跳出循环
void {
n;
for(n=7;n<=100;n)
{
(n%7!=0)
continue;
prf(\"%d \",n);
}
}
输出100以内能被7整除
n;
for(n=7;n<=100;n)
{
(n%7!=0)
continue;
prf(\"%d \",n);
}
本例中对7~100个数进行测试如该数不能被7整除即模运算不为0则由continus语句转去下次循环只有模运算为0时才能执行后面prf语句输出能被7整除
#\"stdio.h\"
void {
char a,b;
prf(\"input a :\\n\");
b=getchar;
while((a=getchar)!=\'\\n\'){
(ab){
prf(\"same character\\n\");
;
}b=a;
}
}
检查输入行中有无相邻两相同
char a,b;
prf(\"input a :\\n\");
b=getchar;
while((a=getchar)!=\'\\n\'){
(ab){
prf(\"same character\\n\");
;
}b=a;
}
本例把第个读入送入b然后进入循环把下读入a比较a,b是否相等若相等则输出提示串并中止循环若不相等则把a中赋予b输入下次循环
输出100以内素数素数是只能被1 和本身整除可用穷举法来判断个数是否是素数
void {
n,i;
for(n=2;n<=100;n){
for(i=2;i<n;i)
(n%i0) ;
(i>=n) prf(\"\\t%d\",n);
}
} n,i;
for(n=2;n<=100;n){
for(i=2;i<n;i)
(n%i0) ;
(i>=n) prf(\"\\t%d\",n);
}
本例层循环表示对1~100这100个数逐个判断是否是素数共循环100次在第 2层循环中则对数n用2~n-1逐个去除若某次除尽则跳出该层循环介绍说明不是素数 如果在所有数都是未除尽情况下结束循环则为素数此时有i>=n 故可经此判断后输出素数然后转入下次大循环实际上2以上所有偶数均不是素数因此可以使循环变量步长值改为2即每次增加2此外只需对数n用2~n去除就可判断该数是否素数这样将大大减少循环次数减少运行时间
#\"math.h\"
void {
n,i,k;
for(n=2;n<=100;n2){
k=sqrt(n);
for(i=2;i<k;i)
(n%i0) ;
(i>=k) prf(\"\\t%2d\",n);
}
}小结

1.从执行流程来看 可分为 3种最基本结构: 顺序结构分支结构以及循环结构

2.中执行部分最基本单位是语句C语言语句可分为 5类:
(1)表达式语句  任何表达式末尾加上分号即可构成表达式语句 常用表达式语句为赋值语句
(2)语句  由加上分号即组成

语句
(3)控制语句  用于控制流程由专门语句定义符及所需表达式组成主要有条件判断执行语句循环执行语句转向语句等
(4)复合语句  由{}把多个语句括起来组成个语句 复合语句被认为是单条语句它可出现在所有允许出现语句地方如循环体等
(5)空语句  仅由分号组成无实际功能

3.C语言中没有提供专门输入输出语句 所有输入输出都是由标准库输入输出来实现
scanf和getchar是输入接收来自键盘输入数据
scanf是格式输入 可按指定格式输入任意类型数据
getchar输入 只能接收单个
prf和putchar是输出向显示器屏幕输出数据
prf是格式输出可按指定格式显示任意类型数据
putchar是显示只能显示单个

4.关系表达式和逻辑表达式是两种重要表达式 主要用于条件执行判断和循环执行判断

5.C语言提供了多种形式条件语句以构成分支结构
(1)语句主要用于单向选择
(2)-语句主要用于双向选择
(3)--语和switch语句用于多向选择
这几种形式条件语句般来说是可以互相替代

6.C语言提供了 3种循环语句
(1)for语句主要用于给定循环变量初值 步长增量以及循环次数循环结构
(2)循环次数及控制条件要在循环过程中才能确定循环可用 while或do-while语句
(3) 3种循环语句可以相互嵌套组成多重循环循环的间可以并列但不能交叉
(4)可用转移语句把流程转出循环体外但不能从外面转向循环体内
(5)在循环中应避免出现死循环即应保证循环变量值在运行过程中可以得到修改并使循环条件逐步变为假从而结束循环

7.C语言语句小结
名 称          般 形 式
简单语句       表达式语句表达式;
空语句;
复合语句        { 语句 }
条件语句       (表达式)语句;
           (表达式)语句1; 语句2;
           (表达式1)语句1; (表达式2) 语句2…语句 n;
开关语句        switch(表达式){ 常量表达式: 语句…default: 语句; }
循环语句       while语句
           while(表达式)语句;
           for语句 for(表达式1; 表达式2; 表达式3)语句;
           语句 ;
           goto语句 goto;
           continue语句 continue;
            语句 (表达式);
Tags:  c语言程序设计答案 c语言程序设计软件 c语言程序设计教程 c语言程序设计

延伸阅读

最新评论

发表评论