变量的定义、类型的声明以及库文件的包含都不属于C语句的 而对于C程序中调用的函数,函数的声明部分不属于C语句,函数的执行部分由语句构成
一个程序分为数据描述和数据操作 前者是声明 后者是由语句来实现
控制语句
分支语句 if switch
循环 do while while for
转向 break goto continue return
函数调用语句
printf(); scanf();
表达书语句
空语句
复合语句 就是由{}组成的
C程序的结构
顺序 分支:判断 转向 循环
赋值语句 x=5;... 它具有右结合性 a=b=c=d a=(b=(c=d))
类型转换 如果赋值运算符两边的数据类型不相同 系统将自动进行类型转换 将赋值号右边的类型换成左边的类型
复合的赋值运算符 += -= *= /= %= <<= >>= &= ^= |=
if else 用的较多的时候应该用switch case break 来代替 switch 语句的注意点 当表达式的值与某个常量表达式的值相等时 就执行他后面的语句 然后就别再进行判断 继续执行后面所有的case 后的语句
case后各常量表达式的值不能相同 否则会出现错误
case后允许有多个语句 可以不用{}括起来 程序会顺序执行
case和default子句的先后顺序可以变动 而不会影响程序执行结果 但要注意如果default 子句前置 后便要加break 最后一句可以不加
default子句可以不要
switch的参数不能是浮点型 case后面必须是整形数或者整形表达式
for语句举例~~~
//质数判断
#include <stdio.h>
int main(void)
{
int a,i;
printf("Please input a number:/n");
scanf("%d",&a);
for(i=2;i<a;i++)
{
if(a%i==0)
break;
}
if(i==a||1==a)
printf("%d is a prime number/n",a);
else
printf("%d is not a prime number/n",a);
getchar();
return 0;
}
goto 无条件转移语句 与标号构成循环语句 能起到无条件循环的作用
loop;
......
goto loop;
loop是语句标号 是有效的标识符 后面要有; goto要在一个函数中 但可以不再一个循环层中
#include<stdio.h>
int main(void)
{
int i,j,t=3;
long sum=0;
for(i=1;i<=10;i++)
{
for(j=1;j<i;j++)
t=t*3;
sum+=t;
t=3;
}
printf("The result is/n%ld",sum);
getchar();
return 0;
}
//计算3+3^2+3^3+...+3^10的值。
continue语句是结束本次循环 跳过循环体中的剩余的语句而强制执行下一次循环 continue只终止本次循环 不能结束整个循环过程 break则是终止整个循环过程 继续执行循环语句下面的其他语句