期末复习C语言知识点归纳文档格式.docx

上传人:b****8 文档编号:22737429 上传时间:2023-02-05 格式:DOCX 页数:36 大小:28.67KB
下载 相关 举报
期末复习C语言知识点归纳文档格式.docx_第1页
第1页 / 共36页
期末复习C语言知识点归纳文档格式.docx_第2页
第2页 / 共36页
期末复习C语言知识点归纳文档格式.docx_第3页
第3页 / 共36页
期末复习C语言知识点归纳文档格式.docx_第4页
第4页 / 共36页
期末复习C语言知识点归纳文档格式.docx_第5页
第5页 / 共36页
点击查看更多>>
下载资源
资源描述

期末复习C语言知识点归纳文档格式.docx

《期末复习C语言知识点归纳文档格式.docx》由会员分享,可在线阅读,更多相关《期末复习C语言知识点归纳文档格式.docx(36页珍藏版)》请在冰豆网上搜索。

期末复习C语言知识点归纳文档格式.docx

{doubler,s;

r=5.0;

s=PI*r*r;

printf(“s=%f\n”,s);

}

C语言中整型常量的3种表示:

8进制以0引导,16进制以0x或0X引导,十进制不能以0开头.

●实型(float或double型)常量在程序中只能用十进制数,不能用其他进制表示。

2种表示形式,普通的和指数形式,如3e5或者3E5,三者不可省略任何一部分.

●一个字符常量占一个字节存储空间.用单引号限定,如:

’A’

’\0x41’(为转义字符,表示以十六进制数41为ASCII码值的字符,即’A’的转义字符形式).

‘\0’(表示空字符,在字符串中用作字符串的结束标志)

11.字符串常量用英文双引号括起来.如:

”hello\n”

●字符串中的字符个数称为字符串的长度.空字符串长度为0.

●字符串存储中每个字符占一个字节,字符串结尾自动加一个结束标志符’\0’,所以字符串存储的时候,占用的空间长度要比串的实际长度多1.

如:

charch[]={“Hello”};

实际串的长度为5,但数组空间长度为6。

●变量

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

变量的命名必须符合标识符的命名规则,且不能和C语言

中关键字同名。

(例如:

main是关键字)

a、b、ab为合法变量

define、printf为非法变量

ab是一个整体,含义不同于a乘以b。

●有符号整型变量用英文singned表示,存储时最高一位是符号位,无符号整型变量用英文unsigned表示.

●字符型变量的数据类型标识符是符号char,每个字符型变量只能存储一个字符.

‘A’、’c’、’5‘都是合法的字符常量。

”A”、’abc’都是非法的字符常量。

●常见的转义字符:

\n回车换行\\反斜杠

\’单引号\”双引号

\ddd三位八进制\xhh二位十六进制

\0空值

例1:

‘\n’表示回车换行‘\’’表示一个单引号

例2:

‘\101’表示字符’A’‘\x41’表示字符’A’

●字符变量

用关键字char定义,可以同时赋初值。

例1定义两个字符变量ch1和ch2。

charch1,ch2;

例2定义两个字符变量a和b,初值分别为’1’和’2’。

chara=’1’,b=’2’;

●getchar函数和putchar函数

分别用来输入字符和输出字符。

●字符的输入和输出

使用scanf和printf时,格式符均为%c。

例1从键盘上输入一个字符保存在ch中。

charch;

ch=getchar();

例2charc1=’A’,c2;

c2=c1+1;

putchar(c2);

输出结果是’B’。

例3输出一个回车换行符。

putchar(‘\n’);

例:

从键盘上输入一串字符,最后以’!

’为结束标志。

分别

统计大写字母,小写字母、数字出现的次数。

#include<

{

intn1=0,n2=0,n3=0;

printf(“请输入一串字符以!

结束:

\n”);

ch=getchar();

 

while(ch!

='

!

'

{

if(ch>

A'

&

&

ch<

Z'

n1++;

a'

z'

n2++;

0'

9'

n3++;

}

printf("

大写字母出现次数是%d\n"

n1);

小写字母出现次数是%d\n"

n2);

printf(“数字出现次数是%d\n"

n3);

●VC++6.0下,int 

型数据占4个字节,float型数据占4个字节, 

double型数据 

占8个字节,.char型数据 

占1个字节.

●算术运算符

+、-、*、/、%(求余数)

3+21.2*3.25%31/2

求余运算符%只能用于整型数据的相除求余数,结果为整数.如:

7%2.0为非法表达式,7/2结果为3,7%2结果为1

运算规则

1)如果运算数类型一致,则结果为运算数的类型。

所有实数运算都是以双精度进行.

2)如果运算数类型不一致,则系统自动转换,使运算符

两边类型一致后再进行运算。

char 

和short参与运算先转换成同int 

.

赋值运算中,赋值号右侧量的类型将转换成左侧的类型.

例11.0/2.0结果为0.5

例21/2结果为0

例315/3.0结果为5.0

●强制类型转换

(类型名)(表达式)

例4(int)3.234结果为3

例5(float)(10%3)结果为1.000000

●关系运算符

>

>

=,<

<

=的优先级相同且高于==,!

=的优先级.

关系运算符的优先级低于算术运算符高于赋值运算符.

关系运算符是左结合性.

●关系表达式的值为真则是1,假为0.

●逻辑运算符!

高于&

和||,高于算术运算符.&

和||是左结合的,!

是右结合的.

●注意&

及||运算的短路现象。

的短路运算:

(表达式1)&

(表达式2),若(表达式1)的值为0,则表达式2将不被计算,整个&

的结果为0。

||的短路运算:

(表达式1)||(表达式2),若(表达式1)的值为1,则表达式2将不被计算,整个||的结果为1。

●数学关系式0<

x<

10在C语言中的表达:

(0<

x)&

(x<

10)或0<

x&

x<

10

●赋值表达式

变量名=表达式

a=10a=a+1a=b=7+1为合法表达式

a+b=8a=7+1=b为非法表达式

整个表达式的值等于最左边变量的值。

a=b=c=8*8整个表达式最后的值为64

●复合赋值表达式

复合运算符:

+=、-=、*=、/=、%=

n=n+1表达式可写成n+=1

n=n%3表达式可写成n%=3

n*=m+3表达式可写成n=n*(m+3)

例1假设变量a初值为9,计算下列表达式。

a+=a-=a+a

解答:

1)计算a+a,结果为18,a值未变。

2)计算a-=18,即a=a-18,结果为-9,a值变为-9。

3)计算a+=-9,即a=a+(-9),结果为-18,a值变为-18。

整个表达式最后结果为-18,a最后值为-18。

a=a+1为赋值表达式,而a=a+1;

为赋值语句。

●自加和自减运算符

自加和自减只适用于整型变量.

a++和++a等价于a=a+1

b--和--b等价于b=b-1

a++和++a的区别:

假设a的初值为5

表达式a++值为5,最后a值为6。

表达式++a值为6,最后a值为6。

●逗号表达式

表达式1,表达式2,…..,表达式n

从左至右依次计算每个表达式,最后一个表达式的值即为

整个逗号表达式的值。

表达式i=3,++i,i+5最后结果为9,i最后值为4。

●条件运算由"

?

"

和"

:

构成,它是根据条件从两个表达式中选择一个进行计算取值的操作,优先级高于赋值运算符,低于算术运算和关系运算.

三、输入输出函数

●数据输出printf

printf(格式符,输出项1,输出项2,….)

格式符功能

%c输出一个字符

%d输出十进制整数

%f输出小数形式浮点数

%e输出指数形式浮点数

%s输出一个字符串

数据宽度说明:

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

%4d、%5c

2)对于float和double类型的实数,可以用n1.n2形式

n1指定输出数据的宽度(包括小数点),n2指定小数

点后小数的位数。

%12.3f、%12.0f

例1输出整型变量a和b的值,数据宽度均为4。

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

例2输出单精度变量k的值,保留2位小数。

printf(“%.2f”,k);

●数据输入scanf

scanf(格式符,输入项1,输入项2,…)

%c输入一个字符

%d输入十进制整数

%f输入单精度数

%lf输入双精度数

%s输入一个字符串

例1从键盘上输入两个整数,保存在变量a和b中。

scanf(“%d%d”,&

a,&

b);

例2从键盘上输入一个双精度数,保存在变量data中。

scanf(“%lf”,&

data);

此处两例中&

是C语言运算符,表示取变量地址。

●复合语句

{语句1语句2….语句n}

例1用复合语句将变量a,b,c依次赋值为最小素数。

{a=2;

b=3;

c=5;

例2用复合语句实现变量a和b的值的交换。

{k=a;

a=b;

b=k;

●不带参数的宏#define 

PI 

3.14159 

意思是用符号常量PI(宏名)代替3.14159(宏体),注意:

宏定义不是c语句,后面不加分号.

●带参数的宏.#define 

m(x) 

x*x*x*x

意思是m(x)代替x的4次方,x 

不用定义,可以在使用中换成需要的字母.

带参数的宏的展开,如:

#define 

x*x*x*x

printf("

%d"

m(1+1));

m(1+1)的宏展开式为:

1+1*1+1*1+1*1+1计算结果为5

再如:

(x)*(x)*(x)*(x)

(1+1)*(1+1)*(1+1)*(1+1)计算结果为16

●include命令是编译预处理的文件包含命令,形式为了#include 

<

文件名>

或者 

#include"

文件名"

调用标准函数中的输入输出函数,#include"

stdio.h"

,如果调用数学函数(如sqrt函数、fabs函数等),则应加上#include 

math.h 

或者#include<

math.h>

四、分支结构

、<

、>

=、<

=、==、!

=

关系运算的结果只有两种:

真或假

C语言中用1表示真,用0表示假。

例16>

=6‘a’>

’A’‘5’>

’‘结果均为真,值为1

例26!

=6‘D’==’d’‘9’>

’F’结果均为假,值为0

●逻辑运算符

(与)||(或)!

(非)

优先级:

非运算>

与运算>

或运算

非运算规则

操作数结果

真假

假真

与运算规则

操作数1操作数2结果

真真真

真假假

假真假

假假假

或运算规则

真假真

假真真

例1若变量a值为10,变量b值为16,计算表达式。

a>

b||a>

sqrt(b)&

b>

=16

最后结果为真,表达式的值为1

●if语句的一般形式:

单分支结构:

if(表达式)语句

若表达式为真,则执行语句;

否则if语句结束。

二选一结构:

if(表达式)

{语句组1}

else

{语句组2}

表达式的值非0才执行语句组1,否则执行语句组2.

例1从键盘上输入两个整数,输出较大的数。

intx,y;

printf(“请输入两个整数:

x,&

y);

if(x>

y)

printf(“%d”,x);

printf(“%d”,y);

●条件运算符

表达式1?

表达式2:

表达式3

若表达式1为真,结果为表达式2;

否则为表达式3。

x的初值为5,执行以下语句

y=++x>

6?

100:

200;

最后y的值为200

●if语句可嵌套,在花括号里继续使用.

多选一结构:

if(表达式1)

else 

if(表达式2)

if(表达式3)

{语句组3}

{语句组n}

例1根据输入的学生成绩,大于或等于90分为A,60

分以下等级为E,其余每10分一个等级。

{

intg;

printf(“请输入一个整数:

scanf(“%d”,&

g);

if(g>

=90)printf(“A\n”);

elseif(g>

=80)printf(“B\n”);

=70)printf(“C\n”);

=60)printf(“D\n”);

elseprintf(“E\n”);

●switch(表达式)//switch表达式通常为整型或字符型值

case常量1:

语句组1//case后面必须是常量

 

case常量2:

语句组2

.........

default:

语句组//也可省略该语句

可以使用中break 

来中止后面语句的执行.

●switch表达式通常为整型或字符型值,case中的常量类型与之对应,case后面的表达式可以是常量或常量表达式,不能为变量表达式.

switch语句

switch(表达式)

case常量表达式1:

语句1

case常量表达式2:

语句2

……

case常量表达式n-1:

语句n-1

default:

语句n

若表达式的值与表达式1相等,则执行语句1;

若与表达

式2相等,则执行语句2……若均不相等则执行语句n。

例1用switch语句重写学生等级程序。

scanf(“%d”,&

switch(g/10)

case10:

printf(“A\n”);

break;

case9:

case8:

printf(“B\n”);

case7:

printf(“C\n”);

case6:

printf(“D\n”);

printf(“E\n”);

程序中break表示跳过后面的分支。

五、循环结构 

●while循环

while(表达式)循环体

若表达式为真,则执行循环体。

再判断表达式,若仍为真

则重复执行循环体直到表达式为假时循环结束。

例1编程计算S=1+2+……100。

intk=1,s=0;

while(k<

=100)

{s=s+k;

k=k+1;

printf(“%d”,s);

●do-while循环

do

循环体

while(表达式);

先执行循环体,然后判断表达式。

若为真则重复执行

循环体直到表达式为假时循环结束。

例1用do-while循环计算10!

intk=1;

longs=1;

do

{s=s*k;

k++;

}

while(k<

=10);

printf(“%ld”,s);

while循环和do-while循环的区别

while循环是先判断表达式,因此循环体有可能一次也不执行。

do-while循环是先执行一次循环体,再判断表达式,所以不论表达式为真为假,循环体至少要执行一次。

●for循环

for(表达式1;

表达式2;

表达式3)循环体

先执行表达式1,然后判断表达式2,若为真则执行

循环体。

然后执行表达式3,再判断表达式2,若仍

为真则重复执行循环体直到表达式2为假时结束。

例1用for循环计算S=1+2+…100。

intk,sum=0;

for(k=1;

k<

=100;

k++)

sum=sum+k;

printf(“%d”,sum);

例2若一个三位数个位、十位、百位的立方和等于它本身

则称这个数为水仙花数。

例如153是一个水仙花数。

编程输出所有的水仙花数。

inta,b,c,i;

for(i=100;

i<

=999;

i++)

a=i/100;

b=i%100/10;

c=i%10;

if(a*a*a+b*b*b+c*c*c==i)

printf("

%d\n"

i);

●break语句

适用的场合是switch语句中,及循环语句中。

用在循环体内表示强行退出循环。

例1计算S=1+2+3+…n,直到累加和大于5000为止。

inti,s=0;

for(i=1;

;

s=s+i;

if(s>

5000)break;

当有多重循环时,break只能退出最内层循环。

●continue语句

用在循环体中用来跳过本次循环余下的语句,立即开始

下一轮循环,整个循环并未结束。

例1写出下列程序运行结果。

inti,k=0,s=0;

for(i=1;

=5;

i++)

{

5)

{printf(“i=%d,s=%d,k=%d\n”,i,s,k);

continue;

k=k+s;

printf(“i=%d,s=%d,k=%d\n”,i,s,k);

运行结果:

i=1,s=1,k=1

i=2,s=3,k=4

i=3,s=6,k=4

i=4,s=10,k=4

i=5,s=15,k=4

六、数组

●数组是包含多项相同类型数据的一种数据结构,它使用同一个名字命名,再用下标进行分量标识.数组元素的下标从0开始,数组长度为n时,最末元素的下标是 

n-1.

定义一维数组

类型名数组名[元素个数]

例1定义一个包含4个整数的数组a

inta[4];

例2定义一个包含3个双精度数的数组b

doubleb[3];

C语言中数组的下界从0开始计数。

a[4]的4个元素分别为a[0]、a[1]、a[2]、a[3]

●数组有一维数组,二维数组,和多维数组.数组中的每一个分量称为一个数组元素。

●一维数组定义格式

数据类型 数组名[数组长度];

//数组长度指数组中可以存放的数据元素的个数,用整数常量表示,也可用代表一个正整数的符号常量表示

例如:

int 

array[10];

C语言规定只能逐个使用数组元素,而不能一次使用整个数组。

●数值型一维数组的初始化,

用一对大括号将数组的初值括起来。

a[6]={10,20,30,40,50,60};

注意:

C语言中,不允许初值个数多于数组定义的长度。

a[]={10,20,30,40,50,60};

给初值的情况下,数组的长度可省略,系统以初值的个数作为数组的长度。

●对部分元素的初始化,例如:

a[6]={10,20,30}是对前3个元素的赋值.

例1inta[3]={1,2,3};

此例中a[0]值为1、a[1]值为2、a[2]值为3

例2inta[5]={0};

此例中数组a的全部元素值均为0

例3inta[3]={1,2,3,4};

此例中由于初值个数多于数组元素个数,所以非法。

例4inta[]={0,0,0,0};

此例中省略数组元素个数,初值为4个0

等价于inta[4]={0};

数组名是一个常量值,不能对它赋值。

inta[3];

a=5;

此语句非法,应改为a[0]=5;

●一维数组应用

例1从键盘上输入10个整数,输出最大数和最小数。

inta[10],i,max,min;

请输入10个整数:

\n"

);

for(i=0;

=9;

scanf("

&

a[i]);

max=a[0];

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

当前位置:首页 > PPT模板 > 其它模板

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

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