(一)题型与分值分布
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 )
A.public float aMethod(float a, float b,float c){ return 1;}
B.public int aMethod(float a,float b){return 1; }
C.public 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.当数据的存储格式发生变化时,只需要改动get和set方法中的代码,其余代码不受影响。
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小时内删除。
发表评论