搜档网
当前位置:搜档网 › 基础加强面试题汇总

基础加强面试题汇总

基础加强面试题汇总
基础加强面试题汇总

目录

区别联系型: (2)

1、C#中的委托是什么?事件是不是一种委托?事件和委托的关系。 (2)

3、override与重载(overload)的区别 (3)

5.请叙述属性与索引器的区别。 (4)

6、请叙述const与readonly的区别。 (4)

7、在dotnet中类(class)与结构(struct)的异同? (4)

8、值类型和引用类型的区别? (4)

10、abstract class和interface有什么区别? (5)

11、ref与out的区别? (5)

12、堆和栈的区别? (5)

13、XML 与HTML 的主要区别 (5)

14、string str = null 与string str = “”说明其中的区别。 (6)

15、StringBuilder 和String 的区别? (6)

16、您在什么情况下会用到虚方法?它与接口有什么不同? (6)

17、string、String;int、Int32;Boolean、bool的区别 (7)

18、.Net、https://www.sodocs.net/doc/ab17765569.html,、C#、VisualStudio之间的关系是什么?(传智播客.Net培训班原创

模拟题) (7)

概念说明型 (7)

1、简述private、protected、public、internal 修饰符的访问权限。 (7)

2:new有几种用法 (7)

6、C#中索引器是否只能根据数字进行索引?是否允许多个索引器参数? (8)

8、关于拆箱装箱: (8)

9、CTS、CLS、CLR分别作何解释(*)把英文全称背过来。 (9)

10、能用foreach遍历访问的对象的要求 (10)

11、GC是什么? 为什么要有GC? (10)

12、using关键字有什么用?什么是IDisposable? (10)

13、传入某个属性的set方法的隐含参数的名称是什么? (11)

14、说出一些常用的类、接口,请各举5个 (11)

是非型 (11)

1、不是说字符串是不可变的吗?string s="abc";s="123"不就是变了吗?(传智播客.Net

培训班原创模拟题) (11)

2、是否可以从一个static方法内部发出对非static方法的调用? (11)

3、C#支持多重继承么? (11)

4、public static const; int A = 1;这段代码有错误么? (12)

5、int、DateTime、string是否可以为null? (12)

6、能否脱离VS用类似editplus的工具手写代码?你觉得如何才能提高代码的效率和性

能? (12)

7、利用operator声明且仅声明了==,有什么错误么? 要同时修改Equale和GetHash() ?

重载了"==" 就必须重载"!=" (13)

8、short s=1;s=s+1;有错吗?short s=1;s+=1;有错吗? (13)

填空选择题 (26)

1、在.Net中所有可序列化的类都被标记为__[serializable]___?

2、在.Net托管代码中我

们不用担心内存漏洞,这是因为有了_ gC __?3、以下叙述正确的是:B C (26)

6、接口是一种引用类型,在接口中可以声明(A),但不可以声明公有的域或私有的

成员变量。 (26)

7、Net Framework通过什么与COM组件进行交互操作?(Interop) (26)

9、面向对象的语言具有________性、_________性、________性 (26)

14 不定项选择: (27)

区别联系型:

1、C#中的委托是什么?事件是不是一种委托?事件和委托的关系。

委托可以把一个方法作为参数代入另一个方法。

委托可以理解为指向一个函数的指针。

委托和事件没有可比性,因为委托是类型,事件是对象,下面说的是委托的对象(用委托方式实现的事件)和(标准的event方式实现)事件的区别。事件的内部是用委托实现的。因为对于事件来讲,外部只能“注册自己+=、注销自己-=”,外界不可以注销其他的注册者,外界不可以主动触发事件,因此如果用Delegate就没法进行上面的控制,因此诞生了事件这种语法。事件是用来阉割委托实例的,类比用一个自定义类阉割List。

事件只能add、remove自己,不能赋值。事件只能+=、-=,不能= 。加分的补充回答:事件内部就是一个private的委托和add、remove两个方法

面试聊:用Reflector查看.Net的类的内部实现,解决问题

2、C#中的接口和类有什么异同。

答:接口是负责功能的定义,项目中通过接口来规范类,操作类以及抽象类的概念!

而类是负责功能的具体实现!

在类中也有抽象类的定义,抽象类与接口的区别在于:

抽象类是一个不完全的类,类里面有抽象的方法,属性,也可以有具体的方法和属性,需要进一步的专业化。

但接口是一个行为的规范,里面的所有东西都是抽象的!

一个类只可以继承一个基类也就是父类,但可以实现多个接口

不同点:

不能直接实例化接口。

接口不包含方法的实现。

接口可以多继承,类只能单继承。

类定义可在不同的源文件之间进行拆分。

相同点:

接口、类和结构都可以从多个接口继承。

接口类似于抽象基类:继承接口的任何非抽象类型都必须实现接口的所有成员。

接口和类都可以包含事件、索引器、方法和属性。

基础知识:接口只能定义方法(只能定义行为,不能定义实现也就是字段),因为事件、索引器、属性本质上都是方法,所以接口中也可以定义事件、索引器、属性。

3、override与重载(overload)的区别

重载是方法的名称相同。参数或参数类型不同,进行多次重载以适应不同的需要。重载(overload)是面向过程的概念。

Override 是进行基类中函数的重写。Override是面向对象的概念

4、属性和public字段的区别是什么?调用set方法为一个属性设值,然后用get方法读取出来的值一定是set进去的值吗?

属性可以对设值、取值的过程进行非法值控制,比如年龄禁止设值负数,而字段则不能进行这样的设置。虽然一般情况下get读取的值就是set设置的值,但是可以让get读取的值不是set设置的值的,极端的例子。Public Age{get{return 100;}set{}}。加分的补充回答:用reflector反编译可以看出,属性内部本质上就是set_***、get_***方法,详细参考传智播客.net 培训视频中串讲.net基础的部分。

class Person

{

public int Age

{

get

{

return 3;

}

set

{

}

}

}

Person p1 = new Person();

p1.Age = 30;

p1.Age++;

Console.Write(p1.Age);//输出3

5.请叙述属性与索引器的区别。

属性索引器

通过名称标识。通过签名标识。

通过简单名称或成员访问来访问。通过元素访问来访问。

可以为静态成员或实例成员。必须为实例成员。

属性的 get 访问器没有参数。索引器的 get 访问器具有与索引器相同的形参表。

属性的set访问器包含隐式value参数。除了value 参数外,索引器的 set 访问器还具有与索引器相同的形参表。

6、请叙述const与readonly的区别。

每一个class至多只可以定义一个static构造函数,并且不允许增加访问级别关键字,参数列必须为空。

为了不违背编码规则,通常把static数据成员声明为private,然后通过statci property提供读写访问。

const 关键字用于修改字段或局部变量的声明。它指定字段或局部变量的值不能被修改。常数声明引入给定类型的一个或多个常数。

const数据成员的声明式必须包含初值,且初值必须是一个常量表达式。因为它是在编译时就需要完全评估。

const成员可以使用另一个const成员来初始化,前提是两者之间没有循环依赖。

readonly在运行期评估赋值,使我们得以在确保“只读访问”的前提下,把object的初始化动作推迟到运行期进行。

readonly 关键字与 const 关键字不同:const 字段只能在该字段的声明中初始化。readonly 字段可以在声明或构造函数中初始化。因此,根据所使用的构造函数,readonly 字段可能具有不同的值。另外,const 字段是编译时常数,而 readonly 字段可用于运行时常数。

readonly 只能在声明时或者构造函数里面初始化,并且不能在 static 修饰的构造函数里面。

7、在dotnet中类(class)与结构(struct)的异同?

Class可以被实例化,属于引用类型,是分配在内存的堆上的。类是引用传递的。

Struct属于值类型,是分配在内存的栈上的。结构体是复制传递的。加分的回答:Int32、Boolean 等都属于结构体。

8、值类型和引用类型的区别?

1.将一个值类型变量赋给另一个值类型变量时,将复制包含的值。引用类型变量的赋值只复制对对象的引用,而不复制对象本身。

2.值类型不可能派生出新的类型:所有的值类型均隐式派生自System.ValueType。但与引用

类型相同的是,结构也可以实现接口。

3.值类型不可能包含null 值:然而,可空类型功能允许将null 赋给值类型。

4.每种值类型均有一个隐式的默认构造函数来初始化该类型的默认值。

10、abstract class和interface有什么区别?

相同点:

都不能被直接实例化,都可以通过继承实现其抽象方法。

不同点:

接口支持多继承;抽象类不能实现多继承。

接口只能定义行为;抽象类既可以定义行为,还可能提供实现。

接口只包含方法(Method)、属性(Property)、索引器(Index)、事件(Event)的签名,但不能定义字段和包含实现的方法;

抽象类可以定义字段、属性、包含有实现的方法。

接口可以作用于值类型(Struct)和引用类型(Class);抽象类只能作用于引用类型。例如,Struct 就可以继承接口,而不能继承类。

加分的补充回答:讲设计模式的时候SettingsProvider的例子。

11、ref与out的区别?

Ref的参数,要求传递进来的变量必须声明,并且赋值

ref应用与内部对外部的值进行改变,out则是内部为外部变量赋值,out一般用在函数有多个返回值的场所。

Out参数,传递到out参数的变量,声明不需要赋值(赋值也没有意义),在out参数所在的方法中,out参数必须赋值,并且是在使用前赋值

12、堆和栈的区别?

栈是编译期间就分配好的内存空间,因此你的代码中必须就栈的大小有明确的定义;局部值类型变量、值类型参数等都在栈内存中。

堆是程序运行期间动态分配的内存空间,你可以根据程序的运行情况确定要分配的堆内存的大小。

13、XML 与HTML 的主要区别

1. XML是区分大小写字母的,HTML不区分。

2. 在HTML中,如果上下文清楚地显示出段落或者列表键在何处结尾,那么你可以省略

或者之类的结束标记。在XML中,绝对不能省略掉结束标记。

HTML:

XML:

3. 在XML中,拥有单个标记而没有匹配的结束标记的元素必须用一个/ 字符作为结尾。这样分析器就知道不用查找结束标记了。

4. 在XML中,属性值必须分装在引号中。在HTML中,引号是可用可不用的。

5. 在HTML中,可以拥有不带值的属性名。在XML中,所有的属性都必须带有相应的值。

XML是用来存储和传输数据的

HTML是用来显示数据的

如果使用了完全符合XML语法要求的HTML,那么就叫做符合XHTML标准。符合XHTML 标准的页面有利于SEO。

14、string str = null 与string str = “”说明其中的区别。

答:string str = null 是不给他分配内存空间,而string str = \"\" 给它分配长度为空字符串的内存空间。string str = null没有string对象,string s tr = “”有一个字符串对象。

string s3 = string.Empty;//反编译发现,string.Empty就是在类构造函数中 Empty = "";

15、StringBuilder 和String 的区别?

答:String 在进行运算时(如赋值、拼接等)会产生一个新的实例,而StringBuilder 则不会。所以在大量字符串拼接或频繁对某一字符串进行操作时最好使用StringBuilder,不要使用String

如果要操作一个不断增长的字符串,尽量不用String类,改用StringBuilder类。两个类的工作原理不同:String类是一种传统的修改字符串的方式,它确实可以完成把一个字符串添加到另一个字符串上的工作没错,但是在.NET框架下,这个操作实在是划不来。因为系统先是把两个字符串写入内存,接着删除原来的String对象,然后创建一个String对象,并读取内存中的数据赋给该对象。这一来二去的,耗了不少时间。而使用System.Text命名空间下面的StringBuilder类就不是这样了,它提供的Append方法,能够在已有对象的原地进行字符串的修改,简单而且直接。当然,一般情况下觉察不到这二者效率的差异,但如果你要对某个字符串进行大量的添加操作,那么StringBuilder类所耗费的时间和String类简直不是一个数量级的。

16、您在什么情况下会用到虚方法?它与接口有什么不同?

答案:子类重新定义父类的某一个方法时,必须把父类的方法定义为virtual

在定义接口中不能有方法体,虚方法可以。

实现时,子类可以不重新定义虚方法,但如果一个类继承接口,那必须实现这个接口。

17、string、String;int、Int32;Boolean、bool的区别

String、Int32、Boolean等都属于.Net中定义的类,而string、int、bool相当于C#中对这些类定义的别名。CTS。

18、.Net、https://www.sodocs.net/doc/ab17765569.html,、C#、VisualStudio之间的关系是什么?

答:.Net一般指的是.Net Framework,提供了基础的.Net类,这些类可以被任何一种.Net编程语言调用,.Net Framework还提供了CLR、JIT、GC等基础功能。

https://www.sodocs.net/doc/ab17765569.html,是.Net中用来进行Web开发的一种技术,https://www.sodocs.net/doc/ab17765569.html,的页面部分写在aspx文件中,逻辑代码通常通过Code-behind的方式用C#、https://www.sodocs.net/doc/ab17765569.html,等支持.Net 的语言编写。

C#是使用最广泛的支持.Net的编程语言。除了C#还有https://www.sodocs.net/doc/ab17765569.html,、IronPython等。VisualStudio是微软提供的用来进行.Net开发的集成开发环境(IDE),使用VisualStudio可以简化很多工作,不用程序员直接调用csc.exe等命令行进行程序的编译,而且VisualStudio提供了代码自动完成、代码高亮等功能方便开发。除了VisualStudio,还有SharpDevelop、MonoDevelop等免费、开源的IDE,VisualStudio Express版这个免费版本。

概念说明型

1、简述private、protected、public、internal 修饰符的访问权限。

private : 私有成员, 在类的内部才可以访问。

protected : 保护成员,该类内部和继承类中可以访问。

public : 公共成员,完全公开,没有访问限制。

internal: 当前程序集内可以访问。

2:new有几种用法

第一种:new Class();

第二种:覆盖方法

public new XXXX(){}

第三种:new 约束指定泛型类声明中的任何类型参数都必须有公共的无参数构造函数。

3、用sealed修饰的类有什么特点

答sealed 修饰符用于防止从所修饰的类派生出其它类。如果一个密封类被指定为其他类的基类,则会发生编译时错误。密封类不能同时为抽象类。

sealed 修饰符主要用于防止非有意的派生,但是它还能促使某些运行时优化。具体说来,

由于密封类永远不会有任何派生类,所以对密封类的实例的虚拟函数成员的调用可以转换为非虚拟调用来处理。String就是用sealed修饰的,所以不能被继承。

4、请编程遍历页面上所有TextBox控件并给它赋值为string.Empty?

答:

foreach (System.Windows.Forms.Control control in this.Controls)

{

if (control is System.Windows.Forms.TextBox)

{

System.Windows.Forms.T extBox tb = (System.Windows.Forms.TextBox)control ;

tb.Text = String.Empty ;

}

}

5、在.net中,配件的意思是?

答:程序集。(中间语言,源数据,资源,装配清单)

6、C#中索引器是否只能根据数字进行索引?是否允许多个索引器参数?

参数的个数和类型都是任意的。加分的补充回答:用reflector反编译可以看出,索引器的内部本质上就是set_item、get_item方法。

基础知识:

索引的语法:

public string this[string s],通过get、set块来定义取值、赋值的逻辑

索引可以有多个参数、参数类型任意

索引可以重载。

如果只有get没有set就是只读的索引。

索引其实就是set_Item、get_Item两个方法。

7.概述反射和序列化

反射:程序集包含模块,而模块包含类型,类型又包含成员。反射则提供了封装程序集、模块和类型的对象。您可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。然后,可以调用类型的方法或访问其字段和属性

序列化:序列化是将对象转换为容易传输的格式的过程。例如,可以序列化一个对象,然后使用HTTP 通过Internet 在客户端和服务器之间传输该对象。在另一端,反序列化将从该流重新构造对象。

8、关于拆箱装箱:

1)什么是装箱(boxing)和拆箱(unboxing)?(*)

Object是引用类型,但是它的子类Int32竟然不能去Object能去的“要求必须是引用类型”的地方,违反了继承的原则,所以需要把Int32装在Object中才能传递。

装箱:从值类型接口转换到引用类型。

拆箱:从引用类型转换到值类型。

object obj = null;//引用类型

obj = 1;//装箱,boxing。把值类型包装为引用类型。

int i1 = (int)obj;//拆箱。unboxing

2)下面三句代码有没有错,以inboxing或者unboxing为例,解释一下内存是怎么变化的int i=10;

object obj = i;

int j = obj;

分析:在inboxing(装箱)时是不需要显式的类型转换的,不过unboxing(拆箱)需要显式的类型转换,所以第三行代码应该改为:

3 int j = (int)obj;

要掌握装箱与拆箱,就必须了解CTS及它的特点:

NET重要技术和基础之一的CTS(Common Type System)。CTS是为了实现在应用程序声明和使用这些类型时必须遵循的规则而存在的通用类型系统。.Net将整个系统的类型分成两大类:值类型和引用类型。

CTS中的所有东西都是对象;所有的对象都源自一个基类——System.Object类型。值类型的一个最大的特点是它们不能为null,值类型的变量总有一个值。为了解决值类型不可以为null,引用类型可以为null的问题,微软在.Net中引入了装箱和拆箱:装箱就是将值类型用引用类型包装起来转换为引用类型;而从引用类型中拿到被包装的值类型数据进行拆箱。

object.ReferenceEquals();//用来判断两个对象是否是同一个对象

Console.WriteLine(object.ReferenceEquals(3,3));//因为两个3被装到了两个箱子中,所以是false

Equals ==的关系

9、CTS、CLS、CLR分别作何解释(*)把英文全称背过来。

C#和.Net的关系。

C#只是抽象的语言,可以把C#编译生成Java平台的二进制代码,也可以把Java代码编译生成.Net平台的二进制代码。所以C#只是提供了if、while、+-*/、定义类、int、string等基础的语法,而Convert.ToInt32、FileStream、SqlConnection、String.Split等都属于.Net 的东西。深蓝色是C#的,浅蓝色是.Net的。

C# new→IL:newobj

C# string →.Net中的String

类型的差别:.net中的Int32在C#中是int,在https://www.sodocs.net/doc/ab17765569.html,中是Integer。

语法的差别:IL中创建一个对象的方法是L_0001: newobj instance void 索引.C1::.ctor()

C#中是new C1();https://www.sodocs.net/doc/ab17765569.html,中是Dim c1 As New C1

CTS:Common Type System通用类型系统。Int32、Int16→int、String→string、Boolean→bool。每种语言都定义了自己的类型,.Net通过CTS提供了公共的类型,然后翻译生成对应的.Net

类型。

CLS:Common Language Specification 通用语言规范。不同语言语法的不同。每种语言都有自己的语法,.Net通过CLS提供了公共的语法,然后不同语言翻译生成对应的.Net语法。CLR:Common Language Runtime 公共语言运行时,就是GC、JIT等这些。有不同的CLR,比如服务器CLR、Linux CLR(Mono)、Silverlight CLR(CoreCLR)。相当于一个发动机,负责执行IL。

10、能用foreach遍历访问的对象的要求

需要实现IEnumerable接口或声明GetEnumerator方法的类型。

11、GC是什么? 为什么要有GC?

C/C++中由程序员进行对象的回收像学校食堂中由学生收盘子,.Net中由GC进行垃圾回收像餐馆中店员去回收。

GC是垃圾收集器(Garbage Collection)。程序员不用担心内存管理,因为垃圾收集器会自动进行管理。GC只能处理托管内存资源的释放,对于非托管资源则不能使用GC进行回收,必须由程序员手工回收,一个例子就是FileStream或者SqlConnection需要程序员调用Dispose进行资源的回收。GC不能回收非托管资源,对于非托管资源一般都实现了IDisposable接口,然后使用using关键字进行资源的回收。

要请求垃圾收集,可以调用下面的方法:GC.Collect()一般不需要手动调用GC.Collect()。当一个对象没有任何变量指向(不再能使用)的时候就可以被回收了。

基础知识:当没有任何变量指向一个对象的时候对象就可以被回收掉了,但不一定会立即被回收。

object obj = new object();//只有new才会有新对象

Console.WriteLine(obj);

object obj2 = obj;

obj = null;

obj2 = null;

Console.WriteLine();

12、using关键字有什么用?什么是IDisposable?

using可以声明namespace的引入,还可以实现非托管资源的释放,实现了IDisposiable的类在using中创建,using结束后会自动调用该对象的Dispose方法,释放资源。Idisosiable类含Close 、Dispose、finalize方法。加分的补充回答:using其实等价于try……finally,用起来更方便。

13、传入某个属性的set方法的隐含参数的名称是什么?

value,它的类型和属性所声名的类型相同。

14、说出一些常用的类、接口,请各举5个

要让人家感觉你对.Net开发很熟,所以,不能仅仅只列谁都能想到的那些东西,要多列你在做项目中涉及的那些东西。就写你最近写的那些程序中涉及的那些类。

常用的类:StreamReader、WebClient、Dictionary、StringBuilder、SqlConnection、FileStream、File、Regex、List

常用的接口:IDisposable、IEnumerable、IDbConnection、IComparable、ICollection、IList、IDictionary

要出乎意料!不要仅仅完成任务!笔试不是高考!处处要显出牛!

是非型

1、不是说字符串是不可变的吗?string s="abc";s="123"不就是变了吗?

String是不可变的在这段代码中,s原先指向一个String对象,内容是"abc",然后我们将s 指向"123",那么s所指向的那个对象是否发生了改变呢?答案是没有。这时,s不指向原来那个对象了,而指向了另一个String对象,内容为"123",原来那个对象还存在于内存之中,只是s这个引用变量不再指向它了。

2、是否可以从一个static方法内部发出对非static方法的调用?

不可以。因为非static方法是要与对象关联在一起的,必须创建一个对象后,才可以在该对象上进行方法调用,而static方法调用时不需要创建对象,可以直接调用。也就是说,当一个static方法被调用时,可能还没有创建任何实例对象,如果从一个static方法中发出对非static方法的调用,那个非static方法是关联到哪个对象上的呢?这个逻辑无法成立,所以,一个static方法内部不能发出对非static方法的调用。

3、C#支持多重继承么?

类之间不支持,接口之间支持。类对接口叫做实现,不叫继承。类是爹、接口是能力,能有多个能力,但不能有多个爹。

4、public static const; int A = 1;这段代码有错误么?

错误:const不能被修饰为static ;因为定义为常量(const )后就是静态的(static )。5、int、DateTime、string是否可以为null?

null表示“不知道”,而不是“没有”。没有年龄和不知道年龄是不一样。

数据库中null不能用0表示。0岁和不知道多少岁不一样。

Sex is zero。《色即是空》

//int i1 = null;

//int? i2 = null;//值类型后加?就成了可空数据类型

////int i3 = i2;//所以把可空的赋值给一定不能为空的会报错。

//int i4 = (int)i2;//可以显式转换,由程序员来保证“一定不为空”

//int? i5 = i4;//一定会成功!

//using()→try{]catch{}finally{}

//int?是微软的一个语法糖。是一种和int没有直接关系的Nullable类型

Nullable d1 = new Nullable();//int? d1=null;

Nullable d2 = new Nullable(3);//int? d2=3;

Console.WriteLine(d1==null);

int、DateTime不能,因为其为Struct类型,而结构属于值类型,值类型不能为null,只有引用类型才能被赋值null。string可以为null。

C#中int等值类型不可以为null、而数据库中的int可以为null,这就是纠结的地方。int?就变成了可空的int类型。bool?、DateTime?

int i1 = 3;

int? i2 = i1;

//int i3 = i2;//不能把可能为空的赋值给一定不能为空的变量

int i3 = (int)i2;//显式转换

可空数据类型经典应用场景:三层中的Model属性的设计。

int?翻译生成.Net的Nullable,CTS。

6、能否脱离VS用类似editplus的工具手写代码?你觉得如何才能提高代码的效率和性能?

可以,使用CSC.exe 来编译.cs文件!

可以根据业务流程、业务数据的特点进行优化,比如可以采用缓存、索引、表驱动等来提升代码的效率和性能,同时不要进行无意义的代码优化,重点优化系统的性能瓶颈。

7、利用operator声明且仅声明了==,有什么错误么? 要同时修改Equale和GetHash() ? 重载了"==" 就必须重载"!="

8、short s=1;s=s+1;有错吗?short s=1;s+=1;有错吗?

答案:第一个有错,因为1是int类型,int+short结果是int,无法隐式转换,改为s = (short)(s + 1);就可以了。

第二个没错,经过反编译发现编译器自动优化成s = (short)(s + 1);

代码分析型

1、

static void Main(string[] args)

{

Console.WriteLine(GetIt());

Console.ReadKey();

}

static int GetIt()

{

int i = 8;

try

{

i++;

Console.WriteLine("a");

return i;//把返回值设定为i,然后“尽快”返回(没啥事就回去吧)

}

finally

{

Console.WriteLine("b");

i++;

}

}

上面程序的执行结果是ab9

try {}里有一个return语句,那么紧跟在这个try后的finally {}里的代码会不会被执行,什么时候被执行?

会执行,在return后执行。

static void Main(string[] args)

{

//Console.WriteLine(GetIt());

Console.WriteLine(GetPerson().Age);

Console.ReadKey();

}

static int GetIt()

{

int i = 8;

try

{

i++;

Console.WriteLine("a");

return i;//把返回值设定为i,然后“尽快”返回(没啥事就回去吧。搞完就走) }

finally

{

Console.WriteLine("b");

i++;

}

}

static Person GetPerson()

{

Person p = new Person();

p.Age = 8;

try

{

p.Age++;

Console.WriteLine("a");

return p;//把返回值设定为i,然后“尽快”返回(没啥事就回去吧。搞完就走) }

finally

{

Console.WriteLine("b");

p.Age++;

}

}

加分的补充回答(也助记):读取数据库中数据的条数的程序

public int QueryCount()

{

…..

try

{

return cmd.ExecuteScalar();

}

finally

{

cmd.Dispose();

}

}

先执行cmd.ExecuteScalar(),把返回值暂时存起来,然后再去执行finally(钱放在这,我去劫个色),然后把返回值返回。return都是最后执行,但是return后的表达式的计算则是在finally之前。

如果C#设计的是先执行cmd.Dispose()再执行return就会出现return执行失败了,因为cmd 已经Dispose了。

2、下面的程序执行结果是什么?

class Person

{

public int Age { get; set; }

}

int i1 = 20;

i1++;

Console.WriteLine(i2);

Person p1 = new Person();

p1.Age = 20;

Person p2 = p1;

p1.Age++;

Console.WriteLine(p2.Age);

答案:

20

21

解释:引用类型和值类型的区别。

3、下面程序的执行结果是什么?

int i = 10;

Console.WriteLine(i++);

Console.WriteLine(++i);

Console.WriteLine(i=20);

Console.WriteLine(i==20);

答案:

10

12

20

True

解答:前两个参考第80题,i++表达式的值为i自增之前的值,所以打印10,执行完成后i变成11,执行++i的时候表达式的值为自增以后的值12。C#中赋值表达式的值为变量被赋值的值,因此最后一个就输出i赋值后的值20

while((line=reader.ReadLine())!=null)

{

}

4、下面程序的执行结果是什么?

public struct Point

{

public int x;

public int y;

public Point(int x, int y)

{

this.x = x;

this.y = y;

}

}

Point p1 = new Point(100, 100);

p1.x = 200;

Console.WriteLine("{0},{1}", p1.x, p2.x);

答案:

200,100

解答:结构体是复制传递的。

5、请编程遍历WinForm页面上所有TextBox控件并给它赋值为string.Empty?答:

foreach (System.Windows.Forms.Control control in this.Controls)

{

if (control is System.Windows.Forms.TextBox)

{

System.Windows.Forms.TextBox tb = (System.Windows.Forms.TextBox)control ; tb.Text = String.Empty ;

}

}

6、

int i=2000;

object o=i;

i=2001;

int j=(int)o;

Console.WriteLine("i={0},o={1},j={2}",i,o,j);

输出的结果是:

7、一个数组:1,1,2,3,5,8,13,21...+m,求第30位数是多少?用递归实现;

写递归要确定两个:递归的终止条件;递归表达式。

解答:总结递归规律:F(n)=F(n-2)+F(n-1) Fibonacci数列

static int F(int n)

{

if (n == 1)

{

return 1;

}

if (n == 2)

{

return 1;

}

return F(n - 2) + F(n - 1);

}

非递归(有bug吗?),递归算法的缺点:测试大数据

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

if(n<=0)

{Console.WRiteLine("必须大于0");return;}

if(n==1) //时刻注意边界值!!!

{

Console.WriteLine("1");

return;

}

int[] data =new int[n];

data[0] = 1;

data[1] = 1;

for(int i=2;i

{

data[i] = data[i-1]+data[i-2];

}

Console.WriteLine(data[n-1]);

上面程序的时间复杂度为O(n),空间复杂度为O(n)

参考:

算法复杂度:时间复杂度:算法运行需要消耗的时间的数量级、空间复杂度:算法运行需要消耗的内存的数量级。

消耗的时间或者内存随着问题规模的扩大而成正比增加,就是O(n)。

消耗的时间或者内存随着问题规模的扩大而不变,就是O(1)。

消耗的时间或者内存随着问题规模的扩大而n*n增加,就是O(n*n)

算法复杂度只考虑最差情况(从一个数组中找出第一个大于10的数,时间复杂度为O(n)),并且算法复杂度忽略常量和低阶。把数组数一遍和数两遍的时间复杂度都是O(n)。把长度为n的数组数n/2遍的时间复杂度还是O(n*n)。

上课时把数组前后颠倒的算法的时间复杂度为O(n),空间复杂度为O(1)。

8、产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复。(要求使用两种方法)

解答:Random类是一个伪随机数算法,原理:

r(n)=(sed+r(n-1))%100;

class MyRand

{

private int seed;

private int prevNumber = 10;

public MyRand(int seed)

{

this.seed = seed;

}

public int Next()

{

int newRand = (seed + prevNumber) % 100;

prevNumber = newRand;

return newRand;

}

}

生成的随机数是依赖于上一个的,所以叫“随机数序列”。,确定的种子产生确定的随机数序列。

为了避免每次生成的随机数序列都一样,所以一般采用当前系统运行的毫秒数Environment.TickCount做种子。

这就明白为什么

//for (int i = 0; i < 10; i++)

//{

// Random rand = new Random();

// Console.WriteLine(rand.Next(100));

//}

是错的。

经过反编译,Random类的无参构造函数最终也是调用有参的,传递的就是当前毫秒数

public Random() : this(Environment.TickCount)

这就验证了

//for (int i = 0; i < 10; i++)

//{

// Random rand = new Random();

// Console.WriteLine(rand.Next(100));

//}

为什么一样,或者一半一样,是因为在同一毫秒内。

做法1:

List list = new List();

Random rand = new Random();

while (list.Count < 100)

{

int number = rand.Next(1, 101);//>=1,<101

if (!list.Contains(number))//如果list中已经含有这个数,则不插入

{

list.Add(number);

}

}

foreach (int i in list)

{

Console.WriteLine(i);

}

做法2:

先把1-100这100个数按顺序放入数组arr,再重复100次下面的操作,生成两个介于 >=0,<100 之间的随机数m、n,颠倒arr[m]和arr[n]的数。

int[] arr = new int[100];

//把100个数顺序放入

for (int i = 0; i < 100; i++)

{

arr[i] = i + 1;

}

Random rand = new Random();

for (int i = 0; i < 100; i++)

{

//随机生成两个位置

int m = rand.Next(0, 100);

int n = rand.Next(0, 100);

//颠倒两个位置

int temp = arr[m];

arr[m] = arr[n];

arr[n] = temp;

}

Javascript笔试题及答案

Javascript面试笔试题 考试时间90分钟 一、不定项选择题(每题3分,共30分) 1.声明一个对象,给它加上name属性和show方法显示其name值,以下代码中正确的是 ( D ) A.var obj = [name:"zhangsan",show:function(){alert(name);}]; B.var obj = {name:"zhangsan",show:”alert”}; C.var obj = {name:"zhangsan",show:function(){alert(name);}}; D.var obj = {name:"zhangsan",show:function(){alert;}}; 2.以下关于Array数组对象的说法不正确的是( CD) A.对数组里数据的排序可以用sort函数,如果排序效果非预期,可以给sort函数加 一个排序函数的参数 B.reverse用于对数组数据的倒序排列 C.向数组的最后位置加一个新元素,可以用pop方法 D.unshift方法用于向数组删除第一个元素 3.要将页面的状态栏中显示“已经选中该文本框”,下列JavaScript语句正确的是( A ) A.="已经选中该文本框" B.="已经选中该文本框" C.="已经选中该文本框" D.="已经选中该文本框" 4.点击页面的按钮,使之打开一个新窗口,加载一个网页,以下JavaScript代码中可行 的是( AD) A. B. C. D.

5.使用JavaScript向网页中输出

hello

,以下代码中可行的是( BD) A. B. C. D.

计算机基础知识问答题及答案一.docx

计算机基础知识试题及答案(一) 一、选择题 (1) 第四代计算机的主要逻辑元件采用的是 A) 晶体管 B) 小规模集成电路 C) 电子管 D) 大规模和超大规模集成电路 (2) 下列叙述中,错误的是 A) 把数据从内存传输到硬盘叫写盘 B) 把源程序转换为目标程序的过程叫编译 C) 应用软件对操作系统没有任何要求 D) 计算机内部对数据的传输、存储和处理都使用二进制 (3) 计算机硬件的五大基本构件包括:运算器、存储器、输入设备、输出设备和 A) 显示器 B) 控制器 C) 磁盘驱动器 D) 鼠标器 (4) 五笔字型输入法属于 A) 音码输入法 B) 形码输入法 C) 音形结合输入法D) 联想输入法 (5) 通常所说的I/O设备指的是 A) 输入输出设备 B) 通信设备 C) 网络设备 D) 控制设备

(6) 计算机辅助设计的英文缩写是 A) CAD B) CAM C) CAE D) CAT (7) “Windows98是一个多任务操作系统”指的是 A) Windows可运行多种类型各异的应用程序 B) Windows可同时运行多个应用程序 C) Windows可供多个用户同时使用 D) Windows可同时管理多种资源 (8) 在Windows98中,为查看帮助信息,应按的功能键是 A) F1 B) F2 C) F6 D) F10 (9) Windows98任务栏不能设置为 A) 自动隐藏 B) 总在底部 C) 总在最前 D) 时钟显示 (10) 在Windows98中,打开上次最后一个使用的文档的最直接途径是 A) 单击“开始”按钮,然后指向“文档” B) 单击“开始”按钮,然后指向“查找” C) 单击“开始”按钮,然后指向“收藏”

html+css+js面试题

html+css+js面试题 87 . 如何求得2和4中最大的数? A) Math.ceil(2,4) B) Math.max(2,4) C) ceil(2,4) D) top(2,4) 88 . 打开名为“window2”的新窗口的JavaScript语法是? A) open.new("https://www.sodocs.net/doc/ab17765569.html,","window2") B) window.open("https://www.sodocs.net/doc/ab17765569.html,","window2") C) new("https://www.sodocs.net/doc/ab17765569.html,","window2") D) new.window("https://www.sodocs.net/doc/ab17765569.html,","window2") 89 . 如何在浏览器的状态栏放入一条消息? A) statusbar = "put your message here" B) window.status = "put your message here" C) window.status("put your message here") D) status("put your message here") 90.下列不属于文档对象的方法的是() A)createElement B)getElementById C)getElementByName D)forms.length 91.下面这段代码运行的结果() A)弹出一个对象框 B)没有任何输出 C)在文档中显示文档最后修改的时间

大学计算机基础操作题汇总

大学计算机基础操作题 汇总 LG GROUP system office room 【LGA16H-LGYY-LGUA8Q8-LGA162】

大学计算机基础操作题汇总解析 一.WORD 1.(2)字体、字号、两端对齐 各段行间距倍:格式→段落→缩进和间距→行距 (3)插入图片:插入→图片 设置版式:在图片上右键→设置图片格式→版式 (4)设置页码和页码位置:插入→页码 (5)输入公式:插入→对象→Microsoft 公式 2.(2)第一段首字下沉3行,距正文0厘米:选中要下沉段落→格式→首字下沉 (3)页面设置:文件→页面设置→页边距/版式(页眉) (4)项目符号设置:格式→项目符号和编号→(点在除了“无”以外的图上)自定义→字符(修改字体和选择*号) 3.(3)设置红色、倾斜、下划线为单波浪线:选中修改段落 5.(4)设置页眉:视图→页眉和页脚 10.(2)各段行间距为倍行距:格式→段落→缩进和间距→行距→多倍行距 (4)设置页脚:视图→页眉和页脚 13.(4)设置页面边框:格式→边框和底纹→页面边框 14.(2)表格边框:视图→工具栏→表格和边框(前面有√)→按要求画边框 15.整表垂直居中:全选表格→点居中 文字水平居中,数据水平右对齐:选中文字单元格→右键→单元格对齐方式→选水平居中 选择数据单元格→右键→单元格对齐方式→选水平右对齐 表中底纹为灰色-30%:选中需要灰色部分→(视图→工具栏→表格和边框(前面有√)→点击油漆桶 19.(2)替换文字:编辑→查找→替换→按要求输入文字 (3)底端加入页码,起始页码为2:插入→页码→位置(底端)→格式→起始页码 给标题加上20%的样式底纹:选中标题→格式→边框和底纹→底纹→样式→20% (4)着重号:选中着重文字→格式→字体→着重号

前端开发的面试题

前端开发的面试题 web前端面试题 以下是收集一些面试中经常会遇到的经典面试题以及自己面试过程中无法解决的问题,通过对知识的整理以及经验的总结,重新巩固自身的前端基础知识。 1.对WEB标准以及W3C的理解与认识 标签闭合、标签小写、不乱嵌套、提高搜索机器人搜索几率、使用外链css和js脚本、结构行为表现的分离、文件下载与页面速度更快、内容能被更多的用户所访问、内容能被更广泛的设备所访问、更少的代码和组件,容易维护、改版方便,不需要变动页面 内容、提供打印版本而不需要复制内容、提高网站易用性; 2.xhtml和html有什么区别 HTML是一种基本的WEB语言,XHTML是一个基于XML的置标语言 最主要的不同: XHTML 元素必须被正确地嵌套。 XHTML 元素必须被关闭。 标签名必须用小写字母。 XHTML 文档必须拥有根元素。 3.Doctype? 严格模式与混杂模式-如何触发这两种模式,区分它们有何意义? 用于声明文档使用那种规范(html/Xhtml)一般为严格过度基于框架的html文档 加入XMl声明可触发,解析方式更改为IE5.5 拥有IE5.5的bug 4.行内元素有哪些?块级元素有哪些?CSS的盒模型? 块级元素:div p h1 h2 h3 h4 form ul 行内元素: a b br i span input select Css盒模型:内容,border ,margin,padding 5.CSS引入的方式有哪些? link和@import的区别是?

内联内嵌外链导入 区别:同时加载 前者无兼容性,后者CSS2.1以下浏览器不支持 Link 支持使用script改变样式,后者不可 6.CSS选择符有哪些?哪些属性可以继承?优先级算法如何计算?内联和important哪个优先级高? 标签选择符类选择符 id选择符 继承不如指定 Id>class>标签选择 后者优先级高 7.前端页面有哪三层构成,分别是什么?作用是什么? 结构层 Html 表示层 CSS 行为层 js 8.css的基本语句构成是? 选择器{属性1:值1;属性2:值2;……} 9.你做的页面在哪些流览器测试过?这些浏览器的内核分别是什么? Ie(Ie内核) 火狐(Gecko) 谷歌(webkit) opear(Presto) 10.写出几种IE6 BUG的解决方法 1.双边距BUG float引起的使用display 2.3像素问题使用float引起的使用dislpay:inline -3px 3.超链接hover 点击后失效使用正确的书写顺序 link visited hover active 4.Ie z-index问题给父级添加position:relative 5.Png 透明使用js代码改 6.Min-height 最小高度 !Important 解决’ 7.select 在ie6下遮盖使用iframe嵌套

高中计算机基础知识考试题1

高中计算机基础知识考试题 一、单项选择题 1. 一个完整的微型计算机系统应包括_C_。 A. 计算机及外部设备 B. 主机箱、键盘、显示器和打印机 C. 硬件系统和软件系统 D. 系统软件和系统硬件 2. 十六进制1000转换成十进制数是__A___。 A. 4096 B. 1024 C. 2048 D. 8192 3. ENTER键是__B___。 A. 输入键 B. 回车换行键 C. 空格键 D.换档键 4. 3.5英寸的软盘,写保护窗口上有一个滑块,将滑块推向一侧,使其写保护窗口暴露出来,此时__B___。 A. 只能写盘,不能读盘 B. 只能读盘,不能写盘 C. 既可写盘,又可读盘 D. 不能写盘,也不能读盘 5. 3.5英寸盘的右下角有一塑料滑片,当移动它盖住缺口时__B__。 A. 不能读出原有信息,不能写入新的信息 B. 既能读出原有信息,也能写入新的信息 C. 不能读出原有信息,可以写入新的信息 D. 可以读出原有信息,不能写入新的信息 6. DRAM存储器的中文含义是__B___。 A. 静态随机存储器 B. 动态随机存储器 C. 静态只读存储器 D. 动态只读存储器 7. 在微机中,Bit的中文含义是__A___。 A. 二进制位 B. 字 C. 字节 D. 双字 8. 汉字国标码(GB2312-80) 规定的汉字编码,每个汉字用__B___。 A. 一个字节表示 B. 二个字节表示 C. 三个字节表示 D. 四个字节表示 9. 微机系统的开机顺序是__D___。 A. 先开主机再开外设 B. 先开显示器再开打印机 C. 先开主机再打开显示器 D. 先开外部设备再开主机 10. 使用高级语言编写的程序称之为__A___。 A. 源程序 B. 编辑程序 C. 编译程序 D. 连接程序 11. 微机病毒系指__D___。 A. 生物病毒感染 B. 细菌感染 C. 被损坏的程序 D. 特制的具有损坏性的小程序 12. 微型计算机的运算器、控制器及内存存储器的总称是__C___。 A. CPU B. ALU C. 主机 D. MPU 13. 在微机中外存储器通常使用软盘作为存储介质,软磁盘中存储的信息,在断电后__A___。 A. 不会丢失 B. 完全丢失 C. 少量丢失 D. 大部分丢失 14. 某单位的财务管理软件属于_D____。 A. 工具软件 B. 系统软件 C. 编辑软件 D. 应用软件 15. 计算机网络的应用越来越普遍,它的最大好处在于__C___。 A. 节省人力 B. 存储容量大 C. 可实现资源共享 D. 使信息存储速度提高 16. 个人计算机属于__D___。 A. 小巨型机 B. 中型机 C. 小型机 D. 微机 17. 微机唯一能够直接识别和处理的语言是__D___。 A. 汇编语言 B. 高级语言 C. 甚高级语言 D. 机器语言 18. 断电会使原存信息丢失的存储器是_A___。 A. 半导体RAM B. 硬盘 C. ROM D. 软盘 19. 硬盘连同驱动器是一种___B__。 A. 内存储器 B. 外存储器 C. 只读存储器 D. 半导体存储器 20. 在内存中,每个基本单位都被赋予一个唯一的序号,这个序号称之为__C___。 A. 字节 B. 编号 C. 地址 D. 容量 21. 在下列存储器中,访问速度最快的是___C__。 A. 硬盘存储器 B. 软盘存储器 C. 半导体RAM(内存储器) D. 磁带存储器 22. 计算机软件系统应包括__D___。 A. 编辑软件和连接程序 B. 数据软件和管理软件 C. 程序和数据 D. 系统软件和应用软件 23. 半导体只读存储器(ROM)与半导体随机存储器(RAM)的主要区别在于__A___。 A. ROM可以永久保存信息,RAM在掉电后信息会丢失 B. ROM掉电后,信息会丢失,RAM则不会 C. ROM是内存储器,RAM是外存储器

前端工程师面试题题及答案(全面综合)

1. 要动态改变层中内容可以使用的方法有(AB ) a)innerHTML b)innerText c)通过设置层的隐藏和显示来实现 d)通过设置层的样式属性的display属性 2. 在javascript里,下列选项中不属于数组方法的是(B); a)sort() b)length() c)concat() d)reverse() 3 、var emp = new Array(3); for(var i in emp) 以下答案中能与for循环代码互换的是: (选择一项)。(D ) A for(var i =0; i

c)getElementsByName() d)bgColor() 6. 、display属性值的常用取值不包括(C ) a)inline b)block c)hidden d)none 7. 以下有关pixelTop属性与top属性的说法正确的是。(D ) a)都是Location对象的属性 b)使用时返回值都是字符串 c)都是返回以像素为单位的数值 d)以上都不对 8. 使用open方法打开具有浏览器工具条,地址栏,菜单栏的窗 口,下列选项正确的是__D__ a)open("x.html","HI","toolbas=1,scrollbars=1,status=1"); b)open("HI","scrollbars=1,location=1,status=1"); c)open("x.html","status=yes,menubar=1,location=1"); d)open("x.html","HI","toolbas=yes,menubar=1,location=1"); 9. 、javascript中表达式parseInt(“X8X8”)+paseFloat(‘8’)的结果是什么?( C) a)8+8 b)88 c)16 d)“8”+’8 10. 关于setTimeout(“check”,10)中说法正确的是( D)

JavaScript精选面试题

一选择题(单选) 1、以下哪条语句会产生运行错误:() A.var obj = (); B.var obj = []; C.var obj = {}; D.var obj = //; 答案:A 2、以下哪个单词不属于javascript保留字:() A.with B.parent C.class D.void 答案:B 3、请选择结果为真的表达式:() A.null instanceof Object B.null === undefined C.null == undefined D.NaN == NaN 答案:C 二、不定项选择题 4、请选择对javascript理解有误的:() A.JScript 是javascript的简称 B.javascript是网景公司开发的一种Java脚本语言,其目的是为了简化Java的开发难度 C.FireFox 和IE存在大量兼容性问题的主要原因在于他们对javascript 的支持不同上 D.AJAX技术一定要使用javascript技术 答案:ABCD 5、foo对象有att属性,那么获取att属性的值,以下哪些做法是可以的:() A.foo.att B.foo(“att”) C.foo[“att”] D.foo{“att”} E.foo[“a”+”t”+”t”] 答案:ACE

6、在不指定特殊属性的情况下,哪几种HTML标签可以手动输入文本:() A. B. C. D.

答案:AB 7、以下哪些是javascript的全局函数:() A.escape B.parseFloat C.eval D.setTimeout E.alert 答案:ABC 8、关于IFrame表述正确的有:() A.通过IFrame,网页可以嵌入其他网页内容,并可以动态更改 B.在相同域名下,内嵌的IFrame可以获取外层网页的对象 C.在相同域名下,外层网页脚本可以获取IFrame网页内的对象 D.可以通过脚本调整IFrame 的大小 答案:ABCD 9、关于表格表述正确的有:() A.表格中可以包含TBODY元素 B.表格中可以包含CAPTION元素 C.表格中可以包含多个TBODY元素 D.表格中可以包含COLGROUP元素 E.表格中可以包含COL元素 答案:ABCDE 10、关于IE的window对象表述正确的有:() A.window.opener属性本身就是指向window对象 B.window.reload() 方法可以用来刷新当前页面 C.window.location=”a.html”和window.location.href=”a.html”的作用都是把当前页面替换成a.html页面 D.定义了全局变量g;可以用window.g的方式来存取该变量 答案:ACD 三、问答题

计算机基础问答题[整理版]

计算机基础问答题[整理版] 问答题 1(简述数据库、数据库管理系统、数据库系统三个概念的含义和联系。 答:数据库(Database,DB):数据库是相互关联的数据集合。数据 库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余 度、较高的数据独立性和易扩展性,并可以供各种用户使用。 数据库管理系统(Database Management System,DBMS):数据库管理系统是位于用户与操作系统之间的数据管理软件。数据库在建立、应用和维护时由数据库管理系统统一管理、统一控制。数据库管理系统使用户能方便地定义数据和操纵数据,并能保证数据的安全性、完整性、多用户对数据的并发使用及发生故障后的系统恢复。 数据库系统(Database System,DBS):数据库系统是指在计算机系统中引入数据库后的系统构成,一般由数据库、操作系统、DBMS(及其开发工具)、应用系统、DBA等各类人员等构成。 2(文件系统中的文件与数据库系统中的文件有何本质上的不同, 答:文件系统中的文件是面向应用的,一个文件基本上对应于一个应用程序,文件之间不存在联系,数据冗余大,数据共享性差,数据独立性差;数据库系统中的文件不再面向特定的某个或多个应 用,而是面向整个应用系统,文件之间是相互联系的,减少了数据冗余,实现了数据共享,数据独立性高。 3(简述数据库管理系统的组成和功能, 答:由于不同DBMS(数据库管理系统)要求的硬件资源、软件资源环境是不同的,因此其功能与性能也存在差异,但一般来

说,DBMS的功能主要包括以下6个方面:数据定义,数据操纵,数据库运行管理,数据组织、存储和管理,数据库的建立和维护,数据通信接口。 为了提供上述6方面的功能,DBMS通常由以下4部分组成:数据定义语言及其翻译处理程序;数据操纵语言及其编译(或解释)程序;数据库运行控制程序;实用程序; 4(简要叙述关系数据库的优点, 答:关系数据库是以关系模型作为数据的组织方式,关系模型是建立在严格的数学概念的基础上的。关系数据库的主要优点是概念简单清晰,用户不需了解复杂的存储路径,不需说明“怎么干”,只需说明“干什么”,易懂易学。 5(层次模型、网状模型和关系模型三种基本数据模型是根据什么来划分的, 答:依据这三种数据模型的数据结构不同,即数据之间联系的表示 方式不同来划分的。层次模型用“树”来表示数据之间的联系。网状模型用“图”来表示数据之间的联系,关系模式是用“二维表”来表示数据之间的联系。 6(试述层次模型、网状模型、关系模型和面向对象模型的主要特点。 答:层次模型的数据结构为树结构,记录之间联系通过指针实现,查询效率较高,但DML属于过程化语言,操作复杂。 网状模型的数据结构为有向图,记录之间联系也是通过指针实现的,查询效率较高,并且容易实现m:n联系,但DML属于过程化语言,编程较复杂。 关系模型的数据结构为二维表格,容易为初学者理解。记录之间联系通过外键实现。DML属于非过程化语言,编程较容易。 面向对象模型能完整描述现实世界的数据结构,具有丰富的表达能力,能表达嵌套、递归的数据结构。但涉及知识面较广,用户较难理解。 7(请思考:用传统数据库存储和管理多媒体数据,如音频、视频、 图像等,存在哪些主要的问题,

node.js面试题大全-侧重后端应用与对Node核心的理解

node.js面试题大全-侧重后端应用与对Node核心的理解 Node是搞后端的,不应该被被归为前端,更不应该用前端的观点去理解,去面试node开发人员。所以这份面试题大全,更侧重后端应用与对Node核心的理解。 github地址: https://https://www.sodocs.net/doc/ab17765569.html,/jimuyouyou/node-interview-questions 注: 这是本人历时一星期完成的小作品,github里面对一些关键代码还有js源文件.直接node filename.js就可查看效果. 第一个版本,写的匆忙,能力有限,欢迎拍砖补充!后面持续更新会及时发布到github上. node开发技能图解 起源 node正风生火起,很多介绍却停留在入门阶段,无法投入生产 node相关的高质量面试题更是少之又少,很难全面考查应聘者的node能力 许多文章在讲第三方类库,可是这些库质量差距较大,一旦

遇到问题怎么办 必需的,全面了解node核心才能成为一名合格的node开发人员 目标与原则 前后端兼顾,更侧重后端 理论实战兼顾,侧重考察对实战中应用较多的理论的理解 参考答案简单明了,一针见血,不为追求严谨而浪费口舌,绕弯子 尽量用代码讲清理论的应用与区别,以接地气 终极目标是让大家对node有一个快速完整的认识 内容大纲 javascript高级话题(面向对象,作用域,闭包,设计模式等) node核心内置类库(事件,流,文件,网络等) node高级话题(异步,部署,性能调优,异常调试等) 常用知名第三方类库(Async, Express等) 其它相关后端常用技术(MongoDB, Redis, Apache, Nginx 等) 常用前端技术(Html5, CSS3, JQuery等)

大学计算机基础操作题(1)

1、(1)用Excel 制作如下表格 要求:1、在表的第一行前插入一行,键入“某大学研究生毕业分配表”,并居于表的中央。 2、增加表格线,数据右对齐,文字居中。 3、计算各年的“毕业生总数”。 4、将全表按“毕业生总数”的降序排列。 5、以年份为横坐标,绘制一柱形图,图表标题为“研究生毕业分配表”。 2、(2) 要求在左起第一张工作表中完成: 1、第一行填充颜色为灰色-25% 2、增加表格线,上表内所有文字居中(水平和垂直两方向,不能只点工具栏的居中),所有数据(包括第一列)右对齐(水平)。 3、利用公式计算每名学生的“总成绩”。 4、将全表按“总成绩”的降序排列。 5、选定姓名、数学、物理、外语、计算机五列数据,以姓名为横坐标(系列产生在“列”,勾选上“分类X 轴”),绘制一柱形图,图表标题为“本学期期末成绩单”。 注:不要更改“姓名”“数学”“物理”“外语”“计算机”“总成绩”这些单元格的文字内容,否则将不能识别考生的答题内容。 3、(3)要求: 1、按上表样式建表,在表的第一行前插入标题,幼圆,加粗,14号字。 2、增加表格线,第一列单元格底纹为天蓝色。 3、统计每种花卉销售的总支数,要求必须使用公式或函数计算。 4、使用花卉名称和统计两列数据建立三维圆饼图。 5、将全表按“统计”值的降序排序。

4、(4)要求: (1)按上表样式建表,表的第一行是标题,隶书,加粗,16号字,合并单元格并居中。 (2)增加表格线,表中文字及数据均居中。 (3)第一列单元格底纹为淡黄色,第一行单元格底纹为淡绿色。 (4)统计每个单位产量的“合计”值,要求必须使用公式或函数计算,保留1位小数。 (5)计算出各列的“平均值” 和“最大值”,要求必须使用函数计算,保留2位小数。 5、(5)要求: 1、表的第一行是表标题“某部门十月份工资表”,隶书14号字,合并单元格并居于表的中央。 2、增加表格线,外围框线为粗线。 3、计算各行的“实发工资”项,保留两位小数,要求必须使用公式或函数计算。 4、计算各列的“平均数”,要求必须使用函数或公式计算,保留一位小数。 5、将全表按“实发工资”的升序排序,如相同再按基本工资升序排序。 6、(6)要求: 1、表的第一行是标题“上半年利润表”,宋体加粗16号字,合并单元格并居于表的中央。 2、增加表格线,第一行单元格为黄色底纹。 3、计算各行的“税后利润”,要求必须使用公式计算,保留两位小数。 4、使用“月份”和“税后利润”两列数据绘制分离型三维饼图,显示百分比及数据标志。 5、计算各列的“总计”,必须使用函数计算,保留两位小数。

js基础部分面试题

JS基础面试题 1.介绍下js中关于arguments 。【考点:函数arguments】 在函数代码中,使用特殊对象 arguments,开发者无需明确指出参数名,就能访问它们。例如,在函数 sayHi() 中,第一个参数是 message。用 arguments[0] 也可以访问这个值,即第一个参数的值(第一个参数位于位置 0,第二个参数位于位置 1,依此类推)。 因此,无需明确命名参数,就可以重写函数: function sayHi() { if (arguments[0] == "bye") { return; } alert(arguments[0]); } 2.看以下JavaScript程序问:执行以上程序后,num的值为( D )【考点:数据类型】 var num; num=5+true; A、true B、false C、5 D、6 3、看以下JavaScript程序【考点:switch语句,break】 var x=prompt(“请输入1-5的数字!”,“”); switch (x) { case “1”:alert(“one”); case “2”:alert(“two”); case “3”:alert(“three”); case “4”:alert(“four”); case “5”:alert(“five”); default:alert(“none”); } 运行以上程序,在提示对话框中输入“4”,依次弹出的对话框将输出: ( B ) A、four,none B、four,five,none C、five D、five,none 4、分析下面的JavaScript代码段【考点:for循环】 a=new Array(2,3,4,5,6); sum=0; 输出结果是().(选择一项)

计算机基础课后问答题答案

第一章 1.计算机的发展经历了哪几个阶段?各阶段的主要特点是什么? 答:电子计算机的发展已经历了四个明显的阶段(也称为四代).正向第五代智能化的计算机发展。 前四代计算机的特点是: 第一代为电子管计算机.使用的软件程序主要为机器语言。 第二代机是以晶体管作为主要逻辑元件的计算机.软件程序使用了汇编语言且高级程序设计语言诞生。 第三代机是由中小规模集成电路组成的计算机.软件程序使用状况是:操作系统和结构化程序设计语言诞生使用。 第四代机是由大规模或超大规模集成电路组成的计算机.软件状况为网络操作系统、面向对象程序设计诞生和使用。 2.计算机内为什么采用二进制数表示信息? 答:电子计算机内部采用二进制数表示信息的主要原因是: (1)二进制数数码少(只有0和1两个).因此易于实现其数码的表示; (2)二进制数的运算法简单; (3)采用二进制数易于实现逻辑运算。 3.计算机硬件系统由哪几部份组成?各部份的主要功能是什么? 答:电子计算机硬件由运算器、控制器、存储器、输入设备和输出设备组成。它们通过总线连接成有机整体。 运算器的主要功能是:完成算术运算和逻辑运算; 控制器的功能是:协调指挥计算机各部件工作; 存储器的主要作用是:存储程序和数据.实现记忆的功能。 输入设备的功能是:输入数据并转换为机内信息存储; 输出设备的作用是:将机内信息转换为便于识别、处理和使用的字符、图形输出显示。4.什么是硬件?什么是软件?它们有何关系? 答:计算机硬件是构成机器的电子、光电、电磁、机械等物理设备。软件即是计算机中使用的各种各样的程序及其说明文档。 硬件与软件的关系是:硬件是软件运行的基础.软件扩充了硬件的功能。 5.什么是指令?什么是程序?计算机的指令由哪两部份组成? 答:指令是计算机能实现的基本操作.指令均为二进制数形式。程序是若干指令或命令的集合。指令由操作码和地址码(操作数)组成.操作码告诉计算机执行什么操作(指明指令的功能).地址码告诉计算机到哪个存储单元地址中读取参与操作的数据。 6.计算机程序设计语言如何分类?什么程序语言是计算机能直接识别和执行的? 答:计算机程序设计语言可分为低级语言和高级语言两大类。低级语言包括:机器语言和汇编语言.它们都是面向计算机硬件的程序设计语言。高级语言有:面向过程的结构化的程序设计语言(Basic、Pascal、C……)和面向对象的程序设计语言(Visual Basic、Visual FoxPro、Visual C……)。 7.高级程序设计语言的两种执行方式是哪两种? 答:解释方式——边解释边执行.速度慢但方便程序调试。 编译方式——程序源代码全部编译后再执行.执行速度快.但不易查错。通常是先源代码程序调试成功后再编译使用。

前端面试题含答案

前端面试题含答案 The latest revision on November 22, 2020

前端开发面试知识点大纲: HTML&CSS : 对Web 标准的理解、浏览器内核差异、兼容性、hack 、CSS 基本功:布 局、盒子模型、选择器优先级及使用、HTML5、CSS3、移动端适应 JavaScript : 数据类型、面向对象、继承、闭包、插件、作用域、跨域、原型链、模块 化、自定义事件、内存泄漏、事件机制、异步装载回调、模板引擎、Nodejs 、 JSON 、ajax 等。 其他: HTTP 、安全、正则、优化、重构、响应式、移动端、团队协作、可维护、SEO 、UED 、架构、职业生涯 作为一名前端工程师,无论工作年头长短都应该必须掌握的知识点: 1、DOM 结构 —— 两个节点之间可能存在哪些关系以及如何在节点之间任意移动。 产品部-前端面试题-答案 产品部 Beijing

2、DOM操作——如何添加、移除、移动、复制、创建和查找节点等。 3、事件——如何使用事件,以及IE和标准DOM事件模型之间存在的差 别。 4、XMLHttpRequest ——这是什么、怎样完整地执行一次GET请求、怎样检测 错误。 5、严格模式与混杂模式——如何触发这两种模式,区分它们有何意义。 6、盒模型——外边距、内边距和边框之间的关系,及IE8以下版本的浏览器 中的盒模型 7、块级元素与行内元素——怎么用CSS控制它们、以及如何合理的使用它们 8、浮动元素——怎么使用它们、它们有什么问题以及怎么解决这些问题。 9、HTML与XHTML——二者有什么区别,你觉得应该使用哪一个并说出理由。 10、JSON ——作用、用途、设计结构。 HTML 一、Doctype作用严格模式与混杂模式如何区分它们有何意义 (1)、 声明位于文档中的最前面,处于 标签之前。告知浏览器的解析器,用什么文档类型规范来解析这个文档。

计算机基础上机操作练习题

计算机基础上机操作练 习题 文档编制序号:[KKIDT-LLE0828-LLETD298-POI08]

计算机上机操作练习题(一级) 一、基本操作(不含Frontpage2003) (1)在D盘符下新建一个名称为“计算机考试+学号”的文件夹。 (2)将从C盘符下的前十个以“a”开头的文本文档复制到上题所建的文件夹中。并将第六个文本文档改为“只读、隐藏”格式,作者为“xju”。 (3)隐藏任务栏,将第一题所建的文件夹放入“开始”菜单。 (4)在桌面上创建第一题所建文件夹的“快捷方式”。 二、Word操作 (1)新建一个空白文档,输入以下文本。文本格式为:宋体、五号字;字体颜色为黑色;字符间距为1磅;对齐方式为左对齐。 迈克尔·约瑟夫·杰克逊(1958年8月29日—2009年6月25日),美国流行乐、 摇滚乐、R&B音乐歌手、舞蹈家、演员、编舞、慈善家和唱片制作人。被誉为流行 乐之王(King of Pop),是流行乐界最伟大、最有影响力的歌手。在20世纪80年 代起的整个现代流行音乐史上缔造了一个时代。 他用音乐歌颂大爱、种族团结与世界和平,谱写一首首慈 善、公益名曲,一生投身慈善事业,曾两次提名诺贝尔和 平奖。同时作为一名全面的艺 术家,杰克逊不仅在音乐方面 有着卓越成就,在舞蹈、舞台 表 演

、时尚等方面都有着独特的贡献和非凡的影响力,他被公认为是有史以来最伟大的艺人。 他是出色的音乐全才,在作词、作曲、场景制作、编曲、演唱、舞蹈、乐器演奏等方 面都有着卓越的成就。他作为主唱和最年轻的成员,在1964年首次亮相The Jackson 5乐队,后来又于1971年成功开始独唱生涯。1979年成年后发行第1张专辑《Off The Wal l》就被誉为迪斯科音乐经典之作,1982年发行专辑 《Thriller》,融合不同乐迷的良药,这张涵盖流行、funk、摇滚、迪斯科、R&B 天才之作,不仅突破了种族界限,打破了白人垄断流行音乐界,把当时还处于亚文化 黑人音乐推向主流,为后世的黑人艺人铺下了光明大道。 (2)为文本添加艺术字标题,标题为“Jackson简介”,第二行、第五列,字体为隶书、36号、加粗并居中显示,板式为浮于文字上方。 (3)将每一自然段空出两个字符(首行缩进2字符),并对第一段采用“首字下沉”效果,要求:字体为楷体,一号字,下沉行数为2行。 (4)段落行距为16磅,并将第二段分成两栏,格式为“两栏偏右”,栏间距为3字符,并带有分隔线。 (5)为第三段加边框和底纹,,要求:边框为方框、双波浪线、红色、底纹为淡黄色、20%。 (6)对“迈克尔·约瑟夫·杰克逊”进行添加超链接,链接地址为“”。 (7)在第一题所建的文件夹下新建一个文件夹,名称为“word”,并将该文档以“word+学号”的名称保存在此文件夹下。 三、Excel操作 (1)创建一个新工作簿,采用数据清单的方式插入如下数据。

Javascript笔试题及答案

J a v a s c r i p t笔试题及 答案 Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998

Javascript面试笔试题 考试时间90分钟 一、不定项选择题(每题3分,共30分) 1.声明一个对象,给它加上name属性和show方法显示其name值,以下 代码中正确的是( D ) A.var obj = [name:"zhangsan",show:function(){alert(name);}]; B.var obj = {name:"zhangsan",show:”alert”}; C.var obj = {name:"zhangsan",show:function(){alert(name);}}; D.v ar obj = {name:"zhangsan",show:function(){alert;}}; 2.以下关于Array数组对象的说法不正确的是( CD) A.对数组里数据的排序可以用sort函数,如果排序效果非预期,可以给 sort函数加一个排序函数的参数 B.reverse用于对数组数据的倒序排列 C.向数组的最后位置加一个新元素,可以用pop方法 D.unshift方法用于向数组删除第一个元素 3.要将页面的状态栏中显示“已经选中该文本框”,下列JavaScript语句正确的 是( A ) A.="已经选中该文本框" B.="已经选中该文本框" C.="已经选中该文本框" D.="已经选中该文本框" 4.点击页面的按钮,使之打开一个新窗口,加载一个网页,以下JavaScript 代码中可行的是( AD)

《大学计算机基础》部分问答题参考答案汇总

《大学计算机基础》部分问答题参考答案 重点看第 .... ....1.、.2.、.7.章问答题 只是部分问答题,重点还是要看书 ............... 第一章计算机基础知识 1.汉字输入编码可以分为几类,各有何特点? 答:汉字输入编码大致可以分为以下几类 (1)音码。特点:根据汉字的发音进行编码,简单易学,但重码太多,输入速度慢; (2)形码。特点:根据汉字的字形结构进行编码,重码少,输入速度快,但记忆量大; (3)音形码。特点:结合汉字的发音和字形结构进行编码,编码规则简单,重码少; (4)等长流水码。特点:采用相同长度的数字对每个汉字进行编码,无重码,难于记忆。 2.计算机有哪些基本特点? 答:1.运算速度快;2.存储容量大;3.计算精度高;4.逻辑判断力强; 5.自动化程度高 3.按计算机使用的主要电子逻辑部件划分,计算机的发展经历了哪几个阶段? 答:经历了四个阶段, 第一代,电子管,1946年-1953年;第二代,晶体管,1954年-1964年; 第三代,集成电路,1965年-1970年;第四代,大规模和超大规模集成电路,1971年至今 4.在计算机中表示数时,为什么要引入补码? 答:主要有两个原因,首先,它可以变减法运算为加法运算,简化了计算,提高了运算速度;其次,在补码中“0”的表示方法是唯一的。 5.简述计算机在信息社会的主要应用。 答:(1)科学计算(2)数据处理(3)过程控制(4)计算机辅助系统(5)人工智能(6)网络应用6.计算机为何使用二进制数,而不使用十进制数? 答:原因有三: (1)物理上容易实现,可靠性强; (2)运算规则简单,通用性强; (3)与逻辑命题的两个值“真”和“假”对应,便于逻辑运算。 7.简述冯·诺伊曼原理及其要点。 答:冯·诺伊曼原理的核心是“存储程序”和“存储控制”。其基本思想可以概括为三点:(1)用二进制形式表示数据和指令 (2)采用存储程序方式 (3)计算机由运算器、控制器、存储器、输入设备和输出设备五个部分组成。 8.简述计算机的基本组成,以及各部分的主要功能。 答:计算机是由运算器、控制器、存储器、输入设备和输出设备五个部分构成的; 各部件的主要功能: 运算器,负责算术和逻辑运算; 控制器,是计算机系统的控制中心,指挥计算机各部件协调地工作,保证计算机的正常运行; 存储器,存放正在运行的程序和数据; 输入设备,负责将程序和数据输入到计算机中; 输出设备,负责将计算结果输出。 第二章微型计算机系统

js_ext_jquery面试题

对js,ext,jquey的总结 一:js面试题 1.js中到的String你是怎么理解的 答:String是js中唯一可以变长的长度到值,存储方式是以数组存储的一般组合alert使用 \n:是代表回车 \r是代表换行 2.写js代码的时候要注意的语法 答:1.区分大小写 2.变量类型是弱类型 var 3.注释 //单行注释 /** 多行注释 **/ 4.变量名要是字母下划线 $ 5.数据类型: * 原始数据类型(栈) boolean,null,undefind,number,String * 引用数据类型(堆)比如对象 3.强类型变量和弱类型变量到区别 1.强类型变量:编译前必须要声明----->基于java 2.弱类型变量:编译前不需要声明(使用前不需要声明 , 而是解释器在运行时检查数据类型)---->js 3.在js中function()表示什么? 可不可以重载? function的声明方式? 答: 1.可以表示为---> 类 , 对象 , 方法 , 构造器 2.不可以重载(当function()的名字相同--->后面到会覆盖前面到)

3.function()是所有函数到父类例如:function 函数名(参数列明){ } 4.js的特点 答: 1.脚本语言,基于对象 2.基于java的,基于语句和控制流之上简单而紧凑 3.动态的脚本语言 4.依赖于浏览器本身于操作环境无关 5.以字符串解析执行 5.给你一页面,要你写JS代码拿对象,得到它值,然后进行一些操作 答: 第一种方法是 document.getEelementById("标签里面到id属性").value; 第二种方法是 document.getEelementsByName("标签里面name属性 ").value; 第三种方法是直接用document点name里面到属性例 如:document.xxx.xxx.value 这样就可以拿到值 6.你是怎么理解js里面到this关键字 答:this是对当前对象的引用,在js中由于对象到引用是多层次的,为了避免乱(谁调用了它,它就会指向谁) 7.js里面的警告框和询问框确认框有什么作用 答: 1.警告框为了输出js调式用例:alert("我是用于js调式"); 2.询问框为了询问你通不通过例:提问 var number=prompt("你到分数") if(number>100){通过}else{没有通过} 3.确认框为了让你确认的例: 确认 var name = confirm("js菜鸟") if(name==true){彼此彼此}else{你才是菜鸟} 8.js是的组成分为哪三部分 答:核心(Ecmscript) , 文档对象模型 , 浏览器对象模型 9.在js里面跳转一个页面用什么方法

相关主题