基本语句
表达式语句
- C 程序设计语言的表达式语句由表达式加上分号
;
组成 - 分别由以下几种类:算术表达式、赋值表达式、逗号表达式、关系表达式、逻辑表达式 等...
- 其一般形式为:
表达式;
- 执行表达式语句就是计算表达式的值
空语句
- 空语句是什么也不执行的语句,一般由分号
;
或大括号{}
组成 - 在程序中空语句可用来作空循环体
- 一般推荐使用大括号
{}
来表示空语句,这样更直观
复合语句
- 把多个语句用括号
{}
括起来组成的一个语句称复合语句。 在程序中应把复合语句看成是单条语句,而不是多条语句。 - 复合语句内的各条语句都必须以分号
;
结尾;此外,在括号}
外不能加分号。
输入输出函数的调用
printf
printf 是输出一个字符串
scanf
scanf 通过
%
转义的方式可以得到用户通过标准输入设备输入的数据
#include <stdio.h>
int main(void) {
char ch1;
char ch2;
char ch3;
int a;
int b;
printf("请输入ch1的字符:");
ch1 = getchar();
printf("ch1 = %c
", ch1);
getchar(); // 测试此处getchar()的作用
printf("请输入ch2的字符:");
ch2 = getchar();
printf("ch2 = %c
", ch2);
getchar(); // 测试此处getchar()的作用
printf("请输入ch3的字符:");
scanf("%c", &ch3); // 参数2一定是变量的地址! 而不是变量名
printf("ch3 = %c
", ch3);
printf("请输入a的值:");
scanf("%d", &a);
printf("a = %d
", a);
printf("请输入b的值:");
scanf("%d", &b);
printf("b = %d
", b);
return 0;
}
选择结构
if
- if
- if ... else ...
- if ... else if ... else ...
switch
#include <stdio.h>
int main(void) {
char c;
c = getchar();
switch (c) { // 参数只能是整型变量
case '1':
printf("OK
");
break; // 如果不加 break,就会出现 "case穿透"
case '2':
printf("not OK
");
break; // 遇到 break 就跳出
default: // 如果上面的条件都不满足,执行 default
printf("are u ok?
");
}
return 0;
}
三目运算符
表达式 ? 值1 : 值2
表达式为 true → 值1;表达式为 false → 值2
循环结构
for
案例:从 1 到 100 内的数,凡是7(个位带 7 或者十位带 7) 或 7 的倍数需要敲桌子
#include <stdio.h>
int main(void) {
int i;
for(i=1; i<=100; i++) {
// 需要判断个位带7 或者 十位带7 或者 7的倍数
if(i % 7 == 0 || i % 10 == 7 || i / 10 == 7) {
printf("敲桌子
");
} else {
printf("%d
",i);
}
}
return 0;
}
while、do...while
while
案例:水仙花数
#include <stdio.h>
int main(void) {
int i = 100;
int a, b, c;
while(i <= 999) {
// 拆解个位、十位、百位
a = i / 100; // 百位
b = i / 10 % 10; // 十位
c = i % 10; // 个位
// 判断是否是水仙花数
if (a*a*a + b*b*b + c*c*c == i)
printf("水仙花: %d
", i);
i++;
}
return 0;
}
do ... while
#include <stdio.h>
#include <math.h>
int main(void) {
int i = 100;
int a, b, c;
do {
a = i / 100;
b = i / 10 % 10;
c = i % 10;
//该数学函数库的函数表示一个数的 n 次幂
if(pow(a, 3) + pow(b, 3) + pow(c, 3) == i)
printf("水仙花:%d
", i);
i++;
} while (i <= 999);
return 0;
}
break、continue
- continue:在循环语句中,如果希望立即终止本次循环,并执行下一次循环,此时就需要使用 continue 语句
- 在 switch 条件语句和循环语句中都可以使用 break 语句:
- 当它出现在 switch 条件语句中时,作用是终止某个 case 并跳出 switch 结构。
- 当它出现在循环语句中,作用是跳出当前内循环语句,执行后面的代码。
- 当它出现在嵌套循环语句中,跳出最近的内循环语句,执行后面的代码。
嵌套循环
外层执行一次,内层执行一周
案例一:打印时钟
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int hours = 0, minutes = 0, seconds = 0;
for(hours = 0; hours <= 12; hours++)
for(minutes = 0; minutes <= 60; minutes++) {
for(seconds = 0; seconds <= 60; seconds++) {
printf("%2d:%2d:%2d
", hours, minutes, seconds);
Sleep(100);
}
system("cls"); // 清屏
}
printf("DING!!!");
}
return 0;
}
案例二:九九乘法表
#include <stdio.h>
int main(void) {
int i = 1, j = 1;
for (i = 0; i < 10; i++) {
for (j = 1; j <= i; j++)
printf("%d*%d = %2d ", j, i, i*j);
printf("
");
}
return 0;
}