一、常量
1、什么是常量:程序在运行期间数值不能变化的叫常量
100 默认int
100u unsigned int
100lu unsigned long
100llu unsigned long long
100l long
100ll long long
3.14 默认double
3.14f float
3.14l long double
问题:100年有多少秒?
#define SEC (3600*24*365*100)
二、格式化输入输出
%nd 显示n个字符宽度 不够则补空格,右对齐
%-nd 显示n个字符宽度 不够则补空格,左对齐
%0nd 显示n个字符宽度 不够则补0,右对齐
%m.nf 显示n个字符宽度小数点也算一位,不够补空格,m 小
数点后的位数(四舍五入)
%g 不显示小数点后多余的0;
三、运算符
1.自变运算符:++/--使变量的值自动+1或者-1
前自变:++num --num 立即生效
后自变: num++ num-- 下一行语句生效
注意: 不要在一行内多次使用自变运算符
2.算术运算符:+ - * / %
整数/整数 结果没有小数点
/ % 除数不能为0. 出现错误;浮点数例外(核心已转储6)
3.关系运算符 > < >= <= == !=
比较结果必须是0或者1,比较结果还能继续参与运算
int num = -5;
if(1< num < 10) 先1和num比较 然后结果再和10比较
永远为真,运算规则和数学不一样
4.逻辑运算符 && || !
先把运算对象转换成逻辑值,零转换为假,非零转换真
A && B 一假即假 A||B 一真即真
!A 求反
短路特性 : && || 具有短路特性 当左边的运算对象已经能
够确定整个表达式的结果时,右边的所有运算对象不再计算
5.三目运算符 运算对象有3个部分
A?B : C
判断A的值是否为真,如果为真执行B,否则执行C;
该语句不能使用流程控制语句,因为它必须要有运算结果
6.赋值运算符 = +=
a += b; a = a + b;
a -= b; a = a - b;
7.位运算符 & | ~ >> <<
sizeof 也是运算符,但是sizeof括号内的表达式不会计算
四、类型转换
自动类型转换:
只有相同类型的数据才能进行运算,不同的数据类型必须
转换成相同的类型才能进行计算
转换规则:以不丢失数据为基础,适当牺牲空间
1.字节少的向字节多的转
2.有符号的向无符号的转
3.整型向浮点型转
强制类型转换:
(新类型)数据 慎用
五、分支语句
if (表达式1)
{
表达式1为真时,执行此处代码
}
else if (表达式2)
{
表达式2为真时,执行此处代码
}
else
{
表达式为假时,执行此处代码
}
注意:大括号建议上下对齐,当语句只有一条时可以省略,但不
建议
练习一、输入三个整数,从大到小显示?
练习二、输入一个年份,判断是闰年还是平年?
四闰百不闰,四百闰
练习三、输入一个月份和年份,判断该月有多少天?
练习四、输入一个三位整数,判断是否是水仙花数
abc == a*a*a + b*b*b + c*c*c
练习五、输入一个等级,判断等级
【100,90】 A
(90,80】 B
(80,70】 c
(70,60】 D
(60,0] E
other 输入成绩有误
六、开关语句
switch(n)
{
case val: ...
break;
case val : ...
break
....
default: ...
//所有case都没匹配成功,则打开该执行开关,放在任何位置都最后执行
}
注意:如果每个case后都有break,就形成了分支结构
switch不能与 continue 一起使用
练习六、输入一个月份,然后判断季节
1 2 3 春
4 5 6 夏
7 8 9 秋
10 11 12 冬
other 月份有误
七、循环语句
循环让代码反复执行,达到想要的效果
for 循环语句;
for 是一种比较灵活的且较危险(与其他循环相比)的一种循环
一般用一个变量来引导for循环的运行,这个变量叫做循环变量 i index
for([1];[2];[3])
{
[4];
}
1、给循环变量赋初值,c99标准才可以在此处定义循环变量
2、判断循环条件,一般判断循环变量是否到达边界
4、如果2为真,则执行此处代码,也叫循环体
3、改循环变量,防止出现死循环,一般对循环变量自加或自减
for 循环的多种写法:
for(;;)
{
//死循环
}
int i=0;
for(;i<0;i++)
{
}
while 循环
while(条件)//程序为真时执行循环体,为假时结束循环
{
//循环体
}
while 循环相当于for循环的精简版本
for 循环负责解决明确知道循环次数的问题
do while循环:
do{
//循环体
}while(条件); //分号不能少
先执行循环体,才判断循环条件是否为真,该循环至少执行一次
适合先干活,后检查的特殊情况 判断输入密码等情况
解释一下for,while,do while 有什么区别;
循环嵌套:
循环语句中包含循环语句
外层循环执行一次,内层循环n次
作业一:计算出所有的水仙花数
作业二: 输入一个正整数,判断是否是素数?
作业三: 输入一个正整数,判断是否是回文数
作业四:输入一个6位密码,输入正确显示“显示登陆成功”,
输入错误提示“还剩几次机会”,可以继续输入,最多输3次,
否则显示"账号已锁定",并结束
作业五:输入一个整数,分解显示123()()