c#考试选择题.docx
《c#考试选择题.docx》由会员分享,可在线阅读,更多相关《c#考试选择题.docx(50页珍藏版)》请在冰点文库上搜索。
c#考试选择题
1类的成员中,可以定义为静态的有属性
2下面有关抽象类的说法,正确的有抽象类中不一定有抽象方法
3已知类B是由类A继承而来,类A中有一个名为M的非虚方法,现在希望在类B中也定义一个名为M的方法,若希望编译时不出现警告信息,则在类B中声明该方法时,应使用new修饰符。
4以下不能作为复合赋值操作符被重载的有&=
5C#中的方法重写使用关键字override
6下面关于索引函数说法不正确的是索引函数可以是静态的
7将事件通知其他对象的对象称为发布方
8以下说法正确的是一个委托在某一时刻可以指向多个方法
9分析下列语句:
namespaceTestCS
{
publicdelegatevoidHello(stringtarget);
}
该语句的作用是:
在TestCS命名空间中定义了一个名为Hello的委托类型;
10C#中MyClass为一自定义类,其中定义了方法:
publicvoidHello()
{
…
}
使用以下语句创建了该类的对象,并使变量obj引用该对象:
MyClassobj=newMyClass();
那么,以下obj.Hello()可访问类MyClass的Hello方法?
11设int类型变量x的值为9,那么表达式--x+--x+--x的值为21
12下面程序的正确运行结果是111211212
namespacetest
{
classProgram
{
delegatevoidFunCompute(intx,inty);
staticvoidMain(string[]args)
{
FunComputef=Div;
f=f+Mod+Mul;
f(4,3);
f=f-Div;
f(4,3);
f=f-Mod;
f(4,3);
f=f-Mul;
}
staticvoidDiv(intx,inty)
{
Console.WriteLine(x/y);
}
staticvoidMod(intx,inty)
{
Console.WriteLine(x%y);
}
staticvoidMul(intx,inty)
{
Console.WriteLine(x*y);
}
}
}
13下面"短路"效应会增加不确定性,降低程序运行效率说法不正确?
14关于一元操作符"++"和"--",说法不正确的是前缀的特点是:
先使用,再增减
15下面输出结果为整数的是Console.WriteLine(5/2);
16数组型参数,下列说法不正确的是当实参是数组变量时,必须指定该数组的长度。
17不可以作用于结构类型中数据成员的访问限制修饰符有protected
18输出型参数out,下列说法不正确的是输出型实参变量必须初始化
19如果是引用类型的形参,不使用ref,则下面说法这时形参的变化,影响实参。
是正确的
20如果没有在对象创建表达式中为字段赋值,那么每个字段的初始值都是其类型的默认值。
下面说法正确的是对于枚举类型,其默认值是0
21从高精度类型向低精度类型转换,进行的是显式转换
22下列说法中,C#规定,值类型的数组之间可以进行转换,但要显式转换。
是不正确的
23若多维数组a有4行3列,那么数组中第10个元素的写法是a[3,0]
24下面decimal数据类型表示数的范围最大
25delegateintMydelegate(intx,inty)定义了委托类型,能给该委托对象赋值的方法是intSum(intm,intn);
26以下叙述正确的是用do….while语句构成的循环,在while后的表达式应为关系表达式或逻辑表达式
27以下语句会产生死循环的有for(;;);
28while语句循环结构和do…while语句循环结构的区别在于do…while循环是先执行循环体,后判断条件表达式是否成立;而while语句是先判断条件表达式,再决定是否执行循环体。
29下面语句执行后y的值为512
intx=1,y=1;
doy<<=(++x);
while(x<4);
30下面语句执行后y的值为30
intx=0,y=0;
while(x<10)y+=(x+=2);
31执行下面的代码后,字符串s2的值为HELLO
strings1=null;
strings2=s1;
s1="Hello";
s2=s1.ToUpper();
32以下程序运行后,z的值为VISUALC#.NET2.0设计教程
stringx="VisualC#.NET程序设计";
stringy="应用教程方案之一";
stringz=x.Replace("程序","2.0").ToUpper()+y.Substring(2,2);
33在C#中,下列string[]StrList={"","",""};语句可以创建一个具有3个初始值为""的元素的字符串数组?
34已知stringstr="Hello",则把str中所有字符转为大写的是str=str.ToUpper();
35若x="Hello,World",y="VisualC#.NET",则以下表达式中,结果为"HelloC#"的是x.Substring(0,5)+y.Substring(7,2);
36以下指定泛型参数的目标类型继承自某个类或接口的语句,publicclassGTwhereT:
IA,A是错误的。
(其中A是类名,IA、IB是接口)
37类型参数在泛型类中不可以用作构造函数的类型参数
38以下publicclassGwhereS:
struct泛型定义中,可将类型参数的目标类型限制为值类型。
39对于类型参数,C#通过关键字default来描述其默认值
40可以为索引器指定一个或多个索引参数。
41设int类型变量x和y的取值分别为3和2,那么执行下面语句后z的值为1
intz=(x++%y==0)?
++x:
(x/y==1)?
++y:
--y;
42使用File的下列方法打开文件时,如果指定文件不存在会引发异常的有AppendAllText
43FileStreamfs=newFilestream("c:
\\test.txt",FileMode.Create,FilAccess.ReadWrite,Fileshare.None);
针对如上C#代码段以下说话正确的是如果c盘根目录下不存在文件test.txt,则建立一个内容为空的test.txt文件
44关于注释的说法,下面"////"四线注释是错误的?
45CLR的全称是公共语言运行时
46C#程序的执行过程是从程序的Main方法开始,到Main方法结束。
47下列说法正确的有属性通过使用访问器来读写类中的字段,从而为保护类中字段提供了可能
48类的成员中,可以定义为静态的有构造函数
49如果需要主动引发异常,可使用Throw语句
50能够捕获方法的无效参数的异常类型是ArgumentException
51C#程序中,可使用try..catch机制来处理程序出现的运行错误
52在C#中,下列关于抽象类和接口的说法,正确的是继承自抽象类的子类必须实现其父类(抽象类)中的所有抽象方法
53在c#中,关于继承和接口,以下说法正确的是c#允许多接口实现,但不允许多重继承
54多态性允许对类的某个方法进行调用而无需考虑该方法所提供的特定实现,例如,可能有名为Road的类,它调用另一个类的Drive方法,另一个类可能是SportsCar或SmallCar,但二者都提供Drive方法,虽然Drive方法的实现因类的不同而异,但Road类仍可以调用它,并且它提供的结果可由Road类使用和解释。
在.NET中,可以由以下的方式来实现组件中多态性,除了(通过受保护的成员函数来实现多态性)。
55对下面的C#程序:
usingSystem;
publicinterfaceIAccount
{
voidPosInterest();
voidDeductFees(intfeeSchedule);
}
classBusinessAccount:
IAccount
{
intA;
publicstaticvoidMain()
{
BusinessAccountB=newBusinessAccount();
Console.WriteLine(B.A);
Console.ReadLine();
}
publicvoidIAccount.PostInterest()
{
A=A+1;
}
publicvoidIAccount.DeductFees(intfeeSchedule)
{
A=A+feeSchedule;
}
}
以下的说法正确的是程序将出现编译错误,指示public关键字对接口项无效
56以下关于C#代码的说法正确的是该段代码正确
publicabstractclassAnimal
{
publicabstractvoidEat();
publicvoidSleep()
{
}
}
57声明一个委托publicdelegateintmyCallBack(intx);则用该委托产生的回调方法的原型应该是intreceive(intnum)
58集合类型ArrayList对应的泛型集合类型是List
59下面有关构造函数和析构函数的说法,不正确的有一个类可以多个析构函数
60下列操作符是右结合的是=
1、要从派生类中访问基类的成员,应使用关键字___base_。
2、下列说法中,正确的是__派生类对象可以强制转换为基类对象_派生类对象可以强制转换为基类对象____。
3、继承具有_传递性______,即当基类本身也是某一类的派生类时,派生类会自动继承间接基类的成员。
4、
以下的C#代码定义一个接口:
publicinterfaceIfile
{
intA;
intdelFile()
{
A=3;
}
voiddisFile();
}
关于以上的代码,以下描述错误的是(代码voiddisFile();应该编写为voiddisFile(){}
)
5、关于虚方法实现多态,下列说法错误的是___关键字virtual可以与override一起使用
____。
6、调用重载方法时,系统根据_参数的个数和类型
____来选择具体的方法。
7、下面关于this关键字说法错误的是__可以在静态成员中使用_____。
8、以下的C#代码:
usingSystem;
usingSystem.Theading;
classApp{
PublicstaticvoidMain()
{
Timertimer=newTimer(newTimerCallback(CheckStatus),null,0,2000);
Console.Read();
}
StaticvoidCheckStatus(Objectstate)
{
Console.WriteLine("正在运行检查……");
}
}
在使用代码创建定时器对象的时候,同时指定了定时器的事件,程序运行时将每隔两秒钟打印一行"正在运行检查……",因此,TimerCallback是一个__委托_____
9、分析下列程序:
publicclassClass1
{
privatestring_sData="";
publicstringsData
{
set
{
_sData=value;
}
}
}
在Main函数中,在成功创建该类的对象obj后,下列__obj.sData="Itisfunny!
";______语句是合法的?
10、下列关于C#中索引器理解正确的是__索引器没有名字____。
11、设int类型变量x的值为9,那么表达式x--+x--+x--的值为_24_______。
12、关于一元操作符"++"和"--",说法不正确的是__前缀的特点是:
先使用,再增减。
______。
13、关于is操作符说法不正确的是_如果e的实际类型为E,那么E是T的基类时,"eisT"返回true。
_______。
14、关于取补与移位运算,下面说法不正确的是___如果是有符号整数,右移位时,将操作数的二进制位依次右移,右边低位被舍弃,高位补1。
_____。
15、下面__"短路"效应会增加不确定性,降低程序运行效率。
______说法不正确?
16、关于类中的访问权限修饰符,说法不正确的是__没有加访问权限修饰符,默认的是公有的访问权限。
______。
17、如果是引用类型的形参,不使用ref,则下面说法__这时形参的变化,影响实参。
____是正确的。
18、下面_publicreadonlystringCur="人民币";
Cur="港币";_____定义是不正确的?
19、下面关于私有字段,说法不正确的是__私有字段还允许其所属类的派生类的其他方法成员进行访问。
______。
20、方法中的return语句,_如果无返回值的方法,则执行代码中不允许出现return语句。
_____是不正确的?
21、以下数组声明语句中,不正确的是___float[]array1=newint[5]{1,2,4};_____。
22、下面关于结构的说法,正确的是__结构是复合值类型______。
23、下面___decimal___数据类型表示数的范围最大。
24、若多维数组a有4行3列,那么数组中第10个元素的写法是__a[3,0]______。
25、对于不规则多维数组,调用其Length属性得到的是_第一维的长度_______。
26、下面语句执行后y的值为__30__。
intx=0,y=0;
while(x<10)y+=(x+=2);
27、下面语句的输出结果为_135___。
intx=1,y=15;
do
if(y%x==0)
Console.Write(x);
while(x++28、运行如下程序,输出结果是_a=1,b=0_____。
usingSystem;
classExample1
{
publicstaticvoidMain()
{
intx=1,a=0,b=0;
switch(x)
{
case0:
b++;break;
case1:
a++;break;
case2:
a++;b++;break;
}
Console.WriteLine("a={0},b={1}",a,b);
}
}
29、以下叙述正确的是_用do….while语句构成的循环,在while后的表达式应为关系表达式或逻辑表达式___。
30、结构化的程序设计的3种基本结构是__顺序结构,分支结构,循环结构___。
31、在String类的下列方法中,返回类型不为String的为__IndexOf__。
32、为了将字符串str="123,456"转换成整数123456,应该使用以下___intNum=int.Parse(str,System.Globalization.NumberStyles.AllowThousands);____语句?
33、在C#中,下列___string[]StrList={"","",""};____语句可以创建一个具有3个初始值为""的元素的字符串数组?
34、若x="Hello,World",y="VisualC#.NET",则以下表达式中,结果为"HelloC#"的是__x.Substring(0,5)+y.Substring(7,2);____。
35、用户输入两个字符串后,想知道第二个字符串在第一个字符串中的起始位置,应该使用String类的___IndexOf_方法。
36、对于泛型类P中的静态方法成员Calu(),以下____P.Calu();____是正确的调用方法。
37、对于类型参数,C#通过关键字_default_______来描述其默认值。
38、以下泛型继承的定义,_publicclassB:
A_____是合法的。
39、类型参数在泛型类中不可以用作__构造函数的类型参数______。
40、类ClassA有一个名为M1的方法,在程序中有如下一段代码,假设该段代码是可以执行的,则修饰M1方法时一定使用了__static______修饰符。
ClassAobj=newClassA();
ClassA.M1();
41、__x1=x2=x3=8;____是正确的代码。
42、设置openfiledialog1引用一个Openfiledialog对象。
打开该对话框的代码是_____openfiledialog1.ShowDialog();____。
43、DriveInfo类中__DriveType_____属性表示驱动器的类型。
44、下面__csc.exe____是C#编译器。
45、Console.Read()的功能是___从输入流读入下一个字符,至换行符结束。
____。
46、C#语言经编译后得到的是__CIL中间语言指令______。
47、下列关于重载的说法,错误的是_方法可以通过指定不同的返回值类型重载______。
48、C#中,关于事件的定义正确的是___publicdelegatevoidClick();publiceventClickOnClick;____。
49、下面的程序段最终引发的异常有_____OverflowException__。
try{
try{thrownewFormatException();}
catch{thrownewArgumentNullException();}
}
catch
{
try{thrownewOverflowException();}
finally{thrownewNullReferenceException();}
}
finally
{
try{thrownewArgumentOutOfRangeException();}
catch{thrownewApplicationException();}
}
50、能够捕获方法的无效参数的异常类型是_____ArgumentException_____。
51、C#程序中,可使用try..catch机制来处理程序出现的__运行____错误。
52、下列代码输出为__A.FB.FB.GB.G____。
classFather{
publicvoidF(){Console.WriteLine("A.F");}
publicvirtualvoidG(){Console.WriteLine("A.G");}
}
classSon:
Father{
newpublicvoidF(){Console.WriteLine("B.F");}
publicoverridevoidG(){Console.WriteLine("B.G");}
}
classoverride_new{
staticvoidMain(){
Sonb=newSon();
Fathera=b;
a.F();
b.F();
a.G();
b.G();
}
}
53、下面有关抽象类的说法,不正确的有____抽象方法不可以是保护方法___。
54、已知类B是由类A继承而来,类A中有一个名为M的非虚方法,现在希望在类B中也定义一个名为M的方法,若希望编译时不出现警告信息,则在类B中声明该方法时,应使用___new_____修饰符。
55、在C#中,允许多接口继承,从多个接口时,使用":
"后跟继承的接口的名字,多个接口名称之间使用__","_____符号进行分隔。
56、类的以下特性中,可以用于方便地重用已有的代码和数据的是______继承_。
57、声明一个委托publicdelegateintmyCallBack(intx);则用该委托产生的回调方法的原型应该是__intreceive(intnum)___。
58、System程序集中定义了可比较的泛型接口__IComparable_____。
59、下面有关构造函数和析构函数的说法,不正确的有__一个类可以多个析构函数__。
60、下列操作符是右结合的是__=__。
usingSystem;
classTest
{
publicstaticvoidMain()
{
int[]a={1,2,3,4,5,6,7,8};
ints0,s1,s2;
s0=s1=s2=0;
for(inti=0;i<8;i++)
{
switch(a[i]%3)
{
case0:
s0+=a[i];break;
case1:
s1+=a[i];break;
case2:
s2+=a[i];break;
}
}
11对下面的C#程序:
usingSystem;
publicinterfaceIAccount
{
voidPosInterest();
voidDeductFees(intfeeSchedule);
}
classBusinessAccount:
IAccount
{
intA;
publicstaticvoidMain()
{
BusinessAccountB=newBusinessAccount();
Console.WriteLine(B.A);
Console.ReadLine();
}
publicvoidIAccount.PostInterest()
{
A=A+1;
}
publicvoidIAccount.DeductFees(intfeeSchedule)
{
A=A+feeSchedule;
}
}
以下的说法正确的是程序将出现编译错误,指示public关键字对接口项无效
12对下面的C#程序:
程序将出现编译错误,指示public关键字对接口项无效
usingSystem;
publicinterfaceIAccount
{
voidPosInterest();
voidDeductFees(intfeeSchedule);
}
classBusinessAccount:
IAccount
{
intA;
publicsta