试卷名: S2_CSharp前五章
________________________________________
一、单项选择题
1. CLR为.NET提供以下方面的功能或者服务,除了()。(选择一项)
A. 垃圾回收
B. 代码验证和类型安全
C. 代码访问安全
D. 自动消除程序中语法错误
________________________________________
2. 在C#中,下列符合帕斯卡命名规范的类定义是()。(选择一项)
A. public class T1{}
B. public class teacher{}
C. public class_Teacher{}
D. private class Teacher{}
________________________________________
3. 在C#中,下列代码的运行结果是()。(选择一项)
static void Main(string[] args) {
Console.WriteLine(“运行结果是:{0}”,”运行结果”);
}
A. 运行结果
B. 运行结果是:{0}
C. 运行结果是:运行结果
D. 运行结果是运行结果
________________________________________
4. 在C#中,()正确定义了一个数组。(选择一项)
A. int iArray=new int[10];
B. int[] iArray=new int;
C. int[] iArray=new int[10];
D. int[] iArray=new int(10);
正确答案: C
指导点评: 暂无点评
________________________________________
5. 在C#中,已知下列代码的运行结果是“老虎吃动物”,请问在空白处1和空白处2分别应该填写的代码是()。(选择一项)
public class Animal {
public 空白处1 void Eat() {
Console.WriteLine(“我要吃”);
}
}
public class Tiger:Animal {
public 空白处2 void Eat(){
Console.WriteLine(“老虎吃动物”);
}
}
public class Test {
State void Main(){
Animal an =new Tiger();
an.Eat();
}
}
A. virtual,new
B. override,virtual
C. virrual,override
D. new,virtual
________________________________________
6. (在C#中,下列关于抽象类和接口的说法,正确的是()。(选择一项)
A. 在抽象类中,所有的方法都是抽象方法
B. 继承自抽象类的子类必须实现其父类(抽象类)中所有抽象方法
C. 在接口中,可以有方法实现,在抽象类中不能有方法实现
D. 一个类可以从多个接口继承,也可以从多个抽象类继承________________________________________
7. 在.NET中,.NET Framework 由()组成。(选择一项)
A. FCL和CLR
B. CLS和CTS
C. https://www.doczj.com/doc/0d10257494.html,和https://www.doczj.com/doc/0d10257494.html,
D. WinForm和https://www.doczj.com/doc/0d10257494.html,
________________________________________
8. 在C#中,下列代码的运行结果是()。(选择一项)
int[]age=new int[]{16,18,20,14,22};
foreach(int I in age)
{
if(i>18)
continue;
Console.Write(i.ToString()+ “ ”);
}
A. 16 18 20 14 22
B. 16 18 14 22
C. 16 18 14
D. 16 18
________________________________________
9. )在C#中,下列代码的输出结果是( )。(选择一项)
class Test
{
public enum WeekDays
{
Mon,Tue,Wed,Thur, Fri, Sta,Sun
}
static void Main()
{
WeekDays week =(WeekDays)2;
Console.WriteLine(week);
}
}
A. 2
B. Tue
C. Wed
D. 编译错误
________________________________________
10. 在C#中,可以通过装箱和拆箱实现值类型与引用类型之间的相互转换,在下列代码中,有( )处实现了装箱。
int age = 5;
object o =age ;
o =10;
age =(int )o;
object oAge = age;
A. 1
B. 2
C. 3
D. 4
________________________________________
11. 分析如下的C#代码段,运行后将输出()。
public class Teacher{
public Teacher(string name){
Console.WriteLine("老师的名字叫"+name);
}
}
public class Test :Teacher{
public Test (string name)
Console.WriteLine("学生的名字叫"+name);
}
static void Main(){
Test stu=new Test("李明");
Console.ReadLine();
}
}
A. 学生的名字叫李明
B. 老师的名字叫李明
C. 老师的名字叫李明
学生的名字叫李明
D. 编译报错
________________________________________
12. 在C#中,某程序在一个类中编写了两个同名的方法,代码如下,请问该段代码的运行结果是().
piblc class Musician{
public void Song(){
Console .WriteLine("忘记你我做不到"');
}
public void Song (string musicName){
Console.WriteLine(musicName);
}
static void Main(){
Musican musician = new Musician();
string musicName="还是觉得你最好";
musician.Song ("分手总要在雨天");
}
}
A. 忘记你我做不到
B. 还是觉得你最好
C. 分手总要在雨天
D. 没有输出
________________________________________
13. 阅读以下C#代码片断,在程序编译过程中,下面说法正确的是()。(选择一项)
int val=100;
object obj=val;
int num =(int)obj;
Console.WriteLine(“num:{0}“,num);
A. 第1行执行装箱操作
B. 第2行执行装箱操作
C. 第2行执行取消装箱操作
D. 第3行执行装箱操作
________________________________________
14. 在C#中,下列代码的运行结果是()。(选择一项)using System;
class Test{
static void Main(){
try{
int a=10;
int b=0;
int c=a/b;
Console.WriteLine(c);
}
catch{
Console.WriteLine(“出现错误“);
}
finally{
Console.WriteLine(“运行结束“);
}
}
}
A. 0 运行结束
B. 10 运行结束
C. 出现错误运行结束
D. 出现错误
________________________________________
15. )在C#中,下列代码的运行结果是()。
string[]names={“ACCP“,“BENET“,“BETEST“};
foreach(string name in names)
{
Console.WriteLines(name);
} (选择一项)
A. ACCP BENET BETEST
B. n a m e s
C. name name name
D. “ACCP“ “BENET“ “BETEST“
________________________________________
16. 在C#中,某程序员定义了一个IDataBase接口,以及实现该接口的一个类CDataBase,下列关于该段代码说法正确的是()。(选择一项)
public interface IDataBase{
void OpenTable(string tableName);
void UpdateTable(string tableName);
}
public class CDataBase:IDataBase{
public void OpenTable(string tableName){
console. WriteLine(“打开数据表”);
}
public void UpdateTable(string tableName){
console. WriteLine(“更新数据表”);
}
static void Main(){
CDataBase db = new CDataBase();
db.OpenTable(“Customers”);
}
}
A. 该段代码错误,因为在定义接口时,接口中的方法没有提供实现
B. 该段代码错误,因为接口中声明的方法不是公有的,因此在CDataBase类中不能访问接口中的方法
C. 该段代码正确,同时由于客户没有调用UpdateTable方法,可以把CDataBase类中UpdateTable方法去掉,代码仍旧正确
D. 该段代码正确,但如果在IDataBase接口中声明一个方法“voidExecute(stringsql);",则必须在CDataBase 类中实现该方法
________________________________________
17. 在C#类中,()允许相同名称、不同参数个数或者参数类型的方法存在。(选择一项)
A. 方法重写
B. 方法重载
C. 方法取消
D. 方法覆盖
________________________________________
18. (在C#中,下列方法定义正确的是()。(选择一项)
A. int showInfo(string message){ return; }
B. public showInfo(string message){ Console.WriteLine(message); }
C. int showInfo(string message){ return 1; }
D. public showInfo(string message){ Console.WriteLine(message); return message; }
________________________________________
19. 在.NET中,一些数据类型为引用类型,当引用类型的值为()时,表明没有引用任何对象。(选择一项)
A. Empty
B. null
C. Nothing
D. 0
________________________________________
20. 在C#中,()访问修饰符修饰的变量只能由当前程序集访问。(选择一项)
A. public
B. protected
C. internal
D. private
________________________________________
21. 在C#中,下列代码运行后,变量Max的值是()
int a=5,b=10,c=15,Max=0;
Max=a>b?a:b
Max=c A. 0 B. 5 C. 10 D. 15 ________________________________________ 22. 在.NET中,程序员在代码中漏写了一个大括号,这属于()。(选择一项) A. 逻辑错误 B. 运行时错误 C. 语法错误 D. 自定义错误 ________________________________________ 23. 在C#中,关于以下代码的说法正确的是()。 namespace Microsoft{ class Student{ string type=“北大青鸟学员”; internal string name=“李明”; } public class Test{ static void Main(){ Student stu = new Student(); //1 Console.WriterLine(stu.type); //2 Console.WriterLine(https://www.doczj.com/doc/0d10257494.html,); //3 } } } (选择一项) A. 代码1错误 B. 代码2错误 C. 代码3错误 D. 代码都正确 ________________________________________ 24. )在C#中,通过调用Thread类的Sleep(int x)方法来实现禁止线程运行,其中x代表()。 (选择一项) A. 禁止线程运行的微秒数 B. 禁止线程运行的毫秒数 C. 禁止线程运行的秒数 D. 禁止线程运行的CPU的时间数 ________________________________________ 25. 在C#中,下列关于构造函数的特点的说法,正确的是()。(选择一项) A. 一个类中,只能由一个构造函数 B. 构造函数的名称与类名称一样,并且没有返回类型 C. 构造函数在对象销毁时自动执行 D. 一个类中至少要有一个构造函数 ________________________________________ 26. 在C#中,下列变量定义与赋值正确的是()。(选择一项) A. int age=12.5 B. string name=ACCP; C. double money=100.0; D. char level=A;//C#中没有char类型 ________________________________________ 27. 以下的C#程序代码,程序运行时在控制台打印输出值为()。(选择一项)int count =3; while(count>1){ Console.WriteLine(--count); } A. 3 2 B. 3 2 1 C. 2 1 D. 2 ________________________________________ 28. 关于以下C#代码说法正确的是()。(选择一项) public abstract class Animal{ public abstract void Eat(); } public class Tiger:Animal{ public override void Eat(){ Console.WriteLine(“老虎吃动物“); } } public class Tigress:Tiger{ static void main(){ Tigress tiger=new Tigress(); tiger.Eat(); } } } A. 代码正确,但没有输出 B. 代码正确,并且输出“老虎吃动物” C. 代码错误,因为Tigress类没有实现抽象基类Animal中抽象方法 D. 代码错误,因为抽象基类Animal中的Eat方法没有实现 ________________________________________ 29. )在C#中,下列()关键字用于重写基类的虚拟方法。(选择一项) A. override B. new C. base D. virtual ________________________________________ 30. 在C#中,下列代码的运行结果是()。(选择一项)int[] names = new int[]{4,3,2,1}; Array.Sort(names,1,3); foreach(int name in names){ Console.Write(name); } A. 4321 B. 1234 C. 4123 D. 3214 ________________________________________ 31. 在.NET框架中,CLS是指()。(选择一项) A. 即时编译 B. 垃圾回收 C. 公共语言规范 D. 公共类型系统 ________________________________________ 32. 在C#程序中,一个类()。(选择一项) A. 可以继承多个类 B. 可以实现多个接口 C. 只能被一个子类继承 D. 只能实现一个接口 ________________________________________ 33. 在C#中,下列常量定义正确的是()。(选择一项) A. const double PI 3.1415926; B. const doublee=2.7; C. define double PI 3.1415926; D. define double e=2.7 ________________________________________ 34. 以下代码段体现了C#中的()概念,该概念使得对象模型变得简单易懂。(选择一项)int val=10; object obj=val; A. 继承 B. 重载 C. 装箱 D. 委托 ________________________________________ 35. 在C#中可用程序变量名的一组标识符是 A. void namespace +word B. a3_b3 _123 YounName C. for -abc case D. 2a good ref ________________________________________ 36. 当month等于6时,下面代码的输出结果是() int days=0; switch(month) { case 2: days=28; break; case 4: case 6: case 9: case 11: days=30; break; default: days=31; break; } Console.WriteLine(days); A. 0 B. 28 C. 30 D. 31 ________________________________________ 37. 关于结构和类的说法,下列错误的是: A. 结构是值类型,类是引用类型 B. 结构可以不用new初始化,类需要new初始化 C. 类和结构都有默认的构造函数 D. 结构不能继承,类可以被继承 ________________________________________ 38. 下面代码运行后,s的值是() int s=0; for(int i=1;i<100;i++) { if(s>10) { break; } if(i%2==0) { s+=i; } } A. 20 B. 12 C. 10 D. 6 ________________________________________ 39. 下面关于继承,说法正确的是: A. 在C#中,静态类不能够被继承 B. 一个子类可以继承多个父类 C. 子类可以继承父类的所有成员 D. Objcet类是所有类的基类 ________________________________________ 40. 关于base关键字,下列使用方法错误的是: A. 在子类中,base可以调用父类的构造函数 B. 在子类中,base关键字可以访问父类的公共属性 C. 在子类中,base关键字不可以调用父类的protected成员 D. 在子类中,base关键字不可以调用父类的private成员 ________________________________________ 41. 在一个类中,关于public、private、protected、internal说法错误的是: A. public修饰的成员,可以被任何对象访问 B. private修饰的成员,可以在它的子类中被访问 C. protected修饰的成员,可以在它的子类中访问 D. internal修饰的成员,可以被任何对象访问 ________________________________________ 42. 若打印如下图案,画线处应填入()。 如图: * * * * * * * * * * * * * * * for (int i = 1; i <= 5; i++) for (int j =____; j <= 5; j++) { Console.Write("*"); } Console.WriteLine(); } A. 1 B. i C. i+1 D. 0 ________________________________________ 43. 下面关于抽象类的说法正确的是: A. 抽象类可以被实例化 B. 含有抽象方法的类一定是抽象类 C. 抽象类可以是静态类和密封类 D. 抽象类中的抽象方法可以在其它类中重写________________________________________ 44. 下面关于虚方法说法错误的是: A. 使用virtual关键字修饰虚方法 B. 虚方法必须被其子类重写 C. 虚方法可以有自己的方法体 D. 虚方法和抽象方法都可以实现多态性 ________________________________________ 45. 在C#中,关于接口下面说法错误的是: A. 接口是一组规范和标准 B. 接口可以约束类的行为 C. 接口中只能含有未实现的方法 D. 接口中的方法可以指定具体实现,也可以不指定具体实现________________________________________ 46. A和B两个程序集,下列说法错误的是: A. A中public修饰的成员,不能被B访问 B. A中private修饰的成员,不能被B访问 C. A中internal修饰的成员,不能被B访问 D. A中protected修饰的成员,不能被B访问 ________________________________________ 47. 下面代码实现数组array的冒泡排序,画线处应填入()。int[ ] array = { 20, 56, 38, 45 }; int temp; for (int i = 0; i < 3; i++) { for (int j = 0; j < _____; j++) { if (a[j] < a[j + 1]) { temp = a[j]; array[j] = a[j + 1]; array[j + 1] = temp; } } } A. 4-i B. i C. i+1 D. 3-i ________________________________________ 48. 下面代码的运行结果是()。 static void Main(string[ ] args) { int num1 = 34; int num2 = 55; Increase(ref num1, num2); Console.WriteLine("{0}和{1}", num1, num2); Console.ReadLine(); } private static void Increase (ref int num1, int num2) { num1++; num2++; } A. 35 56 B. 34 55 C. 34 56 D. 35 55 ________________________________________ 49. 下面()代码可以显示一个消息框。 A. Dialog.Show(); B. MessageBox.Show(); C. Form.Show(); D. Form.ShowDialog(); ________________________________________ 50. 在C#中,下面关于静态方法和实例方法描述错误的是: A. 静态方法使用类名调用,实例方法需要使用类的实例来调用。 B. 静态方法可以直接调用实例方法 C. 实例方法可以直接调用静态方法 D. 静态方法调用前初始化,实例方法实例化对象时初始化