《C#程序设计》复习题
一、填空题
1、当MSIL被执行时,____CLR____ 通过____JIT___编译器将MSIL代码进行最后的、与机器匹配的
优化,然后将其编译为真正的机器语言。
2、C#使用_____StreamReader___________类和___StreamWriter_________类对文本文件进行读写。
3、在C#中,用params修饰符声明的参数是参数数组,不能将params修饰符与_ref____ 和___out___
修饰符组合起来使用。
4、___is___ 运算符用于动态检查对象的运行时类型是否与给定类型兼容,__as_____ 运算符用于将
一个值显式地转换为一个给定的引用类型。
5、使用ref关键字和out关键字都是通过引用传递参数,不同的是ref方式要求实参必须在传递之前
进行___初始化_______。而采用out方式时不要求在调用方法前对实参进行__初始化________。
6、静态方法只能访问类中的_静态_______ 字段,非静态方法可以访问类的_所有_____ 字段。
7、微软中间语言MSIL与___机器______无关,可以在任何装有_CLR_________的计算机上运行。
8、在派生类中重新定义基类方法时,应与基类有完全相同的方法名、返回值____和___参数列表
______。否则就不是方法的改写,而是派生类自己定义的与基类无关的方法。
9、C#中所有异常类的基类是___Exception_______,主动引发一个异常的语句关键字是
___throw_________。
10、值类型的变量在它自己的内存分配中直接存储其__数据_____,引用类型的变量存储对其数据的
___引用<;地址>_________。
11、抽象类适合用来描述具有共性类的同一__特征________,接口适合用来实现不相关类的相同或
相似的__行为_______。
12、Array类中用于对数组元素进行排序的方法名是_Sort_______,用于反转数组元素顺序的方法名
是__Rerve_______。
13、Dns类的___GetHostAddress________________ 方法用于获取指定主机的IP地址,___
GetHostName____________ 方法用于获取本地计算机的主机名。
14、C#使用___BinoryReader__________ 类和__BinoryWriter________ 类对二进制文件进行读写。
15、Thread类提供了多线程处理的一般方法,_Start_______方法用于启动线程,_Abort_______方法
用于终止线程。
16、try-catch是C#提供的捕获、处理异常的语句。try-catch语句由1个try块后跟1个或多个
_Catch______子句以及1个__finally______子句构成。
17、类的静态成员属于_类_____所有,不能通过类的___实例____来访问。
18、在C#中方法的改写有两种情况,分别是使用___new___修饰符和__override_____修饰符改写方
法。
19、在C#中,事件机制是通过委托来完成的。定义委托的关键字是__delegate_____,定义事件的关
键字是___event_______。
20、ArrayList类主要用于对一个列表中的元素进行各种处理。ArrayList类的_Add______方法用于将元
素添加到列表的结尾处,__Inrt________方法用于将元素插入ArrayList的指定索引处。
二、选择题
1.( A )包含的基类用于在开发应用程序时提供各种服务和对象。
A. Framework类库B.CLR
C.CTS D.MSIL
2、值参数是( A )的参数。
A. 按值传递
B. 按地址传递
C. 按引用传递
D. 什么也不传递
3. 装箱是把值类型转换到(B )类型。
A. 数组
B. 引用
C. char
D. string
4、利用Command 对象的ExecuteNonQuery()方法执行INSERT、UPDATE或DELETE语句时,返回( C )。
A.True或Fal B.1 或 0 C.受影响的行数D.-1
5. 运行下面这段代码的结果为(D )
string day = "星期一";
switch (day)
{ ca "星期一":
ca "星期三":
ca "星期五":Console.Write("去上课");
ca "星期六":Console.Write(",聚餐");
ca "星期日":Console.Write(",逛街");
default : Console.WriteLine(",睡觉");
}
Console.ReadLine( );
A.去上课B.去上课,聚餐,逛街,睡觉
C.什么都不输出D.编译出错
6. 若想打印如下图案,下面代码划线处应分别填入(D )。
***
***
***
数列求和公式
int i=1,j;
while(i< )
{ for(j=0;j< ;j++) { Console.Write("*"); }
Console.WriteLine( );
i++;
}
A.3 3 B.4 4 C.3 4 D.4 3
7、ADO的两个主要组件是( B )。
A.Connection和Command B.DataSet和 Framework数据提供程序C.DataAdapter和DataSet D. Framework数据提供程序和DataAdapter
8、设置控件布局位置的属性是以下哪一个(C )
A. DisplayRectangle
conditionedB. FlatStyle
C. Dock
D. Location
9. 类中两个以上的同名方法,只要( B )不同,编译器就知道调用哪个方法。
A. 参数类型
B. 参数类型或参数个数
C. 参数与顺序个数
盎司怎么读
D. 返回类型
10. 用static关键字定义的静态方法,属于整个类而不属于( A )。
A. 类的某一个具体实例
B. 类的其他方法
C. 类的任何成员
D. 常量
11. 接口和类的主要不同在于( B )。
A. 类不可以多重重载而接口可以
英文角色名
B. 类可以重载而接口不可以
C. 类不可以重载而接口可以
D. 类可以多重重载而接口不可以
12、用户单击【消息框】按钮时返回( C )值。
A. DialogValue
B. DialogBox
C. DialogResult
D. DialogCommand
13、以下( A )控件用于显示多个选项卡(页框),每个选项卡均可包含图片和其他控件。
A.TabControl B.GroupBox C.ImageList D.ListBox
14. C#中,关于事件的定义正确的是( )。
A. public delegate void Click;
public event Click OnClick( );
B. public delegate void Click( );
public event OnClick Click;
C. public void delegate Click( );
public event Click OnClick;
中国国际广播D. public delegate void Click( );
public event Click OnClick;
15、用static关键字定义的静态方法,属于整个类而不属于( A )。
A. 类的某一个具体实例
B. 类的其他方法
C. 类的任何成员
D. 常量
16、在声明接口时,不可以为接口成员指定任何修饰符,而且不需要为接口成员指定任何代码,故
不可以为接口成员实例化代码,只需要在声明接口时指定()即可。
A. 接口成员的名称和参数
B. 成员的名称
造价员考试科目C. 成员的类型
D. 成员的参数
17、让控件不可见的属性是以下哪一个( D )
A. Cursor
B. Enabled
C. Dock
D. Visible
18、所有控件都有的属性是( D )。
A. Text
B. BackColor
C. Item
D. Name
19. 让控件不可用的属性是以下哪一个(B )
A. AllowDrop
B. Enabled
C. Bounds
D. Visible
20. 下面( C )可以显示一个模式窗体。
A.Application.Run(new Form1() ); B.Form1.Show( )
C.Form1.ShowDialog( ) D.MessageBox.Show( )
21、下面这段代码的输出为( A )
int year = 2046;
if (year % 2 == 0)
{ Console.WriteLine("进入了if"); }
el if (year % 3 == 0)
{ Console.WriteLine("进入了el if"); }
el
{ Console.WriteLine("进入了el"); }
Console.ReadLine();
A.进入了if B.进入了if,进入了el if
C.进入了el D.进入了if ,进入了el if,进入了el
22. 以下(B )控件组合了TextBox控件和ListBox控件的功能。
A. Label
B. ComboBox
C. StatusBar
D. PictureBox
23. 为了使TextBox的ScrollBar真正起作用,应该将TextBox的“自动换行”功能取消。取消该
功能,需要将TextBox控件的( C )属性设置为Fal。
A. ScrollBars
B. AcceptReturns
C. WordWrap
D.AutoSize
24、拆箱是引用类型返回到( C )类型。
A. string
B. char
C. 值
D. 数组
25. 计时器Timer控件的Interval属性可以设置定时发生的事件的间隔,它的单位是( B )
A.秒B.毫秒C.微秒D.分
26、( B )命名空间在 Framework中又称为根命名空间。
A.System.IO B.System C.System.Threading D.System.Data
27. 在ADO中,对于Command对象的ExecuteReader()方法和ExecuteNonQuery()方法,下
面叙述错误的是( C )
A.INSERT、UPDATE或DELETE等操作的SQL语句主要用ExecuteNonQuery()方法来执行
B.ExecuteNonQuery()方法返回执行SQL语句所影响的行数
C.SELECT操作的SQL语句只能由ExecuteReader()方法来执行
D.ExecuteReader()方法返回一个DataReader对象
28. 使用( D )对象来向DataSet中填充数据。
A.Connection B.Command C.DataReader D.DataAdapter
29、分析下面这段代码,执行后count的值为( B )
card readerint i, j ,count=0;
for(i=4;i>0;i--)
for(j=0;j<6;j++) { count++; }
A.15 B.24 C.20 D.21
30、用语句public delegate void CallFun(string s,int i); 定义了一个委托类型, 则该委托
可以指向( ) 方法。
A. void display(string st,int a){…}
B. static void display(string s) {…}
C. string display( ){…}
D. static void Main(string[] args) {…}
三、简答题
1、以下代码是单击按钮时从文件C:\中读取文本显示在文本框中,请在“//”后添加语句的功能注释文字。
private void butn_Click(object nder, EventArgs e)
{ string line; //定义字符串变量line
FileStream fs = new FileStream("c:\\", FileMode.Open);
//构造Fs为Filestream文件流表,进行文件读写
StreamReader sr = new StreamReader(fs);
//使用StreamReader类读取文件
while ((line = sr.ReadLine( )) != null)
{
textBox1.Text = textBox1.Text + line + Environment.NewLine;
//将每次获取的line表现在texBox上,新行则换行
}
sr.Clo( ); //关闭SteramPeader对象
fs.Clo( ); //关闭FileStream对象
}
2、简述在C#中使用事件的步骤。(p122)
3、写出以下菜单常用属性的功能Checked、Enabled、ShortCutKeys、ShowShortCutKeys 、Visible 。Checked:指示组件是否处于选中状态
Enabled:指示是否已启用该控件
ShortCutKeys:与菜单项关联的快捷键
Visible:确定该控件是可见的还是隐藏的
ShowShortCutKeys :指示是否在该项上显示菜单项的快捷键
4、举例说明,在C#中如何使用“属性”封装类的“字段”成员,并控制字段成员的读写访问特性。
四、判断题
1.按下按钮会引发事件。(N)
2.事件的预订可以通过“=”来实现。(Y)
3.析构函数可以返回值。(N )
4.SQL的INSERT语句不可以对数据库进行更新。(Y)
5.对象的this引用是对该对象本身的引用。(Y)
6.属性必须同时定义get访问器和t访问器。(N )
7.密封类不能被继承。(N)
8.构造函数不允许重载。(N )
9.类的static成员可以通过该类的对象来引用。(Y )heva
10.派生类可以从多个类继承。(Y )
11.在C#中,所有类都是直接或间接地继承System.Object类而得来的。(Y )
12.在C#中,任何方法都不能实现多继承。(N )
13.子类不能继承父类中用private修饰的成员变量和成员方法。(Y )
14.菜单项标题中有含有带下划线的字符,这是快捷键。(N )
15.在C#中,窗体父子关系通过“属性”窗口来创建。(Y )
16.静态类和实例类的区别在于:静态类不需要初始化即可直接使用,实例类需要进行实例化,生成对象才可使用。(Y )
17.使用Directory类的Move()方法可以删除文件。(N )
18.使用FileInfo类的Copy()方法可以复制文件。(Y )
19.DataSet对象中的表可以和数据库中的表同名,也可以不同名。(Y )
20.Command对象可以执行SQL语句。(Y )
五、设计题
1、以下程序功能是单击按钮,
判断用户选择答案的正确性。运
行效果如图所示。窗体中四个单
选按钮控件的Text属性为:肥皂剧英文
radiButton1.T ext=”Visual Basic”,
英孚英语培训radiButton2.T ext=”SQL Server”,
radiButton 3.Text=”Windows”,
radiButton 4.T ext=”C#”。请编写
“确定”按钮的Click事件处理
代码。
2、程序功能是判断用户选择答案的正确性。运
行效果如图所示。窗体中四个复选框控件的
Text属性为:checkBox1.Text=”UNIX”,
checkBox2.Text=”Pascal”,
checkBox3.Text=”Linux”,checkBox4.Text=”C#”.
请编写“确定”按钮的Click事件处理代码。