目录
1. 简介
1.1 概述
具有一定的逻辑功能和控制功能
1.2 C语言基本结构
顺序结构、选择结构、循环结构
①顺序结构:是指从左到右,从上到下的顺序执行程序
②选择结构:根据给予的条件判定,根据判定的结果来控制程序的运行
③循环结构:因某些原因而反复循环使用的一种程序结构。分为两种:一种是只关心循环次数,不管结果,另一种则是只关心结果,不关心循环次数。
2. 九条基本语句
2.1 If语句
(1)if
格式:if(条件表达式){
语句1;
}
含义:对表达式结果进行判定,结果为真则执行语句1,为假则不执行。
(2)if else
格式: If(条件表达式){
语句1;
}
else {
语句2;
}
含义:对表达式结果进行判定,结果为真则执行语句1,为假则执行else内的语句2。
(3)if else if
格式: if(条件表达式1){
语句1;
}
else if(条件表达式2){
语句2;
}
含义:对表达式1进行判定,结果为真则执行语句1,结果为假则继续判定表达式2,若表达式2结果为真则执行语句2,结果为假则不执行任何操作。
#include <stdio.h>
int main()
{
int num;
printf("请输入成绩\n");
scanf("%d",&num);
if( num>=0 && num<=59)
{
printf("成绩不合格\n");
}
else if(num<=89 && num>=60)
{
printf("成绩良好\n");
}
else if(num<=100 && num>=90)
{
printf("成绩优秀\n");
}
else
{
printf("输入错误\n");
}
}
2.2 switch语句
(1)格式:switch(整型表达式)
{
case 常量1:语句1;
case 常量2:语句2;
:
:
case 常量n:语句n;
default : 语句 n+1;
}
(2)含义:计算表达式1的值并与case的常量值作比较,若相等则执行其后的语句,并且不再进行判断,直接执行后面所有case后的语句。如果表达式的值与所有case的值都不相等则执行default后的语句。
可用break语句来跳出switch语句
int main()
{
int n,s;
printf("输入月份:");
scanf("%d",&n);
switch(n)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12: printf("本月有31天\n");break;
case 2: printf("闰年输入1,平年输入2:");
scanf("%d",&s);
if(s==1)
{
printf("本月28天\n");
}
else
{
printf("本月29天\n");
}
break;
case 4:
case 6:
case 9:
case 11: printf("本月有30天\n");break;
default : printf("月份输入错误\n");
}
}
2.3 循环语句
2.3.1 while循环语句
(1)格式:while(条件表达式)
{
循环体语句;
}
(2)含义:计算表达式的值如果为真则循环执行语句,如果为假则不做任何操作。
#include <stdio.h>
int main()
{
int i=0;
while(i<=10)
{
printf("i=%d\n",i);
i++;
}
}
2.3.2 do while循环语句
(1)格式:do
{
循环体语句;
}while(条件表达式);
(2)含义:先执行一次循环体语句,再判定条件表达式,结果为真则再执行一次循环体语句,结果为假不做任何操作。
#include <stdio.h>
int main()
{
int x=1,a;
printf("是否循环,输入0或1\n");
scanf("%d",&a);
do
{
x+=1;
printf("%d\n",x);
}
while(a);
}
2.4 for循环语句
(1)格式:
for(循环变量赋值语句1;循环条件表达式;变量更改语句2)
{
循环体语句;
}
(2)含义:首先根据语句1赋予循环变量的初值,按照条件表达式的规则,判断是否满足循环条件,如果满足,就执行循环体执行语句,循环体执行语句执行完后,根据语句2对循环变量进行相应的操作。
#include <stdio.h>
int main()
{
int i;
for(i=1;i<=100;i++)
{
if(!(i%7))
{
printf("%d\n",i);
}
}
}
2.5 跳转语句
(1)break语句
结束离break最近的循环语句
(2)continue语句
结束本次循环,开始下一次循环
(3)return语句
主要用于结束函数,或用于返回值
(4)goto语句
让程序无条件跳转到标签位置,往下执行语句。
综合练习
//输入两个整数,判断第一个数能否把第二个数整除
#include <stdio.h>
int main()
{
int a,b;
printf("输入数值a:");
scanf("%d",&a);
printf("输入数值b:");
scanf("%d",&b);
if(a%b==0)
{
printf("能整除\n");
}
else
{
printf("不能整除\n");
}
}
//判断用户输入的整数
#include <stdio.h>
int main()
{
while(1)
{
int a;
printf("输入整数:");
scanf("%d",&a);
if(a<0)
{
printf("负数\n");
}
else if(a>0 && a%2==0)
{
printf("正偶数\n");
}
else if(a>0 && a%2==1)
{
printf("正奇数\n");
}
}
}
//编写一个简单的计数器,输入整数,计算表达式,并输出结果
#include <stdio.h>
int main()
{
int data1,data2,s;
char op;
printf("输入要计算的整数、运算符、整数:");
scanf("%d%c%d",&data1,&op,&data2);
switch(op)
{
case '+': s=data1+data2;printf("%d\n",s);break;
case '-': printf("%d\n",data1-data2);break;
case '*': s=data1*data2;printf("%d\n",s);break;
case '/': printf("%7.5f\n",data1/(float)data2);break;
}
}