C面向对象程序设计知识点汇集

C面向对象程序设计知识点汇集
C面向对象程序设计知识点汇集

C#面向对象程序设计知识点汇集

第一章:C#入门

1.namespace关键字

namespace即命名空间,是定义命名空间的关键字,命名空间包含类,是类的组织方式。namespace 命名空间名

{

…//类的定义

}

2.using关键字

using关键字用于导入命名空间

using命名空间名;

3.class关键字

class即类,是定义类的关键字。C#中必须用类来组织程序的变量和方法。

4.Main()方法

C#程序必须且只能包含一个Main()方法,它是程序的入口点。

static void Main(string[] args){}

static void Main(){}

static int Main(string[] args){}

static int Main(){}

5.行输出方法

语句“Console.WriteLine("Hello .NET!");”的功能是向显示屏输出双引号之间的字符串。语句“Console.ReadLine();”的功能是输入一个字符串

6.C#程序结构

C#程序的组成要素如下:

1) 命名空间:命名空间包含一个或多个类。

2) 类。

3) 方法:方法必须包含在某一个类中,作为类的一个成员,每个程序有且仅有一个Main()方法。

4) 语句:语句是C#应用程序中执行操作的命令。C#中的语句必须用分号“;”结束。

5) 关键字:关键字也叫保留字,是对C#有特定意义的字符串。

6) 大括号:在C#中,括号“{”和“}”是一种范围标志,表示代码层次的一种方式。7.C#程序书写格式

1)缩进

2) 字母大小写

C#是大小写敏感的语言,它把同一字母的大小写当作两个不同的字符对待。

3) 程序注释

(1) 单行注释,以双斜线“//”开始,一直到本行尾部,均为注释内容。

(2) 多行注释,以“/*”开始,以“*/”结束,可以注释多行,也可以注释一行代码中间的一部分,比较灵活。

(3) 文档注释,使用“///”,若有多行文档注释,每一行都用“///”开头。

8.Console类

Console类是System命名空间中预定义的一个类,用于实现控制台的基本输入输出。

?编写一个控制台应用程序,输入字符串“I love this game!”,在屏幕上输出。

using System;

?using System.Collections.Generic;

?using System.Text;

?namespace https://www.360docs.net/doc/2316754488.html,

?{

?class Program

?{ static void Main(string[] args)

?{

?Console.WriteLine("I love this Game!");

?}

?}

?}

相关知识及注意事项

1.对象、类、属性和方法

1)类和对象

2) 属性

每个对象都有自己的特征和行为,对象的静态特征称为对象的属性

3) 方法

方法是对象的行为特征,是一段可以完成特定功能的代码

2.事件和事件驱动

事件就是预先定义好的、能被对象识别的动作。

通过随时响应用户或系统触发的事件,并做出相应响应的机制就叫做事件驱动机制。3.窗体对象

4.控件对象

1)按钮控件

按钮(Button)控件用于接收用户的操作信息,激发相应的事件,按钮是用户与程序交互的主要方法之一。

2)文本框控件

文本框(TextBox)控件用于获取用户输入的信息或向用户显示文本信息,图1.17用于显示信息的白色框就是文本框

5.控件的基本操作

有两种方法:第一种是按住Shift键或Ctrl键不放,然后单击每个要选择的控件;第二种是把光标移到窗体中的适当位置,然后拖动鼠标画出一个矩形,选中矩形内的控件(包括边线所经过的控件)。

1.填空题

(1) .NET 框架具有两个主要组件:____________________和____________________ 。

(2) 使用https://www.360docs.net/doc/2316754488.html,开发的每一个应用程序称为__________ ,它可以包括一个或多个__________ 。

(3) 命名空间是类的组织方式,C#提供了关键字__________来声明命名空间,提供了关键字____________________来导入命名空间;如果要使用某个命名空间中的类,还需要添加对该命名空间所在__________ 的引用。

(4) C#语言程序必须包含并且只能包含一个的方法(函数)是__________,它是程序的入口点。

(5) C#程序中的语句必须以__________作为语句结束符。

(6) Console 类是System 命名空间中的一个类,用于实现控制台的基本输入输出,该类中有两个常用的方法,一个是功能为“输出一行文本”的方法____________________,另一个是功能为“输入一行文本”的方法____________________ 。

2.选择题

(1) 下面__________是C#中的单行注释。

A./*注释内容*/ B.//注释内容

C.///注释内容 D .Note 注释内容

(2) C#中以__________作为源文件的扩展名。

A..c B..cpp C..cs D..exe

(3) 关于C#程序书写格式,以下说法错误的是___.

A.缩进在程序中是必须的

B.C#是大小写敏感的语言,它把同一字母的大小写当作两个不同的字符对待

C.注释是给程序员看的,不会被编译,也不会生成可执行代码

D.在C#中,大括号“{”和“}”是一种范围标志,大括号可以嵌套

3.简答题

(1) 简述C#程序的组成要素。

答:C#程序的组成要素如下:命名空间、类、方法、语句、关键字、大括号“{”和“}”。

(2) 简述Windows应用程序编程步骤。

答:在https://www.360docs.net/doc/2316754488.html,中开发Windows窗体应用程序的步骤如下:

新建项目;

设计程序界面,包括添加控件和设置控件属性;

编写代码;

保存程序;

运行调试程序。

(3) 简述对事件驱动机制的理解。

答:当用户或系统触发事件时,对象就会响应事件,实现特定的功能,这种通过随时响应用户或系统触发的事件,并做出相应响应的机制就叫做事件驱动机制。响应事件时执行的代码称为事件处理程序。开发应用程序时编程人员的主要工作之一就是针对控件可能被触发的事件设计适当的事件处理程序。

第二章:C#语法基础

1.常量与变量

有的量在过程中不起变化,就把其称为常量;

有的量在过程中是变化的,也就是可以取不同的数值,就把其称为变量。

在C#中程序设计人员可以根据程序设计的需要,给存放常量和变量的内存地址取一个有意义的名字,分别叫做常量名和变量名。

可以通过const关键字来定义常量,语法如下:

const 数据类型标识符常量名=数值或表达式;

说明

(1)一旦定义常量,就要赋初值,且这个常量的值在程序运行过程中是不允许改变的。

(2)定义常量时,表达式中的运算符对象只允许出项常量和常数,不允许出现变量。(3)不论常量和变量,都必须先定义后使用。

变量的定义和赋值语法如下:

数据类型标识符变量名[=数值或表达式];

说明:

(1) 语法中的[ ]表示可选,就是说[ ]中的内容写或不写都不会导致语法错误。

(2) 在对变量进行赋值时,数值或表达式的值类型必须同变量的类型相同。

2.C#变量命名规则

为变量起名时要遵守C#语言的规定。

(1) 变量名必须以字母开头。

(2) 变量名只能由字母、数字和下划线组成,而不能包含空格、标点符号、运算符等其他符号。

(3) 变量名不能与C#中的关键字名称相同。

(4) 变量名不能与C#中的库函数名称相同。

(5) 允许在变量名前加前缀“@”。

说明:可以使用前缀“@”加上关键字作为变量的名称。这主要是为了与其他语言进行交互时避免冲突。因为前缀“@”实际上并不是名称的一部分,其他的编程语言就会把它作为一个普通的变量名。在其他情况下,不推荐使用前缀“@”作为变量名的一部分。

3.变量的定义和赋值语法如下:

数据类型标识符变量名[=数值或表达式];

说明:

(1) 语法中的[ ]表示可选,就是说[ ]中的内容写或不写都不会导致语法错误。

(2) 在对变量进行赋值时,数值或表达式的值类型必须同变量的类型相同。

如果数值或表达式的值类型与变量的类型不相同,但数值或表达式的值类型所表示的数值范围比被赋值变量的类型所表示的范围要小,是允许赋值的。事实上C#在内部进行了一次数值类型的转换,这种转换叫隐式转换。关于数据类型和隐式转换将在后面讲述。数值类型包括:

整数类型、字符类型、浮点数类型、布尔类型、结构类型、枚举类型。

引用类型包括:

类类型(如string类)、数组类型、接口类型、代理类型。

C#的数据类型体系如图所示。

简单类型

数值类型

其它类型

sbyte, byte short, ushort

int, uint long, ulong 浮点型

float double decimal

char string bool

4.整数类型

C#有8种整数类型: (1)短字节型(sbyte) 有符号8位整数 (2)字节型(byte) 无符号8位整数 (3)短整型(short)

有符号16位整数 (4)无符号短整型(ushort) 无符号16位整数 (5)整型(int) 有符号32位整数 (6)无符号整型(uint) 无符号32位整数 (7)长整型(long)

有符号64位整数 (8)无符号长整型(ulong)

无符号64位整数

C#支持3种基本浮点数:

(1)表示单精度的float,精度7位

(2)表示双精度的double,精度15-16位

(3)表示财务计算用途的decimal,精度29位

在程序中书写一个十进制的数值常数时,C#默认按照如下方法判断一个数值常数属于哪种C#数值类型。

(1) 如果一个数值常数不带小数点,如3456,则这个常数的类型是个整数。

(2) 对于一个属于整型的数值常数,C#按如下顺序判断该数的类型:int,uint,long,ulong。

(3) 如果一个数值常数带小数点,如1.2,则该常数的类型是浮点型中的double类型。

可以通过在数值常数后加后缀的方法来指定数值常数的类型。

(1)u(或U)后缀:加在整型常数后面,代表该常数是uint类型或ulong类型,具体哪种,

由常数的实际值决定。C#优先匹配uint类型。

(2) l(或L)后缀:加在整型常数后面,代表该常数是long类型或ulong类型,具体哪种,由常数的实际值决定。C#优先匹配long类型。

(3) ul(或uL、Ul、UL、lu、lU、LU)后缀:加在整型常数后面,代表该常数是ulong类型。

(4) f(或F)后缀:加在任何一个数值常数后面,代表该常数是float类型。

(5) d(或D)后缀:加在任何一个数值常数后面,代表该常数是double类型。

(6) m(或M)后缀:加在任何一个数值常数后面,代表该常数是decimal类型。

如果所指定的数据符号不能用指定类型表示,在编译时会产生错误。

当用两种浮点型执行运算时,可以产生以下的值:正零和负零、+Infinity和-Infinity(正无穷大或负无穷大)、NaN(非数字值Not-a-Number)。

6.字符类型

用来表示字符数据常量时,共有以下几种不同的表示方式。

(1) 用单引号将单一个字符包括起来,例如:'A'、'n'、'u'。

(2) 用原来的数值编码来表示字符数据常量,例如:'a'是97,'v'是118。

(3) 还可以直接通过十进制转义符(前缀\x)或Unicode表示法(前缀\u)表示字符数据常量,

例如:'\x0032'、'\u5495'。

(4) C#提供了转义符,用来在程序中指代特殊的控制字符:(见p36)

\’\’’\\

\0

\r

\t

7.字符串类型

字符串类型是一个char类型的序列。

定义一个字符串的语法如下:

string 变量名[="字符串值"];

例:string str;

string str=“c#”;

string str=Console.ReadLine( );

8.布尔类型

布尔类型数据用于表示逻辑真和逻辑假,布尔类型的类型标识符是bool。

布尔类型只有两个值:true和false。

通常占用1个字节的存储空间

布尔类型还有一个特点:不能进行数据类型转换。

枚举类型是一种用户自定义的数值类型,它提供了一种简便可以创建一组有结构的符号来表示常量值,有助于程序设计人员更好地调试和维护程序。

1) 枚举类型的定义

枚举定义用于定义新的枚举类型。枚举声明以关键字enum开始,然后定义枚举的名称、可访问性、基类型和成员。

语法如下:

[访问修饰符] enum 枚举标识名[:枚举基类型]默认的基类型为int {枚举成员[=整型常数],[枚举成员[=整型常数],…]}[;] 枚举成员不能同名2) 枚举成员的赋值

在定义的枚举类型中,每一个枚举成员都有一个常量值与其对应,默认情况下枚举的基类型为int,而且规定第一个枚举成员的取值为0,它后面的每一个枚举成员的值加1递增。

(1) 如果某一枚举成员赋值了,那么枚举成员的值就以赋的值为准。在它后面的每一个枚举成员的值加1递增,直到下一个赋值枚举成员出现为止。

(2) 每个枚举成员都有一个关联的常量值。该值的类型是包含该值的枚举的基类型。每个枚举成员的常量值必须在该枚举的基类型的范围内。

(3) 多个枚举成员可以共享相同的常量值。

3) 枚举成员的访问

在C#中可以通过枚举名和枚举变量这两种方式来访问枚举成员。

(1) 通过枚举名访问枚举成员的形式如下:

枚举名. 枚举成员;

(2) 在通过枚举变量访问枚举成员之前,首先要定义一个枚举类型变量。语法如下:

枚举类型名变量名;

然后再通过枚举变量访问枚举成员,语法如下:

枚举变量名.枚举成员

10.结构类型

结构类型也是一种用户自定义的数值类型,它是指一组由各种不同数据类型的相关数据信息组合在一起而形成的组合类型。把一系列相关的变量组织成为一个单一实体的过程,称为生成结构的过程。这个单一实体的类型就叫做结构类型。

1) 结构的定义

结构的定义语法如下:

[访问修饰符] struct 结构标识名[:基接口名列表]

{

//结构成员定义

}

说明:

(1) 结构成员包括各种数据类型的变量、构造函数、方法、属性、索引器。

(2) 结构可以实现接口。

?举例1:结构的定义

?struct judge

?{ string name;

?float score;

?}

2) 结构类型成员的访问

用结构变量访问结构成员。在通过结构变量访问结构成员之前首先要定义一个结构类型变量。语法如下:

结构类型名变量名;

然后再通过结构变量访问结构成员,语法如下:

结构变量名.结构成员;

?举例2:结构类型变量的定义

?judge judge1;

?judge1. name=Console.ReadLine( );

3) 结构与类的区别

(1) 两者的类型不同,结构是数值类型,类是引用类型。

(2) 结构的静态字段可以初始化,结构实例字段声明还是不能使用初始值设定项,而类都可以。

(3) 结构不能声明默认构造函数(没有参数的构造函数)或析构函数,也就是说结构可以声明构造函数,但它们必须带参数,而类都可以。

(4) 结构的实例化可以不使用new运算符,而类都不可以而类的实例化都必须使用new 运算符。

(5) 一个结构不能从另一个结构或类继承,而且不能作为一个类的基。所有结构都直接继承自System.ValueType,而类继承自System.Object。(ValueType派生自Object,最终基类都是Object。)

如何选择使用结构还是类,可以参照以下几点。

(1) 堆栈的空间有限,对于大量的逻辑的对象,创建类要比创建结构好一些。

(2) 结构表示如点、矩形和颜色这样的轻量对象,例如

(3) 在表现抽象和多级别的对象层次时,类是最好的选择。

(4) 大多数情况下该类型只是一些数据时,结构是最佳的选择。

11.类型转换

在程序设计中,有时要进行数据类型的相互转换,如被赋值的变量或方法的形式参数的类型与实际的对象类型不同,就需要进行类型转换。C#中有两种转化方式:隐式转换和显示转换。当发生类型转换时,被赋值的变量或方法的形参的类型称为目标类型,而实际对象的类型称为源类型。

1)隐式转换

当发生类型转换时,如果在代码中没有明确指定目标类型,则称为隐式转换。也就是说隐式转换是系统默认的、不需要加以声明就可以进行的转换。在隐式转换过程中,编译器不需要对转换进行详细的检查就能安全地执行转换。

小类型->大类型

安全的转换(不会丢失数据)

系统自动完成

注意:

(1)从int、uint 或long 到float 的转换以及从long 到double 的转换的精度可能会降低,但数值大小不受影响。

(2)不存在到char 类型的隐式转换。

(3)不存在浮点型与decimal 类型之间的隐式转换。

2) 显式转换

当发生类型转换时,如果在代码中明确指定目标类型,则称为显式转换。显式转换也称为强制型转换,一般在不存在该类型的隐式转换时才使用。

语法格式如下:

(类型标识符)表达式

这样就可以将表达式的值的数据类型转换为类型标识符的类型。

例如:(int)6.143 //把float类型的6.143转换为int类型

大类型->小类型

不安全的转换(可能丢失数据)

显式声明

3) 负责数据类型转换的Convert类

Convert类用于将一个基本数据类型转换为另一个基本数据类型,返回与指定类型的值等效的类型;

受支持的源类型是Boolean、Char、SByte、Byte、Int16、Int32、Int64、UInt16、UInt32、UInt64、Single、Double、Decimal、DateTime和String。。

属于显示转换

常用于不同类型之间的数据转换

(1) 从某数据类型到它本身的转换只返回该数据类型,不实际执行任何转换。

(2) 无法产生有意义的结果的转换引发InvalidCastException(指定的转换无效)的异常,不实际执行任何转换。下列转换会引发异常:从Char转换为Boolean、Single、Double、Decimal 或DateTime,以及从这些类型转换为Char;还有从DateTime转换为除String之外的任何类型,以及从任何类型(String除外)转换为DateTime。

(3) 任何数据类型(上面描述的数据类型除外)都可以与任何其他数据类型进行相互转换。

4) 数据类型转换的Parse()方法

每个数值数据类型都包含一个Parse()方法,它允许将字符串转换成对应的数值类型。

例如:

string s1=9,s2=9.423;

int m=int.Parse(s1); //将s1转换成整数类型

Float n=float.Parse(s2);//将s2转换成浮点类型

Random类中next方法的使用

例子:

Random rd=new Random();

int n=rd.Next(100,500)

这样N就是一个100到500之间的一个随机数。

Math类中sqrt方法的使用

Math.Sqrt(常量、变量或表达式);

返回指定数字的平方根。

运算符是表示各种不同运算的符号。表达式是由变量、常量、数值和运算符组成的,是用运算符将运算对象连接起来的运算式。表达式在经过一系列运算后得到的结果就是表达式的结果,结果的类型是由参加运算的操作数据的数据类型决定的。

C#语言中有丰富的运算符。在C#中运算符的种类分为以下几类。

1.算术运算符

算术运算符用于各类数值运算,包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增(++)、自减(--)共7种。

其中%是求余运算,例如:“x=7%3”,则x的值为1,因为7/3的余数为1。

由算术运算符将运算对象连接起来的式子叫做算术表达式。有一些特殊的运算,例如开方、平方,C#没有提供相应的算术运算符。但在System命名空间里的Math类提供了这样的运算。

常用的方法有以下几种。

(1) Math.Abs(数据类型x):返回x的绝对值。

(2) Math.pow(double x,double y):返回x的y次方。

(3) Math.sqrt(double x):返回x的开根号值。

还有一种产生随机数的Random类,它的方法要用Random类的对象来调用。

常用的方法有以下几种。

(1) Next():返回一个整数的随机数。

(2) Next(int maxvalue):返回小于指定最大值的正随机数。

(3) Next(int minvalue,int maxvalue):返回一个大于等于minvalue且小于maxvalue的整数随机数。

(4) NextDouble():返回一个0.0~1.0之间的double精度的浮点随机数。

2.关系运算符

关系运算符用于比较运算,比较两个值的大小。关系运算符包括大于(>)、小于(<)、等于(= =)、大于等于(>=)、小于等于(<=)和不等于(!=)6种。

关系运算的结果类型是布尔类型。如果关系运算两边的运算对象是布尔类型的对象,那么true等于true,false等于false,而true是大于false的。

由关系运算符将运算对象(表达式)连接起来的式子叫做关系表达式。

3.逻辑运算符

逻辑运算符用于逻辑运算,包括与(&&)、或(||)、非(!)共3种。

逻辑运算的结果类型是布尔类型,而且逻辑运算两边的运算对象的数据类型都为布尔类型。

与运算的结果为:只有两个运算对象都为true时,结果才为true;只要有一个是false,结果就为false。

或运算的结果为:两个运算对象中只要有一个为true时,结果就为true;只有两个运算对象都是false,结果才为false。

非运算的结果是原运算对象的逆:如果原运算对象是true,则运算结果为false;如果原运算对象是false,则运算结果为true。

由逻辑运算符将运算对象(逻辑值或表达式)连接起来的式子叫做逻辑表达式。

4.位操作运算符

参与位操作运算的量,按二进制位进行运算。位操作运算符包括位非(

~)、位与(&)、位或(|)、位异或(^)、左移(<<)、右移(>>)共6种。

1) 位逻辑非运算

位逻辑非运算是单目的,只有一个运算对象。位逻辑非运算按位对运算

对象的值进行非运算,即:如果某一位等于0,就将其转变为1;如果某一位

等于1,就将其转变为0。

例如,对二进制的10010001进行位逻辑非运算,结果等于01101110,

用十进制表示就是~145等于110;对二进制的01010101进行位逻辑非运算

,结果等于10101010。用十进制表示就是~85等于176。

2) 位逻辑与运算

位逻辑与运算是将两个运算对象按位进行与运算。与运算的规则是:1

与1等于1,1与0等于0。例如,10010001(二进制)&11110000等于

10010000(二进制)。

3) 位逻辑或运算

位逻辑或运算是将两个运算对象按位进行或运算。或运算的规则是:1或1等1,1或0等于1,0或0等于0。例如,10010001(二进)|11110000(二进制)等于11110001(二进制)。

4) 位逻辑异或运算

位逻辑异或运算是将两个运算对象按位进行异或运算。异或运算的规则是:1异或1等于0,1异或0等于1,0异或0等于0。即:相同得0,相异得1。

例如,10010001(二进制)^11110000(二进制)等于01100001(二进制)。

5) 位左移运算

位左移运算是将整个数按位左移若干位,左移后空出的部分填0。例如,8位的byte型变量byte a=0x65(即二进制的01100101),将其左移3位(a<<3)的结果是0x27(即二进制的00101000)

6) 位右移运算

位右移运算将整个数按位右移若干位,右移后空出的部分填0。

例如,8位的byte型变量byte a= 0x65(即二进制的01100101)将

其右移3位(a>>3)的结果是0x0c(即二进制的00001100)。

5.赋值运算符

赋值运算符用于赋值运算,就是将一个数据赋予一个变量,它分为3类:

(1)简单赋值(=)、

(2)复合算术赋值(+=,-=,*=,/=,%=)

(3)复合位运算赋值(&=,|=,^=,>>=,<<= )共11种。

算术表达式:由赋值运算符将运算对象(变量和表达式)连接起来的式子。

6.条件运算符

条件运算符是一个三目运算符,用于条件求值(?:)。语法如下:

逻辑表达式?语句1:语句2;

说明:上述表达式先判断逻辑表达式是true,还是false。如果是true,则执行语句1;如果是false,则执行语句2。

由条件运算符和表达式组成的式子叫做条件表达式。

7.逗号运算符

用于把若干表达式组合成一个表达式(,)。

8.特殊运算符

有括号( )、下标[ ]等几种。

9.其他转换用运算符

1) as

as运算符用于执行引用类型的显式类型转换。如果要转换的类型与指定类型兼容,转换就会成功;如果类型不兼容,则返回null。

语法如下:

表达式as类型

例如:

object o1=”SomeString”;

object o2=5;

string s1=o1 as string; //类型兼容s1=”SomeString”

string s2=o2 as string; //s2=null

2) is

is运算符用于检查对象的类型是否与给定类型兼容(对象是该类型,或是派生于该类型)。语法如下:

表达式is类型

例如:

int i=10;

bool x=i is int;//x=true

3) sizeof

sizeof运算符用于获得值类型的大小(以字节为单位)。语法如下:

sizeof(类型标识符)

说明:sizeof运算符仅适用于值类型,而不适用于引用类型。sizeof运算符仅可用于unsafe 模式。

例如:

unsafe

{Console.WriteLine(“{0}”,sizeof(int));

//结果是4,每个int类型变量占4个字节

}

4) checked和unchecked

checked和unchecked运算符用来控制整数类型算术运算和相互转换的溢出检查。语法如下:

checked(表达式)

unchecked(表达式)

说明:

checked运算符用来强制编译器检查是否溢出的问题;

unchecked运算符用来强制编译器不检查这方面的问题。

10.运算符的优先级

一个表达式中往往包含多种运算符,那么哪个运算符先执行,哪个运算符后执行呢?在 C#中,把每个运算符设置成不同的级别来决定运算符执行的先后顺序,这个级别就叫做运算符的优先级。运算符的优先级高的就优先执行,运算符的优先级低的就后执行。

第3章:c#程序设计

C#程序设计中有三大程序结构,分别为:

顺序结构选择结构循环结构

这3种程序结构都是可以嵌套、组合使用的。

顺序结构是由一系列的语句所构成的,其中任何一条语句都会被执行一次,而且执行的顺序是由程序的第一行一直执行到结束为止。

选择结构可以让程序在执行时能够选择不同的操作,那么选择的标准是根据指定的条件是否成立而确定的。

C#中有以下几种语句来实现选择结构。

1.if语句

if语句根据条件判断该执行哪个选择,可提供一种、两种或多种选择,但每次只会执行一个选择。

(1) 简单的if语句,提供一种选择,语法如下:

if (条件) {语句序列}

//当满足条件,就执行{语句序列},否则跳过if语句,执行if语句后面的程序.

(2) if-else语句,提供两种选择,语法如下:

if (条件)

{语句序列1} //当满足条件时执行

else

{语句序列2} //当不满足条件时执行

(3) else if语句,提供多种选择,语法如下:

if(条件1)

{语句序列1} //当满足条件1时执行,然后执行else if语句块后面的程序else if(条件2)

{语句序列2} //当满足条件2时执行,然后执行else if语句块后面的程序else if(条件3)

{语句序列3} //当满足条件3时执行,然后执行else if语句块后面的程序

…//还可以加任意个“else if(条件){语句序列}”

else

{语句序列n+1} //当所有条件都不满足时执行

2.switch语句

switch语句也是提供多种选择的语句。语法如下:

switch(表达式)

{

case 可能性的值1:

语句序列1[break;] case可能性的值2:

语句序列2[break;]

...;

[default:

语句序列n+1

break;] } if (score >= 90)

Console.WriteLine("优秀!"); else if (score >= 80)

Console.WriteLine("良好!"); else if (score >= 70)

Console.WriteLine("一般!"); else if (score >= 60)

Console.WriteLine("及格!"); else

Console.WriteLine("不合格!");

if (score >= 90) c=‘a’;

else if(score>=80) c=‘b’;

else if(score>=70) c=‘c’;

else if(score>=60) c=‘d’;

else c=‘e’;

switch(c)

{case ‘a’:

Console.WriteLine("优秀!");break;

case ‘b’:

Console.WriteLine("良好!");break;

case ‘c’:

Console.WriteLine("一般!");break;

case ‘d’:

Console.WriteLine("一般!");break;

case ‘e’:

Console.WriteLine("一般!");break;

执行switch语句的步骤为:

(1)当代码执行到此语句时,先执行switch后面( )中的表达式。

(2)然后将表达式的运算结果与{ }中case后面“可能性的值”逐个匹配,如果与某个“可能性的值”匹配成功,则进入相对应的case代码段,如果匹配都不成功,则进入default语句,执行默认代码段。

(3)如果没有default语句,则跳出switch语句。

其中,每个case代码段内都应该带有一个break语句,用来从当前选择中跳出,如果没有break语句,则不跳出选择,执行case后面的语句。

1.Checked属性

Checked属性是单选按钮、复选框的一个属性,它表示单选按钮、复选框是否被选中。true 表示单选按钮、复选框被选中,false表示未被选中。

2.Enabled属性

Enabled属性允许在运行时使窗体和控件成为有效或无效。有效为true,无效为false。3.CheckedChanged事件

当Checked属性值改变时,触发CheckedChanged事件。当选中“普通会员”单选按钮时,就触发了它的CheckedChanged事件,普通会员是不可选择“赠送礼品”的,所以设置“赠送礼品”复选框的Enabled属性为false。同理当选中“VIP”单选按钮时, 就触发了它的CheckedChanged事件,VIP是可以选择“赠送礼品”的,所以设置“赠送礼品”复选框的Enabled 属性为true。

循环结构是在给定条件成立时,反复执行某程序段,直到条件不成立为止。给定的条件称为循环条件,反复执行的程序段称为循环体。

1.while语句

while语句先计算表达式的值,值为true则执行循环体;反复执行上述操作,直到表达式的值为false时止。

语法如下:

while (表达式)

{

循环体

}

执行while语句的步骤为:

(1) 执行while后面( )中的表达式;

(2) 当表达式的运算结果为true,则执行循环体,否则跳过步骤(3),直接执行步骤(4);

(3) 反复执行(1)、(2)步骤,直到表达式的运算结果为false时止;

(4) 执行while语句块后面的代码。

说明:

(1) while语句中的表达式一般是关系表达式或逻辑表达式,只要表达式的值为true即可继续循环;

(2) 应注意循环条件的选择以避免死循环;

(3) 若循环体中又含有“循环语句”,则称为嵌套的循环语句,也称多重循环。

2.do-while语句

do-while语句先执行循环体语句一次,再判别表达式的值,若为true则继续循环,否则终止循环。

语法如下:

do{

循环体

}while(表达式);

说明:

(1) do-while语句和while语句的区别在于do-while是先执行后判断,因此do-while至少要执行一次循环体,而while是先判断后执行,如果条件不满足,则一次循环体语句也不执行;

(2) 在if语句、while语句中,表达式后面都不能加分号,而在do-while语句的表达式后面则必须加分号;

(3) do-while语句也可以组成多重循环,而且也可以和while语句相互嵌套。

for语句和while语句一样,也是一种循环语句,用来重复执行一段代码。

两个循环语句的区别就是使用方法不同。

for语句的使用语法如下:

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

{

循环体

}

执行for语句的步骤为:

(1) 计算表达式1的值;

(2) 计算表达式2的值,若值为true,则执行循环体一次,否则跳出循环;

(3) 计算表达式3的值,转回第(2)步重复执行。

说明:

(1)表达式1通常用来给循环变量赋初值,一般是赋值表达式。也允许在for语句外给

循环变量赋初值,此时可以省略该表达式。

(2) 表达式2通常是循环条件,一般为关系表达式或逻辑表达式。

(3) 表达式3通常可用来修改循环变量的值,一般是赋值语句。

(4) 这3个表达式都可以是逗号表达式,即每个表达式都可由多个表达式组成。3个表达式都是任选项,都可以省略但分号间隔符不能少。

如for(;表达式;表达式)省去了表达式1,for(表达式;;表达式)省去了表达式2,for(表达式;表达式;)省去了表达式3,for(;;)省去了全部表达式。

(5) 在整个for循环过程中,表达式1只计算一次,表达式2和表达式3则可能计算多次。循环体可能执行多次,也可能一次都不执行。

2.使用break/continue控制循环

在while和for循环语句中,如果满足条件,则循环会一直继续下去,那么该如何自动控制循环的中断和继续呢?C#提供了break/continue语句,用来控制循环的执行。

break可以中断当前正在执行的循环,并跳出整个循环。

continue表示中断当前本次的循环,而后面的代码无需执行,并进行下一次表达式的计算与判断,以决定是否重新开始下一次循环。

break 语句还可以和switch语句配合使用,以在达到某种条件时从switch语句跳出。

break语句语法如下:

break;

continue语句语法如下:

continue;

例:

int n=0,m=0;

for(i=1;i<=10;i++)

{if (i%2==0) continue;

n++;}

for(i=1;i<=10;i++)

{if (i%2==0) continue;

n++;}

第4章:方法

采用两种方法解决本案例提出的问题。

(1)从现有知识出发解决输出圣诞树问题,不使用方法,把所有的代码都编写在Main中。(2)使用方法来解决输出圣诞树问题。将使得“打印等腰三角形”这个基本操作一次编写,多次使用,提高了代码复用率也提高了程序的可读性。

1.使用方法的意义

将一个复杂的程序分解成若干个相对独立的方法,使得程序变得简练并且结构清晰。方法可以被多次调用,反复执行,这样大大地提高了代码的复用率。另外,程序的分块设计也便于开发人员的分工合作、便于调试和维护,从而大大提高了编程效率。

2.方法的定义

方法也称为函数,是一组程序代码的有机集合,可以实现一个独立的功能。可以把程序中多次用到的某个任务定义为方法。

1) 方法的定义

方法的定义格式为:

[修饰符] 返回值类型方法名([参数列表])

{

方法体;

[ return(z) ]; //返回结果z

}

2) 方法名

方法名是用户给方法取的名字,可以是任何一个有效的C#标识符。作为编程的良好习惯,方法的命名应尽量符合以下规则。

[修饰符] 返回值类型方法名([参数列表])

{

方法体;

[ return(z) ]; //返回结果z

}

3) 方法的参数列表

方法可以接收参数,这实际上是方法与外界“通信”的方式。方法定义时参数列表由0个、1个或多个参数组成。

4) 方法的返回值类型

方法的返回值就是方法的输出,是一个方法执行完毕后返回给调用者的数据,它可以是各种数据类型。如果方法没有返回值,应定义为void类型。

[修饰符] 返回值类型方法名([参数列表])

{

方法体;

[ return(z) ]; //返回结果z

}

5) return语句

方法的返回值由return语句带回,return语句在赋予方法的调用者返回值的同时退出方法。

6) 方法的修饰符

修饰符用于指定方法的访问权限,有public、private、static等,默认为private。

用static修饰的方法是静态方法。

7) 方法体

用“{”和“}”括起来的若干语句组成方法体。方法体中可以没有任何语句,但大括号不可以省略。

[修饰符] 返回值类型方法名([参数列表])

{

方法体;

[ return(z) ]; //返回结果z

}

例:

static int Max(int a,int b)

{int c;

c=a+b;

return c;

}

3.方法的调用

1) 方法调用时参数的传递

A 主调方法的参数称为实际参数(简称实参)。

B 被调方法的参数称为形式参数(简称形参)。

C 方法调用时实参被传递给对应位置的形参,完成方法的输入。相应地,方法执行结束时,通过return语句把“产品”返回给主调方法,完成方法的产出。

注意:(1)参数传递时实参与形参必须个数相等,类型一致,按顺序一一对应。

(2)实参可以是常量、变量或表达式子,形参必须是变量。

2) 方法的调用方式

方法有以下3种调用方式。

(1)方法语句。如:printMax(x,y);

(2) 方法表达式。如:z=max(x,y);

(3) 方法参数。如:Max(9,Max(5,11));

3) 方法的调用过程

例:

static void main()

{int x,y,z;

x=int.parse(Console.ReadLine());

y=int.parse(Console.ReadLine());

z=Max(x,y);

Console.Writeline(“max={0}”,z);

}

4.IDE使用进阶

1.方法的嵌套调用

嵌套调用,就是指在调用一个方法的过程中又调用另一个方法2.求最大公约数的数学方法

3.求最小公倍数的数学方法

?例:求5!

?using System;

?using System.Collections.Generic;

?using System.Text;

?namespace Example4_3

?{ class Program

?{ static int Fact(int n) //求阶乘的方法

?{ int f;

?if (n == 1 || n == 0)

?return (1);

?else

? f = Fact(n - 1) * n;

?return f; }

?static void Main() //主方法

?{

?Console.Write("请输入n:");

?int n = Convert.ToInt32(Console.ReadLine());

?Console.WriteLine("{0}!={1}", n, Fact(n));

?Console.ReadLine(); }

1.方法的递归调用

一个方法直接或者间接调用自己称为递归,同时将该方法称为递归方法。

2.使用递归的条件

一个问题要用递归的方法来解决,需满足以下条件。

(1) 原问题可转化为一个新问题,而这个新问题与原问题有相同的解决方法。

(2) 新问题可继续这种转化,在转化过程中问题有规律地递增或递减。

(3) 在有限次转化后,问题得到解决,即具备递归结束的条件。

3.递归调用的过程

递归调用的过程可分为如下两个阶段。

(1)第一个阶段称为“回推”。

(2) 第二个阶段称为“递推”。

比较前后两段代码可以看出,区别主要有如下两点。

(1) 定义Swap()方法时,方法头的设计有区别,修改后的代码使用了ref关键字,而修改前的代码没有使用。

修改前的代码:static void Swap(int a, int b)

修改后的代码:static void Swap(ref int a, ref int b)

(2) 调用Swap()方法时,调用语句有区别,修改后的代码使用了ref关键字,而修改前的代码没有使用。

修改前的代码:Swap( x, y);

修改后的代码:Swap(ref x, ref y);

1.参数的传值方式

参数以传值方式传递,被调用的方法将接受实参的一个副本,参数传递后,形参和实参各占不同的内存单元。如果对被调用方法中的实参副本进行修改,不会影响原始实参的值。

《面向对象程序设计C 》期末试卷及标准答案

《面向对象程序设计C++》期末考试试卷(B) 一、单项选择题(每小题2分,共40分) 1、关于C++与C语言关系的描述中,()是错误的。 A.C语言是C++语言的一个子集B.C语言与C++语言是兼容的 C.C++语言对C语言进行了一些改进D.C++语言和C语言都是面向对象的 2、已知:int m=10; 下列表示引用的方法中,()是正确的。 A.int &x=m; B.int &y=10; C.int &z; D.float &t=&m; 3、考虑下面的函数原型声明:void testDefaulParam(int a,int b=7,char z='*'); 下面函数调用中,不合法的是()。 A.testDefaulParam(5); B.testDefaulParam(5,8); C.testDefaulParam(5,'#'); D.testDefaulParam(0,0,'*'); 4、系统在调用重载函数时往往根据一些条件确定哪个重载函数被调用,在下列选项中,不能作为依据的是()。 A.函数的返回值类型B.参数的类型C.函数名称D.参数个数 5、下列有关C++类的说法中,不正确的是()。 A.类是一种用户自定义的数据类型 B.只有类中的成员函数或类的友元函数才能存取类中的私有成员 C.在类中,如果不做特别说明,所有成员的访问权限均为私有的 D.在类中,如果不做特别说明,所有成员的访问权限均为公用的 6、已知X类,则当程序执行到语句X array[3];时,调用了()次构造函数。 A.0 B.1 C.2 D.3 7、有关析构函数的说法,不正确的是()。 A.析构函数有且仅有一个 B.析构函数和构造函数一样可以有形参 C.析构函数的功能是在系统释放对象之前作一些内存清理工作 D.析构函数无任何函数类型

c面向对象程序设计试题和答案(经典题目)

一、填空题(每空1分,共14分) 1、观看以下程序: class point{ public: void show() {cout<<”point”<

(A)指针(B)引用(C)枚举(D)结构 3、类成员的访问权限中,()只能被本类的成员函数和其友元函数访问。 (A)share (B)public (C)private (D)protected 4、关于构造函数,下列说法不正确的是()。 (A)构造函数名字和类名相同 (B)构造函数在创建对象时自动执行 (C)构造函数无任何函数返回类型 (D)构造函数有且只有一个 5、派生类可以访问其基类的()。 (A)公有成员(B)保护成员 (C)私有派生(D)公有和保护成员 6、下列关于运算符重载的描述中,错误的是()。 (A)运算符重载不可以改变操作数的个数 (B)运算符重载不可以改变运算符的功能 (C)运算符重载不可以改变结合方向 (D)运算符重载不可以改变运算优先级 7、C++语言是从早期的C语言逐渐发展演变而来的.与C语言相比,它在求解问题方法上进行的最大改进是() (A)面向过程(B)面向对象(C)安全性(D)复用性 8、对于类中定义的成员,其隐含访问权限为()。 A.public B.protected C.private D.static 9、下面有关重载函数的说法中正确的是() (A)重载函数必须具有不同的返回值类型;(B)重载函数形参个数必须不同; (C)重载函数必须有不同的形参列表(D)重载函数名可以不同; 10、有如下的对类“CSample”的说明,其中()是错误的。 class CSample { A.int a=23; B.CSample(); public: C.CSample(int val); D.~ CSample(); 11、在int a=3,int *p=&a;中,*p的值是( ) A.变量a的地址值 B.无意义 C.变量p的地址值 D.3 12、每个类()构造函数。 (A)只能有一个(B)只可有公有的

《C语言程序设计》基本知识点

《C语言程序设计》教学基本知识点 第一章C语言基本知识 1.C源程序的框架 尽管各个C源程序的功能千变万化,但框架是不变的,主要有:编译预处理、主函数()、函数n()等,主函数的位置不一定在最前面,可以在程序的中部或后面,主函数的名字固定为main。 2.C语言源程序的书写规则: (1)C源程序是由一个主函数和若干个其它函数组成的。 (2)函数名后必须有小括号,函数体放在大括号内。 (3)C程序必须用小写字母书写。 (4)每句的末尾加分号。 (5)可以一行多句。 (6)可以一句多行。 (7)可以在程序的任何位置加注释。 3.语句种类 语句是程序的基本成分,程序的执行就是通过一条条语句的执行而得以实现的,根据表现形式及功能的不同,C语言的基本语句可以分为五大类。 (1)流程控制语句 流程控制语句的功能是控制程序的走向,程序的流程有三种基本结构:顺序结构、分支结构和循环结构,任何复杂的程序都可以由这三种基本结构复合而成。其中后两种结构要用特定的流程控制语句实现。 (2)表达式语句 表达式语句的形式是:表达式;,即表达式后跟一分号“;”,分号是语句结束符,是一个语句必不可少的成分。表达式和表达式语句的区别在于表达式代表的是一个数值,而表达式语句则代表一种动作。最常见的表达式语句是赋值语句。 (3)函数调用语句 函数调用语句实际上也是一种表达式语句,形式为:在一次函数调用的小括号后面加上一个分号。 (4)空语句 空语句的形式就是一个分号,它不代表任何动作,常常作为一个意义转折点使用。 (5)复合语句 复合语句从形式上看是多个语句的组合,但在语法意义上它只相当于一个语句,在任何单一语句存在的地方都可以是复合语句。注意复合语句中最后一个语句末尾的分号不能少。复合语句右大括号后面没有分号。 4.运算符 用来表示数据各种操作的符号称为运算符。运算符实际上代表了一种类型数据的运算规则。不同的运算符具有不同的运算规则,其操作的数据类型必须符合该运算符的要求,运算结果的数据类型也是固定的。 根据参加操作的数据个数多少,可以将C语言的运算符分为单目运算符,双目运算符和三目运算符(三目运算符只有条件运算符一个)。 根据运算对象和运算结果的数据类型可分为算术运算符、关系运算符、逻辑运算符等。 5.表达式 表达式是由常量、变量、函数,通过运算符连接起来而形成的一个算式。一个常量,一个变量或一个函数都可以看成是一个表达式。 表达式的种类有: 算术表达式、关系表达式、逻辑表达式、赋值表达式、字位表达式、强制类型转换表达式、逗号

c语言期末考试全部知识点复习资料重点常考点

C语言知识点复习资料 考试是难得的训练自己的机会,在特定的时间、特定的地点、特定的气氛下,你需要调动各方面的能力。而在每一次考试中,我都下意识地应用自己摸索出来的“目标控制法”,做到了每次考试有有收获和进步。 每次考试前,我都会在一张白纸上写满通过本次考试要达到的目标:要注意克服哪些易犯的错误,尤其是要克服前几次考试中暴露出来的共性的失误;要积累哪些经验,应用哪些技巧,比如选择题中的特征值法;要在多长的时间内完成卷面各部分,比如,争取35分钟内完成数学试卷中的选择题和填空题;要培养锻炼哪些考试应试的心理素质等。 也就是说,我们要把考试看成是一个完整的流程,包括考前准备、考场发挥和考后调整三个阶段。同学中存在的误区往往是只注意考前的准备和考场的发挥两个阶段,对考后调整注意不够。 事实上,高考之前的每一次模拟考试,最重要的就是考试后的总结与反思,只有这样,才能认识 到自己的薄弱环节,不断提高考试能力。所以,有心的同学一定要注意做好健全的考后调整,不 断提高自己的实力。 总体上必须清楚的: 1.程序中基本的控制结构是三种: 顺序结构、选择结构(分支结构)、循环结构。 2.读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择),有且只有一个main函数。 3.计算机的数据在电脑中保存是以二进制的形式. 数据存放的位置就是它的地址. 4.bit是位是指为0 或者1。 byte 是指字节, 一个字节 = 八个位. 5. 编译预处理不是C语言的一部分,不占运行时间,不要加分号。(常考!) #define PI 3.1415926; 这个写法是错误的,一定不能出现分号。 6. 每个C语言程序中main函数是有且只有一个。 7. 用C语言编写的程序称为源程序,扩展名是.c。C程序必须经过编辑、 编译、链接、运行四个步骤才可得到运行结果。注意.c和.obj文件时无法运行的,只有.exe文件才可以运行。(常考!)

C语言程序设计复习题(判断题)新

第一部分判断题 1.对于int n=3; 执行n+=n-=n*n ;后n 的值是9。() 提示正确答案为× 2.在C 语言中,定义int a=b=c=5; 是错的,而int a,b,c; a=b=c=5; 是正确的. () 提示正确答案为√ 3.若有定义int a=3,b=4,c=5; 则a+b>c&&b==c 的值为1。() 提示正确答案为× 4. int x=3,y=2; 则表达式(y++==--x)?y++:x++ 的值为3。() 提示正确答案为√ 5.在C 语言中,不同类型的数据不可以在一起进行算术运算。() 提示正确答案为× 6.由于计算机的计算精度很高,所以在 C 语言中程序计算 1.0/3*3 的 结果肯定等于1。()提示正确答案为× 7.当一个 C 语言表达式中同时含有字符型、整型、单精度和双精度类型数据参加运算时,按照" 由低到高" 的原则,所有的数据都必须先转换为双精度类型数据后方能参加运算。() 提示正确答案为× 8. C 语言与其他高级语言一样,对于所有的同级运算符均遵循左结合原则。() 提示正确答案为× 9.如果被定义函数的返回值类型是整型或字符型,使用前可以不必进行说明。() 提示正确答案为√ 10.若x 为整型变量、j 为实型变量,当执行语句:x=(int )j; 后,j 也变为整型变量。()提示正确答案为× 11.赋值运算符优先于条件运算符.( ) 提示正确答案为× 12.“! ”的优先级可以比“ / ”高。() 提示正确答案为√ 13.两个char 型数据相加, 其结果为char 型。( ) 提示正确答案为× 14.若有定义int a; float b=2.1; 则a=int(b+3) 是合法的赋值表达式。() 提示正确答案为× 15.若有int a=4,b=0; 则表达式a&&!b 的值为0。() 提示正确答案为√ 16.C语言程序中,任何英语单词均可以作标识符。() 提示正确答案为× 17.在C 语言的源程序中,注释使用越多,编译之后的可执行程序的执行效率越低。() 提示正确答案为× 18.当主程序执行完毕时,亦即程序执行完毕。() 提示正确答案为√ 19.C程序有且仅有一个main() 函数。() 提示正确答案为√ 20.C语言中不区分大小写英文字母。() 提示正确答案为× 21.用C 语言编写的程序是一种需要经过编译和连接才能运行的程序。()

c语言最重要的知识点复习

C语言最重要的知识点复习资料 总体上必须清楚的: 1)程序结构是三种: 顺序结构, 循环结构(三个循环结构), 选择结构(if 和switch) 2)读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择)。3)计算机的数据在电脑中保存是以二进制的形式. 数据存放的位置就是他的地址. 4)bit是位是指为0 或者1。byte 是指字节, 一个字节= 八个位. 5)一定要记住二进制如何划成十进制。 概念常考到的: 1)编译预处理不是C语言的一部分,不占运行时间,不要加分号。C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。 2)每个C语言程序中main函数是有且只有一个。 3)在函数中不可以再定义函数。 4)算法是一定要有输出的,他可以没有输入。 5)break可用于循环结构和switch语句。 6)逗号运算符的级别最低。 第一章 1)合法的用户标识符考查: 合法的要求是由字母,数字,下划线组成。有其它元素就错了。 并且第一个必须为字母或者是下划线。第一个为数字就错了。 关键字不可以作为用户标识符号。main define scanf printf 都不是关键字。迷惑你的地方If是可以做为用户标识符。因为If中的第一个字母大写了,所以不是关键字。2)实型数据的合法形式: 2.333e-1 就是合法的,且数据是2.333×10-1。 考试口诀:e前e后必有数,e后必为整数。. 3)字符数据的合法形式:: '1' 是字符占一个字节,"1"是字符串占两个字节(含有一个结束符号)。 '0' 的ASCII数值表示为48,'a' 的ASCII数值是97,'A'的ASCII数值是65。 一般考试表示单个字符错误的形式:'65' "1" 字符是可以进行算术运算的,记住:'0'-0=48 大写字母和小写字母转换的方法:'A'+32='a' 相互之间相差32。 4)整型一般是两个字节, 字符型是一个字节,双精度一般是4个字节: 考试时候一般会说,在16位编译系统,或者是32位系统。碰到这种情况,不要去管,一样做题。掌握整型一般是两个字节, 字符型是一个字节,双精度一般是4个字节就可以了。 5)转义字符的考查: 在程序中int a = 0x6d,是把一个十六进制的数给变量a 注意这里的0x必须存在。 在程序中int a = 06d, 是一个八进制的形式。 在转义字符中,’\x6d’ 才是合法的,0不能写,并且x是小写。 ‘\141’ 是合法的,0是不能写的。

面向对象程序设计C自学考试课程复习题

(07837)《面向对象程序设计C++》复习题 一、单选题 1.对类成员访问权限的控制,是通过设置成员的访问控制属性实现的,下列不是访问控制属性的是( D ) A. 公有类型 B. 私有类型 C. 保护类型 D. 友元类型 2.下列关于多态性的描述,错误的是( C ) A. C++语言的多态性分为编译时的多态性和运行时的多态性 B. 编译时的多态性可通过函数重载实现 C. 运行时的多态性可通过模板和虚函数实现 D. 实现运行时多态性的机制称为动态绑定 3.在C++语言中,数据封装要解决的问题是( D ) A. 数据的规范化 B. 便于数据转换 C. 避免数据丢失 D. 防止不同模块之间数据的非法访问 4.使用private修饰的成员变量,以下说法正确的是( A ) A. 只能由本类中的函数使用,不能被外面的程序所访问。 B. 可以由本类中的函数使用,也可以被外面的程序所访问。 C. 只能由本类和派生类中的函数使用。 D. 可以在主函数中使用。 5.对类的构造函数和析构函数描述正确的是( A ) A. 构造函数可以重载,析构函数不能重载 B. 构造函数不能重载,析构函数可以重载 C. 构造函数可以重载,析构函数也可以重载 D. 构造函数不能重载,析构函数也不能重载 6.下面对静态数据成员的描述中,正确的是( A ) A. 静态数据成员是类的所有对象共享的数据 B. 类的每个对象都有自己的静态数据成员 C. 类的不同对象有不同的静态数据成员值 D. 静态数据成员不能通过类的对象调用 7.在VC++语言类体系中,不能被派生类继承的有( B ) A. 转换函数 B. 构造函数 C. 虚函数 D. 静态成员函数 8.下面关于句柄正确的说法是( A ) A. 句柄是一个标识Windows资源和设备等对象的变量。 B. 句柄是用户程序自定义的数据类型。 C. 用户程序使用句柄时不需要定义。 D. 句柄仅仅是一个抽象的概念,程序中不能使用句柄。 9.下面关于动态链接库正确的说法是( B ) A. 动态链接库提供的函数,在编译阶段能够连接到应用程序中。 B. 动态链接库提供的函数,在运行阶段能够连接到应用程序中。 C. 动态链接库本身不能单独设计、编译和调试。 D. 动态链接库的使用使得程序缺乏灵活性。 10.下面关于MFC应用程序中InitInstance函数正确的说法是( D ) A. 该函数由用户定义。

《数据结构(C语言版)》复习重点

《数据结构(C语言版)》复习重点 重点在二、三、六、七、九、十章,考试内容两大类:概念,算法 第1章、绪论 1. 数据:是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。 2. 数据元素:是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。 3. 数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。 其4类基本结构:集合、线性结构、树形结构、图状结构或网状结构 4. 逻辑结构:是数据元素之间的逻辑关系的描述。 5. 物理结构(存储结构):是数据结构在计算机中的表示(又称映像)。 其4种存储结构:顺序存数结构、链式存数结构、索引存数结构、散列存数结构6. 算法:是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作。 其5个重要特性:有穷性、确定性、可行性、输入、输出 7. 时间复杂度:算法中基本操作重复执行的次数是问题规模n的某个函数f(n),算法的时间度量记作,T(n)=O(f(n));他表示随问题规模n的增大,算法执行时间的增长率和f(n)的增长率相同,称做算法的渐进时间复杂度,简称时间复杂度。例如: (a) {++x;s=0;} (b) for(i=1;i<=n;++i){++x;s += x;} (c) for(j=1;j<=n;++j) for(k=1;k<=n;++k){++x;s += x;} 含基本操作“x增1”的语句的频度分别为1、n和n2,则这3个程序段的时间复杂度分别为O(1)、O(n)和O(n2),分别称为常量阶、线性阶和平方阶。还可呈现对数阶O(log n)、指数阶O(2的n次方)等。 8. 空间复杂度:算法所需存储空间的度量记作,S(n)=O(f(n))。 第2章、线性表 1. 线性表:是最常用最简单的一种数据结构,一个线性表是n个数据元素的有限序列。 2. 线性表的顺序存储结构:是用一组地址连续的存储单元依次存储线性表的数据元素。其特点为逻辑关系上相邻的两个元素在物理位置上也相邻,可以随机存取表中任一元素。 存储位置计算:假设线性表的每个元素需占用L个存储单元,并以所占的第一个单元的存储地址作为数据元素的存储位置,线性表的第i个数据元素ai的存储位置为LOC(ai)=LOC(a1)+(i-1)*L 式中LOC(a1)是线性表第一个元素a1的存储位置,通常称做线性表的起始位置或基地址。 3. 线性表的链式存储结构:是用一组任意的存储单元存储线性表的数据元素(这组存储单元可以是连续的,也可以是不连续的)。

《C面向对象程序设计》谭浩强版复习总结

第一章C++ 基础 endl 换行并刷新输出流 setw(n) 设置字段位数为n hex,oct,dec 十六进制,八进制,十进制表示 setfill 定义填充字符 setprecision 定义浮点数的精度 left,right 左对齐,右对齐 showpoint 强制显示小数点以及全部尾部0 C++通过给常量命名的方式定义常量: const<数据类型名><常量名>=<表达式> 用const定义的标识符常量时,一定要对其初始化。在说明时进行初始化是对这种常量置值的唯一方法,不能用赋值运算符对这种常量进行赋值。 函数声明的一般形式为 函数类型函数名(参数表) 函数模板的定义 template 函数定义 例子:template T max(T a,T b){ return(a>b)? a:b; } 定义函数模板时可以使用多个类型参数,每个类型参数前面只需加上关键字typename或class,用逗号分隔: template

例子:template T1 max(T1 a,T2 b){ return (a>b) ? a : (T1)b; } 有默认参数的函数:实参与形参的结合是从左至右进行的,因此指定默认值的参数必须放在形参列表中的最右端 引用 定义对变量起另外一个名字(别名alias),这个名字称为该变量的引用。 <类型> &<引用变量名> = <原变量名>; 其中原变量名必须是一个已定义过的变量。如: int max ; int &refmax=max; refmax并没有重新在内存中开辟单元,只是引用max的单元。max与refmax在内存中占用同一地址,即同一地址两个名字。 对引用类型的变量,说明以下几点: 1、引用在定义的时候要初始化 2、对引用的操作就是对被引用的变量的操作。 3、引用类型变量的初始化值不能是一个常数。 4、一旦引用被声明,它就不能再指向其它的变量。 5、对引用的初始化,可以用一个变量名,也可以用另一个引用。 6、引用同变量一样有地址,可以对其地址进行操作,即将其地址赋给一指针。 当&m的前面有类型符时(如int &m),它必然是对引用的声明;如果前面无类型符(如cout<<&m),则是取变量的地址。 7、对常量(用const声明)的引用使用如下方式: int i=5; const int &a=i;

c+面向对象程序设计试题和答案题目

系名___ ___ ___ ___ 班级___ ___ ___ ___姓名___ ___ ___ ___学号___ ___ ___ ___ 密 封 线 内 不 答 题 一、填空题(每空1分,共14分) 1、观看以下程序: class point{ public: void show() {cout<<”point”<

C语言考试重点考前必看,吃透必过

C语言最重要的知识点 总体上必须清楚的: 1)程序结构是三种: 顺序结构、选择结构(分支结构)、循环结构。 2)读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择),有且只有一个main函数。 3)计算机的数据在电脑中保存是以二进制的形式. 数据存放的位置就是他的地址. 4)bit是位是指为0 或者1。 byte是指字节, 一个字节 = 八个位. 概念常考到的: 1、编译预处理不是C语言的一部分,不占运行时间,不要加分号。C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。 2、define PI 3.1415926; 这个写法是错误的,一定不能出现分号。 3、每个C语言程序中main函数是有且只有一个。 4、在函数中不可以再定义函数。 5、算法:可以没有输入,但是一定要有输出。 6、break可用于循环结构和switch语句。 7、逗号运算符的级别最低,赋值的级别倒数第二。 第一章 C语言的基础知识 第一节、对C语言的基础认识 1、C语言编写的程序称为源程序,又称为编译单位。 2、C语言书写格式是自由的,每行可以写多个语句,可以写多行。 3、一个C语言程序有且只有一个main函数,是程序运行的起点。 第二节、熟悉vc++ 1、VC是软件,用来运行写的C语言程序。 2、每个C语言程序写完后,都是先编译,后链接,最后运行。(.c---→.obj---→.exe)这个过程中注意.c和.obj文件时无法运行的,只有.exe 文件才可以运行。(常考!) 第三节、标识符 1、标识符(必考内容): 合法的要求是由字母,数字,下划线组成。有其它元素就错了。 并且第一个必须为字母或则是下划线。第一个为数字就错了 2、标识符分为关键字、预定义标识符、用户标识符。 关键字:不可以作为用户标识符号。main define scanf printf 都不是关键字。迷惑你的地方If是可以做为用户标识符。因为If中的第一个字母大写了,所以不是关键字。 预定义标识符:背诵define scanf printf include。记住预定义标识符可以做为用户标识符。

C面向对象程序设计教程第版陈维兴林小茶课后习题答案及解析

C++面向对象程序设计教程课后题答案 1.1 什么是面向对象程序设计? 面向对象程序设计是一种新的程序设计范型.这种范型的主要特征是: 程序=对象+消息 面向对象程序的基本元素是对象。 主要结构特点是: 第一,程序一般由类的定义和类的使用两部分组成; 第二,程序中的一切操作都是通过向对象发送消息来实现的。 1.2 什么是对象?什么是类?对象与类之间的关系是什么? 对象是描述其属性的数据以及对这些数据施加的一组操作封装在一起构成的统一体。 类就是具有相同的数据和相同的操作的一组对象的集合,也就是说,类是对具有相同数据结构和相同操作的一类对象的描述。 类和对象之间的关系是抽象和具体的关系。类是多个对象进行综合抽象的结果,一个对象是类的一个实例。 1.3 现实世界中的对象有哪些特征?请举例说明。 现实世界中的对象具有以下特征: 1) 每一个对象必须有一个名字以区别于其他对象; 2) 用属性来描述对象的某些特征; 3) 有一组操作,每组操作决定对象的一种行为;

4) 对象的行为可以分为两类:一类是作用于自身的行为,另一类是作用于其他对象的行为。 例如一个教师是一个对象。每个教师对象有自己的名字来和别的教师区别。教师具有编号,姓名,年龄,职称,专业等属性。教师拥有走路,吃饭,授课等行为操作。走路,吃饭是作用于自身的行为,授课是作用于其他对象的行为。 1.4 什么是消息?消息具有什么性质? 一个对象向另一个对象发出的请求成为“消息”。 消息具有以下3个性质: 1) 同一个对象可以接收不同形式的多个消息,做出不同的相应; 2) 相同形式的消息可以传递给不同的对象,所做出的响应可以是不同的; 3) 对消息的响应并不是必须的,对象可以响应消息,也可以不响应。 1.5 什么是抽象和封装?请举例说明。 抽象是将有关事物的共性归纳、集中的过程。 例如:把所有具有大学生学籍的人归为一类,成为“大学生”,这就是一个抽象。 封装是指把数据和实现操作的代码集中起来放在对象内部,并尽可能隐藏对象的内部细节。 例如:每一台洗衣机都有出厂日期、机器编号等属性,也有启动、暂停、选择等操作。人们在使用洗衣机的时候只需要按下对应的按钮,而不用关心具体的内部实现。这就是封装。 1.6 什么是继承?请举例说明。 继承就是允许派生类使用基类的数据和操作,同时,派生类还可以增加新的操作和数据。

C语言程序设计重要知识点

C语言程序设计(第四版)重要知识点第一章、程序设 计;和C语言1、三个发展阶段 机器语言:计算机有效识别的语言,执行效率最高,不容易被记忆理解,最低级语言。 符号语言:相对于高级语言不容易被记忆和理解,语言普遍性较差,用符号来代替二进制代码。 高级语言:与人类思维比较接近,

方便学习和理解,接近与人们习惯使用的自然语言和数学语言,不能被计算机直接识别,需要编译成计算机能够识别的代码。 2、C语言的发展及其特点 ○1、语言简洁、紧凑,使用方便灵活。 ○2、运算符丰富。 ○3、数据类型丰富。 ○4、具有结构化的控制语句。 ○5、语法限制不太严格,程序设计自由度大。 ○6、C语言允许直接访问物理地址,能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接对硬

件进行操作。 ○7、用C语言编写的程序可移植性好。 ○8、生成目标代码质量高,程序执行效率高。 1.4、最简单的C语言程序 # include”stdio.h” main() { printf(“This is a C program.\n”); } Stdio.h是系统提供的一个头文件名。用到#inaclude”stdio.h”是因为程序 中要用到标准函数库中的输入输 输出函数。 (1)以//开始的单行注释。此种

注释的范围从//开始,以换 行符结束。 (2)以/ *开始,以*/结束的块式注释。这种注释可以包含 多行内容。 ○注:1、/*和*/必须成对出现 2、/*不得存在空格 3、正常的注释语句只 能起到解释解释说明的作 用,不影响程序的运行。求两个整数之和 #include”stdio.h” Main() { int a,b,sum;

《面向对象程序设计C 》期末考试试卷

《面向对象程序设计C++》期末考试试卷 一、选择题(每小题3分,共48分。) 01、下列关于C++函数的叙述中,正确的是( C )。 A)每个函数至少要具有一个参数 B)每个函数都必须返回一个值 C)函数在被调用之前必须先声明 D)函数不能自己调用自己 02、下列关于类和对象的叙述中,错误的是( A )。 A)一个类只能有一个对象 B)对象是类的具体实例 C)类是对某一类对象的抽象 D)类和对象的关系是一种数据类型与变量的关系 03、在C++中,用于实现运行时多态性的是( D )。 A)内联函数 B)重载函数 C)模板函数D)虚函数 04、下列关于运算符重载的叙述中,正确的是( B )。 A)通过运算符重载,可以定义新的运算符 B)有的运算符只能作为成员函数重载 C)若重载运算符+,则相应的运算符函数名是+ D)重载二元运算符时,必须声明两个形参 05、对于语句 cout<

C面向对象程序设计课程设计报告

《C++面向对象程序设计》课程设计报告题目:分数计算器设置 班级: K0312415 专业:计算机科学与技术 学号: 姓名:周林 指导教师: 小组成员:周林,张齐满 二O一三年 10 月 15 日

一、课程设计问题描述 分数计算器设计是高等学校教务管理的重要组成部分,其内容较多,为了简化计论, 要求设计的管理系统能够完成以下功能: (1)定义整数类和分数类。其中,包括构造函数、析构函数、显示函数等。 (2)输入/输出:对流提取和流插入运算符进行重载。 (3)计算功能:可进行分数的加、减、乘和除法运算。 (4)化简功能:将分数化简为最简分数。 (5)异常处理功能:分数中分母不能为零。 (6)菜单功能:每种功能的操作都是在菜单中进行相应选择。 二、课程设计目的和要求: 经过一个学期的《C++面向对象程序设计》课程的学习,已经有了一定地程序设计基础,但是要学好C++面向对象程序设计这门课程,不仅要认真阅读课本知识和从事课堂学习,更重要的是要进行上机实践,通过上机实践才能增强和巩固知识。 三、系统设计(算法分析) 1、系统由5功能,可分别执分数的.加法运算,减法运算,.乘法运算和除法运算,还可以将分数化简。 1.加法运算可计算两个分数相加。 2.减法运算可计算两个分数相减。 3.乘法运算可计算两个分数相乘。 4.除法运算可计算两个分数相除。 5.化简运算可计算一个分数化简。 2、流程图

3、分数计算器设置各函数的功能和实现的相关功能由对应的函数来实现。 (1)函数jia() (2)函数jian() (3)函数cheng()实现分数乘法运算。 (4)函数chu()实现分数除法运算。 (5)函数shuchu()实现分数的输出和化简。 四、程序源代码 pp : Defines the entry point for the console application.

(完整版)《C语言程序设计》复习参考答案

第一章 【随堂练习1-2】 1.下面哪些标识符属于合法的用户自定义标识符: Main、void、_num、my$、a*、N4、3m、a-2 答:合法的用户自定义标识符是:Main、_num、N4 2.结合【例1.2】指出程序代码中所用到的标识符哪些是关键字,哪些是预定义标识符,哪些是用户自定义标识符。 答:关键字:void、int 预定义标识符:include、main、printf、scanf 用户自定义标识符:a、b、c 3.分析【例1.2】中函数的结构,包括函数首部(函数返回值类型、函数名、形式参数)、函数体语句(说明语句、可执行语句)。 答:函数首部:void main( ),其中函数返回值类型为void、函数名为main、形式参数无; 函数体语句:{}内的语句为函数体,其中:说明语句为int a,b,c;,其余为可执行语句。 3.标识符是用来标识程序中的某个对象名字的字符序列。C语言把标识符分为三类,即关键字、预定义标识符、用户自定义标识符。对于用户自定义标识符的命名C语言规定: (1)所有的用户标识符必须先定义后使用; (2)用户标识符由字母(A~Z,a~z)、数字(0~9)、下划线“_”组成,并且首字符不能是数字; (3)区分大小写; (4)不能用关键字作为用户自定义标识符,通常不使用预定义标识符作为用户自定义标识符。 4.理论上讲,程序开发过程分为四个步骤,分别为: (1)编辑源程序 (2)编译源程序,生成目标程序 (3)连接目标程序及其相关模块,生成可执行文件 (4)运行可执行文件

一.单元练习 一.选择题 1.构成C语言程序的基本单位是()。 A.框架B.预处理C.函数D.语句 2.在程序开发过程中,把文本文件格式源程序转化为二进制格式的目标程序的过程称之为()。 A.编辑B.编译C.连接D.运行 3.关于主函数,下列说法不正确的是()。 A.一个完整的C语言应用程序有唯一的主函数 B.主函数的名称只能是main C.主函数可以被其他自定义函数调用 D.C语言程序的运行从主函数开始,以主函数为核心展开 4.关于标识符,下列说法不正确的是()。 A.库函数名称为预定义标识符,不建议用作用户自定义标识符 B. 关键字不能作为用户自定义标识符 C.用户自定义标识符中不区分大小写字母 D.标识符中可以出现下划线,且可以出现在标识符的任意位置 5.以下可用作用户自定义标识符的一组是()。 A.void、return、if B.printf、include、fabs C.Max、_abc、Main D.2abc、pay$、sum-10 二.填空题 1.C语言程序一般由若干个函数构成,程序中应至少包含一个_________,其名称只能为_________。 2.C语言程序中每条语句必须以_________结束。 3.C语言程序的注释是以_________开头,以________结束的,在VC++6.0编程环境中,可使用_________作为注释的起始标识,注释对程序的执行不起任何作用。 4.最初编写的C语言程序称为_________,其扩展名为_________,编译后生成的文件为_________,其扩展名是_________,连接后生成的文件是_________,其扩展名是_________。5.C语言规定,标识符只能由_________、_________和_________三种字符组成,而且,首字符只能是_________或_________。

大学c语言考试基础知识复习

C 语言最重要的知识点复习资料总体上必须清楚的: 1)程序结构是三种: 顺序结构、选择结构(分支结构)、循环结构。 2)读程序都要从()入口, 然后从最上面顺序往下读(碰到循环做循环, 碰到选择做选择),有且只有一个函数。 3)计算机的数据在电脑中保存是以二进制的形式. 数据存放的位置就是他的地址. 4)是位是指为0 或者1 。是指字节, 一个字节= 八个位. 概念常考到的: 1、编译预处理不是C语言的一部分,不占运行时间,不要加分号。C语言编译的程序称为源程序,它以数值存放在文本文件中。 2、 3.1415926; 这个写法是错误的,一定不能出现分号。 3、每个C语言程序中函数是有且只有一个。 4、在函数中不可以再定义函数。 5、算法:可以没有输入,但是一定要有输出。 6、可用于循环结构和语句。 7、逗号运算符的级别最低,赋值的级别倒数第二。 第一章 C 语言的基础知识 第一节、对C语言的基础认识 1、C语言编写的程序称为源程序,又称为编译单位。 2、C语言书写格式是自由的,每行可以写多个语句,可以写多行。 3、一个C语言程序有且只有一个函数,是程序运行的起点。第二节、熟悉 1、是软件,用来运行写的C语言程序。 2、每个C 语言程序写完后,都是先编译,后链接,最后运行。()这个过程中注意和文件时无法运行的,只有文件才可以运行。(常考!) 第三节、标识符 1、标识符(必考内容):合法的要求是由字母,数字,下划线组成。有其它元 素就错了。并且第一个必须为字母或则是下划线。第一个为数字就错了 2、标识符分为关键字、预定义标识符、用户标识符。 关键字:不可以作为用户标识符号。都不是关键字。迷惑你的地方是 可以做为用户标识符。因为中的第一个字母大写了,所以不是关键字。 预定义标识符:背诵。记住预定义标识符可以做为用户标识符。 用户标识符:基本上每年都考,详细请见书上习题。 第四节:进制的转换 十进制转换成二进制、八进制、十六进制。二进制、八进制、十六进制转换 成十进制。 第五节:整数与实数 1)C 语言只有八、十、十六进制,没有二进制。但是运行时候,所有的进制都要转换成二进制来进行处理。(考过两次) a 、C语言中的八进制规定要以0开头。018的数值是非法的,八进制是没有 8 的,逢8 进1。 b 、C语言中的十六进制规定要以Ox开头。 2)小数的合法写法:C语言小数点两边有一个是零的话,可以不用写。

C面向对象程序设计知识点汇集

C#面向对象程序设计知识点汇集 第一章:C#入门 1.namespace关键字 namespace即命名空间,是定义命名空间的关键字,命名空间包含类,是类的组织方式。namespace 命名空间名 { …//类的定义 } 2.using关键字 using关键字用于导入命名空间 using命名空间名; 3.class关键字 class即类,是定义类的关键字。C#中必须用类来组织程序的变量和方法。 4.Main()方法 C#程序必须且只能包含一个Main()方法,它是程序的入口点。 static void Main(string[] args){} static void Main(){} static int Main(string[] args){} static int Main(){} 5.行输出方法 语句“Console.WriteLine("Hello .NET!");”的功能是向显示屏输出双引号之间的字符串。语句“Console.ReadLine();”的功能是输入一个字符串 6.C#程序结构 C#程序的组成要素如下: 1) 命名空间:命名空间包含一个或多个类。 2) 类。 3) 方法:方法必须包含在某一个类中,作为类的一个成员,每个程序有且仅有一个Main()方法。 4) 语句:语句是C#应用程序中执行操作的命令。C#中的语句必须用分号“;”结束。 5) 关键字:关键字也叫保留字,是对C#有特定意义的字符串。 6) 大括号:在C#中,括号“{”和“}”是一种范围标志,表示代码层次的一种方式。7.C#程序书写格式 1)缩进 2) 字母大小写 C#是大小写敏感的语言,它把同一字母的大小写当作两个不同的字符对待。 3) 程序注释 (1) 单行注释,以双斜线“//”开始,一直到本行尾部,均为注释内容。 (2) 多行注释,以“/*”开始,以“*/”结束,可以注释多行,也可以注释一行代码中间的一部分,比较灵活。 (3) 文档注释,使用“///”,若有多行文档注释,每一行都用“///”开头。 8.Console类 Console类是System命名空间中预定义的一个类,用于实现控制台的基本输入输出。

c语言程序设计知识点总结

C 语言程序设计》教学基本知识点 第一章C 语言基本知识源程序的框架 尽管各个C 源程序的功能千变万化,但框架是不变的,主要有:编译预处理、主函数()、函数n()等,主函数的位置不一定在最前面,可以在程序的中部或后面,主函数的名字固定为main 。 语言源程序的书写规则: (1)C源程序是由一个主函数和若干个其它函数组成的。 (2)函数名后必须有小括号,函数体放在大括号内。 (3)C程序必须用小写字母书写。 (4)每句的末尾加分号。 (5)可以一行多句。 (6)可以一句多行。 (7)可以在程序的任何位置加注释。 3.语句种类语句是程序的基本成分,程序的执行就是通过一条条语句的执行而得以实现的, 根据表现形式及功能的不同,C 语言的基本语句可以分为五大类。 (1)流程控制语句 流程控制语句的功能是控制程序的走向,程序的流程有三种基本结构:顺序结构、分支结构和循环结构,任何复杂的程序都可以由这三种基本结构复合而成。其中后两种结构要用特定的流程控制语句实现。 (2)表达式语句 表达式语句的形式是:表达式;,即表达式后跟一分号“;”,分号是语句结束符,是一个语句必不可少的成分。表达式和表达式语句的区别在于表达式代表的是一个数值,而表达式语句则代表一种动作。最常见的表达式语句是赋值语句。 (3)函数调用语句函数调用语句实际上也是一种表达式语句,形式为:在一次函数调用的小括号后面加上一个分号。 (4)空语句空语句的形式就是一个分号,它不代表任何动作,常常作为一个意义转折点使用 (5)复合语句复合语句从形式上看是多个语句的组合,但在语法意义上它只相当于一个语句,在任何单一语句存在的地方都可以是复合语句。注意复合语句中最后一个语句末尾的分号不能少。复合语句右大括号后面没有分号。 4.运算符用来表示数据各种操作的符号称为运算 符运算符实际上代表了一种类型数据的 运算规则。不同的运算符具有不同的运算规则,其操作的数据类型必须符合该运算符的要求,运算结果的数据类型也是固定的。 根据参加操作的数据个数多少,可以将C 语言的运算符分为单目运算符,双目 运算符和三目运算符(三目运算符只有条件运算符一个) 根据运算对象和运算结果的数据类型可分为算术运算符、关系运算符、逻辑运算符等。 5.表达式表达式是由常量、变量、函数,通过运算符连接起来而形成的一个算式。一个常 量,一个变量或一个函数都可以看成是一个表达式。 表达式的种类有:算术表达式、关系表达式、逻辑表达式、赋值表达式、字位表达式、强制类型转换表达式、逗号表达式(顺序表达式)、条件表达式、指针表达式。 6.数据的输入/输出

相关文档
最新文档