4.说出下面各处正确或错误的理由(写在该行) class Test { int x; static int y; void F() { x = 1; //ok y = 1; //ok } static void G() { x = 1; //error y = 1; //ok } static void Main() { Test t = new Test(); t .x = 1; // Ok t .y = 1; // Error(因为Y是静态的不能动态声明引用) Test.x = 1; // Error (因为Test是类名,而x是动态的,必须先声明才能引用Test类里的x) Test.y = 1; // Ok } } 4. 简要的谈谈你对多态的理解,并简单的实现一个多态的例子 1.简化了设计过程,因为组件开始时可以很小,具有最小功能;之后,组件继续提供最小功能,同时不断插入其他的功能,并通过实际使用那些功能来确定合适的功能。 2.简化了兼容性的维护,因为组件的新版本可以在添加新接口的同时继续提供现有接口。客户端应用程序的后续版本可以利用这些接口的优点 3.在继承类中实现实例化。它可以包含已实现的方法和属性,但也可以包含未实现的过程,这些未实现过程必须在继承类中实现。这使您得以在类的某些方法中提供不变级功能,同时为其他过程保持灵活性选项打开。抽象类的另一个好处是:当要求组件的新版本时,可根据需要将附加方法添加到基类,但接口必须保持不变。 示例:实现多态性的程序 using System ; public class DrawingBase { public virtual void Draw( ) {
Console.WriteLine("I'm just a generic drawing object.") ; } } public class Line : DrawingBase { public override void Draw( ) { Console.WriteLine("I'm a Line.") ; } } public class Circle : DrawingBase { public override void Draw( ) { Console.WriteLine("I'm a Circle.") ; } } public class Square : DrawingBase { public override void Draw( ) { Console.WriteLine("I'm a Square.") ; } } public class DrawDemo { public static int Main(string[] args) { DrawingBase [] dObj = new DrawingBase [4]; dObj[0] = new Line( ) ; dObj[1] = new Circle( ) ; dObj[2] = new Square( ) ; dObj[3] = new DrawingBase( ) ; foreach (DrawingBase drawObj in dObj) drawObj.Draw( ) ; return 0; } } 输出结果是: I'm a Line. I'm a Circle. I'm a Square. I'm just a generic drawing object.
2. 说出结果 a. var x=0/0; if (x !=x){ document.write(“x!=x”); }else{ document.write(“x==x”); }
b. var i=1; switch (i) { case 1: case 2: alert(“good”);break; case 3: alert(“end”);break; } (我觉得会出错,因为没有break) 3.如果一个页面与数据库有频繁的交互,但又不能让页面刷新的太厉害,您有什么好的方法?
第三部分:ms sql server相关 1.下面关于索引的描述中。哪些是正确的?( A ) A、索引能够加快查询的速度 B、索引可能会降低数值的更新速度 C、应该尽可能多的为表建立索引 2.用tsql实现: a. 如果一个表(table1)存在就删除,否则就创建(假设表只有一个varcahr(50)的字段) if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Table1]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[Table1] GOCREATE TABLE [dbo].[Table1] ( [name] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ) ON [PRIMARY] GO b. 使用select语句根据表table1(sex bit)中的sex的值返回一张表 (sex char(2)),规则如下: 当sex为0时返回’男’,为1时返回’女’。 select case when table1.sex=0 then '男' else '女' end as sex from table1 3. 现有表 Table1 Table2,其字段相同([姓名] varchar(10)),现要得到Table1中在Table2中没有的姓名,请写出Sql语句。
4.写一个存储过程,要求传入一个表名,返回该表的记录数(假设传入的表在数据库中都存在) create proc proTable @tableName Nvarchar(50) as declare @sql nvarchar(4000) set @sql='select count(*) from '+@sql exec (@sql) (好像有点不符合要求)
a. var x=0/0; if (x !=x){ document.write(“x!=x”); }else{ document.write(“x==x”); } Result: x!=x b. var i=1; switch (i) { case 1: case 2: alert(“good”);break; case 3: alert(“end”);break; } Result:Good
a. 如果一个表(table1)存在就删除,否则就创建(假设表只有一个varcahr(50)的字段) if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Table1]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[Table1] elseCREATE TABLE [dbo].[Table1] ( [name] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ) ON [PRIMARY] GO 修改一下
create table table1 (name varchar (50)) create table table2 (name varchar (50))insert into table1 select 'a' union select 'b' union select 'c'insert into table2 select 'a' union select 'b' select * from table1 A where Not Exists(Select * from table2 where name=a.name)
4.写一个存储过程,要求传入一个表名,返回该表的记录数(假设传入的表在数据库中都存在)『 create produce nyspc @name varchar, @count int out as select @count = select count(*) from @name』
我看上面都有参与回答,我也给点意见吧,第一部分第4题,我给补上32楼的。 4.说出下面各处正确或错误的理由(写在该行) class Test { int x; static int y; void F() { x = 1; //ok y = 1; //ok } static void G() { x = 1; //error 静态方法只能访问静态的变量,而x不是静态的,所以错。 y = 1; //ok 这个正好相反,Y是静态变量,静态方法可以访问; } static void Main() { Test t = new Test(); t .x = 1; // Ok t .y = 1; // Error Test.x = 1; // Error Test.y = 1; // Ok } } 其他的,我也在学习。看来要学的很多啊!
先回答一个。
private--使成员仅可从声明它的类内部访问。
protected--使成员可以从声明它的类及派生类内部访问。
private void test(string str){…}
private void test(ref string str){…}
private void test(out string str){…}值参数,引用参数,输出参数
具体区别上百度或者任何一本C#基础的书找
DateTime localTime = DateTime.Now;
Response.Write("<script>alert('" + localTime + "');</script>");
2.前2个知道,out不知道
3.我的想法是如果是web的话那么DATETIME.NOW之后应该就可以了;但如果这样考貌似意义不大,太简单了
4.基本上都知道
5.多态不了解js部分不看了,上面的就知道自己如果去面试那就挂了。
第一部分:C#、Asp.net相关
1. 简要说出private、protected的区别
private:本类内部使用
Protected:本类和其子类使用
2. 说出下面几个函数的区别:
private void test(string str){…}
private void test(ref string str){…}
private void test(out string str){…}
第一个:传递值类型
第二个:传递引用类型参数
第三个:输出参数
3. 写代码:取得服务器时间并显示(弹出消息框即可),要求完全在服务器端实现(提示:在C#中使用Response.Write()方法)
4.说出下面各处正确或错误的理由(写在该行)
class Test
{
int x;
static int y;
void F() {
x = 1; //ok
y = 1; //ok
}
static void G() {
x = 1; //error
y = 1; //ok
}
static void Main() {
Test t = new Test();
t .x = 1; // Ok
t .y = 1; // Error(因为Y是静态的不能动态声明引用)
Test.x = 1; // Error (因为Test是类名,而x是动态的,必须先声明才能引用Test类里的x)
Test.y = 1; // Ok
}
}
4. 简要的谈谈你对多态的理解,并简单的实现一个多态的例子
1.简化了设计过程,因为组件开始时可以很小,具有最小功能;之后,组件继续提供最小功能,同时不断插入其他的功能,并通过实际使用那些功能来确定合适的功能。
2.简化了兼容性的维护,因为组件的新版本可以在添加新接口的同时继续提供现有接口。客户端应用程序的后续版本可以利用这些接口的优点
3.在继承类中实现实例化。它可以包含已实现的方法和属性,但也可以包含未实现的过程,这些未实现过程必须在继承类中实现。这使您得以在类的某些方法中提供不变级功能,同时为其他过程保持灵活性选项打开。抽象类的另一个好处是:当要求组件的新版本时,可根据需要将附加方法添加到基类,但接口必须保持不变。
示例:实现多态性的程序
using System ;
public class DrawingBase
{
public virtual void Draw( )
{
Console.WriteLine("I'm just a generic drawing object.") ;
}
}
public class Line : DrawingBase
{
public override void Draw( )
{ Console.WriteLine("I'm a Line.") ; }
}
public class Circle : DrawingBase
{
public override void Draw( )
{ Console.WriteLine("I'm a Circle.") ; }
}
public class Square : DrawingBase
{
public override void Draw( )
{ Console.WriteLine("I'm a Square.") ; }
}
public class DrawDemo
{
public static int Main(string[] args)
{
DrawingBase [] dObj = new DrawingBase [4];
dObj[0] = new Line( ) ;
dObj[1] = new Circle( ) ;
dObj[2] = new Square( ) ;
dObj[3] = new DrawingBase( ) ;
foreach (DrawingBase drawObj in dObj)
drawObj.Draw( ) ;
return 0;
}
}
输出结果是:
I'm a Line.
I'm a Circle.
I'm a Square.
I'm just a generic drawing object.
第二部分:javascript相关
1. 解释以下语句的含义:
a. v1=opener.v1;
b. if(100 = = ”100”){…}
c. if(100 = = = ”100”){…}
d.function printBlank(){
var coll=document.all;
if(coll != null){
for(i=0;i <coll.length;i++){
if(coll.item(i).tagName=="INPUT"){
coll.item(i).style.visibility="hidden";
}
}
}
}
2. 说出结果
a. var x=0/0;
if (x !=x){
document.write(“x!=x”);
}else{
document.write(“x==x”);
}
b. var i=1;
switch (i)
{
case 1:
case 2: alert(“good”);break;
case 3: alert(“end”);break;
} (我觉得会出错,因为没有break)
3.如果一个页面与数据库有频繁的交互,但又不能让页面刷新的太厉害,您有什么好的方法?
第三部分:ms sql server相关
1.下面关于索引的描述中。哪些是正确的?( A )
A、索引能够加快查询的速度
B、索引可能会降低数值的更新速度
C、应该尽可能多的为表建立索引
2.用tsql实现:
a. 如果一个表(table1)存在就删除,否则就创建(假设表只有一个varcahr(50)的字段)
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Table1]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[Table1]
GOCREATE TABLE [dbo].[Table1] (
[name] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
) ON [PRIMARY]
GO
b. 使用select语句根据表table1(sex bit)中的sex的值返回一张表 (sex char(2)),规则如下: 当sex为0时返回’男’,为1时返回’女’。
select case when table1.sex=0 then '男' else '女' end as sex from table1
3. 现有表 Table1 Table2,其字段相同([姓名] varchar(10)),现要得到Table1中在Table2中没有的姓名,请写出Sql语句。
4.写一个存储过程,要求传入一个表名,返回该表的记录数(假设传入的表在数据库中都存在)
感觉js简单点。继续看
select [name] from table1
where [name] not in( select [name] from table2)
create proc proTable
@tableName Nvarchar(50)
as
declare @sql nvarchar(4000)
set @sql='select count(*) from '+@sql
exec (@sql)
(好像有点不符合要求)
if (x !=x){
document.write(“x!=x”);
}else{
document.write(“x==x”);
}
Result: x!=x
b. var i=1;
switch (i)
{
case 1:
case 2: alert(“good”);break;
case 3: alert(“end”);break;
} Result:Good
写存储过程,恐怕不查资料写不全,大概怎么写是知道.
还有那个查不存在的表记录的,不用not in还有啥好办法,学习下
结果是true
c. if(100 = = = ”100”){…}
结果是false
但没用过不理解是什么意思.不知道在网上可不可以查到
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Table1]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[Table1]
elseCREATE TABLE [dbo].[Table1] (
[name] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
) ON [PRIMARY]
GO 修改一下
结果是true
c. if(100 = = = ”100”){…}
结果是false
但没用过不理解是什么意思.不知道在网上可不可以查到
----------------------------------------------------------
== 是js的比较运算,javaScript会自动把类型转换后比较,所以第一个就是true;而===是完全等的意思,这就要类型和数据都相等才成立
create table table2 (name varchar (50))insert into table1
select 'a' union
select 'b' union
select 'c'insert into table2
select 'a' union
select 'b' select * from table1 A where Not Exists(Select * from table2 where name=a.name)
1. 简要说出private、protected的区别 『private 声明的成员只在本类里面有效』
『protected 声明的成员处在本类里面有效外,在本类的继承类,子类,里面也有效 』
2. 说出下面几个函数的区别:
private void test(string str){…}
『str 只做参数的传入,test方法的操作不影响真实传入的‘str’ 』
private void test(ref string str){…}
private void test(out string str){…}
『 test方法都将影响传入的str的真实值,即test执行完后,传入参数的值会随之改变。ref和out的区别在,调用ref的test前,str必须初始化,即赋值,至少写成 string str = “”; 而out只需要声明即可,即 string str; 』
3. 写代码:取得服务器时间并显示(弹出消息框即可),要求完全在服务器端实现(提示:在C#中使用Response.Write()方法) 『
//写成啦控制台程序,核心部分一样。如果是asp.net的,弹出框是::
//Page.RegisterStartupScript("","<script>alert('服务器时间是"+DateTime.Now+"');</script>")
//
using System;namespace GetTime
{
class GetTimeClass
{
[STAThread]
static void Main(string[] args)
{
//显示时间,年+月+日+时+分+秒
Console.WriteLine("当前时间是:{0}",DateTime.Now);
//停留
Console.Read(); }
} }
』
4.说出下面各处正确或错误的理由(写在该行)
class Test
{
int x;
static int y;
void F() {
x = 1; //ok 『变量已经在类里面定义,可以负值?』
y = 1; //ok 『变量已经在类里面定义,可以负值?』
}
static void G() {
x = 1; //error 『?』
y = 1; //ok 『?』
}
static void Main() {
Test t = new Test();
t .x = 1; // Ok 『该类已经实例化,x可以直接访问』
t .y = 1; // Error 『y是静态变量,不能直接赋值??』
Test.x = 1; // Error 『x是动态变量,类没有是列化,不能直接访问』
Test.y = 1; // Ok 『y是静态变量,可以直接访问』
}
}
4. 简要的谈谈你对多态的理解,并简单的实现一个多态的例子
『可以统一接口,程序部分更新时,不影响其他使用该类的部分便于程序的更新。』
『
class Para ()
{
public virture void d ()
{
Console.WriteLine("hello!");
}
}class bara()
{
public override void d()
{ Console.WriteLine("Word!"); }
}//拒绝多态class dd()
{
public new void d()
{
Console.WriteLine("No !");
}
}
』
第二部分:javascript相关
1. 解释以下语句的含义:
a. v1=opener.v1; 『不懂』
b. if(100 = = ”100”){…} 『如果100=100???』
c. if(100 = = = ”100”){…} 『??』
d.function printBlank(){ 『查找页面内的所有控件,如果该控件的类型是“INPUT”,则将它瘾藏』
var coll=document.all;
if(coll != null){
for(i=0;i <coll.length;i++){
if(coll.item(i).tagName=="INPUT"){
coll.item(i).style.visibility="hidden";
}
}
}
}
2. 说出结果
a. var x=0/0; 『好像是想问js里面的空值是否相等的问题,不太清楚,我猜的话,会选 “x!=x”』
if (x !=x){
document.write(“x!=x”);
}else{
document.write(“x==x”);
}
b. var i=1; 『跳出对话框,good 』
switch (i)
{
case 1:
case 2: alert(“good”);break;
case 3: alert(“end”);break;
}
3.如果一个页面与数据库有频繁的交互,但又不能让页面刷新的太厉害,您有什么好的方法?
『1.使用iframe将数据区隔离出来,2.使用缓存』
『在想ajax,,,觉得他实质上还是js,并不能控制与服务器的数据交互,但还是要写上的,哈哈』
第三部分:ms sql server相关
1.下面关于索引的描述中。哪些是正确的?( a )
A、索引能够加快查询的速度
B、索引可能会降低数值的更新速度
C、应该尽可能多的为表建立索引
2.用tsql实现:
a. 如果一个表(table1)存在就删除,否则就创建(假设表只有一个varcahr(50)的字段)
『不完整,大概记得:
if excite ( select * from sysobjects where id = youTable )
drop youTable
else
creat table youTable
???
参看别人的吧。
』
b. 使用select语句根据表table1(sex bit)中的sex的值返回一张表 (sex char(2)),规则如下: 当sex为0时返回’男’,为1时返回’女’。
『不会』
3. 现有表 Table1 Table2,其字段相同([姓名] varchar(10)),现要得到Table1中在Table2中没有的姓名,请写出Sql语句。
『想』
4.写一个存储过程,要求传入一个表名,返回该表的记录数(假设传入的表在数据库中都存在)『
create produce nyspc
@name varchar,
@count int out
as
select @count = select count(*) from @name』
4.说出下面各处正确或错误的理由(写在该行)
class Test
{
int x;
static int y;
void F() {
x = 1; //ok
y = 1; //ok
}
static void G() {
x = 1; //error 静态方法只能访问静态的变量,而x不是静态的,所以错。
y = 1; //ok 这个正好相反,Y是静态变量,静态方法可以访问;
}
static void Main() {
Test t = new Test();
t .x = 1; // Ok
t .y = 1; // Error
Test.x = 1; // Error
Test.y = 1; // Ok
}
}
其他的,我也在学习。看来要学的很多啊!