内容正文:
举一反三考点练
《算法与程序设计-C#》常量与变量-讲义
1. 熟悉C#中的常量
2. 熟悉C#中的变量
3. 掌握C#中的运算符与表达式
知识点一 C#中的常量
1.常量概念:常量是在程序运行过程中,其值不会改变的量。常量可以分为直接常量和符号常量两种形式。
2.直接常量:
整型常量:默认类型为能保存它的最小整数类型(int、uint、long或ulong)。可通过后缀U或L指定类型,如16L是long类型,127U是uint类型。整型常量可采用十进制或十六进制表示,十六进制数以0x或OX开头,如0x20是十六进制数,相当于十进制的32。
浮点常量:一般带小数点或用科学记数法表示的数,默认为double类型。可通过后缀F(f)、D(d)、M(m)分别表示float、double、decimal类型。例如,3.14F是float类型,3.14D是double类型,3.14M是decimal类型。
字符常量:用单引号括起来的单个字符,占16位,以无符号整型数的形式存储对应的Unicode代码。表达形式有多种,如单引号括起的字符('a')、十六进制的换码系列(\x0032)、Unicode码表示形式(\u0032)、显式转换整数字符代码((char)67)、转义字符系列(如'表示单引号,\b表示退格符等)。
字符串常量:由若干个Unicode字符组成的字符序列,使用一对双引号标记。可以包含转义字符,如"Hello
"表示包含换行符的字符串,"C:\Program Files\Microsoft Visual Studio"表示包含路径分隔符的字符串。
布尔型常量:只有两个值,true表示逻辑真,false表示逻辑假。
3.符号常量:用特定的标识符表示某一数据,提高程序可读性。通常在程序开始处定义,格式为const 数据类型 常量名=常量值。例如,const float PI=3.14f。符号常量命名建议用大写字母,一经定义不能再次赋值,定义时表达式中只能出现常量和常数,不能有变量。
(填空题)整型常量可以采用____________或____________表示。
【答案】十进制,十六进制
【解析】整型常量既可以采用十进制数也可以采用十六进制数表示。
【要点】考查整型常量的表示方法。
1.(单项选择题)以下关于符号常量的说法正确的是( )
A. 符号常量必须使用大写字母命名 B. 符号常量可以使用C#关键字命名
C. 符号常量的定义格式为const 数据类型 常量名=常量值 D. 符号常量可以在程序中多次赋值
【答案】C
【解析】符号常量的定义格式为const 数据类型 常量名=常量值,符号常量命名建议用大写字母,但不是必须的。符号常量不能使用C#关键字命名,也不能在程序中多次赋值。
【要点】考查对符号常量定义和使用的掌握。
2.(单项选择题)以下哪个是正确的符号常量定义( )
A. const int PI = 3.14 B. const float PI = 3.14f
C. const double PI = 3.14D D. const char PI = 3.14
【答案】B
【解析】正确的符号常量定义是const float PI = 3.14f,其中PI是符号常量名,3.14f是常量值,float是数据类型。
【要点】考查对符号常量定义格式的掌握。
3.(单项选择题)以下关于常量的使用说法正确的是( )
A. 常量可以在程序中多次赋值 B. 常量的值在程序运行过程中可以改变
C. 使用符号常量可以提高程序的可读性 D. 直接常量必须使用const关键字定义
【答案】C
【解析】使用符号常量可以提高程序的可读性,符号常量一经定义,在程序中不得再次赋值,其值在程序运行过程中也不能改变。直接常量不需要使用const关键字定义。
【要点】考查对常量使用特点的理解。
1.(判断题)常量是在程序运行过程中其值不会改变的量( )
【答案】√
【解析】常量的定义就是在程序运行过程中其值不会改变的量。
【要点】考查对常量基本概念的判断。
2.(判断题)直接常量和符号常量是C#中常量的两种形式( )
【答案】√
【解析】C#中的常量分为直接常量和符号常量两种形式。
【要点】考查对常量分类的判断。
3.(填空题)浮点常量默认为____________类型。
【答案】double
【解析】一般带小数点的数或用科学记数法表示的数都被认为是浮点数,其数据类型默认为double类型。
【要点】考查浮点常量的默认类型。
· 常量分类:常量分为直接常量和符号常量。
· 直接常量:
整型常量:默认为最小整数类型,可通过后缀U/L指定类型,可采用十进制或十六进制表示。
浮点常量:默认为double类型,可通过后缀F/D/M分别表示float/double/decimal类型。
字符常量:用单引号括起的单个字符,有多种表达形式,如单引号字符、十六进制换码系列、Unicode码表示形式等。
字符串常量:由双引号括起的字符序列,可包含转义字符。
布尔型常量:只有true和false两个值。
· 符号常量:用标识符表示数据,定义格式为const 数据类型 常量名=常量值,提高程序可读性。
知识点二 C#中的变量
1.变量概念:变量是在程序运行过程中其值可以不断改变的量。变量有三要素:变量名、变量值和变量类型。变量名遵循标识符命名规则,变量类型决定存储空间大小和形状,变量值是存储在变量中的数据。
2.变量的定义:
定义形式:[访问修饰符]数据类型 变量名[=初始值]。例如,int age=100;定义了一个整型变量age并赋初值100,char xb='男'定义了一个字符型变量xb并赋初值'男'。也可以同时声明多个同类型变量,如int a=1,b=2,c=3;。
必须先声明:C#规定变量必须先声明才能使用,未声明的变量会导致代码无法编译。
3.变量的作用域:
(1)成员变量:在类体中定义的变量,作用域为整个类体。成员变量分为实例变量和静态变量。
(2)局部变量:在类的方法体中定义的变量,只在当前定义的方法内,甚至只在当前代码块内有效,不能用于类的其他方法。包括方法的参数,都属于局部变量。局部变量的生命周期取决于方法,方法调用时分配内存空间,调用结束后释放内存空间,销毁局部变量。
(填空题)在C#中,成员变量分为____________和____________。
【答案】实例变量,静态变量
【解析】成员变量分为实例变量和静态变量。
【要点】考查成员变量的分类。
1.(单项选择题)在C#中,以下关于局部变量的说法正确的是( )
A. 局部变量只在当前定义的方法内有效 B. 局部变量的生命周期取决于方法
C. 局部变量不能用于类的其他方法 D. 以上都是
【答案】D
【解析】局部变量只在当前定义的方法内有效,生命周期取决于方法,不能用于类的其他方法。
【要点】考查局部变量的特性。
2.(单项选择题)在C#中,以下关于变量命名规则的说法正确的是( )
A. 变量名只能由字母、数字和下划线组成 B. 变量名的第一个字符必须是字母或下划线
C. 变量名严格区分大小写 D. 以上都是
【答案】D
【解析】变量名只能由字母、数字和下划线组成,第一个字符必须是字母或下划线,严格区分大小写。
【要点】考查变量命名规则。
3.(单项选择题)在C#中,以下关于变量的初始化说法正确的是( )
A. 变量定义时可以不初始化 B. 变量定义时必须初始化
C. 变量定义时初始化是可选的 D. 变量定义时初始化是强制的
【答案】C
【解析】变量定义时初始化是可选的,但未初始化的变量在使用前必须赋值。
【要点】考查变量的初始化规则。
1.(判断题)在C#中,变量的值在程序运行过程中可以改变( )
【答案】√
【解析】变量的值在程序运行过程中是可以改变的,这是变量的基本特性。
【要点】考查变量的基本概念。
2.(判断题)在C#中,变量的定义必须指定数据类型( )
【答案】√
【解析】C#是强类型语言,变量的定义必须指定数据类型。
【要点】考查变量的定义规则。
3.(填空题)在C#中,局部变量的生命周期取决于____________。
【答案】方法
【解析】局部变量的生命周期取决于方法,方法调用时分配内存空间,调用结束后释放内存空间。
【要点】考查局部变量的生命周期。
· 变量概念:变量是值可变的量,有变量名、变量值和变量类型三要素,变量名遵循标识符命名规则。
· 变量定义:形式为[访问修饰符]数据类型 变量名[=初始值],必须先声明才能使用,可同时声明多个同类型变量。
· 变量作用域:
成员变量:在类体中定义,作用域为整个类,分为实例变量和静态变量,静态变量可通过“类名.静态变量”在其他类内使用。
局部变量:在方法体中定义,只在当前方法或代码块内有效,生命周期取决于方法。
知识点三 C#中的运算符与表达式
1.运算符概念:运算符是表示进行某种运算的符号,C#提供了很多预定义的运算符。运算数包含常量和变量等,表达式由运算符、运算数和括号组成,用来表示一个计算过程。表达式可以嵌套,运算符执行的先后顺序由优先级和结合性决定,执行结果是表达式的返回值,返回值的类型取决于使用的运算符和运算对象。
2.算术运算符:
(1)运算符及意义:+表示加法运算,-表示减法或取负运算,*表示乘法运算,/表示除法运算,%表示取余数。例如,12.45f+15的结果是27.45,4.56-0.16的结果是4.4,5L*12.45f的结果是62.25,7/2的结果是3(两个整数相除结果为整数),12%10的结果是2。
(2)说明:对于除法表达式,两个整数相除结果为整数,进行下取整,小数部分舍弃;求余运算符%返回除数与被除数相除之后的余数,允许实数进行求余运算。
(3)应用举例:判断一个整数x是否为偶数,如果x%2==0成立,则x是偶数。其中==是关系运算符,用于判断是否相等。
3.自增(++)与自减(-- )运算符:
(1)作用:只针对变量操作,是单目运算符。自增运算符(++)使操作数的值增1,自减运算符(-- )使操作数的值减1。
(2)用法与运算规则:根据操作符所处位置,有前置形式(++x、--x)和后置形式(x++、x--)。前置形式先使变量值增1(或减1),再以变化后变量的值参与其他运算;后置形式先让变量参与其他运算,再使变量值增1(或减1)。当不与其他运算符混合使用时,++x与x++等价于x=x+1,--x与x--等价于x=x-1。
(3)示例分析:例如,int a=5,b,c; b=a++; c=++a;执行后,a的值为7,b的值为5,c的值为7。因为b=a++时,先赋值后增1;c=++a时,先增1后赋值。
4.字符串运算符:
运算符及作用:字符串运算符只有一个,即加号(+)。它除了作为算术运算符外,还可以将字符串连接起来,变成合并的新字符串。例如,string s="Hello"; s=s+",World.";执行后,s的值为"Hello,World."。
(填空题)自增运算符(++)和自减运算符(-- )只能用于____________。
【答案】变量
【解析】自增运算符(++)和自减运算符(-- )只能用于变量,不能用于常量。
【要点】考查对自增和自减运算符适用范围的理解。
1.(单项选择题)以下关于自增和自减运算符的前置形式和后置形式的说法,正确的是( )
A. 前置形式先参与运算,后置形式后参与运算 B. 前置形式先增1或减1,后置形式先参与运算
C. 前置形式和后置形式没有区别 D. 前置形式和后置形式的结果总是相同的
【答案】B
【解析】前置形式(如++x或--x)先使变量的值增1或减1,然后再以变化后的值参与其他运算。后置形式(如x++或x--)先让变量参与其他运算,然后再使变量的值增1或减1。因此,前置形式和后置形式在与其他运算符混合使用时会有不同的结果。
【要点】考查对自增和自减运算符前置形式和后置形式的理解。
2.(单项选择题)在C#中,以下哪个表达式的结果是`false`( )
A. `3.14F == 3.14D` B. `3.14F == 3.14`
C. `3.14D == 3.14` D. `3.14F == 3.14M`
【答案】D
【解析】`3.14F`是float类型,`3.14D`是double类型,`3.14`默认是double类型,`3.14M`是decimal类型。虽然它们的数值相同,但由于类型不同,`3.14F == 3.14M`的结果是`false`。
【要点】考查对浮点常量类型和比较运算符的理解。
3.(单项选择题)在C#中,以下哪个表达式的结果是`true`( )
A. `12 % 5 == 2` B. `12 % 5 == 3`
C. `12 / 5 == 2` D. `12 / 5 == 2.4`
【答案】C
【解析】`12 % 5`的结果是2,因此`12 % 5 == 2`的结果是`true`。`12 / 5`的结果是2(整数除法),因此`12 / 5 == 2`的结果是`true`。选项D中`12 / 5 == 2.4`的结果是`false`,因为`12 / 5`的结果是2,而不是2.4。
【要点】考查对算术运算符和关系运算符的使用规则的理解。
1.(判断题)在C#中,两个浮点数相除的结果总是浮点数( )
【答案】√
【解析】在C#中,两个浮点数相除的结果总是浮点数,不会进行下取整。
【要点】考查对浮点数除法规则的理解。
2.(判断题)自增运算符(++)只能用于整数类型变量( )
【答案】×
【解析】自增运算符(++)不仅可以用于整数类型变量,还可以用于浮点数类型变量。
【要点】考查对自增运算符适用范围的理解。
3.(填空题)字符串运算符+可以用于连接字符串和____________类型。
【答案】数值
【解析】字符串运算符+可以用于连接字符串和数值类型,数值类型会被自动转换为字符串。
【要点】考查对字符串运算符+的使用规则的理解。
· 运算符概念:表示运算的符号,C#有多种预定义运算符,表达式由运算符、运算数和括号组成,执行结果是返回值,返回值类型取决于运算符和运算对象。
· 算术运算符:
运算符及意义:+加法,-减法/取负,*乘法,/除法,%取余数。
说明:整数除法结果为整数,下取整;求余运算符%返回余数,允许实数求余。
· 自增与自减运算符:
作用:针对变量操作,单目运算符,自增使值增1,自减使值减1。
用法与规则:前置形式先增1(或减1)再参与运算,后置形式先参与运算再增1(或减1)。
· 字符串运算符:加号(+)可连接字符串,如string s="Hello"; s=s+",World.";结果为"Hello,World."。
原创精品资源学科网独家享有版权,侵权必究!2
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$