二级C语言讲义.docx

上传人:b****3 文档编号:5069223 上传时间:2022-12-13 格式:DOCX 页数:22 大小:93.95KB
下载 相关 举报
二级C语言讲义.docx_第1页
第1页 / 共22页
二级C语言讲义.docx_第2页
第2页 / 共22页
二级C语言讲义.docx_第3页
第3页 / 共22页
二级C语言讲义.docx_第4页
第4页 / 共22页
二级C语言讲义.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

二级C语言讲义.docx

《二级C语言讲义.docx》由会员分享,可在线阅读,更多相关《二级C语言讲义.docx(22页珍藏版)》请在冰豆网上搜索。

二级C语言讲义.docx

二级C语言讲义

二级C语言讲义

第1章C程序设计基本概念

§1.1程序和程序设计

考点01:

C语言概述

C语言的原型是60语言,由B语言演变而来,1978年正式发表。

C语言是一种面向过程的语言。

早期的C语言主要是用于系统,现在在各类大、中、小和微型计算机上得到了广泛的使用。

考点02:

C语言的特点

1.C语言的主要特点

◆简洁紧凑、灵活方便

◆共有32个关键字,9种控制语句,程序书写自由,主要用小写字母表示。

◆运算符丰富

◆运算符包含的范围很广泛,共有34种运算符。

C语言把括号、赋值、强制类型转换等都作为运算符处理。

◆数据结构丰富

◆整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等,能用来实现各种复杂的数据类型的运算。

引入了指针概念,使程序效率更高。

◆C语言是结构式语言

◆用函数作为程序模块,每个函数完成独立的功能来实现程序的模块化。

◆语法限制不太严格、程序设计自由度大。

◆一般的高级语言语法检查比较严,能够检查出几乎所有的语法错误,而C语言允许程序编写者有较大的自由度。

◆C语言允许直接访问物理地址,可以直接对硬件进行操作,属于中级语言

◆能够像汇编语言一样对位、字节和地址进行操作,而这三者是C语言最基本的工作单元,因此既具有高级语言的功能,又具有低级语言的许多功能,可以用来编写系统软件。

◆C语言程序生成代码质量高,程序执行效率高。

◆C语言适用范围大,可移植性好。

2.版本C、C、、、等。

C是的基础,它们是兼容的。

考点03:

程序设计的内容

1.基本步骤

确定数据结构、确定算法、编码(编程)、在计算机上运行程序、整理并写出文档资料。

2.C语言的基本结构

<>/*文件包含命令行*/

()/*主函数*/

{

;/*定义变量*/

46100;/*变量初始化*/

;/*求两数之和*/

("!

\n");/*输出两数之和*/

}

1)程序一般用小写字母书写,严格区分大小写。

书写格式自由,一行可以写几个语句,一个语句可以写在几行上。

*2)一个C语言源程序可以由一个或多个源文件组成,一个源程序不论由多少文件组成,都有且只能有一个(),称主函数。

注意:

⑴C程序是由函数()构成的,函数是C程序的基本单位。

⑵函数分为:

系统提供的库函数,用户定义的函数。

*3)C程序的执行总是先从主函数开始,而不论主函数在整个程序中的位置。

4)函数体必须在{}之间,函数前面部分为声明(定义)部分,后面为执行部分。

5)每个语句的结尾必须要有;作为终止符。

6)可以在语句旁边用/*……*/进行注释,但/与*之间不能空格,且/*与*/之间不能再插入/**/。

注释内容可以是英文或中文。

*7)C语言本身没有输入输出语句,有关操作都是通过调用库函数和来完成。

8)低一层次的语句或说明可比高一层次的缩进若干格书写。

§1.2算法

考点04:

算法及其特征

开始

1.概念:

任何解决问题的过程都是由一定的步骤组成的,所以把解决问题

确定的方法和有限的步骤称作为算法。

程序=数据结构+算法0=>s

2.简单算法示例

【例1-2】求1+2+3+……+100=?

1=>i

S1:

0S2:

1S3:

S4:

1

S5:

如果i不大于100,则重复执行步骤3,否则算法结束。

i<=100

()真

{>s

0;

(1<=100)1=>i

;

("\n");

}输出s

运行结果为:

5050结束

*3.特点:

有穷性、确定性、可行性(有效性)、有零个或多个输入、有一个或多个输出。

4.表示方法

(1)

流程图:

开始或终止框、输入输出框、判断框、处理框、流程

线、连接点、注释框。

(2)伪代码

(3)计算机语言-C语言

考点05:

算法的类型

1.基本类型

1)数值算法:

常用于科学计算,如求方程的根等。

2)非数值算法:

广泛用于各种数据的数据处理,如事务管理、图书检索、人事管理等。

2.基本构成

1)结构:

顺序结构、选择(分支)结构、循环(重复)结构。

2)原操作:

输入、输出、表达式求值、变量赋值等。

§1.3结构化程序设计和模块化结构

考点06:

结构化程序

1.顺序结构

顺序结构是由一组顺序执行的程序块所组成的。

2.选择结构

选择结构是根据分支条件的取值来决定程序执行的走向。

 

3.循环结构

循环结构是一种对某一处理块反复执行指定次数的结构。

考点07:

模块化结构

C语言是一种结构化程序设计语言,它提供了三种基本结构的语句;提供了定义“函数”的功能,在C语言中没有子程序的概念,它提供的函数可以完成子程序的所以功能;C语言允许对函数单独进行编译,从而可以实现模块化。

C语言的工作界面及上机操作

启动2.0:

双击快捷方式或启动,键入\↙↙或单击开始菜单→运行→c:

\\。

1.菜单栏F10

(文件):

(加载文件)、(选择文件)、(新建文件)、(保存文件)、(另存为)、(选择指定目录下的文件)、(改变默认打开的文件目录)、(暂时回到)、(退出)。

(编辑):

(F6)从信息窗口回到编辑窗口。

可清除错误白线提示。

(运行):

(运行)、(程序重启)、(运行到光标处)、(跟踪)、(单步执行)、(用户屏幕)。

(编译):

生成目标文件、可执行文件等。

(项目):

由多个文件生成一个可执行文件。

(选项):

设置工作环境。

(调试):

在调试过程中采用给某些变量赋新值来寻找错误。

(断点及监视表达式):

增加监视的变量,观察语句执行过程中变量值的变化。

注意默认在C盘根目录下,需要设置其他目录只需将其拷贝至该目录下,保留C盘的。

2.状态栏目:

光标位置、文件名等。

3.信息窗口:

显示提示信息。

4.功能键提示信息

F1:

帮助

F2:

保存文件

F3:

打开文件

F4:

运行到光标处

F5:

隐藏信息窗口

F6:

转换编辑与信息窗口

F7:

单步跟踪程序执行

F8:

单步跟踪程序执行但不进入被调用的子函数中

F9:

生成目标文件但不运行

F10:

打开菜单栏。

3:

选择文件、5:

显示运行结果、7:

增加监视的表达式、9:

运行程序。

注意:

⑴新建文件可在进入2.0时直接或按两次,新建文件不要在原有文件上修改,此时运行结果可能发生错误。

⑵除了运行显示图形的程序,其他均需要通过5来显示运行结果。

5.C程序的生成过程:

编辑→编译→连接→运行。

 

C编译程序程序

 

第2章C程序设计的初步认识

§2.1标识符、常量和变量

考点01:

标识符

1.概念:

用于标识变量、函数、数组、文件等的一串字符称为标识符。

2.规定

a)必须由英文字母、数字或下划线组成,且首字符只能是英文字母或下划线。

b)C程序中区别大、小写字母。

c)禁止使用关键字作为标识符。

3.关键字:

又称保留字,是编译系统预先定义的一些具有特定含义的标识符,共32个(数据类型12个、控制语句12个、存储类型4个、其它4个)。

预定义标识符虽然不属于关键字,但为了避免混乱,建议不使用它们作标识符。

注意:

C程序允许32个字符的标识符,但建议不超过8个字符。

二、基本数据类型

1.算法处理的对象是数据,而数据是以某种特定的形式出现,在C语言中,数据有常量、变量,一般它们都有一定的数据类型。

整型()

字符型()

实型(、)

枚举型()

数组类型

构造类型结构体类型()

共用(联合)体类型()

指针类型

空类型()

2.常量与变量

a)常量:

在程序运行过程中其值不能改变的量称为常量。

符号常量是在程序中指定用一个符号代表一个常量。

注意:

⑴符号常量必须由宏定义命令来定义,符号常量修改方便、不易出错。

⑵习惯上符号常量名用大写,变量名用小写。

b)变量:

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

一个变量在内存中占据一定的存储单元,在存储单元中存放该变量的值。

c)变量说明与变量赋值(变量初始化):

变量说明格式为:

类型说明符变量表列变量赋值格式为:

变量名=表达式

注意:

⑴表达式可以是:

常量、变量、算术表达式、赋值表达式。

⑵允许在一个类型标识符后说明多个相同类型的变量,各变量名之间用逗号间隔。

但不能使用变量=变量=表达式;,如7;,只能是77;或;7;。

⑶变量说明必须放在变量使用之前,一般在函数体的开头部分;变量必须先定义后使用。

⑷“=”左侧必须是变量,如7=9是错误的。

3.整型数据

(1)整型常量

按进制分类:

λ十进制整数:

非0开头(除0),如123、-123、8、0、-5、30000等。

 

λ八进制整数:

0开头,数字串只能含有0~7,如056、-0111等。

056=5×81+6×80=46。

λ十六进制整数:

0x或0X开头,数字串只能含有0~9及a、b、c、d、e、f(A、B、C、D、E、F)。

如0x123、0X3A、-0x2e等。

0X3A=3×161+10×160=58。

(2)整型变量

类型说明符所占位数(存储字节)数的范围 

基本型      16

(2)-32768(-215)~32767(215-1)    

短整型()  16

(2) -32768(-215)~32767(215-1)

长整型() 32(4)-2147483648(-231)~2147483647(231-1)

无符号型  16

(2)    0~65535(216-1)

 16

(2)    0~65535(216-1)

 32(4)0~4294967295(232-1)

注意:

所占位数(存储字节)是由机器()的字长决定的,16位机字长为8。

(3)存放方式

整型数据在内存中以二进制方式存放,最高位为符号位,0为正、1为负,并以补码表示。

λ对于正数,其补码与原码相同。

λ对于负数,其补码是将该数的绝对值的二进制形式按位取反再加1。

如-10的补码:

10的原码0000000000001010

取反1111111111110101

加11111111111110110→-10的补码

λ二进制转换成十进制的负整数:

取反转换成十进制整数取负值再减1。

如1111111111111110:

取反0000000000000001→1→-1减1→十进制负整数-2。

λ十进制转换成八进制:

十进制每3位对应于八进制1位。

如-4→0177774即

1111111111111100→177774;负整数()加65536再转换成八进制即可。

λ十进制转换成十六进制:

十进制每4位对应于十六进制1位。

如-4→0即

1111111111111100→fffc;负整数()加65536再转换成十六进制即可。

(4)数据溢出

当向变量赋的值超出该整型变量的范围即溢出,溢出后会给出错误的结果。

【例2-1】:

()

{;

32767;(32768;)

1;(1;)

("\n");}

运行结果为:

3276732768(-32768,32767)

注意:

⑴如果需要输出正确的结果,可以使用长整型来接收超过基本(短)整型变量范围的数值。

⑵当基本(短)整型变量数值>32767,则该数值减65536直到在-32768~32767为止;当基本(短)整型变量数值<-32767,则该数值加65536直到在-32768~32767为止。

4.实型数据(浮点数)

(1)实型常量

λ十进制小数形式:

由数字加小数点组成(必须有小数点),如100.5、-123.、.123、0.0。

λ指数形式:

如123e3、1.23E5,字母e(E)之前必须有数字,后面必须为整数。

(2)实型变量

类型说明符所占位数(存储字节)数的范围 

单精度      32(4)10-37~1038    

双精度  64(8) 10-307~10308

长双精度  128(16) 10-4931~104932

注意:

不论单精度、双精度均输出小数点后6位,不足补0。

指数形式为(E)±。

(3)舍入误差

由于实型变量是用有限的存储单元存储的,因此能提供的有效数字总是有限的,在有效数位以外的数字将被舍去,由此可能产生误差。

单精度有效位是7位,双精度有效位是16位。

【例2-2】:

()

{111111.111;(11111111111111.1111;)

("\n");(("\n");)}

运行结果为:

111111.109375(1.1111105)(11111111111111.111300(1.1111113))

(4)数据溢出

当向变量赋的值超出该实型变量的范围即溢出,溢出后会给出错误的提示。

【例2-3】:

()

{1.111111E40;

("\n");}

运行结果为:

5.字符型数据

(1)字符(串)常量:

λ字符:

用''括起来的一个字符,如'A'、'a'等。

注意:

字符常量只能且必须包含一个字符,空格也可以,但必须写成''。

【例2-4】:

()

{c123;

c1='a'2=9731-32;

("\"123123);}

运行结果为:

97,97,65

λ字符串:

用""括起来的一串字符,如"A"、""、""(空串)等。

注意:

字符串常量结尾系统自动加一个结束标志'\0',字符串常量所占字节数为字符数加1。

(2)转义字符常量:

又称反斜线字符,总是以一个\跟一个特定的字符来代表某一特定的字符,这些字符也必须括在''内,如'\n'代表换行、'\101'、'\x41'均代表'A'。

注意:

⑴每个转义字符只能看作一个字符。

⑵转义字符\表示1-3位八进制数、\表示1-2位十六进制数。

例:

已知字母A的码为十进制数65,且c为字符型,则执行语句'A'+'6'-'3';后中的值为。

A)DB)67C)不确定的值D)C

【例2-5】:

()

{("□□c\t□\\\\n");/*□表示空格*/

("\376");}

运行结果为:

a□□□□□□□

说明:

在第一行输出□□c,\t横向跳格至第9格,输出□,\r使输出位置移至本行首,输出

a,\t横向跳格至第9列(c清除),输出Y,\b退一格(Y清除),输出=,\n换行,输出■。

(3)字符变量:

类型说明符所占字节数的范围 

      1-128~127

注意:

字符变量在内存中占1个字节,存放的是字符的代码值,可以作为整型来处理,

如'A'的值为65、'a'的值为97、空格字符的值为32,所以可以进行算术运算。

    

三、运算符与表达式

表达式:

由常量、变量、函数等运算对象和运算符组成的式子。

运算符:

运算符有优先级,高的先执行,同级的由结合规则决定。

从左到右结合:

运算对象与左边运算符相结合,如510。

从右到左结合:

运算对象与右边运算符相结合,如7。

1.算术运算符与算术表达式(从左到右)

(1)单目(表示符号):

正号“+”、负号“-”。

(2)双目:

+、-、*、/、%(模)。

例:

若有代数式

,则不正确的C语言表达式为。

A)*e*3B)3*a*C)3*a**cD)a**3

注意:

⑴整型/整型时,小数点后的数一律舍去,如13/5为2、5/13为0、7/3*3的结果为6。

⑵模运算是整除取余数,运算符两侧必须都是整型,计算结果的符号与第一个数的符号相同,如-5%3为-2、-53为-2、53为2。

2.自增自减运算符(单目)(优先级高于算术,右结合)(常用于循环结构)

(1)自增:

→先加1再使用,相当于先执行1;再执行运算;→先使用再加1,相当于先执行运算再执行1;。

(2)自减:

--i→先减1再使用,相当于先执行-1;再执行运算;i--→先使用再减1,相当于先执行运算再执行1;。

注意:

自增自减运算符只能用于变量(整型、实型、字符型、指针型),不能用于常量或表达式。

-等价于-()。

【例2-6】:

()

{3;

()+()+();(()+()+();)(()+()+();)

("\n");}

运行结果为:

69(618)(615)

3.赋值运算符与赋值表达式(优先级低于算术,右结合)

(1)赋值运算符:

“=”是将“=”右侧的数值赋值给左侧的变量。

(2)赋值表达式:

变量名=表达式

注意:

⑴赋值运算符两侧数据类型不一致,则运算结果以“=”左侧的数据类型为准。

⑵赋值表达式后面加上“;”便构成了赋值语句。

(3)复合赋值运算符(双目)

λ加赋值、-=减赋值、*=乘赋值、除赋值、模赋值。

λ按位与赋值、按位或赋值、^=按位异或赋值、<<=位左移赋值、>>=位右移赋值。

【例2-7】:

()

{6;

*a;

("\n");}

运行结果为:

60

4.关系运算符与关系表达式(优先级低于算术,左结合,高于赋值)(用于选择或循环结构)

(1)关系运算符:

<小于、<=小于或等于、>大于、>=大于或等于、等于、不等于。

(2)关系表达式:

λ格式:

表达式关系运算符表达式。

λ结果:

逻辑值1(关系式成立)或0(关系式不成立)。

例:

若希望当A为奇数时,表达式值为“真”,偶数时为“假”,则不满足要求的表达式是()。

A)21B)!

(20)C)!

(2)D)2

5.逻辑运算符与逻辑表达式(优先级低于关系,左结合,!

除外)(用于选择或循环结构)

(1)逻辑运算符:

!

非(单目)、与(双目)、||或(双目)。

(2)逻辑表达式:

λ格式:

表达式逻辑运算符表达式。

λ结果:

逻辑值1(真)或0(假)。

例:

判断类型数据c1是否为大写字母的正确表达式是()。

A)'A'<1<='Z'B)(c1>='A')&(c1<='Z')

C)('A'<1)('Z'>1)D)(c1>='A')(c1<='Z')

【例2-8】:

()

{123422;

(>b)(>d);

("\n");}

运行结果为:

1234020

注意:

⑴!

取相反值,非0表达式值为0、0值为1,两侧表达式均为非0值才为1、否则为0,||只要有一个表达式值为非0值就为1,否则为0。

⑵求值短路:

当左侧表达式为0则不继续计算右侧表达式直接给结果0,当||左侧表达式为非0则不继续计算右侧表达式直接给结果1。

6.逗号运算符与逗号表达式(优先级最低,左结合)

(1)格式:

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

(2)结果:

依次计算各表达式的值,最后一个表达式的值为整个表达式的值。

注意:

与间隔符区分开,如("",());语句中的,是间隔  符。

例:

设均为类型,则表达式6,11的值是()。

A)8B)6C)7D)不确定

7.条件运算符与条件表达式(三目)(优先级低于逻辑,左结合,高于赋值)(用于选择结构)

(1)格式:

表达式1?

表达式2:

表达式3。

(2)结果:

求解表达式1,非0(为真),求解表达式2,其值即为整个表达式的值;0(为假),求解表达式3,其值即为整个表达式的值。

如a>>等价于a>b?

a:

(c>d)。

例:

若给定条件表达式(M)?

():

(),则其中表达式(M)。

A.和(0)等价B.和

(1)等价C.和(0)等价D.和

(1)等价

8.长度运算符(优先级高于算术,右结合)

(1)格式:

(类型说明符或变量)。

(2)结果:

测试数据类型所占用的字节数,如()值为2。

9.位运算符(双目)(运算对象整型或字符型)

(1)~按位取反(单目):

将运算对象的内容按位取反,如~32767=-32768,即~0111111111111111→1000000000000000。

(2)&按位与:

把两个运算数按对应的二进制进行“与”运算,相应位都是1,该位结果为1,否则为0;如12&10=8,即00001100&00001010=00001000。

(3)|按位或:

两个运算数相应位只要有一个为1,该位结果为1,两个都是0结果才为0;如83|12=95,即01010011|00001100=01011111。

(4)^按位异或:

两个运算数相应位数字相同该位结果为0,不同结果为1;如51^195=240,即00110011|11000011=11110000。

(5)<<左移:

运算对象<<整型表达式,移位后低位补0,高位移出的舍弃;如6<<2=24,即00000110<<2=00011000。

如果左端移出的部分不含1,则相当于移位对象乘以4。

(6)>>右移:

运算对象>>整型表达式,移位后低位移出的舍弃,高位补0(负整数补1);如24>>2=6,即00011000>>2=00000110。

如果右端移出的部分不含1,则相当于移位对象除以4。

10.常用数学函数(<>)

λ与:

(x)求整数x的绝对值,(x)求x的绝对值;两者区别为前者参数及返回值均为基本整型,后者参数及返回值均为双精度。

λ:

(x)求的值,参数及返回值均为双精度(下同)。

λ与10:

(x)求的值、10(x)求10x的值。

λ:

()求的值。

λ:

(x)求的值。

例:

代数式对应的C语言表达式是:

((()10(y)))。

代数式对应的C语言表达式是:

((x,3.0)10(x))。

11.优先级:

括号>逻辑非、自增自减、求正负>算术运算符>关系运算符>逻辑与>逻辑或>条件运算符>赋值运算符>逗号运算符(最好多用括号,使表达式更明了)

四、类型转换高

1.隐式转换

纵向箭头表示当运算对象为不同类型时的转换方向,

横向箭头表示必定转换。

a)将转换为时要进行符号扩展。

正值高16位补0,数值不变,如10→10

0000000000001010→00000000000000000000000000001010;负值高16位补1,数值不变,如

-10→-101111111111110110→11111111111111111111111111110110。

b)将转换为时要进行数位截取。

将的低16位给。

数据可能溢出。

c)将转换为时要进行数位扩展。

高16位补0,数值不变。

d)将转换为相同位数的整型变量时,只需原封不动传递。

数据可能溢出。

e)将非转换为相同位数的时,只需原封不动传递。

数据可能溢出。

注意:

⑴超过4位的16进制整型变量转换为无符号16进制变量时只需保留后4位。

⑵当负值基本(短)整型变量转换为无

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

当前位置:首页 > 法律文书 > 调解书

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

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