if(i>n/2)break;
A.n/2B.n/2+1C.n/2+2D.n-1
11.下面关于继承的说法正确的是(A)。
A.派生类可以隐式地转换为它的基类。
B.所有的类成员都可以被继承。
C.C#可以进行多重继承。
D.在派生类中可以通过隐藏来删除基类的成员。
12.下面有关命名空间的说法,正确的是____D____
A.一个源代码文件只能包含一个名称空间。
B.名称空间是不可以嵌套的。
C.使用不同名称空间内相同名称的方法会产生名称冲突。
D.可以用using语句来访问一个名称空间中所有的类。
13.下面有关if语句和switch语句说法错误的是___D____
A.if语句有三种基本形式:
“单分支选择”、“如果/否则”以及“多情形选择”。
B.switch结构对处理多分支选择结构是非常方便的。
C.break语句可以使程序退出整个switch结构。
D.if语句中是不可以嵌套if语句的
14.在类的定义中,类的B描述了该类的对象的行为特征。
A.类名B.方法C.所属的名字空间D.私有域
15.CLR的中文全称是A。
A.公共语言运行库B.公共类型系统C.公共类型规范D.中间语言
16.能作为C#程序的基本单位是(C)。
A.字符B.语句C.函数D.源程序文件
17.下面的类型中属于引用类型的是(C)
A.整数类型B.字符类型C.字符串类型D.布尔类型
18.下面有关变量和常量的说法正确的是____C____
A.变量在程序的运行中值是不能改变的,而常量的值可以改变。
B.如果在程序中给常量多次赋值,那么常量保存的是最后一次的值。
C.在给常量赋值的表达式中不能出现变量。
D.变量定义的时候应该有const关键字
19.下面关于Main方法的说法正确的是___A_____
A.Main方法可以有int和void两种返回值类型。
B.在C#应用程序中Main方法不是必需的。
C.一个C#应用程序可以有多个Main方法。
D.Main方法前的static关键字是可选的。
20.假设所有的变量(i、j)都是整型,并被初始化为2,那么表达式“i*j>=0&&j-2<=0”的结果是多少?
___C____
A.0B.4C.TrueD.在运行之前无法估计表达式的值
21.下面(D)文件一般不是安装文件。
A.setup.exeB.setup.msiC.install.exeD.readme.txt
22.While语句和do-while语句的区别是___C_____
A.while语句容易导致死循环
B.while语句的执行效率更高。
C.无论条件是否成立,do-while语句都要先执行一次循环体。
D.do-while语句可以写出结构更复杂的循环结构。
23.C#中,简单数据类型包括___B_____
A.整数类型、字符类型、枚举类型和结构类型
B.整数类型、字符类型、布尔类型和实数类型
C.整数类型、字符类型、结构类型和类类型
D.整数类型、字符类型、布尔类型、结构类型和类类型
24.每个C#语句以____D____结束。
A.右大括号”}”B.回车C.点号”.”D.分号”;”
25.在C#中最基本的类是C。
A、ControlB、ComponentC、ObjectD、Class
26.以下论述不正确的是D。
A、对象变量是对象的一个引用。
B、对象是类的一个实例。
C、一个对象可以作为另一个对象的数据成员。
D、对象不可以作为函数的参数传递。
27.要使类的成员可以被本类代码和派生类代码访问,其他代码不可访问,可设置该成员的访问类型为D。
A、使用public关键字。
B、使用private关键字。
C、使用const关键字。
D、使用protected关键字。
28.使用继承的优点是A。
A、基类的大部分功能可以通过继承关系自动进入派生类。
B、继承将基类的实现细节暴露给派生类。
C、一旦基类实现出现bug,就会通过继承的传播影响到派生类的实现。
D、可在运行期决定是否选择继承代码,有足够的灵活性
29.在一个对象中,可以继承并直接使用它基类的所有成员,除了D。
A、public字段和方法B、protected字段和方法
C、published字段和方法D、private字段和方法
30.关于泛型集合Listlist=newList()的操作代码正确的是(C)。
A.list.Remove(0)B.list.RemoveAt(“阿卜杜拉“)
C.stringname=list[0]D.stringname=list[“阿卜杜拉“]
31.在编写c#程序时,若需要对一个数组中的所有元素进行处理,则使用(B)循环体最好.
A.while循环B.foreach循环C.do循环D.for循环
32.在.NET中,创建一个文件流,指定打开一个文件,如果不存在,就创建一个新文件,FileMode的值应该是(B)。
A.OpenB.OpenOrCreateC.CreateD.CreateOrOpen
33.在C#中,引用命名空间System的正确语句是:
(A)
AusingSystem;B#import;
CusesSyetem;D#include;
34.以下类MyClass的属性count属于(A)属性.
classMyClass
{
inti;
intcount
{
get{returni;}
}
}
A.只读B.只写C.可读写D.不可读不可写
35.从数据库读取记录,不可能用到的方法是(D)。
A.ExecuteNonQuery()B.ExecuteReader()
C.ExecuteScalar()D.Read()
36.创建菜单后,为了实现菜单项的命令功能,应为菜单项添加(C)事件处理方法.
A.DrawItenB.PopupC.ClickD.Select
37.在C#设计类时,如何将一个可读可写的公有属性Name修改为只读属性?
(B)
A将Name的set块添加readonly修饰符B将Name的set块删除
C在Namei的set块前加修饰符privateD在Name添加readonly修饰符
38.在C#中,使用(C)语句捕获异常。
AifBwhileCtry和catchDdo
(二)填空题
1.在实例化类对象时,系统自动调用该类的构造函数进行初始化。
2.要使Button控件上显示给定的文字是“确定”,应在设计状态下设置它的caption属性值。
3.窗体的Text属性规定了窗体的标题栏中显示的文本。
要在控制台程序运行时输入信息,可使用Console类的Read()或ReadLine()方法。
4.设A=2,B=-3,则表达式A/2+1>B+5||B*(-2)==6的值是True。
5.数学算式
的C#表达式为b+sqrt(b*b-4*a*c)。
6.Convert.ToInt64(val)的作用是将val的值转换为int类型。
7.一个类可以有多个构造函数,只要他们的参数列表不同(参数类型、个数),此时称为重载。
8.数据类型说明符用来说明方法返回值的类型,如果没有返回值,则其类型说明符应为void。
9.属性中的两个访问函数是get和set。
10.类成员的访问权限有private、public、protected、internal。
11.使用virtual声明的方法称之为虚拟方法。
12.TextBox控件与RichTextBox控件的区别是:
前者用于从用户处获取短文本字符串,后者用于显示和输入格式化的文本。
13.RadioButton控件与CheckBox控件的区别是前者是单选按钮,后者多选按钮。
14.Convert.ToInt32(val)的作用是将val的值转换为int类型。
15.界面上有Label对象,名称为lblMsg,要显示为“我的第一个应用程序”,应该使用的程序代码为lblMsg.Text=”我的第一个应用程序”。
16.在类的设计过程中,通过__构造函数__完成初始化,并使用析构函数完成_删除类的对象实体__
17.ListView控件Items属性的Add方法的作用是:
向控件中添加项。
18.常用的处理异常的关键字有throw、__try___、__catch__、___finally___。
19.一个类可以有多个构造方法,只要他们的参数列表不同(参数类型、个数),此时称为方法重载。
20.常见的程序结构有__顺序结构_、___选择结构_、___循环结构__。
21.判断文件是否存在,可以使用File类的Exists()方法。
22.使用abstract声明的类称之为抽象类。
23.VisualC#控制台应用程序从Main方法开始执行。
24.C#数据类型按照占用内存的方式来分,可以分为值类型、引用类型和指针类型。
25.面向对象的4个基本特征是抽象、封装、继承和多态。
26.inputtext控件是一个单文本输入控件,该控件的passwordchar属性设置为“*”时,输入的字符串将会显示为“*”。
三、按要求完成下列各小题
1.请写出以下程序片断运行的结果。
usingSystem;
classTest
{
publicstaticvoidMain()
{
intsum;
sum=0;
for(inti=1;i<=10;i++)
if(i%2==0)
sum+=i;
Console.WriteLine(“Sumis{0}”,sum);
}
}
结果为:
Sumis30
2.写出以下程序运行结果。
usingSystem;
classTest
{
staticvoidLE(refinta,refintb)
{
intx=a;
a=b;b=x;
Console.WriteLine(a+""+b);
}
publicstaticvoidMain()
{
intx=10,y=25;
LE(refx,refy);
Console.WriteLine(x+""+y);
Console.ReadLine();
}
}
结果为:
2510
2510
3.写出下列函数的功能。
staticfloatFH()
{
floaty=0,n=0;
intx=Convert.ToInt32(Console.ReadLine());
while(x!
=0){
n++;y+=x;
x=Convert.ToInt32(Console.ReadLine());
}
if(n==0)
returny;
else
returny/n;
}
从键盘读入若干个不为0的整数,求平均值。
4.写出以下程序的运行结果。
usingSystem;
classTest
{
publicstaticvoidMain()
{
int[]a={1,2,3,4,5,6,7,8,9};
for(inti=0;i<9;i++)
{
Console.Write(""+a[i]);
if((i+1)%3==0)Console.WriteLine();
}
Console.ReadLine();
}
}
结果为:
123
456
789
5.请写出以下程序片断运行的结果。
int[]ageArray=newint[3]{10,20,30};
Console.WriteLine(“ageArray数组的值为:
”);
foreach(intageIinageArray)
{
Console.WriteLine(ageI);
}
Console.ReadLine();
答:
ageArray数组的值为:
10
20
30
6.请写出以下程序运行的结果。
usingSystem;
classuserName
{
stringUname;
publicuserName(stringname)
{
Console.WriteLine(“新建一个用户”);
Uname=name;
}
publicvoidShowName()
{
Console.WriteLine(“用户名是:
”+Uname);
}
}
publicstaticvoidMain()
{
usernameuN1=newusername(“ZhangSan”);
uN1.ShowName();
}
结果为:
新建一个用户
用户名是:
ZhangSan
7.请写出下图中出现的控件类型,至少8种。
属性3种、事件2种。
答:
StatusBar、TextBox、ComboBox、ToolBar、RadioButton、GroupBox、CheckBox、TreeView、RichTextBox、Button、DateTimePicker、PictureBox、ListBox(任意8个即可)。
属性:
Text、Enabled、BackColor
方法:
Click、Load
8.文件程序,参看P211例11.1和P219例11.5。
9.读代码,完成以下小题:
(1)写出类的继承关系。
(2)virtual、override是什么含义?
(3)写出运行结果。
参看教材P92例6.1和P97例6.4。
四、编程题
1.在Main方法中声明一个字符串数组,给定5个字符串,“Tom”,“Mike”,”Anna”,”Betty”,”Kelly”,将这些字符串存储在数组中并使用foreach语句输出。
2.类通常包含三个成员:
构造函数、字段或属性以及方法。
请设计一个个人资料类Person。
包含下列数据:
两个私有字符串类型字段:
姓名(name)、血型(blood)并添加相关属性(读写)。
2个公有方法:
显示姓名printName、显示血型printBlood。
2个公有构造函数:
Person()和Person(stringname,stringblood)。
UsingSystem.IO;
classPerson
{
Privatestringname;
Privatestringblood;
PublicstringName
{
Get
{
Returnname;
}
Set
{
name=value;
}
}
PublicstringBlood
{
Get
{
Returnblood;
}
Set
{
blood=value;
}
}
Person(){}
Person(stringname,stringblood)
{
This.name=name;
This.blood=blood;
}
PublicvoidprintName()
{
Console.writeLine(name);
}
PublicvoidprintBlood()
{
Console.writeLine(blood);
}
PublicvoidToString()
{
Console.writeLine(“nameis{0},bloodis{1}”,name,blood);
}
}
3.下图中当单击“添加”按钮时,将文本框中的输入的数据作为一项添加到左边的ListView控件中。
当单击“移除”“清空”按钮时,分别完成删除一项、清空所有项的功能。
下述代码中已给出“添加”按钮的Click事件代码,请补充“移除”“清空”的Click事件代码。
privatevoidbtnAdd_Click(objectsender,EventArgse)
{
if(txtItem.Text=="")//判断文本框中是否输入数据
{
MessageBox.Show("项目不能为空");//如果没有输入数据则出提示
}
else
{
lvMyResource.Items.Add(txtItem.Text.Trim());//使用Add方法向控件中添加项
}
}
privatevoidbtnRemoveAt_Click(objectsender,EventArgse)//移除
{
if(lvMyResource.SelectedItems.Count==0)//判断是否选择了要删除的项
{
MessageBox.Show("请选择要删除的项");//如果没有选择弹出提示
}
else
{
lvMyResource.Items.RemoveAt(lvMyResource.S