郝斌c语言 大纲讲解免费Word文档下载推荐.docx
- 文档编号:19172216
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:48
- 大小:34.25KB
郝斌c语言 大纲讲解免费Word文档下载推荐.docx
《郝斌c语言 大纲讲解免费Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《郝斌c语言 大纲讲解免费Word文档下载推荐.docx(48页珍藏版)》请在冰豆网上搜索。
第一讲、基本编程知识
第二讲、数据类型
第三讲、运算符和表达式
第四讲、流程控制(所有语言都一样的)
第五讲、函数(体现出面向过程和面向对象的区别)
第六讲、数组
第七讲、指针(c语言的灵魂)
第八讲、变量的作用域和存储方式
第九讲、扩展数据类型
第十讲、专题:
字符串的处理
进制转换
补码
动态内存分配(java、数据结构必学)
综合应用:
链表的使用
6、举例子:
一元二次方程
#include<
stdio.h>
math.h>
intmain(void)
{
//把三个系数保存到计算机中
inta=1;
//=不表示相等,表示赋值
intb=2;
intc=3;
doubledelta;
//delta存放的是b*b-4*a*c
doublex1;
//存放一元二次方程的其中一个解
doublex2;
delta=b*b-4*a*c;
if(delta>
0)
x1=(-b+sqrt(delta))/(2*a)
x2=(-b-sqrt(delta))/(2*a)
printf("
该一元二次方程有两个解,x1=%f,x2=%f\n"
x1,x2);
}
elseif(delta==0)
x1=(-b)/(2*a);
x1=x2;
//右边赋给左边
该一元二次方程有一个唯一解,x1=x2=%f\n"
x1);
else
无解\n"
);
Helloword程序举例
intmain(void)
欢迎大家学习C语言!
"
return0;
C语言编写的病毒举例:
1、龌龊的程序:
/*
龌龊的程序!
windows.h>
malloc.h>
intc;
inti;
intj;
Nihao:
1:
死机\n"
2:
机房爆炸\n"
请选择:
scanf("
%d,&
c"
If
(c==1)
System("
shutdown-s-t60"
)
elseif(2==c)
你太坏了我要惩罚你!
\n"
for(j=0;
j<
10;
++j)
start"
你敲错了,请重新输入!
gotonihao;
2、内存泄露(占满内存)程序导致死机实例
intmain(void)
while
(1)
{
int*p=(int*)malloc(1000);
C语言编程预备知识
1、cpu内存条硬盘显卡主板显示器之间的关系
2、Helloworld程序如何运行起来的
3、什么是数据类型
基本类型数据
整数
整型
——int
--4字节
短整型
——shortint
——2字节
长整型
——longint
——8字节
浮点数【实数】
单精度浮点数
——float
——4字节
双精度浮点数
——double
——8字节
字符
char
——1字节
复合类型数据
结构体
枚举
共用体(已淘汰)
4、什么是变量
变量的本质是内存中一段存储空间
5、cpu内存条vc++6.0操作系统之间的关系
6、变量为什么必须初始化
所谓初始化就是赋值的意思
7、如何定义变量
数据类型
变量名=
要赋的值;
等价于
变量名;
举例子:
inti=3;
等价于
inti;
i=3;
inti,
j;
intj;
j=3;
intj;
inti=3,
j=5;
inti,
i=5;
j=5;
inti,
i=j=5;
等价于
i=5;
8、什么是进制
十进制就是逢十进一
二进制就是逢二进一
生活中用到进制的例子:
一周七天:
七进制
一年十二个月:
十二进制
一小时六十分钟:
六十进制
电脑中的数据:
二进制
进制转化:
什么叫进制
进制就是逢几进一
我们说的N进制实际就是指逢N进一
我们的计算机只识别二进制
人类最习惯使用的是十进制
为了实际需要我们又建立了八进制和十六进制
C语言规定八进制前要加0(注意是零不是字母o),十六进制前要加0X或0x,十进制前什么都不加!
在汇编中:
在数字后加字母B表示二进制数,加字母O表示八进制数,加字母D表示十进制,加字母H表示十六进制。
例:
1011B为二进制数1011,也记为(1011)2
1357O为八进制数1357,也记为(1357)8
2049D为十进制数2049,也记为(2049)10
3FB9H为十六进制数3FB9,也记为(3FB9)16
什么叫n进制
十进制
十个基数,逢10进一
基数:
0123456789
二个基数
逢二进一
0
1
八进制
8个基数
逢8进一
01234567
十六进制
16个基数逢16进一
0123456789abcdef
或
0123456789ABCDEF
(D)
(B)
(O)
(0x)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
9、常量在c语言中如何表示的
十进制:
传统的写法
十六进制:
前面加0x或0X,是数字0加x
八进制:
前面加数字0
浮点数:
传统写法
float
x=3.2;
//传统
科学计数法
x=3.2e3;
//x的值是3200
x=123.45e-2;
//x的值是1.2345
单个字符用单引号括起来
'
A'
表示字符A
AB'
是错误的
AB"
是正确的
字符串用双引号括起来
A"
正确,因为"
代表了'
'
\0'
的组合
10、常量以什么样的二进制代码存储在计算机中
整数是以补码的形式转化为二进制代码存储在计算机中的
实数是以IEEE754标准转化为二进制代码储存在计算机中的
具体可参见末尾的
穿插在课堂中的零散知识笔记
字符的本质实际也是与整数的存储方式相同
11、代码规范化
代码的可读性更高【容易让别人和自己看懂】
是程序更不容易出错
林锐《高质量C/C++编程》
代码要成对的敲
12、什么是字节
字节就是存储数据的单位,并且是硬件所能访问的最小单位
1字节=8位
1K=
1024字节
1M=
1024K
1G=
1024M
买硬盘时的换算是以1000为单位的
13、不同类型的数据之间相互赋值的问题
暂不考虑
int
i=45;
long
j=102345;
i=j;
printf("
%d%d\n"
i,
j);
floatx=6.6;
doubley=8.8;
%f%lf\n"
x,y);
14、什么是ASCII
ASCII不是一个值,而是一种规定,
ASCII规定了不同的字符是使用哪个整数值去表示
它规定了
--
65
B'
66
a'
97
b'
98
15、字符的存储【字符本质上与整数的存储方式相同】
基本的输入和输出函数的用法
printf()----(重点讲)将变量的内容输出到显示器上
四种用法
1.printf("
字符串\n"
2.printf("
输出控制符"
,输出参数);
3.printf("
输出字符1
输出字符2
。
,
输出参数1,
输出参数2,
);
输出控制符和参数的个数必须一一对应
4.printf("
输出控制符
非输出控制符"
输出参数);
输出控制符包含如下
%d
(十进制)
%ld
longint
%c
char
%f
float
%lf
double
%x(或者%X或者%#X)
或longint
或shortint
%o
同上
%s
--
字符串
为什么需要输出控制符
1.
01组成的代码可以表示数据也可以表示指令
2.
如果01组成的代码表示的是数据的话,那么同样的01代码组合以不同的输出格式输出就会有不同的输出结果
scanf()----Java中已经没有了
两种用法:
用法一:
scanf("
输入控制符"
输入参数);
功能:
将从键盘输入的字符转化为输入控制符所规定格式的数据,然后存入已输入参数的值为地址的变量中。
用法二:
scanf("
非输入控制符
将从键盘输入的字符转化为输入控制符所规定格式的数据,然后存入以输入参数的值为地址的变量中
非输入控制符必须原样输入
如何使用scanf编写出高质量代码
1.1.
使用scanf之前最好先使用printf提示用户以什么样的方式来输入
Scanf中尽量不要使用非输入控制符,尤其是不要用\n
3.
应该编写代码对用户的非法输入做适当的处理【非重点】
while((ch=getchar())!
='
\n'
continue;
运算符
算术运算符
+
-
*
/(除)
%(取余数)
除法的运算结果和运算对象的数据类型有关,两个数都是int,则商就是int,若商有小数,则截取小数部分;
被除数和除数中只要有一个或两个都是浮点型数据,则商也是浮点型,不截取小数部分。
如:
16/5==3
16/5.0==3.20000
-13/4==-4
-13/-3=4
3/5=0
5/3==1
最经典的例题就是求s=1+1/2+1/3+1/4+1/5......+1/100的值。
取余的运算对象必须是整数,结果是整除后的余数,其余数的符号与被除数相等。
13%3==1
13%-3==1
-13%3==-1
-13%23==-13
3%5==3
关系运算符
>
>
=
<
!
=(不等于)
==(等于)
逻辑运算法
!
(非)
&
&
(并且)
||(或)
!
真
假
假
真
真&
假&
真||假
假||真
真||真
假||假
C语言对真假的处理
非零是真
零是假
真是1表示
假使0表示
左边的表达式为假
右边的表达式肯定不会执行
||左边的表达式为真
赋值运算符
+=
*=
/=
-=
优先级别
算术>
关系>
逻辑>
赋值
附录一些琐碎的运算符知识
自增
自减
三目运算符
逗号表达式
流程控制
(学习c语言的第一个重点)
什么是流程控制
程序代码执行的顺序
1.2.
流程控制的分类
顺序
选择
定义
某些代码可执行,也可能不执行,有选择的执行某些代码
分类
if
if最简单的用法
格式:
(表达式)
语句
如果表达式为真,执行语句
如果表达式为假,语句不执行
if的范围问题(重点)
1.
if(表达式)
语句A;
语句B;
解释:
if默认只能控制语句A的执行或不执行
if无法控制语句B的执行或不执行
或者讲:
语句B一定会执行
2.
If(表达式)
此时if可以控制语句A和语句B
由此可见:
if默认只能控制一个语句的执行或不执
行,如果想控制多个语句的执行或不执
行就必须把这些语句用{}括起来。
1.3.
if...else...的用法
1.4.
if...elseif...else...的用法
(表达式1)
A;
elseif
(表达式2)
B;
(表达式3)
C;
D;
1.5.
零就是假
真用一表示
假用零表示
1.6.
if举例---求分数的等级
2.7.
if的常见问题解析
空语句的问题
if(3>
2);
2)
;
//这是一个空语句
if(表达式1)
A;
if(表达式1);
是错误的
3.
if
A;
elseif
B;
C;
D;
即便表达式1和2都成立,也只会执行A语句
4.
这样些语法不会错,但逻辑上有漏洞
、
5.
else
(表达式4)
//7行
这样写是不对的,正确的写法是:
要么去掉7行的(表达式4)
要么在7行的else后面加if
(表达式4);
这样写语法不会错,但逻辑上是错误的
else
(表达式4);
D;
对任意三个数字进行排序:
如果a>
b
则a与c比较
a>
c
则输出a
a<
c则输出c
否则
b与c比较
b>
则输出b
b<
则输出c
穿插在课堂中的零散知识笔记:
如何看懂一个程序,分三步:
流程
2.2.
每个语句的功能
3.3.
试
数
如何学习一些需要算法的程序【如何掌握一个程序】
尝试自己去编程解决它
但要意识到大部分人都是自己无法解决的,如果解决不了,这时不要气馁
如果十五分钟还想不出来,此时我建议您就可以看答案了
如果解决不了,就看答案
关键是把答案看懂,这个要花很大的精力,也是我们学习的重点
看懂一个程序要分三步:
流程、每个语句的功能、试数
看懂之后尝试自己去修改程序,并且知道修改之后程序的不同输出结果的含义不建议看懂程序之后就立即自己敲程序
照着答案去敲
5.
调试错误
6.
不看答案,自己独立把答案敲出来
7.
如果程序实在无法彻底理解,就把它背会,无法彻底理解的程序很少很少几乎没有
强制类型转换
(数据类型)(表达式)
把表达式的值强制转换为前面所执行的数据
类型
例子:
(int)(4.5+2.2)
最终值是
6
(float)(5)
5.0000000
浮点数的存错所带来的问题
float和double都不能保证可以把所有实数都准确的
保存在计算机中
floati=99.9;
printf("
%f\n"
i);
最终结果在VC++6.0中的输出的结果是:
99.900002
因为浮点数无法准确存储,所以就衍生出来两个编程
问题
举例:
有一个浮点型变量x,如何判断x的值是否是零
(|x-0.0000001|<
=0.0000001)
是零
不是零
为什么循环更新的变量不能定义成浮点型
进制的复习:
1.
什么是进制
逢n进一
2.
把r进制转成十进制
十进制转成r进制
十进制转r进制:
除r取余,直至
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 郝斌c语言 大纲讲解免费 郝斌 语言 大纲 讲解 免费