(一)题型与分值分布
1、填空题(10小题,10分)
2、选择题(12小题,24分)
3、判断题(10小题,10分)
4、问答与分析题(6小题,28分)
5、程序填空题(4小题,18分)
6、程序设计题(1小题,10分)
(二)知识要点
一、C#基础知识
1、C#源文件的扩展名为cs,C#的编译器为csc
2、C#的数据类型分为两大类:值类型引用类型
3、小数类型:double、float、decimal类型。
【例1】 在C#编制的财务程序中,需要创建一个存储流动资金金额的变量theMoney,则应该将该变量定义为__decimal__类型。
4、整数相除的结果为整数,小数相除的结果为小数。
【例2】已知某专业有x名男生,每间宿舍住y个人,使用c#表达式__(x + y - 1) / y_可以用于计算宿舍总数。
【例3】假设变量a、b、c为大于1的整数,则代数式对应的c#表达式为 _____________1.0 / (a * b * c)
5、假设有两个整型数x和 y,则表达式 (x ^ y) ^ y值还原为x
6、将一个数左移N位相当于将一个数乘以2的n次方。
【例4】1<<8的结果为______256______。
7、基本数据类型的转换:隐式转换、强制转换、数据类型的自动提升。
    【例5】设有如下变量说明:                  (  B  )
byte myByte;     
int myInt;
long myLong;
float myFloat;
以下赋值语句哪个需要强制转换。
A.myInt = myByte;                     
B.myInt = myLong;
C.myByte = 3;
D.myFloat = myLong;
    【例6】以下代码的输出结果为:                (  B  )
          int a = 3;
          Console.WriteLine(" " + 2 + a);     // 23
          Console.WriteLine(2 + a);         // 5
          Console.WriteLine(2 + a + "");    // 5
          Console.WriteLine(2 + "" + a);     // 23
A.第2行出现编译错误               
B.输出  23, 5, 5 和23.
C.输出5, 5, 5 和23.               
D.输出 5, 5, 23 和23.
8、流程控制:if、switch、while、for、break、continue等语句。
【例7】设有如下代码段,当变量x的取值为__2 或3___能使程序输出"Two" 。                             
switch ( x ){
              case 1: ("One");break;
              case 2:
            case 3: "Two");break;
          default: ("end");
}
【例8】以下程序的运行结果为                              (    C    )
            int i,j,k;
            for (i = 0; i < 3; i++)                         // i的范围: 0, 1, 2
                for(j=1; j < 4; j++)                         // j的范围: 1, 2, 3
                    for(k=2; k<5; k++)                     // k的范围: 2, 3, 4
                        if((i == j)  && (j==k))        // i = j = k, only 2
                            Console.WriteLine(i);   
     
A. 0          B. 1        C. 2           D. 3 
9、参数传递:
(1)参数类型为int、double等基本数据类型时,实参与形参之间进行的是值传递。形参的变化不对实参造成影响。
【例9】请分析下面程序的输出结果
class Invoke
    {
        void Change(int x)
        {
            x = 3;
        }
        public static void Main(String[] args) 
        {     
              int x = 5;
              Invoke e1 = new Invoke();
              e1.Change(x);
              Console.WriteLine(x);
        }
}
输出:5
(2)当参数类型为数组,或者对象类型时,实参和形参之间进行地址传递。实参随着形参的变化而变化。
【例10】请分析下面程序的输出结果
class Invoke
    {
        int x;
        void Change(Invoke obj)
        {
            obj.x = 3;
        }
        public static void Main(String[] args)
        {
            Invoke e1 = new Invoke();
            e1.x = 5;
            e1.Change(e1);
            Console.WriteLine(e1.x);           
        }
    }
输出: 3
(3)当参数为基本数据类型时,要使用关键字ref才能实现地址传递。
【例11】请分析下面程序的输出结果
class Test
  {
        public static void Main(String [] args)
          {
            int x = 8;
              Change(ref x);
            Console.WriteLine(x);
writeline输出数值变量        }
        static void Change(ref int x){
            x += 2;
    }
}
输出:10
(4)输出型参数(out)用来从函数中返回结果。
10、方法重载指的是,一个类中允许出现多个同名的方法,只要参数个数或参数类型不同,编译器就认为这是两个不同的方法。
【例12】类Test1定义如下:                           
public  class  Test1
{
       public  float  aMethod(float  a,float  b){ return 1; }
        //here
}
将以下哪条语句插入here处将出现编译错误(   B   )
Apublic  float  aMethod(float  a, float  b,float  c){ return 1;}
Bpublic  int  aMethod(float  a,float b){return 1;  }
Cpublic  int  aMethod(int  a, int b){ return 1; }
D.private  float  aMethod(int a,int b,int c){ return 1; }
11、字符编码
    (1)C#中使用Unicode编码表示字符。
(2)在windows中文操作系统中,使用GBK/GB2312表示字符。
【例13】判断题:在windows中文操作系统中,创建的文本文件采用的默认的编码方案为Unicode。错,是GBK/GB2312
二、面向对象程序设计
1、面向对象的基本概念。
【例1】请举例说明面向对象和面向过程思维方式的区别。
面向过程编程先确定算法,再确定数据结构。
面向对象编程先确定数据结构,再确定运算。
S矩算法。2.编写一个计算S矩额方法。3.求面积方法需要两个参数(矩形的长和宽)
面向对象:1.一个矩形可看成一个对象。2.一个矩形有两属性(长宽)和一个行为(求面积)。3.将所有矩形的共性抽取出来设一个矩形类。4.通过矩形对象行为就可以求出某个具体的矩形对象的面积。
【例2】在定义一个类的时候,良好的软件工程的做法是:将成员变量定义为private,被封装的变量通过public的setter和getter取得和设置。请简述原因。
1.可以对赋值进行合法性检查。
2.可以在用户使用格式和私有变量存储格式之间进行转换。
3.当数据的存储格式发生变化时,只需要改动getset方法中的代码,其余代码不受影响。
4.控制变量的读写权限。
2、Object类是所有类的父类。
3、构造方法:(1)创建对象时被自动调用;(2)与类同名,不具有返回类型;(3)一旦编译器重载了构造方法后,不再自动生成不带参数的构造方法。
4、this关键字:一般用于构造函数,实例方法和实例访问器中访问成员。
    5、base关键字:(1)使用base关键字引用父类的成员;(2)还可以通过base(参数列表)引用父类的构造方法。
6、sealed关键字:(1)sealed类不能被继承;(2)sealed方法不能被重写。
【例3】判断题:在C#中,可以使用sealed关键字修饰抽象类。错,sealed不能被继承,抽象类就是用来被继承的
7、virtual关键字:定义的方法可以被子类重写。
8、abstract关键字:定义的方法为抽象方法;定义的类为抽象类。
9、interface关键字:在C#中通过接口的定义实现多继承。
10、引用类型转换:(1)子类对象可以当成父类对象使用;(2)父类对象只有经过强制转换后才能赋值给子类引用变量;(3)不能通过父类的引用访问子类对象新增加的成员。
【例4】设有如下类定义:
class A : Object
{
    public string name = "A";
    public void Sleep()

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。