c语言知识点.docx

上传人:b****5 文档编号:8001698 上传时间:2023-01-27 格式:DOCX 页数:28 大小:37.59KB
下载 相关 举报
c语言知识点.docx_第1页
第1页 / 共28页
c语言知识点.docx_第2页
第2页 / 共28页
c语言知识点.docx_第3页
第3页 / 共28页
c语言知识点.docx_第4页
第4页 / 共28页
c语言知识点.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

c语言知识点.docx

《c语言知识点.docx》由会员分享,可在线阅读,更多相关《c语言知识点.docx(28页珍藏版)》请在冰豆网上搜索。

c语言知识点.docx

c语言知识点

0804二级C语言知识点汇总

1、c语言程序的构成和格式0704X15

(1)C程序是由函数构成的。

一个C源程序至少包含一个main函数,也可以包含一个main函数和若干个其他函数。

(2)一个函数由两部分组成(3)一个C程序总是从main函数开始执行的,而不论main函数在整个程序中的位置如何。

(4)C程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上。

(5)每个语句和数据定义的最后必须有一个分号。

(6)C语言本身没有输出语句。

输入和输出的操作是有库函数scanf和printf等函数来完成的。

(7)可以用/*……*/对C程序中的任何部分作注释。

2、标识符、常量和变量0704X130709X12

(1)标识符

1)关键字:

在程序中都代表着固定的含义,不能另作他用

2)预定义标识符:

在程序中预先定义并具有特定含义的标识符,并且允许把它重新定义另作他用,但会失去原有的意义。

3)用户标识符:

由用户根据需要定义的标识符。

(2)常量:

在程序运行过程中,其值不能被改变的量。

符号常量:

用标示符代表一个常量。

在C语言中,可以用一个标识符来表示一个常量,称之为符号常量。

符号常量在使用之前必须先定义,其一般形式为:

#define标识符常量

(3)变量:

在程序运行过程中,其值可以改变的量称为变量。

变量名和变量值

变量名每个变量都必须有一个名字──变量名,变量命名遵循标识符命名规则。

定义变量名:

C语言规定标识符只能由字母、数字、下划线三种字符组成,且第一个字符必须是字母或下划线。

注意:

大写字母和小写字母被认为是两个不同的字符。

sum和SUM是两个不同的变量名。

C语言规定:

对所有用到的变量要“先定义,后使用”。

a)凡未被事先定义的,不作为变量名。

b)每一个变量被指定为一确定类型

3、整型数据0704X13

整型常量的表示方法

C整常数有三种表示方法:

(1)十进制整数。

如123,0.,56

(2)八进制整数。

以0开头的数是八进制。

如0123表示八进制123。

(3)十六进制整数。

以0x开头的数是十六进制数。

如0x123

整型变量

a)整型数据在内存中的存放形式

数据在内存中是以二进制形式存放的。

b)整型变量的分类

基本整型,以int表示值的范围是-215-(215-1)即-32768~32767

短整型,以shortint表示,或以short表示

长整型,以longint表示,或以long表示。

以上三类都可以加上修饰符unsigned,以指定是“无符号数”。

如果加上修饰符signed,则指定是“有符号数”。

如果缺省,则隐含为有符号(signed)。

类型

占位

数的范围

[signed]int

32

-2147483648-2147483647

-231-(231-1)

Unsigned[int]

32

0-4294967295

0-(232-1)

[signed]short[int]

16

-32768-32767

-215-(215-1)

Unsignedshort[int]

16

0-65535

0-(216-1)

Long[int]

32

-2147483648-2147483647

-231-(231-1)

Unsignedlong[int]

32

0-4294967295

0-(232-1)

整型常量的类型

一个整常量后面加一个字母u或U,认为是unsignedint型,如12345u,在一个整常量后面加一个字母l或L,则认为是longint型常量。

4、实型数据0704X13

实型常量的表示方法:

实数又称为浮点数,有两种表示形式:

(a)十进制小数形式:

由数字和小数点组成(注意必须有小数点)。

如:

.123、123.、123.0、0.0。

(b)指数形式:

注意字母e或E之前必须有数字,且e后面的指数必须为整数。

如123e3代表123×103。

规范化的指数形式:

字母e或E之前的小数部分中,小数点左边应有一位(且只有一位)非零的数字。

如2.345E2,而23.45E1不是,一个实数在用指数形式输出时,是按照规范化的指数形式输出return(z);

浮点型变量

a)实型数据在内存中的存放形式:

一个实型数据一般在内存中占4个字节(32位)。

按照指数形式存储,分为小数部分和指数部分

b)实型变量的分类:

C实型变量分为单精度(float型)和双精度型(double型)两类。

类型

比特数

有效数字

数值范围

float

32

6-7

 -1038~1038

double

65

15-16

 -10308~10308

5、算术运算符和算术表达式

基本的算术运算符

+-*/%

说明:

(1)如果双目运算符两边运算数的类型一致,则所得到的结果类型与运算数的类型一致。

(2)如果双目运算符两边运算数的类型不一致,系统将自动进行类型转换,使运算符两边类型达到一致后,再进行运算。

(3)所有实型数的运算均以双精度方式进行。

强制类型转换

强制类型转换是通过类型转换运算来实现的。

其一般形式为:

(类型说明符)(表达式)

其功能是把表达式的运算结果强制转换成类型说明符所表示的类型。

在使用强制转换时应注意以下问题:

(1)类型说明符和表达式都必须加括号(单个变量可以不加括号),如把(int)(x+y)写成(int)x+y则成了把x转换成int型之后再与y相加了。

(2)无论是强制转换或是自动转换,都只是为了本次运算的需要而对变量的数据长度进行的临时性转换,而不改变数据说明时对该变量定义的类型。

6、赋值运算符和赋值表达式0704X17

在c语言中,赋值号“=”是一个运算符,称为赋值运算符,赋值表达式形式如下:

变量名=表达式

说明:

(1)赋值运算符的优先级只高于逗号运算符,且结合性是从右向左。

(2)赋值运算符不同于数学中的“等于号”。

(3)赋值运算符左侧只能是变量,不能是常量或表达式

赋值运算中的类型转换----自动转换

自动转换发生在不同数据类型的量混合运算时,由编译系统自动完成。

自动转换遵循以下规则:

(1)若参与运算量的类型不同,则先转换成同一类型,然后进行运算

(2)转换按数据长度增加的方向进行,以保证精度不降低。

如int型和long型运算时,先把int量转成long型后再进行运算。

所有的浮点运算都是以双精度进行的,即使仅含float单精度量运算的表达式,也要先转换成double型,再作运算。

(3)char型和short型参与运算时,必须先转换成int型。

(4)在赋值运算中,赋值号两边量的数据类型不同时,赋值号右边量的类型将转换为左边量的类型。

如果右边量的数据类型长度左边长时,将丢失一部分数据,这样会降低精度,丢失的部分按四舍五入向前舍入。

7、自加、自减运算符0704X18

使变量的值增1或减1,如:

++I,--I(在使用I之前,先使I的值加(减)1)

l++,I--(在使用I之后,使I的值加(减)1)

8、数据输出---printf函数0704X19

Printf函数是C语言提供的标准输出函数,它的作用是在终端设备(或系统隐含指定的输出设备)上按指定格式进行输出.printf函数的一般调用形式如下:

printf(格式控制,输出项表)

注意:

在VC6.0环境下,再调用输出的库函数之前要求在源程序中出现包含头文件stdio.h的命令行:

#include

如果在printf函数调用之后加上”;”,就构成了输出语句.

例如:

printf(“a=%d,b=%d”,a,b);

其中printf是函数名;在圆括号中用双引号括起来的字符串,如”a=%d,b=%d”称为格式控制串;a,b是输出项表中的输出项,它们都是printf函数的参数.

printf函数中常用的格式说明

1.格式字符

c

输出一个字符

d或i

输出带符号的十进制整型数,%ld为长整型

o

以八进制格式输出整型数

X或x

以十六进制格式输出整型数

u

以无符号十进制形式输出整型数

f

以带小数点的数学形式输出浮点数

E或e

以指数形式输出浮点数

G或g

由系统决定采用%f格式还是采用%e格式输出,以使输出宽度最小

s

输出一个字符串,直到遇到“\0”

p

输出变量的内存地址

%

也就是%%形式,输出一个%

2.长度修饰符(在%和格式字符之间)

如:

长整型数要加l(long)

3.输出数据所占的宽度

1)在%与格式字符之间插入一个整数,指定输出宽度。

说明:

a.指定输出的宽度不够,不影响输出(原样输出)b.指定的输出宽度大于数据实际所需,则数据右对齐,左边补以空格.

2)对于float或double类型的实型数,可用“m.n”的形式在指定宽度的同时指定小数的位数.“m”用以指定输出数据总的所占宽度,“n”表示精度(对于e,E或f,“n”用以指定输出数据小数位所占位数。

说明:

a,当输出数据的小数位多于n指定的宽度时,截去右边多余的小数,并对截去的第一位小数做四舍五入处理;b.当输出数据的小数位数少于“n”指定的宽度时,在小数的最右边添0。

c.当输出数据所占的宽度大于“m”指定的宽度时,小数位仍按上述规则处理,整数部分并不丢失。

d另外,也可用“.整数2”的形式。

此时输出数据宽度有系统决定。

%.0则不输出小数点和小数部分e对于整数,则是用来指定必须输出的数字个数。

f对于字符串用来指定最多输出的字符个数

注意:

输出数据的实际精度并不取决于格式控制中的域宽和小数的位宽,而是取决于数据在计算机内的存储精度。

如系统对float类型的数据提供7位有效数字。

4.输出数据左对齐

在宽度前加一个“-”号可实现数据左对齐

5.使输出的数字总是带有+号或-号

可以在%和格式字符间(或指定的输出宽度前)加上一个“+”号实现。

6.在输出的数据前加前导0

7.在输出的8进制数前添加0,在输出的16进制数前添加0x

调用printf函数时的注意事项

1.格式说明与输出项从左到右类型要一一匹配.如不匹配,系统不报错,数据错误.(特别提醒)2.在格式控制串中,格式说明与输出项的个数应匹配.3.在格式控制串中,除了合法的格式说明外,可以包含任意字符(“原样照印”)4.如果需要输出百分号%,则应该在格式控制串中用两个连续的百分号%%来表示.5.在输出语句中改变输出变量的值,如:

i=5,printf(“%d%d\n”,i,i++);则不能保证先输出i的值,然后再求i++,并输出.6.printf函数的返回值通常是本次调用中输出字符的个数.

9、输出输入---scanf函数0704X160709T06

Scanf函数的一般形式:

scanf(格式控制,输入项表);

scanf格式说明

c

输入一个字符

d

输入带符号的十进制整型数,%ld为长整型

o

以八进制格式输入整型数

x

以十六进制格式输入整型数

u

以无符号十进制形式输入整型数

f(lf)

以带小数点的数学形式输入浮点数

e(le)

以指数形式输入浮点数

s

输入一个字符串,直到遇到“\0”

(1)在格式控制中,格式说明的类型和输入项的类型,应该一一对应匹配。

如果类型不匹配,系统并不给出出错信息,但不可能得到正确的数据。

(2)在scanf函数中的格式字符前可以用一个整数指定输入数据所占宽度。

但不可以对实型数指定小数位的宽度。

(3)在格式控制串中,格式说明的个数应该与输入项的个数相同。

多余的数据项并没从终端接受新的数据;若格式说明的个数多于输入项的个数时,scanf函数同样也结束输入。

(4)当输入的数据少于输入项时,程序等待输入,直到满足要求为止。

当输入的数据多于输入项时,多余的数据并不消失,而是留作下一个输入操作时的输入数据

从键盘中输入数据

1)输入数值数据:

输入的数值之间可以用间隔符隔开(空格制表,回车)

2)如果在%后有一个“*”,表示跳过它指定的列数。

3)在格式控制串中可以插入其他字符如提示语句标点符号等

使用scanf函数应该注意的问题

(1)scanf函数中的“格式控制”后面应当是变量地址,而不是变量名。

如scanf(“%d%d”,x,y);是错误的

(2)如果在“格式控制”字符串中除了格式说明以外还有其他字符,则在输入数据时在对应位置输入与这些字符相同的字符(3)在用“%c”格式输入字符时,空格字符和“转义字符”都作为有效字符输入:

(4)在输入数据时,遇以下情况时该数据认为结束:

1)遇空格,或按“回车”或“跳格”键2)按指定的宽度结束,如“%3d”只取3列3)遇非法输入如scanf(“%d%c%f”,&x,&y,&z);

10、复合语句和空语句

复合语句

复合语句使用“{”和“}”括起来的语句组,语法上被视为一条语句。

空语句

空语句由一个分号构成,但它是一个c语句,程序执行空语句时不产生任何操作,但不正确地使用分号,会使程序产生错误的运行结果。

11、关系运算和逻辑运算0704X21

关系运算符

所谓“关系运算”实际上就是“比较运算”,即将两个数据进行比较,判定两个数据是否符合给定的关系。

C语言提供6种关系运算符

<、<=、>、>=、==、!

=

关系优先次序

1)前四种关系运算符相同,后两种也相同

2)关系运算符优先级低于算术运算符

3)关系运算符的优先级高于赋值运算符

关系表达式

定义:

用关系运算符将两个表达式连接起来的式子。

关系表达式的值是一个逻辑值,“真”或“假”。

以1代表“真”,以0代表“假”

逻辑运算符及其优先次序

&&逻辑与(相当于其他语言中的and)

||逻辑或(相当于其他语言中的OR)

逻辑非(相当于其他语言中的NOT)。

“&&”和“||”双目(元)运算符“,它要求有两个运算量(操作数),如(a>b)&&(x>y) ,(a>b)||(x>y)。

“!

”是“一目运算符”,只要求有一个运算量。

逻辑表达式

判断一个量是否为“真”,以0代表“假”,以非0代表“真”。

注意:

在逻辑表达式的求解中,并不是所有的逻辑运算符都被执行,只是在执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符。

12、if语句0704X200704X400709X210709T07

定义:

if语句是用来判定所给定的条件是否成立,根据判定的结果(真或假)决定执行给出的两种操作之一。

形式:

1if(表达式)语句

2if(表达式)语句1 

else 语句2

3if(表达式1)语句1

elseif(表达式2) 语句2

elseif(表达式3) 语句3

elseif(表达式m)语句m

else 语句n

说明:

1)三种形式的if语句中在if后面都有“表达式”,一般为逻辑表达式或关系表达式。

2)第二、三种形式的if语句中,在每个else前面有一个分号,整个语句结束处有一个分号。

3)在if和else后面可以只含一个内嵌的操作语句,也可以有多个操作语句,此时用花括号“{}”将几个语句括起来成为一个复合语句。

if语句的嵌套

一般形式:

if()

 if()语句1

else语句2

else

if()语句3

 else语句4

条件运算符

若if语句中,在表达式为“真”和“假”时,且都只执行一个赋值语句给同一个变量赋值时,可以用简单的条件运算符来处理。

条件表达式的一般形式为:

表达式1?

表达式2:

表达式3?

运算符 ?

 :

-唯一的三目运算符

说明:

(1)条件运算符的执行顺序:

先求解表达式1,若为非0(真)则求解表达式2,此时表达式2的值就作为整个条件表达式的值。

若表达式1的值为0(假),则求解表达式3,表达式3的值就是整个条件表达式的值。

(2)条件运算符优先于赋值运算符,因此上面赋值表达式的求解过程是先求解条件表达式,再将他的值赋给(3)条件运算符的结合方向为“自右至左”。

(4)条件表达式中,表达式1的类型可以与表达式2和表达式3的类型不同

13、switch语句与选择结构0704X230704T09

switch语句的一般形式:

switch(表达式)

{case常量表达式1:

语句组;break;

case常量表达式2:

语句组;break;

......

case常量表达式n:

语句组;break;

[default:

语句组;[break;]]

}

说明:

1)switch是关键字,switch后的{}称为是switch语句体2)其语义是:

计算表达式的值。

并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时,即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句。

如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。

3)关键字 case与常量表达式后必须有空格4)必要时语句可以省略不写 和下一语句结构相同.5)Default的位置可以在任何位置,最后执行.

执行过程:

(1)当switch后面“表达式”的值,与某个case后面的“常量表达式”的值相同时,就执行该case后面的语句(组);当执行到break语句时,跳出switch语句,转向执行switch语句的下一条。

(2)如果没有任何一个case后面的“常量表达式”的值,与“表达式”的值匹配,则执行default后面的语句(组)。

然后,再执行switch语句的下一条。

注意:

(1)switch后面的“表达式”,可以是int、char和枚举型中的一种。

(2)每个case后面“常量表达式”的值,必须各不相同,否则会出现相互矛盾的现象(即对表达式的同一值,有两种或两种以上的执行方案)。

(3)case后面的常量表达式仅起语句标号作用,并不进行条件判断。

系统一旦找到入口标号,就从此标号开始执行,不再进行标号判断,所以必须加上break语句,以便结束switch语句。

14、语句标号和goto语句

语句标号形式

   语句标号 :

语句;

 goto 语句标号;

注意:

语句标号必须符合命名规则.

Goto为无条件转向语句

Goto语句标号;

作用:

把程序的执行转向语句标号的位置,这个语句必须与goto语句在同一个函数.

15、while语句0709T08

while一般形式与执行过程

1.一般形式:

while<表达式>语句

当表达式为非0时,执行while语句中的内嵌语句。

2.执行过程:

1)求解“循环继续条件”表达式。

如果其值为非0,转2);否则转3)。

2)执行循环体语句组,然后转1)。

表达式语句3)执行while语句的下一条。

需要注意:

1)循环体如果包含一个以上的语句,应该用花括号括起来,以复合语句的形式出现,如果不加花括弧,则while语句的范围只到while后面第一个分号处。

2)在循环体中应有循环趋向于结束的语句。

16、do-while语句0709X19

1.一般格式

do{循环体语句组;}

while(表达式);/*本行的分号不能缺省*/

当循环体语句组仅由一条语句构成时,可以不使用复合语句形式。

2.执行过程

(1)执行循环体语句组。

(2)计算“循环继续条件”表达式。

如果“循环继续条件”表达式的值为非0(真),则转向

(1)继续执行;否则,转向(3)。

(3)执行do-while的下一条语句。

do-while循环语句的特点是:

先执行循环体语句组,然后再判断循环条件。

17、for语句0704X24

适用范围:

不仅可以用于循环次数已经确定的情况,还可以用于循环次数不确定而只给出循环结束条件的情况。

完全可以代替while语句。

1.for语句的一般格式

for(表达式1;表达式2;表达式3)

{循环体语句组;}

for(i=1;i<=100;i++)sum=sum+i;

2.for语句的执行过程:

(1)求解“变量赋初值”表达式。

(2)求解“循环继续条件”表达式。

如果其值非0,执行(3);否则,转至(4)。

(3)执行循环体语句组,并求解“循环变量增值”表达式,然后转向

(2)。

(4)执行for语句的下一条语句。

说明:

(1)“变量赋初值”、“循环继续条件”和“循环变量增值”部分均可缺省,甚至全部缺省,但其间的分号不能省略。

For(;i<=100;i++)sum=sum+i;

(2)如果表达式2省略,即不判断循环条件,循环无终止进行下去。

(3)表达式3也可以省略,但此时程序设计者应另外设法保证循环正常结束。

(4)可以省略表达式和表达式,只有表达式2,只给循环条件。

(5)3个表达式都可省略(6)表达式1可以是设置循环变量初值的赋值表达式,也可以是与循环变量无关的其他表达式。

18、循环语句的嵌套0709X24

(1)循环语句的循环体内,又包含另一个完整的循环结构,称为循环的嵌套。

循环嵌套的概念,对所有高级语言都是一样的。

(2)for语句和while语句允许嵌套,do-while语句也不例外。

三种循环可以互相嵌套。

外层循环转一圈,内层循环转多圈。

循环的嵌套可以多层,但每一层循环在逻辑上必须是完整的。

19、break语句与continue语句0704X22

break语句

break语句可以用来从循环体内跳出循环体,即提前结束循环,接着执行循环体下面的语句。

break语句的一般形式:

break;

注意:

break语句不能用于循环语句和switch语句之外的任何其他语句中。

continue语句

一般形式为:

continue;

其作用为结束本次循环,跳出循环体中下面未执行的语句,接着进行下一次是否执行循环的语句。

Continue语句和break语句的区别是:

continue语句只结束本次循环,而不是终止整个循环的执行。

而break语句则是结束整个循环过程,不再判断执行循环的条件是否成立。

while(表达式)

{……if(表达式2)

break;

……}

while(表达式)

{……

if(表达式2)

continue;

……}

功能

(1)break:

强行结束循环,转向执行循环语句的下一条语句。

(2)continue:

对于for循环,跳过循环体其余语句,转向循环变量增量表达式的计算;对于while和do-while循环,跳过循环体其余语句,但转向循环继续条件的判定。

说明

(1)break能用于循环语句和switch语句中,continue只能用于循环语句中。

(2)循环嵌套时,break和continue只影响包含它们的最内层循环,与外层循环无关。

20、字符型常量与字符变量0704X250704X270704T10

字符常量

定义:

C的字符常量是用单引号括起来的一个字符。

注意:

(1)’a’和‘A’是不同的字符常量。

(2)‘’也是字符常量,和’’不同.(3)字符常量只包含一个字符.(4)’a’与”a”不同,后者不是字符变量,是一个字符串.(5)字符常量在内存中占一个字节,与整数对应.在内存中以二进制存储.每个字符有相应的ASCII值

ASCII表

需要记忆的ASCII值‘A’-65,’a’-97,’Z’-90,’z’-122,’‘-32,’0’-48,’9’-57,’’-0

需要注意:

1)大写字母的ASCII值比小写字母要小,相差32.2)字

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1