}
public void Fun2(A a) {
a.Fun1(1);
Fun1(5); } }
public class B : A {
public override void Fun1(int i) {
base.Fun1 (i + 1); }
public static void Main() {
B b = new B();
A a = new A();
a.Fun2(b);
b.Fun2(a); } }
15.一列数的规则如下: 1、1、2、3、5、8、13、21、34......求第30位数是多少,用递归算
法实现。
16.程序设计: 猫大叫一声,所有的老鼠都开始逃跑,主人被惊醒。(C#语言)
要求: 1.要有联动性,老鼠和主人的行为是被动的。2.考虑可扩展性,猫的叫声可能引起其他联动效应。
参考答案
1.(1) 继承性、封装性、多态性。 (2) IEnumerable 、 GetEnumerator (3) 对ADO.net的了解 2. (1) B、C (考对接口的理解) (2) B、C、D (考查对ADO.net的熟练程度)
3. private : 私有成员, 在类的内部才可以访问。protected : 保护成员,该类内部和继承类中可以访问。public : 公共成员,完全公开,没有访问限制。internal: 在同一命名空间内可以访问。
4. 解1: select top 10 * from A where id not in (select top 30 id from A)
解2: select top 10 * from A where id > (select max(id) from (select top 30 id from A )as A)
5. 1.使用QueryString, 如....id=1; response. Redirect()2.使用Session变量3.使用Server.Transfer
6. (考查值引用和对象引用) 10 21 0 Str
string being converted.
7. A B
A.Fun()
(考查在继承类中构造函数, 以及new 方法, ) 8. 2 5 1 6
评分标准: 答对一点得2分,两点得5分,3点得7分。全对得10分。 9.
public class MainClass
{
public static void Main() {
Console.WriteLine(Foo(30)); }
public static int Foo(int i) {
if (i <= 0) return 0;
else if(i > 0 && i <= 2) return 1;
else return Foo(i -1) + Foo(i - 2); } }
评分标准: 写出return Foo(i -1) + Foo(i - 2); 得5分。 写出if(i > 0 && i <= 2) return 1; 得5分。
方法参数过多需要扣分(扣除分数 = 参数个数 - 1) 不用递归算法扣5分
(递归算法在树结构建立等方面比较常用)
10.要点:1. 联动效果,运行代码只要执行Cat.Cryed()方法。2. 对老鼠和主人进行抽象 评分标准: <1>.构造出Cat、Mouse、Master三个类,并能使程序运行(2分) <2>从Mouse和Master中提取抽象(5分)
<3>联动效应,只要执行Cat.Cryed()就可以使老鼠逃跑,主人惊醒。(3分) public interface Observer {
void Response(); //观察者的响应,如是老鼠见到猫的反映 }
public interface Subject {
void AimAt(Observer obs); //针对哪些观察者,这里指猫的要扑捉的对象---老鼠 }
public class Mouse : Observer {
private string name;
public Mouse(string name, Subject subj) {
this.name = name; subj.AimAt(this); }
public void Response() {
Console.WriteLine(name + \} }
public class Master : Observer {
public Master(Subject subj) {
subj.AimAt(this); }
public void Response() {
Console.WriteLine(\} }
public class Cat : Subject {
private ArrayList observers; public Cat() {
this.observers = new ArrayList(); }
public void AimAt(Observer obs) {
this.observers.Add(obs); }
public void Cry() {
Console.WriteLine(\
foreach (Observer obs in this.observers) {
obs.Response(); } } }
class MainClass {
static void Main(string[] args) {
Cat cat = new Cat();
Mouse mouse1 = new Mouse(\Mouse mouse2 = new Mouse(\Master master = new Master(cat); cat.Cry(); } }
//---------------------------------------------------------------------------------------------设计方法二: 使用event
-- delegate设计..
public delegate void SubEventHandler(); public abstract class Subject {
public event SubEventHandler SubEvent; protected void FireAway() {
if (this.SubEvent != null) this.SubEvent(); } }
public class Cat : Subject {
public void Cry() {
Console.WriteLine(\this.FireAway(); } }
public abstract class Observer {
public Observer(Subject sub) {
sub.SubEvent += new SubEventHandler(Response); }
public abstract void Response(); }
public class Mouse : Observer {
private string name;
public Mouse(string name, Subject sub) : base(sub) {
this.name = name; }
public override void Response() {
Console.WriteLine(name + \} }
public class Master : Observer {
public Master(Subject sub) : base(sub){} public override void Response() {