郝斌老师教学大纲
整数是以补码的形式转化为二进制代码存储在计算机中的
实数是以IEE54标准转化为二进制代码存储在计算机中的
具体可参见末尾的穿插在课堂中的零散知识笔记—浮点数的存错所带来的问题
字符的本质实际也是与整数的存储方式相同
11.代码规范化
代码的可读性更强[容易让自己和别人更清楚的看懂程序]
使程序更不容易出错
12.什么是字节
字节就是存储数据的单位,并且是硬件所能访间的最小单位
宁节=8位
IK=1024字节
M=1024k
1G=1024M
13.不同类型数据之间相互贼值的问题
暂不考虑
int1=45
longj=102345;
1=J
printf(gld%d\"i,j)
floatx=6.6
doubley=8.8
printf(%f%1f\n,x,y)
14.什么是ASCII
ASCI不是一个值,而是一种规定,
ASCT规定了不同的字符是使用哪个整数值去表示
它规定
A.-65
B--66
a-97
15.字符的存储[字符本质上与整数的存储方式相同]
2>基本的输入和输出函数的用法
rinf(一将变量的内容输出到显示器上【重点】
四种用法
1.printf("字符串"
2.printf("输出控制符",输出参数);
3.printf(″输出控制符1输出控制符2。。。",输出参数1,翰出参巍2,。
输出控制符和输出参数的个数必须一一对应
4.printf("输出控制符非输出控制符,输出参数)
输出控制符包含如下
d
int
ld
longint
%c
char
f
float
%1f
double
%x(或者%后者%#)int或1ngint或shortint
%o
同上
%6S
符串
为什么需要输出控制符
1.01组成的代码可以表示数据也可以表示指令
2.如果01组成的代码表示的是数据的话,那么同样
的01代码组合以不同的输出格式输出就会有不
同的输出绪果
scanf【通过键盘将数据输入到变量中】
两种用法
用法一:scanf("输入控制符",输入参数)
功能:将从键盘输入的字符转化为输入控制符所规定格式的数据
,然后存入以输入参数的值为地址的变量中
用法二:scanf("非输入控制符输入控制符",输入参数
功能:将从键盘输入的字符转化为输入控制符所规定格式的数据
,然后存入以输入参数的值为地址的变量中
非输入控制符必须原样输入
如何使用scan编写出高质量代码
1.使用scanf之前最好先使用printf提示用户以什么样的
方式来输入
2.scan中尽量不要使用非输入控制符,尤其是不要用n
3.应该编写代码对用户的非法输入做适当的处理【非重点】
charch
hile((ch=getcharo)1=,n')
continue;
3>运算符
算术运算符
/(除)%(取余数
关系运算符
≥=赋值
附录的一些璜碎的运算符知识
自增自减三目运算符逗号表达式
4>流程控制【是我们学习C语言的第一个重点,要求所有的知识全部掌握】
1.什么是流程控制
程序代码执行的顺序
2.流程控制的分类
顺序
选择
定义
某些代码可能执行,也可能不执行,有选择的执行某些代码
分类
if
1.i最简单的用法
格式:
if(表达式)
语句
功能
如果表达式为真,执行语句
如果表达式为假,语句不执行
2.if的范围问题
if(表达式)
语句A;
语句B
解释:if默认只能控制语句A的执行或不执行
if无法控制语句B的执行或不执行
或者讲:语句B一定会执行
2.
if(表达式)
语句A
语句B;
此时i可以控制语句A和语句B
由此可见:if默认只能掉制一个语句的执行或不执行
如果想控制多个语句的执行或不执行
就必须把这些语句用括起来
3.if.e1se.的用法
A.i.e1seif,,else.的用法
格式:
f(
A
1seif(2)
B
elseif(3)
else
D
5.C语言对真假的处理
非零是真
零就是假
真用1表示
假用零表示
6.if举例一求分数的等级
7.if的常见问题解析
1>.空语句的问题
if(3>2)
等价于
if(3>2)
/这是一个空语句
2>
if(表达式1)
A
e⊥se
B
是正确的
if(表达式1);
se
B
是错误的
if(表达式1)
A
elseif(表达式2)
B
elseif(表达式3)
C
else
即便表达式1和2都成立,也只会执行A语句
if(表达式1)
A:
elseif(表达式2)
B
elseif(表达式3)
C:
这样写语法不会出错,但逻辑上有漏洞
if(表达式1)
A:
elseif(表达式2)
B
elseif(表达式3)
C:
else(表达式4)//行
这样写是不对的,正确的写法是:
要么去掉7行的(表达式4)
要么在7行的else后面加if
6》
if(表达式1)
A:
elseif(表达式2)
B
elseif(表达式1)
else(表达式4);
这样写语法不会出错,但逻辑上是错误的
else(表达式4);
等价于
se
(表达式4
把电梯程序看懂就OK了
循环
定义:
某些代码会被重复执行
分类
for
1.格式:
for(1;2;3)
语句A;
2.执行的流程【重点】
单个for循环的使用
多个for循环的嵌套使用
for(1;2;3)/1
for(4;5;6)//2
A;//3
B;//4
整体是两个语句,123是第一个语句
4是第二个语句
2
for(1;2;3)
for(4;5;6)
A:
整体是一个语句
for(7;8;9)
for(1;2;3
A
B
for(4;5;6)
C
整体是一个语句
3.范围问题
4.举例:
1+2+3+,,,,+100
1+1/2+1/3+..+1/100
【本程序对初学者而言很重要,具体细节可参见我录制的相关视频】
while
1.执行顺序
格式:
while(表达式)
语句;
2.与for的相互比较
for和while可以相互转换
for(1;2;3
等价于
while(2)
A:
whi1e和for可以相互转化
但for的逻辑性更强,更不容易出错,推荐多使用for
3.举例
从键盘输入一个数字,如果该数字是回文数,
则返回yes,否则返回no
问文数:正着写和倒着写都一样
比如:12112321都是回文数
4.什么时候使用while,什么时候使用for
没法说,用多了自然而然就知道了
do..while
格式
}whi1e(表达式)
do.while.并不等价于for,当然也不等价于while
主要用于人机交互
一元二次方程
break和continue
break
break如果用于循环是用来终止循环
break如果用于switch,则是用于终止switch
break不能直接用于if,除非if属于循环内部的一个子句
例子
for(i一0;i2
break;//break虽然是内部的语句,
//但break终止的确是外部的fo循环
printf("嘿嘿!n";//永远不会输出
在多层循环中,break只能终止最里面包裹它的那个循环
例子
for(i
for〔j=1;j4;+j
break;//break只能终止距离它最近的循环
printf("同志们好!n"
在多层switch嵌套中,break只能终止距离它最近的switch
例子
intx=1,y=0,a=0,b
switch(x)//第一个switch
casel
switch(y)//第二个switch
case0:
break;/终止的是第二个switch
case1
b++;
break
b=100
break;/终止的是第个switch
case2:
break
暂无评论