第一套:用友软件笔试题目
1、 面向对象的语言具有___封装__性、___继承__性、___多态_性。
2、 能用foreach遍历访问的对象需要实现 __ IEnumerable __接口或声明__GetEnumerator __方法的类型。
3、 以下叙述正确的是:
A. 接口中可以有虚方法。 B. 一个类可以实现多个接口。
C. 接口不能被实例化。 D. 接口中可以包含已实现的方法。
4、 简述 private、 protected、 public、 internal 修饰符的访问权限。
Private 私有成员:只有本类内部可以访问
Protected 受保护成员:只有本类和本类的子类可以访问
Public 公有成员:完全公开,没有访问限制
Internal :在同一命名空间下可以访问
5、写出一条Sql语句: 取出表A中第31到第40记录(SQLServer, 以自动增长的ID作为主键, 注意:ID可能不是连续的。)
select top 10 from A where id not in (select top 30 id from A)
5、 DataReader与DataSet有什么区别?
(1)、dataset表示一个数据集,是数据在内存中的缓存。 可以包括多个表;
(2)、dataset连接数据库时是非面向连接的。把表全部读到Sql中的缓冲池,并断开于数据库的连接
(3)、datareader 连接数据库时是面向连接的。读表时,只能向前读取,读完数据后有用户决定是否断开连接。
6、 简述什么是装箱?
把一个值类型的数据转换为引用类型的数据的过程叫装箱。
7、 下列选项中,(c)是引用类型。
a) enum类型 b) struct类型
c) string类型 d) int类型
8、 一个数据库中的一个表中有 year 、salary这两个字段,原表中数据如原表,请用SQL查询出结果显示的数据:
原表中数据:
year salary
-----------------------------------------
2000 1000
2001 2000
2002 3000
2003 4000
结果表中数据:
year salary
------------------------------------------
2000 1000
2001 3000
2002 6000
2003 10000
写出SQL语句如下:
create table test([year] int ,salary int)
insert test(year,salary) values(2000,1000)
insert test(year,salary) values(2001,2000)
insert test(year,salary) values(2002,3000)
insert test(year,salary) values(2003,4000)
select t1.year, (select sum(salary) from test as t2 where t2.year<=t1.year) as salary from test t1 order by year asc
9、运行下列代码:
class A
{
public A()
{
PrintFields();
}
public virtual void PrintFields(){}
}
class B : A
{
int x = 1;
int y;
public B()
{
y = -1;
}
public override void PrintFields()
{
Console.WriteLine("x={0},y={1}", x, y);
}
}
new B()时,输出的结果是:x=?;y=?
x=1;y=0
10、用C#写出singleton(单例)模式的例子?
<一>、我对单例模式的理解说明如下:
单例模式的意图是:保证一个类仅有一个实例,并提供一个访问它的全局访问点。
它的工作原理是:用一个特殊的方法来实例化所需的对象。其中最关键的就是这个特殊的方法:
(1)、调用这个方法时,检查对象是否已经实例化。如果已经实例化,该方法仅返回对该对象的一个引用。如果尚未实例化,该方法就实例化该对象并返回对此新实例的一个引用。
(2)、为了确保这是实例化此类型对象的唯一方法,我将这个类的构造函数定义为保护的或者私有的。
<二>、详细实例如下:
using System;
class Singleton
{
private static Singleton instance;
protected Singleton() {}
public static Singleton Instance()
{
if( instance == null )
instance = new Singleton();
return instance;
}
}
public class Client
{
public static void Main()
{
Singleton s1 = Singleton.Instance();
Singleton s2 = Singleton.Instance();
if( s1 == s2 )
Console.WriteLine( "The same instance" );
}
}