c语言的顺序结构 选择结构 循环结构小结

顺序结构

1.定义:从main()开始,由上往下语句顺序执行

scanf()

scanf("普通/占位符",地址列表)
1.''普通/占位符'',输入时普通字符必须原样输入

int a,b;
scanf("%d,%d",&a,&b);
输入:3,5重点是,
scanf("a=%d,c=%d",&a,&b);
scanf("%d",&a);

2.占位符,输入时四种输入

int a,b;
scanf("%d%d",&a,&b);
输入:3空格7 回车
 3回车7回车
3tab键7
混合式输入:3空格tab键回车7

3.占位符%c,输入时一种输入

char ch1,ch2;
scanf("%c%c",&ch1,&ch2);
输入:ab

4.混合占位符,输入时一种输入

char ch1,ch2;
int x;
scanf("%c%d%c",&ch1,&x,&ch2);
输入:a空格1b

5.地址列表,输入时&

int x,y,z;
scanf("%d%d%d",&y,&x,&z);

字符数据的输入输出

putchar(),getchar()
学习方法:头文件名+函数的使用格式
1.putchar()
格式:putchar(字符常量或字符变量)
功能:输出一个字符但不输出单引号
例如:putchar('a'); a
putchar('\n'); 光标下移
putchar(100); d ascII值
putchar('100');格式错误:字符型数据单引号内只有一个字符
2.getchar()
功能:接收一个从键盘输入的字符
注:getchar()没有任何参数,函数的返回值是输入的字符
如:char a,b;
a=getchar();
b=getchar();
若输入为:1<回车>
则变量a的值为字符'1',变量b的值为回车

选择结构

1.定义:从main()开始,由上往下有些语句执行有些不执行
2.两类语句->执行语句:控制语句

两类表达式

if()...else...

格式1:
if(表达式)
语句序列1;=>if子句
后继子句
格式2:
if(表达式)
语句序列1;
else
语句序列2;
后继语句

main(){
int m=5;
if(m++>5)=====>m++=6
    printf("m=%d",m);
else
    printf("m=%d",m++);=====>m=6    m++=7
printf("m=%d",++m);======>m=8      ++m=8
}
输出:m=6  m=8

if语句只控制一条语句
例如:

main(){
int m=5;
if(m++>5)
      printf("%d",m--);//受if控制
      printf("%d",m);//不受if控制----》结构错误,改正加{}
else
      printf("%d",m);
}

格式3:if语句的嵌套,else配对在其上方最近且未配对的if
if(表达式1)
if(表达式2)
语句序列11;
else
语句序列12;
else
语句序列2;
例如:

int x;
scanf("%d",&x);
if(x<0)printf("-1\n");
else if(x>0)printf("1\n");
else break;

switch(){...}

格式:
switch(表达式)
{
case 常量表达式1:子句1;break;
case 常量表达式2:子句2;
case 常量表达式n:子句n;
default: 子句n+1;
}

注意:

1.switch后必须用小括号将表达式括起
2.case后常量整型或字符型,不能有变量和逗号运算符
3.各case后常量不能出现相同的值
4.case和default只是一个入口标志,不起中断作用,它们的顺序可以任意颠倒

switch语句有如下规则:

switch语句中的变量类型只能为byte、short、int或者char。
switch语句可以拥有多个case语句。每个case后面跟一个要比较的值和冒号。
case语句中的值的数据类型必须与变量的数据类型相同,而且只能是常量或者字面常量。
当变量的值与case语句的值相等时,那么case语句之后的语句无条件开始执行,直到break语句出现才会跳出switch语句。
当遇到break语句时,switch语句终止。程序跳转到switch语句后面的语句执行。case语句不必须要包含break语句。如果没有break语句出现,程序会继续执行下一条case语句,直到出现break语句。
switch语句可以包含一个default分支,该分支必须是switch语句的最后一个分支
default在没有case语句的值和变量值相等的时候执行。default分支不需要break语句。

例题分析

循环结构

1.定义:从main()开始,从上向下,使得某些语句重复执行
2.循环结构的程序:在顺序结构中加入循环控制语句
方式1:
While()
{
循环体语句序列;
}
方式2:
Do
{
循环体语句序列;
}while();
方式3:
for(;;)
{
循环体语句序列
}
方式4:
if(){}
else{}与goto配合使用

格式1---while语句(当型循环):

While(表达式)
{
循环体语句序列;
}
后继语句;
说明:
1.执行过程直到表达式为假跳出循环
2.表达式()加括号
3.while和它的控制语句算一条执行语句
4.复合语句算一条执行语句
例如:

main(){
int n=6;
while(n<9)
{printf("%d\n",n);
n++;
}
printf("%d\n",n--);
}
输出
6
7
8
9

格式2---do-while语句(直到型循环):

do
循环体语句序列
while(表达式);
后继语句
说明:1.执行过程
2.do-while();
3.do-while配对
4.do就近控制一条,若要控制多条的话,需要加花括号变成复合语句
例:

while(表达式);-----》while后加分号表示空控制语句,也是一条单独的语句
语句1;
语句2;
语句3;所以该程序共有四条语句
do
{语句1
语句2
语句3}
while(表达式);----》该程序共一条语句

格式3:

for(exp1;exp2;exp3)
{
循环语句序列;
}
后继语句;
说明:1.执行过程
2:exp1---初始化---》执行一次
exp2----条件---》判断
exp3----》增量式----》影响exp2
3.exp2----永真---》死循环
4.两次分号分割三个表达式
5.for(exp1;1;exp3)
循环体
缺省exp2为永真表达式,默认填入为1
例:求循环体次数,执行后变量i=?

问题1
for(i=1;i++<4;);循环体执行3次,i=5
问题2
for(i=1;++i<4;i++);循环体执行1次,i=4

例题:1+....+100哦这个题hhh
(1)累加器:
sum=0;sum+=i;
累乘器:sum=1;sum*=i;
(2)重复加法
解决方法(4种)(以下代码均为菜鸡作者随手一写,意会即可)

int i,sum=0;
1.for(int i=1;i<=100;i++)sum+=i;
2.while(i++<=100)sum+=i;
3.do{sum+=i}while(i<101)
4.LP:sum+=i;i++
if(i<=100)goto LP;

两个控制语句----break continue

格式:break;跳出
功能:中止退出。范围:循环体照和switch体
格式:continue;
功能:结束一次循环继续
范围:循环体中,在for循环中跳回exp3,while循环中跳回while表达式

双循环结构

定义:一个语句出现两个以上的for循环,while循环
以双循环为例最外层成为外循环,内层为内循环,内循环结束后回到外循环

你可能感兴趣的:(c语言的顺序结构 选择结构 循环结构小结)