(一)面向对象程序设计(共124题,占83%)
[完成]面向对象相关概念(共7题,占5%)
1、 什么是面向对象?(知识点:面向对象的概念;难度:简单题)(5分)
面向对象OO = 面向对象的分析OOA + 面向对象的设计OOD + 面向对象的编程OOP; 通俗的解释就是万物皆对象,把所有的事物都看作一个个可以独立的对象(单元),它们可以自己完成自己的功能。
2、 阐述面向接口、面向对象编程的区别。(知识点:面向对象的概念;难度:简单题) (5
分)
面向对象可以理解为以一切元素都是对象,在设计时以对象为单位,考虑它的属性及方法。设计中采用了封装、继承、抽象的手法
面向接口本身就是面向对象的,无所谓区别,只不过面向接口的好处是耦合性低
3、 面向对象的思想主要包括什么?(知识点:面向对象的概念;难度:简单题) (5分) 继承:子类拥有父类的所有数据和操作。
封装:用抽象的数据类型将数据和基于数据的操作封装在一起,数据被保护在抽象数据类型内。
多态:一个程序中同名的不同方法共存的情况。有两种形式的多态–重载与重写。
4、 什么是类?(知识点:类的概念;难度:简单题) (5分) 把一些具有共性的对象归类后形成一个集合,它将数据以及这些数据上的操作封装在一起。
5、 类有哪些成员?(知识点:类的概念;难度:简单题) (5分)
字段、属性、方法、事件、运算符、索引器、构造函数、析构函数、嵌套类型。
6、 请详述类(class)与结构(struct)的异同?(知识点:类的概念;难度:简单题) (5分) Class可以被实例化,属于引用类型,是分配在内存的堆上的,Struct属于值类型,是分配在内存的栈上的.
(1、 结构的成员不能赋初值, 类可以
(2、 结构不能有继承,但可以实现接口,类都可以 (3、 结构不能有空构造函数,类可以
(4、 结构可以定义带参的构函数,负责初始化所有的成员字段
7、 请简述类和对象的关系。(知识点:类和对象;难度:简单题) (5分)
类是对象的抽象,而对象是类的具体实例。类是抽象的,不占用内存,而对象是具体的,占用存储空间。类是用于创建对象的蓝图,它是一个定义包括在特定类型的对象中的方法和变量的软件模板。
[完成]类的属性和方法(共28题,占19%)
1、 读程序写结果:(类的方法、简单题)(5分) static void Main(string[] args)
{
myclass c = new myclass(); c.showmsg();
Console.ReadKey(); }
class myclass {
private string msg; public void showmsg() {
msg = \ Console.WriteLine(msg); } }
答:Hello World
2、 编一个程序,定义类student和它的属性(学号,姓名,年龄,成绩),用类student生
成对象s,分别对对象s的成员赋值,然后输出对象s。(难易度:简单题;知识点:类的属性)(5分)
public class student {
public int ID{get;set;}
public string name{get;set;} public int age{get;set;} public float grade{get;set;} }
student s=new student(); s.ID=1234;
s.name=\爱迪生\ s.age=123; s.grade=187f;
Response.Write(s.ID+s.name+s.age+s.grade);
3、 下列代码的运行结果是什么(难易度:简单题;知识点:类的属性和方法)(5分) using System; class Test {
static void Main() {
Student stu = new Student(105); Console.WriteLine(stu.Age); stu.Age = 100;
Console.WriteLine(stu.Age); }
}
public class Student {
private int age = 10; public int Age {
get {
return this.age; } set {
if(value > 0 && value <= 100) {
this.age = value; } } }
public Student(int age) {
this.age = age; } }
答案:105
100
4、 编一个程序,定义类(有姓名,年龄,手机号码三个字段),再定义一个一维数组,使数
组元素为类,存入2条数据,然后依次输出,使用for循环语句进行输入输出操作。(难易度:难;知识点:类的属性)(10分)
public class Peo
{
public string name { get; set; } public int age { get; set; } public long phone { get; set; } }
protected void Page_Load(object sender, EventArgs e) {
Peo[] pp = new Peo[2];
for (int i = 0; i < 2; i++) {
pp[i] = new Peo(); }
for (int i = 0; i < 2; i++) {
pp[i].name = \安神补脑\
pp[i].age = i;
pp[i].phone = 123456789101; }
for (int i = 0; i < 2; i++) {
Response.Write(pp[i].name + pp[i].age + pp[i].phone); }
}
5、 定义一个描述学生通讯录的类,数据成员包括下列属性:姓名、学校、电话号码和邮编。
(难易度:简单;知识点:类的属性)(5分) public class StudentAddressList {
public string StudentName { get; set; }
public string SchoolName { get; set; }
public string Phone { get; set; } }
6、 定义一个员工类和员工教育经历类,体现出他们是一对多的关系。(难易度:较难;知
识点:类的属性)(10分)
public class Employee {
public int ID { get; set; } public string Name { get; set; } }
public class Education {
public int ID { get; set; } public string Edu { get; set; }
}
7、 编写一个程序,在其中创建物体类PhysicalObject,通过公有属性来访问其重量、体积、
密度,并通过公有方法来判断该物体是否会在水中下沉。(难易度:简单;知识点:类的属性和方法)(10分)
Public class PhysicalObject {
public double weight{get;set;} public double volume{get;set;} public double Density{ get;set;} public string kk() {
return (Density > 1 ? “下沉” : “不下沉”);
} }
8、 期末有三科成绩:语文、数学、英语,定义成类的属性
在类中写两个方法:(1)计算总成绩(2)计算平均成绩 (难易度:简单;知识点:类的属性和方法)(10分)
public class cs {
public float ch { get; set; } public float en { get; set; } public float ma { get; set; } public float Sum() {
return ch + en + ma; }
public float Ave() {
return (ch + en + ma) / 3; } }
9、 定义一个矩形类,有长、宽两个属性,在类中写计算周长和面积的方法 (难易度:简单;知识点:类的属性和方法)(10分)
public class jx
{
public float l { get; set; } public float k { get; set; } public string Cir() {
return (l + k) * 2; }
public string Area() {
return l * k; }
} 10、 计算产品总金额 属性:商品数量、商品价格 方法:计算商品金额(不打折)、计算商品金额(打折),这是两个重载 (难易度:简单;知识点:类的属性和方法)(10分) public class sp {
public float sl { get; set; } public float jg { get; set; }