西安众合通用.net笔试题
2023-07-06
.net笔试题
姓名: 日期:
1. 填空: (1)面向对象的语言具有____封装____性、_____继承____性、____多态____性。
(2)能用foreach遍历访问的对象需要实现 _______IEnumerable_________接口或声明_______GetEnumerable_________方法的类型。
(3)列举ADO.net中的五个主要对象_______Command________、______Connection_______、_______DataAdapter________、_______DataSet________、_______DataReader__________。
2. 不定项选择:
(1) 以下叙述正确的是:bc
A. 接口中可以有虚方法。 B. 一个类可以实现多个接口。
C. 接口不能被实例化。 D. 接口中可以包含已实现的方法。
(2) 从数据库读取记录,你可能用到的方法有:bcd
A. ExecuteNonQuery B. ExecuteScalar
C. Fill D. ExecuteReader
3. 简述 private、 protected、 public、 internal 修饰符的访问权限。
答:public 不受限制的访问
Private 只能在本类中访问
Protected 本类和继承与他的类中的都能访问
Internal 同一个应用程序或类库中
4. 写出一条Sql语句: 取出表A中第31到第40记录(SQLServer, 以自动增长的ID作为主键, 注意:ID可能不是连续的。)
答:select top 10 from a where id not in(select top 30 from a)
或:select top 10 from a where id > (select max(id) from (select top 30 from a) as b)
5 .列举ASP.NET 页面之间传递值的几种方式。
答:
session(viewstate) 简单,但易丢失
application 全局
cookie 简单,但可能不支持,可能被伪造
input type=”hidden” 简单,可能被伪造
url参数 简单,显示于地址栏,长度有限
数据库 稳定,安全,但性能相对弱
6. 写出程序的输出结果
class Class1
private string str = “Class1.str”;
private int i = 0;
static void StringConvert(string str)
str = “string being converted.”;
static void StringConvert(Class1 c)
c.str = “string being converted.”;
static void Add(int i)
i++;
static void AddWithRef(ref int i)
i++;
static void Main()
int i1 = 10;
int i2 = 20;
string str = “str”;
Class1 c = new Class1();
Add(i1);
AddWithRef(ref i2);
Add(c.i);
StringConvert(str);
StringConvert(c);
Console.WriteLine(i1);
Console.WriteLine(i2);
Console.WriteLine(c.i);
Console.WriteLine(str);
Console.WriteLine(c.str);
答:10,21,0,str,string being converted.
7.写出程序的输出结果
public abstract class A
public A()
Console.WriteLine(‘A’);
public virtual void Fun()
Console.WriteLine(“A.Fun()”);
public class B: A
public B()
Console.WriteLine(‘B’);
public new void Fun()
Console.WriteLine(“B.Fun()”);
public static void Main()
A a = new B();
a.Fun();
答:A,B,A.Fun()
8. 写出程序的输出结果:
public class A
public virtual void Fun1(int i)
Console.WriteLine(i);
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);
答:2,5,1,6
9. 一列数的规则如下: 1、1、2、3、5、8、13、21、34……
求第30位数是多少, 用递归算法实现。(C#语言)
答:private int Add(int i)
if (i