C#考试复习总结
选择题
1.下列数据类型中,不属于基本数据类型的是(D)。
A.数值类型
B.字符类型和字符串类型
C.布尔类型与对象类型
D.结构类型
2.要使用变量score来存储学生某一门课程的成绩(百分制,可能出现小数部分),则最好
将其定义为(C)类型的变量。
A.int
B.decimal
C.float
D.double
3.下列标示符中,非法的是(B)。
A.MyName
B.c_sharp
C.abc2cd
D._123
4.已定义下列变量:
int n;float f;double df;
df=10;n=2;
下列语句正确的是(C)。
A.f=12.3;
B.n=df;
C.df=n=100;
D.f=df;
5.下列表达式中,有语法错误的是(A)。
A.n=12%3.0(n为int类型)
B.12/3.0;
C.12/3;
D.‘a’>‘b’;
6.已知a,b,c均为整形变量,下列表达式的值等于(A)。
b=a=(b=20)+100
A.120
B.100
C.20
7.下列语句中,不能够正确定义长度为4的数组a的语句是(C)。
A.int[]a=new int[]{1,2,3,4;}
B.int[]a={1,2,3,4};
C.int[]a=new int[4]{1,2,3};
D.int[]a=new int[4]{1,2,3,4};
8.若二维数组a有4行6列,那么该数组中第15个元素的访问方法是(D)。
A.a[15]
B.a[3,3]
C.a[3][3]
D.a[2,2]
9.以下装箱、拆箱语句中,错误的有(B)。
A.object obj=100;int m=(int)obj;
B.object obj=100;int m=obj;
C.object obj=(int)100;int m=(int)obj;
D.object obj=(object)100;int m=(int)obj;
10.下面有关变量和常量的说法,正确的是(C)。
A.在程序运行过程中,变量的值是不能改变的,而常量是可以改变的。
B.常量定义必须使用关键词const
C.在给常量赋值的表达式中不能出现变量
D.常量在内存中的存储单元式固定的,变量则是变动的
11.对于语句“if(表达式)语句块”,下列说法正确的是(D)。
A.语句中的“表达式”可以是任意类型的表达式
B.语句中的“表达式”可以是整型表达式或者布尔表达式
C.如果“表达式”的值为非零值则执行后面的语句块,为零则不执行
D.不管“表达式”的形式如何,但其返回值必须是布尔类型,如果返回true则执行后面的
语句块,否则不执行
12.下列代码段中,语法正确的是(A)。
A.int n=0;
B.int n=0;
C.for(int I=0;sum=0;i<10;i++)
D.int sum=0;
if(n==1)if(n=1){int i=0;
{{sum=sum+i;while(1) int x=n;int x=n;}{ }}sum=sum+i;
if(i==9)break;
}
13.下面关于if语句和switch语句的说法,正确的是(C)。
A.如果在if语句和switch语句中嵌入break语句,则在程序执行过程中一旦执行到break
语句,则会结束相应语句的执行,而转向执行其后面的语句
B.凡是能够使用if语句的地方就可以使用switch语句,反之亦然
C.if语句有3种基本形式,if…、if…else…、if…else if…else…
D.if语句本质上是实现“单判断二分支”的选择结构,switch语句则是用于实现“单判断多
分支”的选择结构。
14.下面关于for语句的说法,错误的是(B)。
A.for语句中的3个表达式都可以省略
B.for语句的3个表达式,如果第二个表达式的返回值为true,则执行循环体中的语句,
知道第3个表达式的返回值为false
C.for语句的3个表达式中,第二个表达式必须是布尔类型的表达式,其他两个可以是任
意类型的表达式
D.for语句的3个表达式中,第一个表达式执行且仅执行一次;每当循环体语句被执行以
后,第3个表达式都跟着被执行一次
15.下面关于while语句和do…while语句的说法,正确的是(A)。
A.对于do…while语句,当循环条件表达式的值是为true时执行循环体语句,为false时终
止语句的执行
B.While语句比do…while语句具有更高的执行效率
C.对于do..while语句,当循环条件表达式的值为false时执行循环体语句,为false时终止
语句的执行
while语句里的ifD.两者的功能是一样的,具体使用哪一种主要有程序员的喜好来决定
16.对于foreach语句和for语句,下列说法错误的是(B)。
A.for语句与foreach语句在结构上不一样,前者有3个表达式,表达式间用分号隔开;后
者仅有一个“表达式”,形式为“数据类型变量in集合表达式”
B.语句“for(;true;);”是合法的,但是个死循环;“foreach(true);”也是合法的,
也是一个死循环
C.语句“for(;true;);”是合法的,但是个死循环;而“foreach(true);”是非法的
D.语句块“int[]a={1,2};foreach(int I in a);”是合法的
17.对于跳转语句,下列说法错误的是(A)。
<语句可以实现从程序的一个地方跳转到任意一个地方
<语句的跳转功能限于一个同一个语句块内
C.break语句可以终止整个循环语句,而continue只是提前结束本次循环,但循环语句仍
在执行
D.不管在哪里,一旦执行到return语句,会结束当前整个函数的执行
18.下列关于类的定义,错误的是(D)。
A.class A
B.class A
C.class A class A
{{{{
void f(){}void f(){}private void f(){return;}f(){}
}}}}
19.假设类B继承了类A,下列说法错误的是(C)。
A.类B中的成员可以访问类A中的公有成员
B.类B中的成员可以访问类A中的保护成员
C.类B中的成员可以访问类A中的私有成员
D.类B中的成员可以访问类A中的静态成员
20.在类A中试图重载构造函数,并使用构造函数创建对象;
class A
{
A(){}
public void A(int x){}//语句1
public A(int x,int y){}//语句2
}
class Program
{
static void Main(string[]args)
{
A a=new A();//语句3
A b=new A(100,200);//语句4
}
}
其中,正确的语句包括(B)。
A.语句2和语句4
B.语句1、语句3和语句5
C.语句1、语句2和语句3
D.语句4和语句5
21.在类A中定义了属性y:
Class A();
{
Public int y
{
get{return1;}
Set{}
}
}
并试图通过下列代码实现对属性y的访问;
A b=new A();
b.y=2;
int x=b.y;
对此下列说法正确的是(D)
A属性y可读可写,因此变量x的值为2.
B属性y可读但不可写,因此语句“b.y=2;”是错的。
C属性y可写,但不可读,因此语句“int x=b.y”是错误的。
D属性y可读可写,变量x的值是1.
22.静态成员,下列说法正确的是(B)
A同一个类的静态成员,类实例化后,在不同的对象中形成不同的静态成员。
B在实例化后,同类型的对象都共享类的静态成员,静态成员只是一个版本。
C在类定以时静态成员属于类,在类实例化后静态成员属于对象。
D在类实例化后静态成员也别实例化,因此不同的对象有不同的静态成员。
23.对于多态,下列说法错误的是(B)
A多态实上就是重载,他们本质上是一样的
B多态可以分为编译时多态和运行时多态。前者的特点是在编译时就能确定要调用成员方法的哪个版本,后者则是在程序运行时才能确定要调用成员方法的哪个版本。
C编译时多态是在程序运行时才能确定要调用成员方法的哪个版本,而运行时多态在编译时就能确定要调用成员方法的哪个版本
D多态和重载是两个弯曲不同的概念,前者是通过定义虚方法和重写虚方法来实现,后者是通过对同一个函数名编写多个不同的实现代码来完成。
24下面代码在类A中重载了减号“—”:
Class A
{
Private int X;
Public static A operator–(A b,A c)
{
A a=newA();a.setx(3);
A b=newA();b.setx(6);
A c=a-b;
Int ();
结果n的值为(C)
A-3B-6C-18D9
25下面关于接口的说法,错误的是(D)。
A.接口中定义的方法都必须是虚方法
B.接口中定义的方法可以编写其实现代码
C.继承接口的类可以提供被继承接口中部分成员的实现代码
D.接口中的所有方法都必须在其派生类中得到实现
26下面关于命名空间的说法,错误的是(C)
A.C#中,命名空间可有可无,看需要来定义和使用
B.同一个命名空间的成员不能重名,不同命名空间中的成员可以重名
C.使用命名空间的好处是,不但在不同命名空间中的成员可以重命名,而在同一个命名空间中的成员也可以重名
D.命名空间为程序的逻辑结构提供了一种良好的组织方法
27执行下列两条语句,结果S2的值为(D)
string s=”abcdefgh”;
string s2=s.Substring(2,3);
A.“bc”B“cd”C“bcd”C”cde”
28对于下列生命的委托和定义的类:
Class A
{
Public int f(int i)
{
Return0;
}
public void g(int j)
{
}
Public static int h(int k)
{
Return0;
}
}
下面语句中,那些事正确的(B)
MyDelegate d1=new MyDelegate(A.h);//语句1
A a=new A();
MyDelegate d2=new MyDelegate(a,f);//语句2
MyDelegate d3=new MyDelegate(a.g);//语句3
MyDelegate d4=new Mydelegate(a.h);//语句4
A语句1、语句2、语句、语句4B语句1、语句2
C语句3、语句4D语句2、语句3
填空题
1.标准窗体应用程序有3种类型:对话框界面(Dialog)应用程序、单文档界面(SDI)应
用程序和多文档界面(MDI)应用程序。
2.C#中所有的类都继承Object类,所有的窗体控件都继承Control类。
3.字体对话框类和打开文件对话框类分别是FontDialog类和OpenFileDialog类。
4.控件中用于设置弹出式对话框的属性是ContextMenuStrip。
5.Form类(窗体类)的FormClosing(object sender,FormClosingEventArgs e)事件处理函
数中,利用参数e可以阻止窗口的关闭,实现的代码是 e.Cancel=true;。
6.菜单可以分为两种形式:主菜单和弹出式菜单。
7.File类中判断给定文件是否存在的方法是File.Exists(),Directory类中判断给定文件是否
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论