C#完整复习资料.doc_第1页
C#完整复习资料.doc_第2页
C#完整复习资料.doc_第3页
C#完整复习资料.doc_第4页
C#完整复习资料.doc_第5页
免费预览已结束,剩余7页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一、选择题知识点1、 NETMSIL是独立于CPU的指令集,它可以被高校地转换为特定于某种CPU的代码2、 在Visual Studio.Net窗口中,在“类视图”窗口中可以查看当前项目的类和类型。3、 在C#中,字符串如何定义,字符串的使用4、 ADO.NET在非连接模式下处理数据内容的主要对象是“DATASET”。5、 在C#中,预处理器指令#region和#endregion的作用是什么? C# 中的 #region 和 #endregion 表示一块区域,这样在 Visual Studio 中可以将这块区域的代码折叠起来,便于查看。虽然 Visual Studio 也响应大括号的折叠,但大括号会引起作用域的变化,而 #region 和 #endregion 则不会。#region 和 #endregion 大小写敏感。 #region 和 #endregion 可以嵌套。 #region 后面可以跟任意文字以对该区域进行说明。6、 关于结构类型和类类型的区别和联系。c#中的结构体类型 struct 类型是一种值类型,通常用来封装小型相关变量组,例如,矩形的坐标或库存商品的特征。下面的示例显示了一个简单的结构声明。public struct PostalAddress/ Fields, properties, methods and events go here.结构与类共享几乎所有相同的语法,但结构比类受到的限制更多:尽管结构的静态字段可以初始化,结构实例字段声明还是不能使用初始值设定项。结构不能声明默认构造函数(没有参数的构造函数)或析构函数。结构的副本由编译器自动创建和销毁,因此不需要使用默认构造函数和析构函数。实际上,编译器通过为所有字段赋予默认值(参见默认值表)来实现默认构造函数。结构不能从类或其他结构继承。结构是值类型 - 如果从结构创建一个对象并将该对象赋给某个变量,变量则包含结构的全部值。复制包含结构的变量时,将复制所有数据,对新副本所做的任何修改都不会改变旧副本的数据。由于结构不使用引用,因此结构没有标识 - 具有相同数据的两个值类型实例是无法区分的。C# 中的所有值类型本质上都继承自 ValueType,后者继承自 Object。编译器可以在一个称为装箱的过程中将值类型转换为引用类型。结构具有以下特点:结构是值类型,而类是引用类型向方法传递结构时.结构是通过传值方式传递的,不是作为引用方式传递.与类不同,结构的实例化可以不使用new运算符.结构可以声明构造函数,但他们必须带参数一个结构不能从另一个结构或类继承,而且不能作为一个类的基。所有结构都直接继承自 System.ValueType,后者继承自 System.Object。结构可以实现接口。在结构中初始化实例字段是错误的。1)结构是一个值类型,保存在栈上,而类是一个引用类型,保存在受管制的堆上。2)对结构中的数据进行操作比对类或对象中的数据进行操作速度要快。3)一般用结构存储多种类型的数据,当创建一个很多类或对象共用的小型对象时,使用结构效率更高。7、 在Queue类、Stack类、Hash Table类中,常用方式使用,HashTable有什么特点?Queue(队列)类主要实现了一个FIFO(First In First Out,先进先出)的机制。元素在队列的尾部插入(入队操作),并从队列的头部移出(出队操作)。在Queue中主要使用Enqueue、Dequeue、Peek三个方法对队进行操作。Enqueue方法用于将对象添加到Queue的结尾处;Dequeue方法移除并返回位于Queue开始处的对象;Peek方法用于返回位于Queue开始处的对象但不将其移除。Stack(堆栈)类主要实现了一个LIFO(Last In First Out,后进先出)的机制。元素从栈的顶部插入(入栈操作),也从堆的顶部移除(出栈操作)。在Stack中主要使用Push,Pop,Peek三个方法对栈进行操作。Push方法用于将对象插入Stack的顶部;Pop方法用于移除并返回位于Stack顶部的对象;Peek方法用于返回位于Stack顶部的对象但不将其移除。Hashtable(哈希表)是一种键/值对集合,这些键/值对根据键的哈希代码进行组织。在一个Hashtable中插入一对Key/Value时,它自动将Key值映射到Value,并允许获取与一个指定的Key相关联的value。在Hashtable中主要使用Add、Remove两个方法对哈希表进行操作。Add方法用于将带有指定键和值的元素添加到Hashtable中;Remove方法用于从Hashtable中移除带有指定键的元素。说明:Hashtable不能包含重复的key。如果调用Add 方法来添加一个keys数组中已有的key,就会抛出异常。为了避免这种情况,可以使用ContainsKey方法来测试哈希表中是否包含一个特定的Key。8、 在哈希表中,对象所属的哈希桶的地址是由“为该对象设置的键值”决定的。9、 读取图形文件时,应使用BinaryReader类的对象10、 在ADO.NET中,表示程序到数据的连接的对象是“connection对象”。11、 在C#中设计类时,如何将一个可读可写的公有属性Name修改为只读属性?将Name的set块删除12、 在编写C#程序时,若需要一个数组中的所有元素进行处理,则使用“foreach”循环体最好。13、 C#编译器将C#程序编译成什么样的代码?(中间语言)14、 在使用FileStream打开一个文件时,通过使用FileMode枚举类型的“Append”成员来制定操作系统打开一个现有文件并把文件读写指针定位在文件尾部。15、 什么是封装、继承、多态?封装就是把一些特征或功能组合到一个抽象的对象上。C#只支持单继承,即一个类只能继承一个父类多态就是父类定义的抽象方法,C#允许将子类赋值给父类,然后在父类中通过调用抽象方法来实现子类具体功能。 16、 在ADO.NET,将用产生在DataSet中的改动保存到数据源中,应使用哪个方法?DataAdapter对象的Update方法17、 掌握数组的使用18、 掌握字符串的使用二、简答1、 个控制台程序相比,Windows应用程序编程的特点有哪些,试简述之。从表面上来看:控制台程序运行时是在DOS环境下,或者模拟dos环境运行的程序,运行时一般会启动一个提示符窗口。 而应用程序是Windows环境下的窗口程序。运行时一般会启动一个窗口画面。(例外,病毒木马,就不显示窗口,这决定于是否创建了窗口,或者是否让窗口显示) 但是,实质上,windows应用程序和控制台应用程序的真正区别是,PE文件的结构不同,这点不需要我们去关心,编译器会根据你的选择去构建生成的exe文件的PE结构。 如何告之编译器你的选择?在编译器进行连接的时候,给它一个连接参数: subsystem:windows或者subsystem:console来告诉它。对于大多数编程工具来说一般在“工程-设置-连接”这个表单里面就可以看到这个参数。 但是通常在我们要创建一个新的工程的时候,编译器会让我们事先选择好是创建windows应用程序还是创建控制台应用程序。这个参数的设置就不用我们操心了。 补充(你可以不看,有点复杂了):事实上,控制台程序依然还有区别,那就是,16位的可以在DOS操作系统环境中运行的DOS程序(也可以在window运行通常windows会模拟一个dos环境,这时你会程序窗口与平时的提示符窗口明显不一样),和 32位通常只能在windows操作系统中运行的程序。通常32位控制台在DOS下运行,它的PE结构中会给予DOS环境下运行的一个入口点(DOS文件头),这个入口点只有“一行”代码:This program cannot be run in DOS mode 而在32位系统下,操作系统将将查看PE文件头里面的subsystem字段来获得程序将以什么方式运行(windoes或者console)这个字段里面指示了子系统(CUI对应控制台,GUI对应普通程序,驱动程序等没有子系统)32位的控制台程序当然可以调用PAI函数,而16位的DOS程序则不可以调用API函数。2、 C#支持的数据类型有哪些?值类型和引用类型有何不同?与C/C+相比有什么不同C#数据类型分为值类型和引用类型。(1) 值类型包括:简单类型、结构类型、枚举类型。其中,简单类型又分为:整型、布尔型、字符型、浮点型、小数型。(2) 引用类型包括:对象类型、类类型、接口、元数据、字符串类型、数组。 值类型和引用类型的区别在于,值类型的变量直接存放实际的数据,而引用类型的变量存放的则是数据的地址,即对象的引用。当把一个值变量赋给另一个值变量时,会在堆栈(stack)中保存两个完全相同的值;而把一个引用变量赋给另一个引用变量,则会在堆栈中保存对同一个堆(heap)位置的两个引用。进行数据操作时,对于值类型,由于每个变量都有自己的值,因此对一个变量的操作不会影响到其他变量;对于引用类型的变量,对一个变量的数据进行操作就是对这个变量在堆中的数据进行操作,如果两个引用类型的变量引用同一个对象,实际含义就是它们在堆栈中保存的堆的地址相同,因此对一个变量的操作就会影响到引用同一个对象的另一个变量。与C+相比,C#的主要特点有:1) C#语言自C/C+演变而来。但是,它是完全按照面向对象的思想来设计的,并保证了类型的安全性。2) C#简化了C+在类、名称空间、方法重载和异常处理等方面的使用。摒弃了C+的复杂性,使它更易用、更少出错。3) C#减少了C+的一些特性,不再有宏、多重继承。特别对企业开发者来说,上述功能只会产生更多的麻烦而不是效益。4) C#采用严格的类型安全、版本控制、垃圾收集(garbage collect)等等。所有的这些功能的目标都是瞄准了开发面向组件的软件开发。5) C#中不再有“:”、“.”、和“-”操作符,仅使用单个操作符“.”。6) C#使用统一的类型系统,摒弃了C+多变的类型系统。7) 在C#中,不能在类的外部定义全局函数、变量或者是常量等。所有的东西都必须封装在类中,包括实例成员或静态成员。从而使C#代码更加易读且有助于减少潜在的命名冲突。8) 在C#中,不能使用没有初始化的变量。从而避免了由于使用不经初始化的变量而导致的计算结果错误。3、 C#语言中的数组类型有何特点?分为几类?1)数组一般用于存储同一种类型的数据,包括Object类型。2)数组是一种引用类型,而不是值类型。3)C#中除了可以有一维数组、多维数组外,还有交错型数组。4、 Directory类提供了哪些目录管理的功能,它们是通过哪些方法来实现的?Directory类为我们提供了对磁盘和目录进行管理的功能,如复制、移动、重命名、创建和删除目录,获取和设置与目录的创建、访问及写入操作相关的时间信息。如:CreateDirectory方法用于创建指定路径中的所有目录;Delete方法用于删除指定的目录;Move方法能够重命名或移动目录;Exists方法用于确定给定路径是否引用磁盘上的现有目录;GetCurrentDirectory方法用于获取应用程序的当前工作目录;GetFiles方法用于返回指定目录中的文件的名称等。5、 C#如何使用try-catch-finally处理可能的代码异常?6、 简述装箱和拆箱的过程。装箱是将值类型隐式地转换为object类型或者转换为由该值类型实现了的接口类型。装箱一个数值会为其分配一个对象实例,并把该数值拷贝到新对象中。拆箱是显式地把object类型转换成值类型,或者把值类型实现了的接口类型转换成该值类型。7、 错误和异常有什么区别,为什么要进行异常处理,用于异常处理的语句有哪些? 错误是指在执行代码过程中发生的事件,它中断或干扰代码的正常流程并创建异常对象。当错误中断流程时,该程序将尝试寻找异常处理程序(一段告诉程序如何对错误做出响应的代码),以帮助程序恢复流程。换句话说,错误是一个事件,而异常是该事件创建的对象。 当使用短语“产生异常”时,表示存在问题的方法发生错误,并创建异常对象(包含该错误的信息及发生的时间和位置)来响应该错误。导致出现错误和随后异常的因素包括用户错误、资源失败和编程逻辑失败。这些错误与代码实现特定任务的方法有关,而与该任务的目的无关。 如果不进行异常处理,即不对错误做出响应,程序的健壮性就会大打折扣,甚至无法保证正常运行,所以必须要进行异常处理。 用于异常处理的语句有:try-catch语句、try-catch-finally语句、throw语句。8、 简述ADO.NET提供了两种读取数据库的方式。ADO.NET提供了两种读取数据库的方式。第一种是利用Connetction、Command和 DataReader对象,这种方式只能读取数据库,不能修改记录。如果只是想查询记录的话,这种方式的效率更高些。第二种是利用Connection、Command、DataAdaPter和Dataset对象,这种方式更灵活,可以对数据库进行各种操作。3、 程序1、 写出下列程序的功能Static viod f2ref doublea,int nint i;double sum = 0;for (i=0;in;i+)sum+=ai;Sum/=n;for(ai;i=sum)Console.Write(ai+ );Console.WriteLine(); 2、Using System;Class Demoint a;Public Demo (int n)a = 0;Public int M()If(a0)return a-;ElseReturn ();Class Teststatic void Main()Demox=new Demo(0);Int k=x.M();While (k0)Console.Write(”0t“,k*k);K=x.M();结果:81 64 49 36 25 16 9 4 1 4. 、请设计一段程序实现对列的入列和出列操作,最后输出对列中的元素,代码程序using System;using System.Collections.Generic;using System.Text;using System.Collections;namespace ConsoleApplication4 class Program static void Main(string args) Queue queue1 = new Queue(); queue1.Enqueue(CSharp); queue1.Enqueue(1); queue1.Enqueue(new int 1, 2, 3 ); object outItem = new object(); while (queue1.Count 0) outItem = queue1.Dequeue(); Console.WriteLine(0, outItem); Console.ReadLine(); 5、 请设计一段程序对列的入栈和出栈操作,最后输出栈中的元素,代码如下using System;using System.Collections.Generic;using System.Text;using System.Collections;namespace ConsoleApplication4 class Program static void Main(string args) Stack stack1=new Stack();stack1.Push(Csharp);stack1.Push(1);stack1.Push (new int 1,2,3);Object outItem = new object();While (stack1.Count0)outItem=stack1.Pop();Console.WriteLine(0,outItem);6、 试编写一段程序,把数值0,1.,10以二进制的形式写入文件Data.dat。7、 使用FileStream创建文本文件file.txt,并文件中写入任一字符中。Static void Main (string args) byte m_bDataWrite = new byte 100; char m_cDataWrite = new char 100;try FileStream m_FileStream = new FileStream (C:file.txt,FileMode.OpenORCreate); m_cDtaWrite = My First File Operation.ToCharArray(); Encoder m_Enc =Encoding.UTF8.GetEncoder(); m_Enc.GetBytes(m_cDataWrite,0,m_cDataWrite.Length,m_bDataWrite,0,true);m_FileStream.Seek(0,SeekOrigin.Begin);m_FileStream.Write(m_bDataWrite,0,m_bDataWrite.Length);catch(IOException ex) Console.WriteLine(There is an IOException); Console.WriteLine (ex.Message); Console.ReadLine ();Return; Console.WriteLine(Write to File Succed!); Console.ReadLine(); return; 4、 综合题知识点1、 简述用ADO,NET开发数据库应用程序的基本方法和步骤。编写控制台程序,从SQLSewver数据库Student表中,读取出所有姓”李“学员的姓名。(假设数据库连接已建立为connection,DBCommand已创建为SqlCommand ,Student表”姓名“列名为StudentName)。2、 简述用ADO.NET开发数据库应用程序的基本方法和步骤。设现有一SQL Server数据库服务器中Student数据库,请设计某类中一个方法实现数据库连接,写出主要程序代码使用ADO.NET开发数据库应用程序一般可分为以下几个步骤。(1)根据使用的数据源,确定使用哪种.NET Framework数据提供程序。(2)建立与数据源的连接,需要使用Connection对象。(3)执行对数据源的操作命令,通常使用Command对象。(4)使用数据集对获得的数据进行操作,需要使用DataReader、DataSet等对象。(5)显示数据,需要使用数据控件。数据库连接using System;using System.Collections.Generic;using System.Text;using System.Data;using System.Data.SqlClient;namespace SqlConnApp class SqlConnApp static void Main(string args) /得到一个SqlConnection SqlConnection myCon = new SqlConnection(); /构造连接字符串 myCon.ConnectionString = Data Source=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论