c语言笔记与基础Word文档下载推荐.docx
- 文档编号:16934295
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:78
- 大小:197.69KB
c语言笔记与基础Word文档下载推荐.docx
《c语言笔记与基础Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《c语言笔记与基础Word文档下载推荐.docx(78页珍藏版)》请在冰豆网上搜索。
(3).二进制换八进制:
三位一缩
(1101110111111)=(15677)8
参照表1转换
1
2
3
4
5
6
7
000
001
010
011
100
101
110
111
表1
(001101110111111)
15677
注:
由右往左开始,三位数一列,如果最后左边剩下的数不够3位,就自动+0直到满3位数为止.
(4).八进制转二进制:
三位一展
(1234)8=(1010011100)2
按照表1转换
1234
↓↓↓↓
001010011100
(5).十六进二:
(1AFC)16=(1101011111100)2
按照表2转换
8
9
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
A
B
C
D
E
F
1010
1011
1100
1101
1110
1111
表2
1AFC
↓↓↓↓
0001101011111100
(6).二进制换十六进制:
按照表2转换,类似八进制换二进制的方法.
二.sizeof运算:
sizeof是一个单目运算符,运算返回变量或类型的字节长度,以字节为单位.
一般的格式为:
sizeof(<
数据类型>
)
sizeof(<
变量名>
常量>
三.标识符:
1.只能由字母数字和下划线组成
2.开头不能为数字
3.不能使用关键字
4.区分大小写
四.几种类型的数据符号:
整型数据
%d以有符号十进制形式输出整型数→int
%u以无符号十进制形式输出整型数→unsignedlongint
实型数据
%f以小数形式输出实型数→float
%e以指数形式输出实型数
字符型数据
%c以单个字符形式输出字符型数据→char
%p以指针值形式输出字符型数据
※“%s”表示字符串
五.ASCII码:
以十进制显示的
以下面规律类推其他字母和数字
‘A’→65‘B’→66‘C’→67
‘a’→97‘b’→98‘c’→99
‘0’→48‘1’→49‘2’→50
六.熟记各种数据类型在内存中的字节数和表示范围:
类型
名称
字节
表示范围
char
unsignedchar
字符型
无符号字符型
-128—127
0—255
int
longint
shortint
unsignedint
unsignedlongint
unsignedshortint
整型
长整型
短整型
无符号整型
无符号长整型
无符号短整型
-231—(231-1)
-215—(215-1)
0—65535
0—232-1
0—65535
float
double
单精度浮点型
双精度浮点型
7—8位有效数字
15—17位有效数字
‘A’,‘a’,‘0’
字符常量
任意
22,0,-23
整型常量
七.格式化输出printf
printf(“格式控制字符串”),表达式1,表达式2,…..表达式n);
注:
格式控制字符串的意思就是,想要以什么样的形式来显示或者说明表达式的结果,例
printf(“sizeof(int)=%d\n”,sizeof(“int”));
printf(“%d\n”,sizeof(“int”));
这两者输出的结果是一样的,都是查看int的字节数,前者里的
sizeof(int)=
的这一段完全是为了使看结果时更清晰一些所添加的,相当于一种标示.
八.常量:
其值不发生改变的量称常量.
类型:
1.整型常量:
22,0,-23
2.实型常量:
14.26,-21.23
3.字符常量:
‘A’,‘a’
4.字符串常量:
“Beijing”,“VC++6.0”
九.杂项:
1.浮点数无法保存到最精确的数据,比如要保存1.5,用浮点保存就只能为大概1.499999的样子,要保存最精确的数据只能用字符集.
2.为什么int和longint都是4字节?
答:
因为以前是16位进制的,int是2,到现在改变变成了32位进制的,int变成了4,但longint并没有改变.
3.无符号系列的int只能存正数,其他类型的可以存负数.
4.无符号长整型能存最大整数.
5.在命令
printf(“%.Xf\n”,数字);
中,“X”表示你想在小数点后取多少位(一般最大不超过16-17)
6.直接输入
Printf(“%d\n”,‘X’)可以直接得到X的ASCII码,X指任意数包括数字和大小写字母.
9月21日变量的使用
一.变量名的定义及定义方式:
1.变量名都是由字母.数字和下划线组成.(变量名就是一种标识符)
2.要定义多项变量名的时候,要分开写,例如想要定义
Inta,b;
的话,语法上虽然不会出错,但会在以后掺入指针的时候产生疑问,需按规范写成
Inta=0;
Intb=0;
※intnAge=10
如果10变成10.5或者10.9,也能编译,但结果还是10,不存在四舍五入,这叫丢失精度,因为是高位向低位转(10.9占8字节,比10的4字节高)
二.变量的初始化:
当一个变量被定义后,如果不给它赋值,那么它的值将是一个随机值,在程序中使用的话会引起不可预知的错误.
赋值的定义:
变量被定义后给它一个值就叫赋值.
①.字符常量和整型数据间可以运算;
②.字符常量和整型数据间可以互相赋值.
三.转义字符
转义字符
转义字符的意义
\n
回车换行符
\t
Tab制表符
\b
退格符
\r
回车符
\\
反斜线符”\”
\’
单引号符
\”
双引号符
1.“\n”可以把”\r”覆盖.
2.getch()这个命令里,只接受”\r”不接受”\n”,这个函数的功能是隐式输入.
3.要输入
c:
\a.txt
的话,直接输入会变成”c:
.txt”,因为”\a”会被默认为是一个转义字符而无法实现输出,需要输入’\\a”才能实现输入.
同理理解”\”,“\’”的运用.
4.退格符的使用:
if('
\b'
==szInput[j])
printf("
\b\b"
);
j=j-2;
四.符号常量—宏定义
#define
格式:
#define符号常量常量
例:
#defineNUM20
#definePI3.1415926
注意:
1.行尾不能加分号(即常量后面)
2.宏名必须大写(即符号常量必须大写)
3.宏的工作就是作简单的字符串的替换,无其他任何作用
4.宏可以重复定义,编译不会报错,只以最后一次定义为准,如:
#defineSIZE100
#defineSIZE200
替换的时候会换成200
※以下是一种#define的用法,不过一般不会这么用,原因是写程序前已经基本定好了是哪种数据类型的:
#defineTYPE“%d\n”
intmain(intavgc,char*avgv[])
printf(TYPE,SIZE);
return0;
5.面试题:
已知一个数组为table,类型不知道,占用长度也不知道,问这个数组占用多少个字节?
#defineLEN(sizeof(table)/sizeof(table[0]))
五.注释:
1.单行注释:
//________
2.多行注释:
/*
_______
*/
被注释后的内容都会变成绿色,不会被编译,可以在其中输入任意内容包括中文.
多行注释符号可被单行注释符号注释掉使其失效-----“///*”
六.零的意义:
1.整数零→int(4字节)
2.‘\0’→char(1字节)‘\0’的ASCII值为零
3.空值NULL,通常在指针操作
4.bool里的0→false
5.除了零之外的都叫非零值
6.所有的零值都是:
假,所有的非零值都是:
真(用于判断)
1).‘0’不是零,因为它的ASCII值是48.
2).“0”不是零,因为它是字符串.(以‘\0’结束).
七.const---不可修改的变量
constintSIZE=100;
1.const的对象名字全大写.
2.const的对象必须初始值.
3.const的对象不能被赋值.
4.const语句后必须加分号.
错例:
1).constintSIZE=100;
SIZE=200//错误!
原因:
const对象不能被赋值.
2).constintSIZE=100;
SIZE=100//错误!
!
不能被重复定义.
※#define和const的区别:
①.前者是C语言的,后者是C++的
②.前者定义的符号常量是无类型的,只能作简单的替换
后者有类型,会作类型检查(编译时)
③.前者可以重复定义,后者不行
④.前者不能加分号,后者必须加分号
9月22日算数运算符和算数表达式
一.运算符种类:
包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算:
%)
1.加(+)、减(-)、乘(*)就是通常用到的加减乘法运算.
2.除(/):
若整数相除,结果取整,如:
5/2=2
如果运算中除数和被除数中的其一为浮点数,则结果为浮点数,如:
5.0/2=2.55/2.0=2.55.0/2.0=2.5
3.求余(%):
只能对整数运算,不允许对浮点数运算,没有意义,因为浮点数没有余数,运算结果的正负值与被除数相同,例:
-5%2=-1-5%-2=-1
5%2=15%-2=1
2%5=2(特别注意:
2除5上0,余2)
二.运算符表达式:
表达式是由操作符、操作数、标点符号组成的序列。
1.单目运算:
-5
双目运算:
a=5
唯一的三目运算:
(a>
b)?
a:
b(求最大值:
如果a>
b那么返回a的值,否则返回b的值,这是条件表达式)
三.运算符的优先级及结合性:
括号→增减量→指针→正负→逻辑非→算数→关系→逻辑→条件→赋值→逗号
1.逗号运算符:
是以逗号最后一个运算的值为返回值,例:
inta=10;
intb=20;
intc=0;
c=a+3,b+5
运算结果返回值为25
2.运算符的结合性:
1).左结合性:
自左至右
2).右结合性:
自右至左(比较少见)
四.赋值运算:
程序中为变量赋值,需要用到赋值运算符”=”,由”=”连接的式子称为赋值表达式,其一般形式为:
变量=表达式,例:
intmain(intargc,char*argv[])
intnNumberA=0;
intnNumberB=0;
intnSum=0;
printf(“pleaseinputnumber1:
”);
scanf(“%d”,&
nNumberA);
printf(“pleaseinputnumber2:
nNumberB);
nSum=nNumberA+nNumberB;
printf(“nSnm=%d\n”,nSum);
五.scanf:
1.输入格式:
与printf是一样的
2.举例:
3.scanf(“%d%d”,&
a,&
b)//输入方式为:
①10空格20
②10回车20
※如果要输入一个数字和一个字符,就必须以(“%d,%c)的形式输入.
六.错误处理机制:
意义:
假如要求输入整数的时候,输入了非法字符后,会提示输入出错并清流,回到正常状态,使得接下来所输入的内容不受影响
1.C语言中:
intnFlag=0;
nFlag=scanf("
%d"
&
if(nFlag==0)
InputError...\n"
clearerr(stdin);
fflush(stdin);
2.C++中:
intnNumber=0;
cin>
>
nNumber;
if(cin.fail())
cin.clear();
chartemp[1000];
cin.getline(temp,1000);
cont<
<
”InputError…”<
end1;
七.类型转换:
1.隐式类型转换:
发生在不同数据类型的量混合运算时,由编译系统自动完成.
遵循以下规则:
1).若参与运算量的类型不同,则先转换成同一类型,然后进行运算.
2).转换按数据长度增加的方向进行,以保证精度不降低(低位向高位)
3).所有的浮点运算都是以双精度进行的,即使仅含float的表达式,也要先转换成double型,再作运算.
4).char和short参与运算时,必须先转换成int型.
5).在赋值运算中,赋值号两边量的数据类型不同时,赋值号右边量的类型将转换为左边量的类型,
如果右边量的数据类型长度比左边量长时,赋值操作将会丢失一部分数据,精度降低.
2.显式类型转换:
也称强制类型转换,简称强转.
格式1:
(类型名)变量或数值→C语言中的
格式2:
类型名(变量或数值)→C++中的
例:
inta=5;
Intb=2;
floatf=(float)a/b
说明:
1).类型说明符和表达式都必须加括号(单个变量可以不加)
2).无论是强转还是自转,都只是为了预算作的临时性的转换,不会改变数据说明时对该变量定义的类型.
八.增量与减量运算复:
1.增量运算符为”++”,功能是使变量+1.
减量运算符为”--“,功能是使变量减1.
2.规则:
++a:
a加1后再参与其他运算.
a++:
a参与运算后其值再加1.
a--与--a规则相同,例:
inta=10;
intb=++a;
//运算完后b=11,a=11
intb2=a++;
//运算完后b2=11,a=12
注:
++a比a++效率高
※面试题:
以下哪个值是正确的?
值为多少?
①a++=a+1;
③a=a++;
②++a=a+1;
④a=++a;
9月23日关系和逻辑运算符与分支语句
一.关系运算符:
就是用来比较大小的
运算符
名称
大于
=
大于等于
==
等于
小于等于
小于
不等于
1.运算符间不能有空格,而且顺序不能被颠倒
2.可以直接用于基本数据类型,但对于浮点数来说,只能比较大小,不能比较是否相等.
分别写出BOOL,int,float.指针类型的变量a与”零”的比较
bool:
if(!
a)
if(a)
int:
if(0==a)
float:
constfloatEXP=0.000001
if(a<
EXP&
&
a>
-EXP)//a在0.000001和-0.000001之间,无限接近于0.
指针:
if(NULLi=a)orif(NULL==a)
二.逻辑运算符:
1.运算符类型:
a
①&
与运算
②||或运算
③!
非运算
2.优先顺序:
1).逻辑运算符之间的按由高到低顺序为:
(非)&
(与)||(或)
2).逻辑运算符和其他运算符优先级由高到低顺序为:
(非)
算术运算符
关系运算符
和||
赋值运算符
3.运算法则:
&
:
有0则0,全1为1
||:
有1为1,全0为0
!
:
有1为0,有0为1(取反)
三.短路运算:
1.在”与”运算中,如果第一个运算为0,后面的就不作运算了.
2.在”或”运算中,如果第一个运算为1,后面的就不作运算了.
只要运算没作完,就叫短路运算,不管后面还剩几个表达式或者前面作了多少个表达式的运算.
四.if语句:
1.语句格式:
if(表达式1)
语句块1
elseif(表达式2)
语句块2
elseif(表达式3)
语句块3
……
elseif(表达式n)
语句块n
else(表达式m)
语句块m
五.switch:
表达形式:
switch(表达式)
case1:
常量表达式1:
语句组1
case2:
常量表达式2:
语句组2
…
casen:
常量表达式n:
语句组n
break;
default:
1).switch后跟的表达式只能是int,char,枚举的类型.
2).case里如果要定义变量,要加大括号,例:
switch(表达式)
3).多个case可以共用一组语句:
{
case’A’
case’B’
case’C’:
printf(“…”);
4).使用技巧:
为防止丢失break,先把结构搭起来,再在结构内输入内容.
9月24日循环语句的使用
一.while循环:
1.反复执行的程序段称为循环体
2.循环变量:
i为循环变量.
一般地,默认一重循环写为inti=0,二重循环写为intj=0.
3.一般格式:
while(一般是关系和逻辑表达式)
循环体
后续语句;
1.while后不能加分号,加了就成死循环.
死循环:
循环体中无循环终止条件或循环条件永远为真.
解决方法:
通过break和return语句结束循环.
2.死循环形式:
while
(1)
....
4.while循环执行流程:
首先判断循环中的条件是否为真,如果为真,则执行while循环体中的语句,执行完毕后,再回到条件那重新判断;
如果为假,再跳过循环体,执行后面的条件.
二.do-while循环:
先执行循环体中的语句,再判断条件真假,如果为真则继续循环,为假则停止循环.就是说它至少执行一次循环.一般格式为:
do
}while(表达式);
后续语句;
※do-while循环中while(条件)后面的分号必须要加,否则编译报错.
三.for循环:
格式:
for(初始化;
条件表达式;
增量)
循环体;
1.for(inti=1;
i<
6;
++i)
在C语言中报错,在C++中通过.
2.死循环:
for(;
1;
)
3.for循环不仅可以用于循环次数已经确定的情况,还可以用于循环次数不确定而只给出循环结束条件的情况.
四.其他:
1.题目:
计算1+2+3+4+5.比较以下两种写法(结果一样):
inti=1;
intSum=0;
intSum=0;
while(i<
6)while(i<
5)
{{
Sum=Sum+i;
++i;
++i;
Sum=Sum+i;
}}
9月27日数组的应用
一.一维数组的定义:
数组是由一
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 笔记 基础