学习目标:
例如:
- 一周掌握 C入门知识
学习内容:
1. 循环
1.1 for
for(表达式1;表达式2;表达式3){
循环体;
}
执行逻辑:先执行表达式1,然后执行表达式2,如果表达式2为真, 则执行循环体,然后执行表达式3, 然后再执行表达式2,如果还为真,则继续执行循环体和表达式3 直到表达式2为假,循环立即结束。
表达式1:循环变量赋初值
表达式2:终止条件
表达式3:增值或减值
例如:
嵌套结构
for(int i=0;i<5;i++)
{
for(int j=0;j<3;j++)
{
printf("%d %d\n",i,j);
}
}
1.2 while
格式:while(表达式){
循环体;
}
执行逻辑: 先执行表达式,如果表达式为真,则执行循环体, 然后再执行表达式,如果还为真,则继续执行循环体, 直到表达式为假,循环立即结束,继续执行循环后面的代码
1.3 do_while
格式:do{
循环体;
}while(表达式); //注意:最后有一个分号
执行逻辑: 先执行循环体,然后执行表达式,如果表达式为真,则继续执行循环体 然后再执行表达式,直到表达式为假,循环立即结束。
while和do_while区别:
while是先判断 后执行
do..while是先执行,后判断
也就是说,不管表达式是否为真,do..while的循环体至少执行一次。
1.4 循环控制语句
break 终止本层循环
continue 结束本层本次循环,继续下一次循环
return 0 结束整个程序
课堂练习:
1. 打印所有三位数之间的水仙花数:153==1^3+5^3+3^3
解析:
- #include <stdio.h>
- int main()
- {
- int i,a,b,c;
- for(i=100;i<1000;i++)
- {
- a=i/100;
- b=i/10%10;
- c=i%10;
- if(a*a*a+b*b*b+c*c*c == i)
- {
- printf("%d\n",i);//153,370,371,407
- }
- }
- }
2.
解析:因为i+=2为i=i+2,s+=i+1为s=s+(i+1),i=1所以答案选D.
3.打印九九乘法表
解析:
#include <stdio.h>
int main()
{
for(int i=1;i<10;i++)
{
for(int j=1;j<=i;j++)
{
printf("%d*%d=%d\t",j,i,i*j);
}
printf("\n");
}
}
4.终端输入行数:
5
*
**
***
****
*****
解析:
#include <stdio.h>
int main()
{
int i,j,a;
scanf("%d",&a);
for(int i=1;i<=a;i++)
{
for(int j=0;j<i;j++)
{
printf("*");
}
printf("\n");
}
}
5.循环输入一个5位数,判断它是不是回文数。当输入0时循环结束。
即12321是回文数,个位与万位相同,十位与千位相同。
解析:
6.读入两个整数(data1和data2)和一个运算符(op),计算表达式data1 op data2 的值.其中op可以为+、-、*、/四个符号中的任一种(用switch语句实现)
解析:
7.输入任意两个数,输出两数之间(包括这两个数)偶数之和。
解析:
课外作业:
无