复习
算术运算符
+ - * / %
除法:整数相除得整数,除不开的部分舍去。 10/6 得 1
除法的两个操作数中,只要有一个小数,结果就是小数。
模除:两个操作数必须是整数。
除法和模除分母位置都不能是0。
关系运算符
> >= < <= == !=
关系运算符的结果是真假
整数0 表示假
非0整数都是真
C语言默认使用1表示真。
== 比较 = 赋值
逻辑运算符
&& 两个操作数都是真,结果才是真
|| 两个操作数都是假,结果才是假
! 真变假,假变真。 0 1
优先级
算术运算 > 关系运算 > 逻辑运算
if语句
if(条件)//条件为真执行语句1 否则执行语句2
{
语句1
}
else//else可以省略 如果写了else 必须有与之匹配的if
{
语句2
}
if嵌套
if(条件1)
{
if(条件2)
{
语句1
}
语句2 语句2 的执行和条件2没有关系。
}
并列if
if(条件1)
{
}
if(条件2)//条件2不受条件1影响
{
}
多重分支
if(条件1)//条件1为真 条件2和条件3都不执行
{}
else if(条件2)//条件1为假 判断条件2
{}
else if(条件3)//条件1和条件2都假 判断条件3
{}
else
{}
进制
二进制转十进制 每一位乘以权值相加
二进制转八进制 每三位二进制对应一位八进制
二进制转十六进制 每四位二进制对应一位十六进制
十进制转二进制 短除法
字符常量
char
‘a’ ascii表里有的字符才可以字符常量。
‘\n’ ‘\t’
字符的本质就是整数。
作业1:
完成如下功能:
1 显示: “please input a number:”
2 用户输入
3 判断用户输入的数是不是 > 90
#include <stdio.h>
int main()
{
int num;
printf("please input a num:\n");
scanf("%d", &num);
if(num > 90)
{
printf("yes\n");
}
else
{
printf("no\n");
}
return 0;
}
作业2:
判断一个数是否满足条件:
a) 是7的倍数
b) 不是3的倍数
如果同时满足,输出该数
#include <stdio.h>
int main()
{
int num;
scanf("%d", &num);
if(num%7==0 && num%3!=0)
{
printf("%d\n", num);
}
return 0;
}
作业3:
输入某一时间,输出它的下一秒:(笔试编程题)
效果示例: 输入: 20 59 59
输出: 21:0:0
要求,如果用户输入了错误的时间,退出 24点退出, 61秒退出
#include <stdio.h>
int main()
{
int h, m, s;
scanf("%d%d%d", &h, &m, &s);
//结构嵌套深,会影响代码可读性
// if(h>=0&&h<24&&m>=0&&m<60&&s>=0&&<60)
// {
// }
if(h<0||h>23||m<0||m>59||s<0||s>59)
{
return 0;
}
s = s+1;
if(s == 60)
{
m = m+1;//分进位
s = 0;
if(m == 60)
{
h = h+1;//时进位
m = 0;
if(h == 24)
{
h = 0;
}
}
}
printf("%d:%d:%d\n", h, m, s);
return 0;
}
#include <stdio.h>
int main()
{
int h, m, s;
scanf("%d%d%d", &h, &m, &s);
//结构嵌套深,会影响代码可读性
// if(h>=0&&h<