ImageVerifierCode 换一换
格式:DOCX , 页数:28 ,大小:201.18KB ,
资源ID:5649311      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5649311.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C基础答疑资料.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C基础答疑资料.docx

1、C基础答疑资料变量与表达式主要内容变量的命名、类型以及赋值的方法 表达式以及运算符的优先级 值类型以及引用类型 2.1 变量概述概念:变量代表了存储单元,每个变量都有一个类型。这决定了这个变量可以存储什么值。C#是类型安全语言,并且每个C#编译器会保证存储在变量中的值总是恰当的类型。使用原则:变量必须先定义后使用。 赋值:可以定义时赋值,也可以在定义的时候不赋值。一个定义时被赋了值的变量很好地定义了一个初始值。而一个定义时不被赋值的变量没有初始值。要给一个定义时没有被赋值的变量赋值必须是在一段可执行的代码中进行 2.1.1 变量的声明变量的声明采用如下的规则: ; 其中type是变量的类型,n

2、ame是变量的名称。 例如: int a; double d; 可以在声明变量的同时为变量赋初值,如 : double d=2.4; string s=“hello CSharp”; 2.1.2 变量的命名变量的命名规则如下:变量名的第一个字符必须是字母、下划线(_)或者。除去第一个字母外,其余的字母可以是字母、数字、下划线的组合。不可以使用对C#编译器而言有特定含义的名字(即C#语言的库函数名称和关键字名称)作为变量名,如using 、namespace 、struct等等。注:命名规则的第三条其实在写程序的时候系统会自动提示你的错误的,所以不必过于担心。例子:C#.NET 对于大小写字母是

3、敏感的,所以在声明以及使用变量的时候要注意这些,例如Variable、variable、VARIABLE是3个不同的变量。 2.1.2 变量的命名命名规范:Pascal(帕斯卡命名法) 首字母和后面的每个单词的首字母都大写,其他字母小写 。Camel(骆驼命名法)首字母小写,而后面的每个单词的首字母大写,其他字母小写。注:一般类名和方法用Pascal命名法,变量和方法参数使用Camel命名法; 不要使用匈牙利方法来命名变量(如:string m_sName; int nAge ),这种方式在.NET编码规范中是不推荐的;可根据公司或项目组的约定来选择规范2.1.2 变量的命名命名法举例: 下面

4、是Pascal 命名法的举例: AgeSumOfAppleDayOfWeek 下面是camel 命名法的举例: agesumOfAppledayOfWeek 2.1.3变量的种类在C#语言中,我们把变量分为七种类型,分别是: 静态变量(Static Variables) 非静态变量(Instance Variables) 数组元素(Array Elements) 值参数(Value Parameters) 引用参数(Reference Parameters) 输出参数(Output Parameters) 局部变量(Local Variables)。 2.1.3变量的种类类型的例子:class

5、 myClass int y=2; public static int x=1; bool Function(int s, int m, ref int i, out int j) int w=2; j=x+y+i+w; 上面的代码中,x是静态变量,y是非静态变量,s0是数组元素,m是值参数,i是引用参数,j是输出参数,w是局部变量。 2.1.3变量的种类非静态变量 不带有static 修饰符声明的变量称为实例变量(非静态变量)。如: int s=2; 针对类中的非静态变量而言,一旦一个类的新的实例被创建,直到该实例不再被应用从而所在空间被释放为止,该非静态变量将一直存在。同样鉴于定义赋值检查

6、,一个类的非静态变量也应该在初始化时赋值。 2.1.3变量的种类静态变量 带有static 修饰符声明的变量为静态变量。一旦静态变量所属的类被装载,直到包含该类的程序运行结束时,它将一直存在。静态变量的初始值就是该变量的默认值。为了便于定义赋值检查,静态变量最好在定义时赋值。如: public static int s=5; 使用静态变量时,不需要对其所在的类进行实例化(即不使用new 关键词)就可以直接通过类来使用。 关于使用静态变量的一个例子 使用静态变量记录进入会场的人数。using System;using System.Collections.Generic;using System

7、.Text;namespace StaticVariable class People public int num; /用来记录是第几个人 public static int TotalPeople = 0; /static 静态变量,记录进入会场人员总数 /static 静态方法 public static void ShowTotalPeople() Console.WriteLine(现在共有0个人进入会场, TotalPeople); public void ShowQuery(string name) Console.WriteLine(0是第1个进入会场的人,name,num);

8、 /构造函数 public People() TotalPeople+; num = TotalPeople; /析构函数 People() TotalPeople-; class myClass static void Main(string args) People.ShowTotalPeople(); /格林先生进入会场 People MrGreen = new People(); Console.WriteLine(MrGreen是第0个进会场的人, MrGreen.num); People.ShowTotalPeople(); People MrSmith = new People(

9、); People MrAllen=new People(); MrSmith.ShowQuery(MrSmith); MrAllen.ShowQuery(MrAllen); People.ShowTotalPeople(); People pPeople; People.ShowTotalPeople(); pPeople = MrSmith; pPeople.ShowQuery(pPeople); Console.ReadLine(); 关于使用静态变量的一个例子运行结果2.1.3变量的种类数组元素数组元素也是变量的一种,该变量随该数组实例的存在而存在。每一个数组元素的初始值都是该数组元素

10、类型的默认值。同样鉴于定义赋值检查,数组元素最好在初始时被赋值。 2.1.3变量的种类局部变量局部变量是指一个独立的程序块,一个For语句,一个Switch语句或者Using语句中声明的变量,它只在该范围内有效。当程序运行到这一范围时,该变量即开始生效,程序离开时变量就失效了。与其他几种变量类型不同的是,局部变量不会自动被初始化,所以也就没有默认值,在进行赋值检查的时候,局部变量被认为是没有被赋值。 2.1.4 变量类型之间的转换 在程序的设计中,常常会遇到变量的类型转换问题。比如在进行数学四则运算时,int类型的数值和double类型的数值可能混在一起进行运算,这样变量之间的类型转换就应运而

11、生。四种方式:隐式转换强制类型转换ToString()方法Convert类 2.1.4 变量类型之间的转换 隐式转换隐式转换又称自动类型转换,若两种变量的类型是兼容的或者目标类型的取值范围大于源类型时就可以使用隐式转换。 隐式转换的数据源类型以及目标类型对应表2.1.4 变量类型之间的转换强制类型转换在程序的编写以及应用时,我们会发现上面讲述的隐式转换不能满足所有的需要,很多时候还是需要强制类型转换的。强制类型转换是一种指令,它告诉编译器将一种类型转换为另外一种类型。强制转换的缺点是可能产生的结果不够精确。具体的强制类型转换语法为:(target-type)变量或表达式; 如:double i

12、=3.4; int j=(int)i;2.1.4 变量类型之间的转换类型转换小例子程序代码:using System;using System.Collections.Generic;using System.Text;namespace ImolicitConversion class Program static void Main(string args) int i = 2; double d = 3.4; int v1 = (int)(i + d); double v2 = i + d; Console.WriteLine(v1=0,v2=1,v1,v2); Console.Read

13、Line(); 运行结果为:v1=5,v2=5.4。 2.1.4 变量类型之间的转换ToString() 方法ToString()方法主要用于将变量转化为字符串类型,该方法是C#语言中非常常见的一个方法。前面我们介绍的各种类型的变量都可以通过ToString()方法转换为String类型,具体看下面一个把int型变量转化为string类型的小例子:int i=200;string s=i.ToString();这样字符串类型变量s的值就是”200” 。 2.1.4 变量类型之间的转换Convert类前面介绍了ToString()方法,并且给出了int类型转化为string类型的实例,可是细心的

14、读者会发现,这个方法无法实现逆向,即无法把一个string类型的转化为int类型的。 下面介绍个可以解决上述问题的方法使用Convert类进行显示转换。 Convert类的常见方法(1)Convert类的常见方法(2)2.2 常量 常量就是值在程序整个生命周期内值始终不变的量。在声明常量时,要用到Const关键字。常量在使用的过程中,不可以对其进行赋值的改变,否则系统会自动报错。常量声明的基本语法为:private /public / internal / protected const int / double / long / bool / string / VariableName; 下

15、面是一个具体声明常量的例子:private const double PI=3.1415926; 2.3 表达式 C#中的表达式是由运算符、变量以及标点符号依据一定的法则组合创建起来的。运算符主要是用来定义类实例中表达式操作符的。运算符的范围非常之广泛,简单的复杂的都有。 在本节中,主要介绍数学运算符和赋值运算符。 2.3.1 数学运算符 C#中的数学运算符有5种:+ 加法运算符 减法运算符* 乘法运算符/ 除法运算符% 取余运算符上面的5种运算符都是二元的,但是“”与“”运算符也可以是一元的,具体用法如下: int i=1; i+; 此时i的值就变为了2,i+这个表达式可以解释为i=i+1;

16、2.3.1 数学运算符表达式+i与i+的含义又有不同,下面的例子简单明了地解释了。int i=1;int j;j=+i; 此程序运行的结果是:j=2;int i=1;int j;j=i+; 此程序运行的结果是:j=1;通过对以上2个简单程序的对比,可以得知表达式i+是先赋值,后进行自身的运算,而+i正好是相反的,先进行自身的运算,而后再赋值。 2.3.1 数学运算符加法运算符加法运算符可以运用于整数类型、实数类型、枚举类型、字符串类型和代表类型。在这里我们只需要知道这些操作符可以对不同类型的变量进行运算就可以了。我们知道,在数学运算中,结果可能是正无穷大、负无穷大,当然,也可能结果不存在。在C

17、#中,在处理这些特殊情况的时候,假设表达式为Z=X+Y,X与Y都是非0的有限值,如果X和Y数值相等,符号相反,则Z为正0 ,如果X+Y结果太大,那么目标类型Z就被认作和X+Y符号相同的无穷。如果X+Y太小,目标类型也无法表示,则Z为和X+Y同符号的零值。 减法运算符、乘法运算符、除法运算符与上面所讲的加法运算符很类似,在这里就不再赘述。另外,有几点还是需要注意的,乘法运算符、除法运算符只适用于整数以及实数之间的操作;而且在除法运算符使用的时候,默认的返回值的类型与精度最高的操作数类型相同。比如,5/2的结果是2,而5.0/2的结果是2.5。如果两个整数类型的变量相除又不能整除的话,返回的结果是

18、不大于相除之值的最大整数。2.3.1 数学运算符取余运算符取余运算符用来求除法的余数,在C#语言中,求模运算既适用于整数类型,也同样适用于浮点型。如7%3的结果为1,7%1.5的结果为1。 2.3.2 赋值运算符赋值运算符分为2种类型,第一种是简单赋值运算符,就是我们前面在程序里面已经使用多次的“=”号;第二种是复合赋值运算符,包含5类,具体的如下表所示 :2.3.3 运算符的优先级 其实在小学数学的学习中,我们就涉及了运算符优先级的内容,那时叫做四则运算,口诀是:先乘除、后加减,有括号先算括号里面的。在程序语言中,也完全符合这道口诀。但是需要我们注意的是:程序中的运算符要比数学中多一些,比如

19、说:+、%等运算符号。另外数学运算符的优先级要排在赋值运算符之前,举几个例子可能说明的更清楚些: a=(b+c)*d ; 在这个代码中是先计算b与c的和,再用这个和与d进行相乘,得到的积赋值给a。a%=(+b-c*d)%e; 这个代码我们可以改写为:a= a% (+b-c*d)%e);这样我们就可以按照基本的运算法则来求了。 2.3.3 运算符的优先级 几种运算符优先级的比较2.4 变量类型在C#语言中,变量类型可以分为两大部分:值类型(value type)引用类型(reference type)2.4.1 值类型 值类型:值类型变量直接存储其数据值C#中,值类型可以分为以下几种:简单类型(

20、Simple Types)结构类型(struct Types)枚举类型(Enumeration Types)2.4.1 值类型 简单类型:分为整数类型 整数类型,顾名思义,就是变量的值为整数的值类型。计算机语言中的整数跟数学上的整数定义有点差别,这是由于计算机的存储单元有限导致的。C#语言中的整数类型分为8类:短字节型(Sbyte)、字节型(Byte)、短整型(Short)、无符号短整型(Ushort)、整型(Int)、无符号整型(Uint)、长整型(Long)、无符号长整型(Ulong)。一些变量名称前面的“u”是“Unsigned”的缩写,表示不能在这些类型的变量中存储负号。这些不同的整数

21、类型可以用于存储不同范围的数值,占用不同的内存空间。布尔类型 在C#语言中,布尔类型只有2类,即“True”与“False”。在编写应用程序的逻辑流程时(通俗地讲,就是在判断某条件是符合逻辑的还是不符合逻辑的),布尔型的变量有着非常重要的分支作用。 字符类型 字符包括数字字符,英文字母、表达符号等等。C#提供的字符类型按照国际上公认的标准,采用Unicode字符集 实数类型 在C# 中,实数类型分为单精度(Float)、双精度(Double)和十进制类型(Decimal),它们的差别在于取值范围和精度不同。计算机对实数的运算速度大大低于对整数的运算。在对精度要求不高的计算中,我们可以采用单精度

22、型,而采用双精度的结果将更为精确。Decimal类型主要用于方便我们在金融和货币方面的计算。2.4.1 值类型 结构类型一个结构类型 可以声明构造函数、常数、字段、方法、属性、索引、操作符和嵌套类型。尽管列出来的功能看起来像一个成熟的类,但是在C# 中,结构和类的区别在于结构是一个值类型,而类是一个引用类型。 2.4.1 值类型 结构类型的定义定义结构和定义类几乎是完全一样的,具体见下面的例子。struct myColor public int Red; public int Green; public int Blue;结构类型的使用我们看上面的声明很像一个类。可以这样来使用所定义的这个结构

23、。myColor mc;mcRed=255;mcGreen=0;mcRed=0;mc就是一个myColor结构类型的变量。 2.4.1 值类型 枚举类型枚举(Enum)实际上是为一组在逻辑上密不可分的整数值提供便于记忆的符号。当我们希望变量提取的是一个固定集合中的值时,我们就可以使用枚举。例如,我们可以定义一个代表手机的枚举类型。enum MobilePhone Nokia , MotoRola , TCL, LG, Bird, NEC, Apple; 这时我们就可以声明MobilePhone这个枚举类型的变量。 MobilePhone mp; 2.4.1 值类型枚举类型与结构类型的比较结构是

24、由不同类型的数据组成的一组新的数据类型,结构类型的变量的值是由各个成员的值组合而成。而枚举则不同,枚举类型的变量在某一时刻只能取枚举中某一个元素的值。 2.4.1 引用类型 引用类型:引用变量存储的是数据的引用(地址)C#中的引用类型有4种:类数组委托接口 这4种引用类型我们在以后的章节里都会详细地介绍。 小结 本章的主要内容是变量以及表达式,主要介绍了变量的声明、使用方法以及注意事项;还特别介绍了运算符的优先级。 最后,我们介绍了变量类型:值类型以及引用类型分支和循环控制主要内容1.流程控制语句的分类2.选择结构控制语句3.循环结构控制语句4.跳转控制语句1 流程控制语句分类在C#语言中,流

25、程控制语句主要分为以下几类: 选择结构控制语句:If 语句、Switch 语句。 循环结构控制语句:Do 循环语句、While 循环语句、for 循环语句、Foreach 语句等。 跳转控制语句:Break 语句、Continue 语句、Goto 语句、Return 语句。 2 选择结构控制语句主要包括If 语句以及Switch语句2.1 If语句If语句有3种基本形式:单条选择、如果/否则、多情形选择。 1.单条选择If语句单条选择的If语句是最简单的If语句,基本语法如下:if(boolean expression) ;该语句必须以关键字If开始,之后,括号内为布尔表达式。该表达式必须计算

26、出一个True或者False值。若为True,则执行If后面的大括号中的语句,否则,就跳过这些大括号中的语句。 2.如果/否则If语句如果/否则If语句的基本语法如下:if(boolean expression) 表达式A;Else 表达式B; 这个语句和第一种很类似,根据If语句后面括号内的值,若为True,则执行表达式A,否则就执行表达式B。 3.多情形选择的If语句 多情形选择的If语句实际上是第2种形式的嵌套。在选择的时候常常是有多种情况,这些情况有不同的指令。基本语法为:if(boolean expression1)表达式A;else if(boolean expression2)表

27、达式B;else if(boolean expression3) 表达式C;Else 表达式N; 程序执行时,首先判断If语句后面括号中的expression1,若值为True,则执行表达式A语句,若值为False,就跳向下一个语句,判断Else If语句后面的expression2,若为True,就执行表示B语句,否则就继续向下,若到最后的Else语句之前还没有遇到语句为True的,就要执行Else语句后面大括号中的表示式N了。 2.2 Switch语句Switch语句Switch 语句非常类似于If 语句,因为它也是根据测试的值来有条件地执行代码。实际上,每一个由Switch 语句组成的代

28、码,都可以用If 语句进行改写。但是,Switch 语句也有它特殊的地方,它可以一次将测试变量与多个值进行比较,而不仅仅是测试一个条件。这种测试仅限于离散的值,而不是像“ 小于10” 这样的子句。 2.2 Switch语句Switch语句的基本语法为switch (switch_expression) case value1 : statement1; break; case value2 : statement2; break; case valueN : statementN; break; default 要记住两个主要规则。首先,switch_expression必须是(或者能够隐式地

29、转换为)Sbyte、Byte 、Short、Ushort 、Int、 Uint 、Long 、Ulong 、Char、 String类型或者在这些类型上的一个枚举。其次,必须为每个Case语句添加一个Break语句。在执行Switch语句的过程中,先把Switch后面括号内的表达式 switch_expression依次与case后面的表达式进行比较,如果遇到匹配的,则就执行为该匹配提供的语句。如果没有匹配的,就执行Default部分中的代码。Break语句的作用是中断当前Switch语句的运行,而执行该结构后面的语句。没有break这个关键字的时候,程序则会发生意想不到的错误。Switch语句的控制结构图Switch语句使用的一个小例子using System.Collections.Generic;using System.Text;namespace switchExample class Program static void Main(string args) int firstData; int secon

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

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