《Windows编程(C#)》考试复习资料
更新时间:2024-02-29 18:08:01 阅读量: 综合文库 文档下载
一、单项选择题
1.下面( )是合法的变量名。
A. accp5.0 B. _Csharp C.99s D.Main 2.下面这段代码的输出为( )
A.进入了if B.进入了if,进入了else C.进入了else D.进入了if ,进入了else if,进入了else int year = 2046; if (year % 2 == 0)
{ Console.WriteLine(\进入了if\); } else if (year % 3 == 0)
{ Console.WriteLine(\进入了else if\); } else
{ Console.WriteLine(\进入了else\); } Console.ReadLine(); 3.下面程序的输出结果是 ( )
A)1 B)2 C)4.5 D)4 static void Main(string[] args) { int a=5,b =2;
float x=4.5f, y=3.0f, u; u=a/3+b*x/y+1/2;
Console .WriteLine (\,u); Console.ReadLine(); }
4.运行下面这段代码的结果为( )
A.去上课 B.去上课,聚餐,逛街,睡觉 C.什么都不输出 D.编译出错
string day = \星期一\; switch (day)
{ case \星期一\: case \星期三\:
case \星期五\: Console.Write(\去上课\); case \星期六\: Console.Write(\,聚餐\); case \星期日\: Console.Write(\,逛街\); default : Console.WriteLine(\,睡觉\); }
Console.ReadLine(); 5.分析下面这段代码,执行后count的值为( )
int i, j ,count=0; for(i=0;i<4;i++)
for(j=0;j<6;j++) { count++; }
A. 15 B. 24 C.20 D.21 6.程序运行后的输出结果是( )
第 1 页 共 54 页
A)1,1,2 B)2,2,1 C)1,3,2 D)2,2,3 static void Main(string[] args) { int i=1,j=2,k=2; if(j++>0||k++>0 &&i++>0)
Console .WriteLine (\,i,j,k); Console.ReadLine(); }
7.若想打印如下图案,下面代码划线处应分别填入( )。 *** *** ***
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 8.以下代码运行后显示的结果是( )。 string myGrade = \;
string yourGrade = \;
Console.WriteLine(myGrade == yourGrade);
Console.WriteLine(myGrade.Equals(yourGrade));
A. True B.False C.True D.False False True True False 9.程序运行后的输出结果是( )
A)5 B)4 C)6 D)不确定 static void Main(string[] args) { int a=5,b=4,c=6,d; d=a>b?(a>c?a:c):(b);
Console .WriteLine (\,d); Console.ReadLine(); }
10.运行下面这段代码,将( ) static void Main(string[] args)
{
int mile = 0; Run(mile);
Console.WriteLine(mile); Console.ReadLine(); 第 2 页 共 54 页
3 }
private static void Run( ref int mile) {
mile = mile + 80;
Console.WriteLine(mile); }
A. 输出:800 B.输出:800 C.输出:0 D.编译出错 0 800 800
11.用户单击消息框(MessageBox)的按钮时的返回值是( )类型的。 A. DialogValue B.DialogBox C.MessageResult D.DialogResult 12.有以下程序段,其输出结果是( )
int x=3;
do { Console .Write (\,x-=2);
}while((--x)==0);
A) 1 B)3 0 C)1 -2 D)死循环 13.图1-1窗体中,不包含( )控件。
A. TextBox B.ComboBox C.Panel D.Button
图1-1 第9题的窗体
14.( )控件用于显示多个选项卡,每个选项卡均可包含图片和其他控件。 A. TabControl B. GroupBox C.ImageList D.ListBox 15.有以下程序段,其输出结果是( )
int x=3;
while((--x)==0) { Console .Write (\,x-=2);} A) 不执行循环体 B)1 C)0 D)死循环 16.下面( )可以显示一个模式窗体。
A.Application.Run(new Form1() ); B.Form1.Show( ) C.Form1.ShowDialog( ) D.MessageBox.Show( ) 17.如果想建立应用程序与数据库的连接,应该使用( )对象。
A. Connection B.Command C.DataReader D. DataAdapter 18.以下叙述正确的是( )
A)do-while语句构成的循环不能用其他语句构成的循环来代替 B)do-while语句构成的循环只能用break语句退出
第 3 页 共 54 页
C)do-while语句构成的循环,在while 后的表达式为真时结束循环 D)do-while语句构成的循环,在while 后的表达式为假时结束循环
19.下面的代码在执行过程中,注释标注的地方出现了异常,将显示( )消息框。 A. 执行了catch B.执行了catch,执行了finally C.执行了try,执行了finally D.执行了finally try
{ //...异常代码
MessageBox.Show(\执行了try\); }
catch(Exception e)
{ MessageBox.Show(\执行了catch\); } finally
{ MessageBox.Show(\执行了finally\); }
20.某超市管理系统的数据库中有一个商品信息表,若想向数据表中添加一条商品信息,应使用Command对象的( )方法。
A.ExecuteScalar() B.ExecuteReader() C.ExecuteQuery() D.ExecuteNonQuery() 21.以下循环体的执行次数是( ) A)3 B)2 C)1 D)0 static void Main(string[] args) { int i,j;
for(i=0,j=1;i<=j+1;i+=2,j--) { Console .WriteLine (\,i); }
Console.ReadLine(); }
22.利用Command 对象的ExecuteNonQuery()方法执行INSERT、UPDATE或DELETE语句时,返回( )。 A.True或False B.1 或 0 C.受影响的行数 D.-1
23.在ADO.NET中,对于Command对象的ExecuteReader()方法和ExecuteNonQuery()方法,下面叙述错误的是( )
A.INSERT、UPDATE或DELETE等操作的SQL语句主要用ExecuteNonQuery()方法来执行 B.ExecuteNonQuery()方法返回执行SQL语句所影响的行数 C.SELECT操作的SQL语句只能由ExecuteReader()方法来执行 D.ExecuteReader()方法返回一个DataReader对象 24.以下程序的输出结果是 ( )
A)10 1 9 2 B)9 8 7 6 C)10 9 9 0 D)10 10 9 1 static void Main(string[] args) { int x=10,y=10,i;
第 4 页 共 54 页
for (i = 0; x > 8; y = ++i)
{ Console.Write(\, x--, y); }
Console.ReadLine(); }
25.使用( )对象来向DataSet中填充数据。
A.Connection B.Command C.DataReader D.DataAdapter 26.使用( )对象可以用只读的方式快速访问数据库中的数据。 A.DataSet B.DataReader C.DataAdapter D.Connection 27. 以下程序的执行结果是( )
A)4 B)2 C)1 D)0
static void Main(string[] args)
{ int i,j,m=0,n=0; for(i=0;i<2;i++) { for(j=0;j<2;j++) if(j>=i) m=1;n++;
}
Console .WriteLine (\,n); Console.ReadLine(); }
28.从数据库读取记录我们不可能用到的方法是( )
A.ExecuteScalar B.ExecuteReader C.Read D.ExecuteNonQuery
29.有一个WinForms应用程序,在程序中已经创建了一个数据集dataSet和一个数据适配器dataAdapter,现在想把数据库中的Friends表中的数据放在dataSet中的MyFriends表中,下面( )语句正确的。 A.dataAdapter.Fill(dataSet, “MyFriends”); B.dataAdapter.Fill(dataSet, “Friends”);
C.dataAdapter.Update(dataSet, “MyFriends”); D.dataAdapter.Update(dataSet, “Friends”); 30.以下程序的执行结果是( )
A)00010000 B)00010010 C)00000110 D)00010100 static void Main(string[] args) { int i=0,y=18,j; int[] a=new int[8]; do
{ a[i]=y%2; i++;
第 5 页 共 54 页
y=y/2; } while(y>=1);
for (j = a.Length - 1; j >= 0; j--) { Console.Write(\,a[j]); }
Console .WriteLine (); Console.ReadLine(); }
二、多项选择题
1.有一个符点型变量double money=66.6,下面( )语句可以将它转换为一个整型变量。( )
A.int pay=(int) money; B. int pay=money;
C.int pay=Convert.ToInt32(money) ; D. int pay=int.Parse(money) ; 2.图1-2实现一个选择学历的功能,窗体中使用了( )控件。 A.GroupBox B.Panel C.RadioButton D.MenuStrip
图1-2 第2题的窗体
图1-3 工具条
3.图1-3这个工具条中包含的项有( )。
A. DropDownButton B. Button C.ComboBox D.TextBox 4. 下面( )属于DataSet的特点。( ) A.在断开数据库连接的时候可以操作数据库 B.用于读取只读、只进的数据
C.不直接和数据库打交道,与数据库的类型没有关系 D.DataSet中的数据存储在数据库服务器的内存中
5.有一个WinForms应用程序,在程序中已经创建了一个数据集dataSet和一个数据适配器dataAdapter,窗体中有一个DataGrideView控件叫做dgvFriends,现在想在DataGrideView控件中显示DataSet中MyFriends表的数据,假设在DtaSet中只有一个MyFriends表,没有其他表。下面( )是正确的。 A.dgvFriends. DataSource=dataSet[“MyFriends”];
B.dgvFriends. DataSource=dataSet. Tables[“MyFriends”];
第 6 页 共 54 页
C.dgvFriends. DataSource=dataSet[ 0 ];
D.dgvFriends. DataSource=dataSet. Tables[ 0 ];
三、填空题
1.控制控件是否显示的属性是 。
2.指定是否允许编辑文本框中的文本,设置文本框的 属性。
3.向方法中传递参数,包括 和 传递两种方式。其中 传递需要使用 关键字修饰参数。
4.C#中使用 关键字引用命名空间。
5.利用VS创建的窗体都是 类,用Partail 关键字标识。 6.若要在窗体标题栏中显示文本,应指定 属性。
7.使用Message.Show( )方法可以显示消息框,消息框的返回值是一个 类型。 8.如想使控件始终保持在窗体的边缘或填充窗体,应设置该控件的 属性。 9.MDI(多文档界面)主要由两种窗口组成: 和 。
10.窗口有两种显示方式: 窗口和 窗口。显示第一种窗口使用 方法,显示第二种窗口使用 方法。
11.ADO。NET提供了两个主要组件,分别是 和 。
12.使用DataReader查询数据记录,通过Command对象的ExecuteReader( )方法返回一个 对象。
13.使用DataReader读取数据时,每次调用 方法读取一行数据。 14.使用Command对象的 方法对数据进行增删改的操作。
15.使用DataAdapter的 方法填充DataSet,使用 方法把DataSet中修改过的数据返回给数据库。
16.下面程序的输出结果是 static void Main(string[] args) {
int a=0; a+=(a=8); Console .WriteLine(a); Console.ReadLine(); }
17.以下程序执行后的输出结果是 static void Main(string[] args) { int[] data={11,13,14,15,16,17,18};
第 7 页 共 54 页
int i=0,k=0;
while(i<7&&data[i]%2!=0) { k=k+data[i]; i++; }
Console .WriteLine (\ Console.ReadLine(); }
第 8 页 共 54 页
《C#程序设计》期终考试试卷参考答案
一、单项选择题
题号 答案 题号 答案 题号 答案
二、多选题(每题2分,共10分) 题号 答案
三、填空题(1-15小题每空1 分,16-17小题每小题3分,共24+6=30分) 1 2 3 4 5 6 7 8 9
第 9 页 共 54 页
1 B 11 D 21 C 2 A 12 C 22 C 3 D 13 C 23 C 4 D 14 A 24 D 5 B 15 A 25 D 6 C 16 C 26 B 7 D 17 A 27 B 8 C 18 D 28 D 9 C 19 B 29 A 10 D 20 D 30 B 1 AC 2 AC 3 BC 4 AC 5 BD Visible ReadOnly 10 11 模式 无模式 Show( ) ShowDialog() .NET Framework数据提供程序 DataSet(数据集) DataReader 值传递 引用传递 12 引用传递 ref Using 分布 Text DialogResult Dock 父窗口 子窗口 13 14 15 16 17 Read( ) ExecuteNonQuery( ) Fill( ) Update( ) 8 24 一、 填空题(每空2分共30分)
1. C#中所有类的基类是 System.Object 。
2. 面向对象的程序设计的特点是: 封装性 、 多态性 和 继承性 。
3. C#中的多态性分为 编译时多态性 和 运行时多态性 两种。
4. 关键字sealed的含义是 密封的 。
5. 关键字new的作用是 调用构造函数 。
6. 类的成员有多种,举出你所知道的三种类的成员: 方法 、 属性 、 委托 。
7. 已有如下定义,string s = \则s.Length= 20 ,s[8]= 4 。
8. 表达式7/5的值是 1 ,而表达式7/5.0的值是 1.4 。
1.System.Object类是C#中所有类的 。
2.C#引用类型共分为四类:类类型、 、 和 。 3.装箱和拆箱允许将数据进行类型转换,int k=228; object obj=k;使用了 转换。 4.关键字sealed的含义是 。 5.关键字new的作用是 。 6.类的构造函数的名称与 同名。
7.C#中有三种注释类型,分别是 、 和文档,分别使用 、 和 /// 。
8.使用DataReader读取数据时,每次调用 方法读取一行数据。 9.使用Command对象的 方法对数据进行增删改的操作
10.使用DataReader查询数据记录,通过Command对象的ExecuteReader( )方法返回一个
对象。
第 10 页 共 54 页
一、 选择题(每小题3分,共15分)
1.下面是几条定义类的语句,只能被继承的类是() A.class student
B.public class student C.abstract class student D.sealed class student
2.如果要在窗体中始终显示系统的当前时间,应该使用的控件是() A.CheckBox B.Panel
C.RadioButton D.Timer
3.下面对C#中类的构造函数描述正确的是( )
A.与方法不同的是,构造函数只有void这一种返回类型 B.构造函数如同方法一样,需要人为调用才能执行其功能 C.构造函数一般被声明成private型
D.在类中可以重载构造函数,C#会根据参数匹配原则来选择执行合适的构造函数 4.下面有关类的继承的说法正确的是()
A.派生类的成员应该与基类的成员一致,不能为派生类增加新成员 B.在派生类中可通过隐藏继承成员,来删除基类的成员
C.在描述类的继承关系时,父类与子类是基类与派生类的另一种说法 D.所有的类成员都可以被继承
5.下面有关事件的描述中,正确的是() A.方法一旦被事件预订后,就不能被撤消 B.事件的预订一次只能预订一个方法 C.创建事件的关键字是delagate
D.当事件预订了多个方法时,一次只能有一个方法被调用
参考答案:C D D C B
1.属于C#语言的关键字( )。
A. abstract B. camel C. Salary D. Employ 答案:A
2.C#语言中,值类型包括:基本值类型、结构类型和( )。 A.小数类型 B.整数类型 C.类类型 D.枚举类型 答案:D
3. 假定一个10行20列的二维整型数组,下列哪个定义语句是正确的( )。 A. int[]arr = new int[10,20] B. int[]arr = int new[10,20] C. int[,]arr = new int[10,20] D. int[,]arr = new int[20;10]
第 11 页 共 54 页
答案:C
4.在类作用域中能够通过直接使用该类的( )成员名进行访问。 A. 私有 B. 公用 C. 保护 D. 任何 答案:D
5. 以下正确的描述是( )。
A. 函数的定义可以嵌套,函数的调用不可以嵌套 B. 函数的定义不可以嵌套,函数的调用可以嵌套 C. 函数的定义和函数的调用均可以嵌套 D. 函数的定义和函数的调用均不可以嵌套 答案:B
6.小数类型和浮点类型都可以表示小数,正确说法:( ) A. 两者没有任何区别
B. 小数类型比浮点类型取值范围大 C.小数类型比浮点类型精度高 D. 小数类型比浮点类型精度低 答案:C
8.能作为C#程序的基本单位是( )。
A. 字符 B. 语句 C. 函数 D. 源程序文件 答案:B
9. 可用作C#程序用户标识符的一组标识符是( )。 A. void define +WORD B. a3_b3 _123 YN C. for -abc Case D. 2a DO sizeof 答案:B
10.引用类型主要有4种:类类型、数组类型、接口类型和( )。 A.对象类型 B.字符串类型 C.委托类型 D.整数类型 答案:C 二、填空题(每空2分,共20分) 1. 在switch语句中,每个语句标号所含关键字case后面的表达式必须是 。 答案:常量表达式
2. 在while循环语句中,一定要有修改循环条件的语句,否则,可能造成 .。 答案:死循环
3. C#数组元素的下标从 开始。 答案:0
4. 当在程序中执行到 语句时,将结束所在循环语句中循环体的一次执行。 答案:continue
5. 元素类型为double的2行5列的二维数组共占用 字节的存储空间。 答案:80
6. C#数组类型是一种引用类型,所有的数组都是从System命名空间的 类继承而来的引用对象。 答案:object
7. 枚举是从System.类继承而来的 类型。 答案:Enum
8.一般将类的构造方法声明为 访问权限。如果声明为private,就不能创建该类的对象。
第 12 页 共 54 页
答案:public或公有
9.类中声明的属性往往具有get()和 两个函数。 答案:set()
10.对于方法,参数传递分为值传递和 两种。 答案:引用传递
一、单项选择题
1.下面( )是C#中的文档注释。
A. //注释 B. /*注释*/ C.///注释 D./**注释*/ 2.运行下面一段代码,将输出( )
A.圆的周长为2 B.圆的周长为3.14 C.圆的周长为18.84 D.运行出错
int r = 3;
float pie = 3.14f;
Console.WriteLine(\圆的周长为{0}\, 2 * pie * r); Console.ReadLine();
3.以下一维数组的初始化正确的是( )。
A. int array[ ]=new int[5]; B.int[ ] array=new int[5]{0,1,2}; C.int[ ] array= {0,1,2}; D.int array[]=new int[5]{0,1,2,3,4}; 4.分析下面这段代码,执行后count的值为( )
int 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
5.以下代码实现一个长度为6的一维数组的冒泡排序,那么内存for循环的终止条件应填入( for( i=0; i<5; i++) for( j=0; j< ;j++) { if (score[ j ]< score[ j+1 ] )
{ temp= score[ j ] ; score[ j ]= score[ j +1] ; score[ j +1]=temp ; } }
A. 5 B. 4 C.5-i D.4-i 6.运行下面这段代码,将输出( ) static void Main(string[] args)
{
int nowMinute = 0;
for (int i = 1; i <= 60; i++) {
AddMinute(nowMinute); }
Console.WriteLine(nowMinute); 第 13 页 共 54 页
。 ) Console.ReadLine(); }
private static void AddMinute(int nowMinute) {
nowMinute++; }
A. 0 B.1 C.60 D.61
7.若要使用SubString()方法从字符串Supermen中截取man这个字符串,那么方法的两个参数应该分别是( )。
A. 5 3 B.5 7 C.6 3 D.6 8 8.通过( )可以设置消息框中的显示的按钮。
A. Button B.DialogButton C.MessageBoxButton D.MessageBoxIcon 9.( )是多文档界面应用程序。
A. 记事本 B. Microsoft Word C.Microsoft Excel D.Windows资源管理器
10.计时器Timer控件的Interval属性可以设置定时发生的事件的间隔,它的单位是( ) A. 秒 B.毫秒 C.微秒 D.分 11.ADO.NET的两个主要组件是( )。
A. Connection和Command B. DataSet和.NET Framework数据提供程序 C.DataAdapter和DataSet D..NET Framework数据提供程序和DataAdapter
12.在MySchool数据库中,假设年级表Grade中有3条记录,编译并执行下面的代码后将( ) A. 输出1 B.输出3 C.编译错误 D. 发生异常
static void Main(string [] args) {
string connString = \; SqlConnection conn = new SqlConnection(connString); string sql = \;
SqlCommand command = new SqlCommand(sql, conn); int num = (int)command.ExecuteScalar(); Console.WriteLine(num); Console.ReadLine(); }
13.conn是一个可用的数据库连接,下面一段代码在生成解决方案时出错,错误在第( )行。 A. 2 B. 3 C.4 D. 5
1 string sql = \; 2 SqlCommand command = new SqlCommand(sql, conn); 3 conn.Open();
4 int num = command.ExecuteScalar(); 5 conn.Close();
14.使用( )对象可以用只读的方式快速访问数据库中的数据。 A.DataSet B.DataReader C.DataAdapter D.Connection 15.从数据库读取记录我们不可能用到的方法是( )
第 14 页 共 54 页
A.ExecuteScalar B.ExecuteReader C.Read D.ExecuteNonQuery
16.有一个WinForms应用程序,在程序中已经创建了一个数据集dataSet和一个数据适配器dataAdapter,现在想把数据库中的Friends表中的数据放在dataSet中的MyFriends表中,下面( )语句正确的。 A.dataAdapter.Fill(dataSet, “MyFriends”); B.dataAdapter.Fill(dataSet, “Friends”);
C.dataAdapter.Update(dataSet, “MyFriends”); D.dataAdapter.Update(dataSet, “Friends”);
17.某超市管理系统的数据库中有一个商品信息表,若想向数据表中添加一条商品信息,应使用Command对象的( )方法。
A.ExecuteScalar() B.ExecuteReader() C.ExecuteQuery() D.ExecuteNonQuery()
18.利用Command 对象的ExecuteNonQuery()方法执行INSERT、UPDATE或DELETE语句时,返回( )。 A.True或False B.1 或 0 C.受影响的行数 D.-1
19.在ADO.NET中,对于Command对象的ExecuteReader()方法和ExecuteNonQuery()方法,下面叙述错误的是( )
A.INSERT、UPDATE或DELETE等操作的SQL语句主要用ExecuteNonQuery()方法来执行 B.ExecuteNonQuery()方法返回执行SQL语句所影响的行数 C.SELECT操作的SQL语句只能由ExecuteReader()方法来执行 D.ExecuteReader()方法返回一个DataReader对象 20.使用( )对象来向DataSet中填充数据。
A.Connection B.Command C.DataReader D.DataAdapter
题号 答案 题号 答案
二、多项选择题(在本题的每小题的备选答案中只有两个答案是正确的,请把正确选项的序号,填入题中的括号内。多选少选不给分。每题3分,共15分)
1.( )控件可以将其他控件分组。
A. GroupBox B.ComboBox C.Panel D.TextBox 2.图1-1实现一个选择学历的功能,窗体中使用了( )控件。 A.Panel B.GroupBox C.MenuStrip D.RadioButton
1 C 11 B 2 C 12 D 3 C 13 C 4 B 14 B 5 C 15 D 6 A 16 A 7 A 17 D 8 C 18 C 9 C 19 C 10 B 20 D
第 15 页 共 54 页
图1-2 工具条
3.图1-2这个工具条中包含的项有( )。
A. Button B. DropDownButton C.TextBox D.ComboBox 4.以下关于DataSet的说法错误的是( )。 A.DataSet里面可以创建多个表 B.DataSet的数据存放在内存中 C.DataSet中的数据不能修改
D.在关闭数据库连接的时候,不能使用DataSet中的数据 5.下面( )属于DataSet的特点。 A.用于读取只读、只进的数据 B.在断开数据库连接的时候可以操作数据库 C.DataSet中的数据存储在数据库服务器的内存中 D.不直接和数据库打交道,与数据库的类型没有关系
题号 答案
三、填空题(每空1分,共24分)
1.若要在文本框中输入密码,常指定 属性
2.指定是否允许编辑文本框中的文本,设置文本框的 属性。
3.在C#中进行数据类型转换有多种方式:隐式转换、 、 方法和 类 。 4.C#中使用 类进行控制台的输入输出。
5.C#中有三种注释类型,分别是 、 和 ,分别使用 “ ”、“ ”、“ ”。
6.使用Message.Show( )方法可以显示消息框,消息框的返回值是一个 类型。 7.如想设置某个控件,使其与窗体一起动态调整大小,则应设置该控件的 属性。
1 AC 2 BD 3 AD 4 CD 5 BD 答案: 1 2 PasswordChar ReadOnly 第 16 页 共 54 页
3 4 5 6 7
显示转换 Parse( ) 方法 Convert类 Console 行 块 文档 // /* */ /// DialogResult Anchor 1. 下列选项中,()是引用类型。
a) enum类型 b) struct类型 c) string类型 d) int类型
2. 下列关于面向对象编程描述错误的是()。
a) 类不可以多重继承而接口可以;
b) 抽象类自身可以定义成员而接口不可以; c) 抽象类和接口都不能被实例化;
d) 一个类可以有多个基类和多个基接口;
3. 在DOM中,装载一个XML文档的方法是()。
a) save方法 b) load方法
c) loadXML方法 d) send方法
4. 以下选项不属于ASP,NET的系统对象的是()。
a) Page b) Server
c) Application d) @Page
5. 下列关于构造函数的描述正确的是()
a) 构造函数可以声明返回类型。 b) 构造函数不可以用private修饰 c) 构造函数必须与类名相同 d) 构造函数不能带参数
6. 在WinForm中,为了防止用户无意关闭窗体,需要在() 事件中编写代码,提示用户是否关闭窗体.
a) Closing b) Closed
第 17 页 共 54 页
c) Load
d) VisibleChanged
7. 接口是一种引用类型,在接口中可以声明(),但不可以声明公有的域或私有的成员变量
a) 方法、属性、索引器和事件; b) 方法、属性信息、属性; c) 索引器和字段; d) 事件和字段
8. 阅读以下C#代码片断,在程序编译过程中,下面说法正确的( )。
int val = 100; Object obj = val; int num = (int)obj;
Console.WriteLine(“num:{0}”,num); a) 第1行执行装箱操作 b) 第3行执行装箱操作 c) 第2行执行拆箱操作 d) 第3行执行拆箱操作
9. 在ADO.NET中,下列( )组件不属于.NET数据提供程序。
a) Command b) DataReader c) DataSet d) DataAdapter
10. 在C#类中,可以通过编写( )实现方法重载。
a) 具有不同返回类型的同名函数 b) 具有不同代码行数的同名函数 c) 具有不同参数个数的不同名函数 d) 具有不同参数类型的同名函数
11. 在C#中,下列()关键字用于重写基类的虚拟方法。
a) override b) new c) base d) virtual
12. 在SQL Server 2005中,可以使用全局变量()来获得最后一次插入的标识值。(选择一项)
a) @@DATEFIRST b) @@IDENTITY
c) @@TRANSCOUNT d) @@ROWCOUNT
13. 已知在WinForms窗体中有一个Timer控件,Ineterval属性设置为4分钟,当控件计时1分钟后,调
第 18 页 共 54 页
用了控件的Stop方法,再过1分钟过后,重新调用控件的Start方法,则自该次调用Start方法后,第一次触发控件的Tick事件的时间间隔是()。 a) 1分钟
b) 2分钟 c) 3分钟 d) 4分钟
14. FileStream fs=new FileStream
(“c:\\\\test.txt”,FileMode.Create,FileAccess.ReadWrite,FileShare.None); 针对如上C#代码段,以下说法正确的是()。
a) 如果c盘根目录下已经存在文件test.txt,则编译错误 b) 如果c盘根目录下已经存在文件test.txt,则改写test.txt文件,将其内容清空 c) 如果c盘根目录下不存在文件test.txt,则不做任何操作
d) 如果c盘根目录下不存在文件test.txt,则引发异常
15. 在C#中,下列代码的运行结果是()。(选项一项) Using System; Class Test{ static void Main(){ vehicle ve = new car(100); ve.move(); } } Public class vehicle{ Protected float Speed; Public vehicle(float speed){ } Public virtual void move(){ Console.WriteLine(“我的移动速度是:{0}”,this.Speed); } } Public class car:vehicle{ Public car(float speed):base(speed){ This.Speed=speed; } Public override void move(){ Console.WriteLine(“我的运行速度是:{0}”,this.Speed); a) 我的移动速度是:0 b) 我的移动速度是:100 c) 我的运行速度是:0
d) 我的运行速度是:100
16. 在SQLServer2005中,以下是表autos的定义: Create table autos(make varchar(20) not null,model varchar(20) not null,
第 19 页 共 54 页
acquisition_cost money null,acquisition_date datetime null)
创建该表后再执行以下的语句: Truncate table autos Begin tran Insert autos(make,model)values(?Tucker?,?Torpedo?) If exists(select * from autos) Rollback tran Else Commit tran 执行结果是()。 a) 该批处理将失败,因为begin tran?commit tran 没有正确嵌套 b) 该批处理结束后,表内没有数据行 c) 该批处理结束后,表内有一行数据
d) 插入数据行的语句将失败,并且提示错误信息
17. 在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
18. 如果要将窗体设置为透明的,则( )
a) 要将FormBoderStyle属性设置为None; b) 要将Opacity属性设置为小于100%得值; c) 要将locked 属性设置为True; d) 要将 Enabled属性设置为True;
19. SQL server 2005中,在存储过程中,( )语句用来向用户报告错误,并可指定严重级别。
a) PAINT b) ERROR
c) RAISEERROR d) RAISE
20. 在C#中,下列代码的运行结果是( )。
Public class TEApp{
Public static void ThrowException(){ Throw new Exception(); }
Public static void Main(){ Try{
第 20 页 共 54 页
TEApp .ThrowException(); Console.WriteLine(“try”); } Catch(Exception e){ Console.WriteLine(“catch”); } Finally{ Console.WriteLine(“finally”); } } } a) finally b) catch c) try d) catch
finally
21. 在SQL Server 2000中,有products(产品)表,包含字段:pName(产品名称)、price(价格)。若要
得到最贵产品的产品名称和产品价格,应该使用的查询语句是( )。 a) dSELECT TOP 1 pName,Price FROM Products ORDER BY Price b) SELECT pName,MAX(Price) FROM Products c) SELECT pName,MAX(Price) FROM Products GROUP BY pName
d) SELECT pName,Price FROM Products WHERE Price = (SELECT Min(Price) FROM Products
22. 下列关于C#中索引器理解正确的是()
a) 索引器的参数必须是两个或两个以上 b) 索引器的参数类型必须是整数型 c) 索引器没有名字 d) 以上皆非
23. Winform中,关于ToolBar控件的属性和事件的描述不正确的是()。
a) Buttons属性表示ToolBar控件的所有工具栏按钮
b) ButtonSize属性表示ToolBar控件上的工具栏按钮的大小,如高度和宽度
c) DropDownArrows属性表明工具栏按钮(该按钮有一列值需要以下拉方式显示)旁边是否显示下
箭头键
d) ButtonClick事件在用户单击工具栏任何地方时都会触发
24. ASP.NET框架中,服务器控件是为配合Web表单工作而专门设计的。服务器控件有两种类型,它们
是() 。
a) HTML控件和Web控件 b) HTML控件和XML控件 c) XML控件和Web控件 d) HTML控件和IIS控件
25. 声明类时没有写安全修饰符。那么默认的安全修饰符是()。
第 21 页 共 54 页
a) private b) protected c) internal d) public
26. 要对注册表进行操作则必须包含( )
a) a)System.ComponentModel命名空间; b) b)System.Collections命名空间; c) c)System.Threading命名空间; d) d)Microsoft.Win32命名空间;
27. 在ADO.NET中执行一个存储过程时,如果要设置输出参数则必须同时设置参数的方向和(),必要
时还要设置参数尺寸 a) 大小; b) 上限; c) 初始值; d) 类型;
28. 以下选项中,()选项不是ADO.NET相对于ADO等的优势?
a) 简单的说,ADO.NET新增dataset等,不需要随时保持连接,性能提高.; b) 更好的支持动态游标和服务器端游标;
c) 可以断开connection而保留当前数据集可用; d) xml支持;
29. 如果设treeView1=new TreeView(),则treeView1.Nodes.Add(\根节点\返回的是一个 ()类型的值
a) TreeNode; b) int; c) string; d) TreeView;
30. 三层架构的软件开发模式有很多优点,以下不是他的优点的是()?
a) 分工明确 b) 条理清晰
c) 易于调试,而且具有可扩展性; d) 减少大量代码;
31. 在C# 中,下列代码的运行结果是()。
Hashtable hsStu = new Hashtable(); hsStu.Add(3,”甲”); hsStu.Add(2,”乙”); hsStu.Add(1,”丙”);
Console.WriteLine(hsStu[3]); a) 3 b) 甲 c) 1 d) 丙
第 22 页 共 54 页
32. 在C# 中,下列关于窗体的属性和方法,说法正确的是()。
a) 窗体的边框是一直可以改变的,不能固定不变
b) 如果设置了窗体的AcceptButton属性,则当用户按下Enter键时,将引发AcceptButton
属性指定的按钮的Click事件
c) 如果设置了窗体的CancelButton属性,则当用户按下Esc键时,窗体将会关闭 d) 如果窗体不可见,调用窗体的Activate方法后,窗体将显示并激活
33. 在C#中,通过调用Thread类的Sleep(int x)方法来实现禁止线程运行,其中x代表()。
a) 禁止线程运行的微秒数 b) 禁止线程运行的毫秒数 c) 禁止线程运行的秒数
d) 禁止线程运行的CPU 时间数
34. 在WinForms中,下列代码的运行结果是()。
DataSet ds = new DataSet(); DataTable dt = new Data Table();
dt.Columns.Add(“name”,typeof(System.String)); DataRow dr = dt.NewRow(); dr[0]=”李四”; dt.Rows.Add(dr); ds.Tables.Add(dt);
Console.WriteLine(ds.HasChanges());
a) b) c) d)
李四 true false
没有输出
35. 在C#中,某程序在一个类中编写了两个同名的方法,代码如下,请问该段代码的运行结果是()。
public class Musician{ public void Song(){ Console.WriteLine(“忘记你我做不到”); } public void Song(string musicName) { Console.WriteLine(musicName); } static void Main(){ Musician musician = new Musician(); string musicName=”还是觉得你最好”; musician.Song(“分手总要在雨天”); } }
a) 忘记你我做不到 b) 还是觉得你最好 c) 分手总要在雨天 d) 没有输出
第 23 页 共 54 页
一、选择题
1、访问数据库时,使用连接模式同使用非连接模式相比有何优点?
A. 更易于控制和维护,更安全 B. 更容易进行并发控制
C. 可以为更多的用户同时提供数据 D. 数据实时性更好,及时刷新
答案 A、B、D
2假设有3个文本框TextBox1、TextBox2、TextBox3,其中TextBox3.Text值为空,TextBox1.Text值为8,TextBox2.Text值为10,则执行语句:“TextBox3.Text=TextBox1.Text+TextBox2.Text;”后,TextBox3.Text值为:( )
(A)108 (B)18 (C)810 (D)出错 答案 C
3类MyClass 中有下列方法定义:
public void testParams(params int[] arr) {
Console.Write (“使用Params参数!”); }
public void testParams(int x,int y) {
Console.Write (“使用两个整型参数!”); }
请问上述方法重载有无二义性?若没有,则下列语句的输出为_________. MyClass x = new MyClass(); x.testParams(0); x.testParams(0,1); x.testParams(0,1,2); A. 有语义二义性;
B. 使用Params 参数!使用两个整型参数!使用Params 参数! C. 使用Params 参数!使用Params 参数!使用Params 参数! D. 使用Params 参数!使用两个整型参数!使用两个整型参数!
答案 B
4作为程序员,你需要为公司开发一套供员工使用的个人信息管理软件.软件需求之一是:
令每个员工可以在公司的任意一台安装有该程序的工作站上,以自己喜爱的自定义界面 运行该程序.为满足该需求,程序应优先采取下列何种策略保存每位用户的自定义设 置?
A. 将个人设置保存到本地计算机硬盘的XML 文件中;
B. 将个人设置保存到公司的SQL Server 数据库服务器中; C. 将个人设置保存到本地计算机的注册表中; D. 将个人设置保存到软盘中;
答案 B
5C#中,在方法MyFunc 内部的try..catch 语句中,如果在try 代码块中发生异常,并
且在当前的所有catch 块中都没有找到合适的catch 块,则
第 24 页 共 54 页
A. .NET 运行时忽略该异常
B. .NET 运行时马上强制退出该程序
C. .NET 运行时继续在MyFunc 的调用堆栈中查找提供该异常处理的过程 D. .NET 抛出一个新的”异常处理未找到”的异常
答案 C
6C#中,新建一字符串变量str,并将字符串”Tom's Living Room”保存到串中,则应该
使用下列哪条语句?
A. string str = “Tom\\'s Living Room”; B. string str = “Tom's Living Room”; C. string str(“Tom's Living Room”); D. string str(“Tom”s Living Room”);
答案 A
7在使用C#.NET 部署Web 项目时,使用”复制项目”与建立部署项目相比 看到这里 A. 二者功能完全一样 B. 后者功能更强大 C. 前者操作更简便
D. 前者只能在本地计算机内部使用
答案 B、C
8下列语句的输出是________
double MyDouble = 123456789;
Console.WriteLine(“{0:E}”,MyDouble); A. $123,456,789.00 B. 1.234568E+008 C. 123,456,789.00 D. 123456789.00
答案 B
9、接口Animal 定义如下:
public interface Animal
{
void Move(); }
则下列抽象类的定义中,哪些是不合法的? A. abstract class Cat: Animal
{
abstract public void Move(); }
B. abstract class Cat: Animal
{
virtual public void Move(){Console.Write(Console.Write(“Move!”);)} }
C. abstract class Cat: Animal
{
public void Move(){Console.Write(Console.Write(“Move!”);)}; }
D. abstract class Cat: Animal
{
第 25 页 共 54 页
public void Eat(){Console.Write(Console.Write(“Eat!”);)}; }
答案 D
10有以下代码片段:
int k = 5, n = 0; while (k > 0) {
switch (k) {
case 1: n += k; break; case 2: break;
case 3: n += k; break; default: break; }
k = k - 1; }
执行该代码片段后,n的值为( ) (A)0 (B)4 (C)6 (D)7 答案 B
11C#程序中,可使用try..catch 机制来处理程序出现的______错误.
A. 语法 B. 运行 C. 逻辑 D. 拼写
答案 B
12、关于C#语言的基本语法,下列哪些说法是正确的?
A. C#语言使用using 关键字来引用.NET 预定义的名字空间; B. 用C#编写的程序中,Main 函数是唯一允许的全局函数; C. C#语言中使用的名称严格区分大小写; D. C#中一条语句必须写在一行内;
答案 A、C
13下列哪个类型的对象是ADO.NET 在非连接模式下处理数据内容的主要对象?
A. Command B. Connection C. DataAdapter D. DataSet
答案 D
14关于ASP.NET 窗体应用程序,下列说法哪些是正确的?
A. Web 窗体是在浏览器中进行解释执行的 B. Web 窗体程序中脚本和代码必须严格分开
C. Web 窗体程序产生的HTML 页面只能运行于IE 浏览器
D. Web 窗体程序的代码可以使用任何一种.NET 兼容的编程语言编写
答案 D
15使用”新建项目 Visual C# Projects 项目 ASP.NET Web 应用程序”成功创建URL 为”http://localhost/MyWeb”的Web 表单应用程序后,项目文件将保存在: A. 本地计算机Web 站点的MyWeb 虚拟目录下
第 26 页 共 54 页
B. 本地文件共享MyWeb 中
C. 另一台名为localhost 的计算机的Web 站点的MyWeb 虚拟目录下 D. 本地目录c:\\My Documents\\MyWeb 下
答案 A
16变量openFileDialog1 引用一个OpenFileDialog 对象.为检查用户在退出对话框时是
否单击了”打开”按钮,应检查openFileDialog1.ShowDialog()的返回值是否等于 _______;
A. DialogResult.OK B. DialogResult.Yes C. DialogResult.No D. DialogResult.Cancel
答案 A
17在C#中,预处理器指令#region(地区,范围) 和#endregion 的作用是:
A. 注释#region 和#endregion 之间的代码 B. 为Code Editor 定义一段可折叠代码区
C. #region 和#endregion 之间的代码在Debug 版本中不参加编译 D. #region 和#endregion 之间的代码在Release 版本中不参加编译
答案 B
18、为保护Web Service 不受恶意访问的攻击,应使用_______保护Web Service.
A. IIS 目录安全性 B. NTFS 安全性 C. 共享目录安全性 D. TCP/IP 安全性
答案 A
19已知在某Windows Form 应用程序中,主窗口类为Form1, 程序入口为静态方法
From1.Main.如下所示:
public class Form1 : System.Windows.Forms.Form {
//其他代码
static void Main() {
//在此添加合适代码 } }
则在Main 方法中打开主窗口的正确代码是: A. Application.Run(new Form1()); B. Application.Open(new Form1()); C. (new Form1()).Open(); D. (new Form1()).Run();
答案 A
20___ MSIL _______是独立于CPU 的指令集,它可以被高效地转换为特定于某种CPU 的代码.
A. CLR B. CLS
C. MSIL Microsoft 中间语言 D. XML Web Service
答案 C
第 27 页 共 54 页
21在Visual Studio.NET 窗口中,在____ ______窗口中可以察看当前项目的类和类型的层次信息.
A. 解决方案资源管理器 B. 类视图 C. 资源视图 D. 属性
答案 B
22应用ADO.NET 访问数据时,Connection 对象的连接字符串中Initial Catalog 子串的
含义是:
A. Connection 对象连接到的数据库的名称 B. Connection 对象的身份验证信息 C. Connection 对象的最大连接时间 D. Connection 对象使用的缓存大小
答案 A
23在C#中,表示一个字符串的变量应使用以下哪条语句定义?
A. CString str; B. string str;
C. Dim str as string D. char * str;
答案 B
24、1. C#中MyClass 为一自定义类,其中有以下方法定义 public void Hello(){..}
使用以下语句创建了该类的对象,并使变量obj 引用该对象: MyClass obj = new MyClass();
那么,可如何访问类MyClass 的Hello 方法? A. obj.Hello(); B. obj::Hello(); C. MyClass.Hello(); D. MyClass::Hello(); 答案 A
三、 根据程序和要求写出结果(每小题5分共20分)
1、class MainTest {
static void Main(string[] args) { Variable v = new Variable();
Console.WriteLine(\ v.Init(20,30);
Console.WriteLine(\ } }
class Variable {
第 28 页 共 54 页
public int x = 0, y = 0, z = 0; public void Init(int x,int y) {
this.x = x; this.y = y; int z = 5;
Console.WriteLine(\ } }
输出结果: x=0 y=0 z=0 x=20 y=30 z=5 x=20 y=30 z=0
2、class MainTest
{ static void Main(string[] args)
{ StaicAndInstanceClass si1 = new StaicAndInstanceClass(); si1.APrint();
StaicAndInstanceClass si2 = new StaicAndInstanceClass(); si2.APrint(); } }
class StaicAndInstanceClass { static int i; int j;
public void localprint() { int k = 0; i++; j++; k++;
Console.WriteLine(\ }
public void APrint() { localprint(); localprint(); } }
输出结果: i=1 j=1 k=1 i=2 j=2 k=1 i=3 j=1 k=1 i=4 j=2 k=1
3、在下面的例子里 using System;
第 29 页 共 54 页
class A {
public A() {
PrintFields(); }
public virtual void PrintFields(){} }
class B:A {
int x=1; int y;
public B() {
y=-1; }
public override void PrintFields() {
Console.WriteLine(\ } }
当使用new B()创建B的实例时,产生什么输出? 输出结果: x=1 y=0
4、using System;
public class JaggedArrays {
public static void Main() {
int[][] matrix = {new int[5], new int[4], new int[2] }; matrix[0][3] = 4; matrix[1][1] = 8; matrix[2][0] = 5;
for (int i = 0; i < matrix.Length; i++) {
for (int j = 0; j < matrix[i].Length; j++) {
Console.WriteLine(\} } } }
1.写出以下程序的运行结果 。
第 30 页 共 54 页
public class Total { public static void Main(string[] args) { int y, x=1, total=0 ; while (x<=10) { y=x*x; total +=y; ++x; } System.Console.WriteLine(\ } }
2.请阅读以下程序: using System; class Test {
public static void Main ()
{
char[] a = \ int i1=0, i2=0, i=0 ; while (a[i]) {
if (a[i] = = ’a’) i1++; if (a[i]= = ’b’) i2++; i++; }
Console.writeLine(i1+ “ “ + i2);
} } 其输出结果:
3.写出以下程序的运行结果 。 using System; class Test {
static int LB(ref int[ ] a, int n) { int s=1; for (int i=0; i } public static void Main ( ) { int[ ] a = {1,2,3,4,5,6,7,8}; int b = LB(ref a, 5) + LB(ref a, 4); Console.writeLine ( “b = “ +b); 第 31 页 共 54 页 } } 4.写出以下程序的运行结果 。 using System; namespace SelectionSorter { public class SelectionSorter { private int min; public void Sort(int [ ] list) { for(int i=0; i min=i; for(int j=i+1; j if(list[j] int t=list[min]; list[min]=list[i]; list[i]=t; } } } public class MainClass { public static void Main( ) { int[ ] iArrary=new int[ ]{1,5,3,6,55,9,87,12,34}; SelectionSorter ss=new SelectionSorter(); ss.Sort(iArrary); for(int m=0; m 1. class Test { public static void Main () { int[] a ={2,4,6,8,10,12,14,16,18}; for (int i=0; i<9; i++) { 第 32 页 共 54 页 Console.write(“ ”+a[i]); if ((i+1)%3==0) Console.writeLine(); } } } 答案: 2.using System; class Test { static void LE(ref int a, ref int b) { int x = a; a = b; b = x; Console.writeLine (a + “ “ +b); } public static void Main () { int x=10, y=25; LE(ref x, ref y); Console.writeLine (a + “ “ +b); } } 答案: 3. using System; class Demo { int a; public A(int n) { a=n; } public int M( ) { if (a>0) return a--; else return 0; } } class Test { static void Main( ) { Demo x=new Demo(9); int k=x.M( ); while (k>0) { Console.Write(“{0}\\t ”, k*k); } } 第 33 页 共 54 页 } 答案: 4. using System; using System.IO; namespace A10_1 { class pro { static void Main() { StreamWriter sw=File.CreateText(\ for (int i=0;i<26;i++) { sw.Write('A'+i); sw.Write((char) ('A'+i)); } for (int i=0;i<26;i++) { sw.Write('a'+i); sw.Write((char) ('a'+i)); } sw.Close(); FileStream fs=File.OpenRead(\ BinaryReader br=new BinaryReader(fs); Console.WriteLine(\ br.ReadChar()); fs.Seek(2*3,SeekOrigin.Begin); Console.WriteLine(\ br.ReadChar()); fs.Seek(25*3,SeekOrigin.Begin); Console.WriteLine(\ br.ReadChar()); fs.Seek(26*3,SeekOrigin.Begin); Console.WriteLine(\ br.ReadChar()); fs.Close(); } } 答案: 5. public delegate void BuyTicketDelegate(string num); public class Student { public event BuyTicketDelegate blEvent; 第 34 页 共 54 页 public Student(string num) { blEvent+=new BuyTicketDelegate (this.BuyTicket); } public void ShowNum(string num) { blEvent(num); } private void BuyTicket(string num) { Console.WriteLine(\我要买\次车票\ } static void Main() { Console.WriteLine(\创建学生对象\ Student stu=new Student(\ Console.WriteLine(\创建完毕\ stu.ShowNum(\ } } 答案: 6. using System; using System.IO; class FileTest { public static void Main() { Console.WriteLine(\确认删除当前目录下的所有文件?\Console.WriteLine(\点击'Y'键继续,其它键取消操作\int a = Console.Read(); if(a == 'Y' || a == 'y'){ Console.WriteLine(\正在删除文件...\} else { Console.WriteLine(\用户取消操作\return; } DirectoryInfo dir = new DirectoryInfo (\foreach (FileInfo f in dir.GetFiles()) { f.Delete(); } } } 答案: 7. using System; 第 35 页 共 54 页 using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Data. OleDb; namespace person { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { string connectionString = \ +\ //根据连接字符串创建OleDbConnection实例 OleDbConnection conn = new OleDbConnection(connectionString); try { conn.Open(); OleDbDataAdapter adapter = new OleDbDataAdapter( \性别 from person where 性别> 18 \ DataSet dataset = new DataSet(); adapter.Fill(dataset, \ dataGridView1.DataSource = dataset.Tables[\ adapter.Dispose(); } catch (Exception err) { MessageBox.Show(err.Message); } finally { conn.Close(); } } } } 答案: 1.写出以下程序的运行结果 。 class test 第 36 页 共 54 页 { enum season { spring, summer = 4, autumn, winter = 5 }; static void Main( string[] args ) { Console.WriteLine( \ } } 2.请阅读以下程序,写出程序的运行结果是 。 class test { static void Main(string[] args) { int[] a = { 34, 91, 83, 56, 29, 93, 56, 12, 88, 72 }; int i, t = 0, temp = 100; for ( i = 0; i < a.Length; i++) { if (a[i]<=temp) { temp = a[i]; t = i; } } Console.WriteLine( \ } } 3.写出以下程序的运行结果 。 using System; class Test { static int LB(ref int[] a,int n) { int s=1; for (int i=0; i public static void Main () { int[] a = {1,2,3,4,5,6,7,8}; int b = LB(ref a, 5) + LB(ref a, 3); Console.writeLine ( “b = “ +b ); } 4.写出以下程序的运行结果 。 class MainTest 第 37 页 共 54 页 { static void Main(string[] args) { StaicAndInstanceClass si1 = new StaicAndInstanceClass(); si1.APrint(); StaicAndInstanceClass si2 = new StaicAndInstanceClass(); si2.APrint(); } } class StaicAndInstanceClass { static int i; int j; public void localprint() { int k = 0; i++; j++; k++; Console.WriteLine(\ } public void APrint() { localprint(); localprint(); } } 1.写出以下程序的运行结果 。 Class Test{ public struct Point { public int x; public int y; public Point(int x, int y){ this.x=x; this.y=y; } } static void Main(){ Point p1=new Point(100,100); Point p2=p1; p1.x=200; Console.WriteLine(“{0},{1}”, p1.x, p2.x ); 第 38 页 共 54 页 } } 2.请阅读以下程序,写出程序的运行结果是 。 class Test { static void ShowArrayInfo(int[ ] student){ for(int i=0; i static void Main(){ int[ ] student = new int[ ]{1,2,3,4,5}; ShowArrayInfo(student); Console.Write(“\\n”); ShowArrayInfo(student); } } 3.写出以下程序的运行结果 。 public class Teacher { public int age; public Teacher(int age) { this.age=age; } public void ChangeAge(int age) { age++; } public void ChangeAge(Teacher tea) { tea.age++; } public static void Main() { Teacher tea=new Teacher(18); Console.WriteLine(tea.age); tea.ChangeAge(tea.age); Console.WriteLine(tea.age); tea.ChangeAge(tea); Console.WriteLine(tea.age); } } 第 39 页 共 54 页 4.写出以下程序的运行结果 。 class MainTest { static void Main(string[] args) { StaicAndInstanceClass si1 = new StaicAndInstanceClass(); si1.APrint(); StaicAndInstanceClass si2 = new StaicAndInstanceClass(); si2.APrint(); } } class StaicAndInstanceClass { static int i; int j; public void localprint() { int k = 0; i++; j++; k++; Console.WriteLine(\ } public void APrint() { localprint(); localprint(); } } 四、程序填空题(共 20 分,每空 2 分) 1.设计一个控制台应用程序项目a,输入若干个学生的英语和数学成绩,求出总分,并按总分从高到低排序。要求设计一个学生类Student,所有学生对象存放在一个Student对象数组中,通过一个方法对其按照总分进行降序排序,最出输出排序后的结果。 【程序】 using System using System; using System.Collections.Generic; using System.Text; namespace a { public class Student { private string name; 第 40 页 共 54 页 private int eng, math, sum; public int psum { get { return sum; } } public void inscore() { Console.Write(\姓名:\ name = Console.ReadLine(); Console.Write(\英语:\ eng = int.Parse(Console.ReadLine()); Console.Write(\数学:\ math = (1) (Console.ReadLine()); sum = eng + math; } public void display() { Console.WriteLine(\ } } class Program { const int Max = 100; static void sort(int n, params Student[] p) //采用冒泡排序法排序 { int i, j; bool exchange; Student tmp; for (i = 0; (2) ; i++) { exchange = false; for (j = n - 2; (3) ; j--) if (p[j + 1].psum > p[j].psum) { tmp = p[j + 1]; p[j + 1] = p[j]; (4) ; exchange = true; } if (exchange == false) break; } } static void Main(string[] args) { int n, i; Student[] p = new Student[Max]; //定义对象引用数组 Console.Write(\ n = int.Parse(Console.ReadLine()); for (i = 0; i < n; i++) //创建对象引用的实例 p[i] = new Student(); for (i = 0; i < n; i++) { 第 41 页 共 54 页 Console.WriteLine(\输入第{0}个学生数据:\ (5) ; } Console.WriteLine(\排序前:\ Console.WriteLine(\姓名\\t英语\\t数学\\t总分\ for (i = 0; i < n; i++) { Console.Write(\序号{0}:\ p[i].display(); } sort(n, p); //按总降序排序 Console.WriteLine(\排序后:\ Console.WriteLine(\姓名\\t英语\\t数学\\t总分\ for (i = 0; i < n; i++) { Console.Write(\第{0}名:\ (6) ; } } } } 【供选择的答案】 (1) A.int B.int.Parse C.string.Parse D.float.Parse (2) A.i < n – 1 B.i <= n – 1 C.i < n D.i <= n (3) A.j >= n B.j > i C.j >= i D.j <= i (4) A.p[j] = tmp B.p[j] = p[j+1] C.p[j+1] = tmp D.p[j] = p[j+1] (5) A.p[i].inscore() B.inscore() C.p[i] D.p[i].display() (6) A.p[i].inscore() B.display() C.p[i] D.p[i].display() 2.以下程序是参照Windows系统“附件”中的“计算器”的基础上,编写的一个简易的计算器。要求:可以实现由0~5构成的整数的加减运算。程序运行结果如下所示: 【程序】 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; 第 42 页 共 54 页 using System.Drawing; using System.Text; using System.Windows.Forms; namespace WindowsExample { public partial class Form1 : Form { enum calculateType { none, add, sub }; calculateType calType = calculateType.none; int x, y; bool isY = false; public Form1() { InitializeComponent(); textBox1.TextAlign = HorizontalAlignment.Right; } private void InputNumber(object sender, EventArgs e) { Button num = (Button)sender; if (isY) { textBox1.Clear(); isY = (7) ; } textBox1.Text += num.Text; } private void buttonAdd_Click(object sender, EventArgs e) { calType = calculateType.add; x = (8) (textBox1.Text); isY = true; } private void buttonSub_Click(object sender, EventArgs e) { calType = calculateType.sub; x = Convert.ToInt32(textBox1.Text); isY = true; } private void buttonEqual_Click(object sender, EventArgs e) { if (textBox1.Text != \ y = Convert.ToInt32(textBox1.Text); if (calType == (9) ) { textBox1.Text = Convert.ToString(x + y); calType = calculateType.none; } if (calType == calculateType.sub) { textBox1.Text = Convert.ToString( (10) ); calType = calculateType.none; 第 43 页 共 54 页 } isY = true; } private void buttonExit_Click(object sender, EventArgs e) { Close(); } private void buttonClear_Click_1(object sender, EventArgs e) { textBox1.Text = \ calType = calculateType.none; isY = false; } } } 【供选择的答案】 (7) A.true B.false C.0 D.1 (8) A.Convert.ToInt32 B.Convert.ToBoolean C.Convert.Object D.Convert.ToString (9) A.calculateType.none B.calculateType.sub C.calculateType.add D.calculateType (10) A.a B.y C.x + y D.x - y 1.以下程序的功能是打印出2至99之间的所有素数(即不能被任何数整除的数)。请在(n)内填入正确内容。 using System; namespace psushu { class MainClass { public static void Main(string[] args) { int i; for(i=2; (1) ;i++) { if(IsSushu(i)) Console.Write(\ } Console.ReadLine(); } static bool IsSushu( (2) ) { bool b=true; if(n==1||n==2) b=true; else 第 44 页 共 54 页 { int i,s; s=(int)System.Math.Sqrt(n); for( i=s; (3) ; i-- ) if(n%i==0) { b= (4) ; break; } } return b; } } } 【供选择的答案】 (1) A.i<99 B.i<=99 C.i<=100 D.n>99 (2) A.int n B.char n C.float n D.double n (3) A.i>0 B.i>=1 C.i>1 D.i>2 (4) A.0 B.1 C.true D.false 2.以下程序是从一个整数数组的元素中找出最大的元素,请将该方法补充完整。 using System; class array1 { static void Main( ) { int[] a={26,38,91,63,58,21,65,75}; int t=0, max= (5) ; for( int i=1; i<= (6) ; i++ ) { if( a[i]>max ) { (7) ;t=i; } } Console.WriteLine(“该数组最大的数为:{0}”,max ); Console.WriteLine(“最大的数的数组下标为:{0}”, (8) ); } } 【供选择的答案】 (5) A.a B.a[0] C.a[1] D.a[1] (6) A.8 B.9 C.10 D.a.Length (7) A.max=a[i] B.a[i]=max C.max=a[--i] D.max=a[++i]) (8) A.t B.i C.--t D.――i 4.以下程序是用于测试输入的一个字符串中字符‘a’的个数,请将该方法补充完整。 using System; namespace P4 { class ForeachCyclrSample 第 45 页 共 54 页 { static void Main( ) { Console.WriteLine(“请输入一个字符串:”); string (9) =Console.ReadLine( ); int i=0 ; foreach( char (10) in text ) { if( ch==’ (11) ’ ) i++ ; } Console.WriteLine(“a共出现了{0}次!”, i ) ; } } 【供选择的答案】 (9) A.a B.char C.text D.i (10) A.text B.ch C.a D.i (11) A.text B.i C.a D.b } 1.以下程序的功能是打印出2至99之间的所有素数(即不能被任何数整除的数)。请在(n)内填入正确内容。 using System; namespace psushu { class MainClass { public static void Main(string[] args) { int i; for(i=2; (1) ;i++) { if(IsSushu(i)) Console.Write(\ } Console.ReadLine(); } static bool IsSushu( (2) ) { bool b=true; if(n==1||n==2) b=true; else { int i,s; 第 46 页 共 54 页 s=(int)System.Math.Sqrt(n); for( i=s; (3) ; i-- ) if(n%i==0) { b= (4) ; break; } } return b; } } } 【供选择的答案】 (1) A.i<99 B.i<=99 C.i<=100 D.n>99 (2) A.int n B.char n C.float n D.double n (3) A.i>0 B.i>=1 C.i>1 D.i>2 (4) A.0 B.1 C.true D.false 2.以下程序是从一个整数数组的元素中找出最小的元素,请将该方法补充完整。 using System; class array1 { static void Main( ) { int[] a={26,38,91,63,58,21,65,75}; int t=0, min=a[0]; for( int i=1; i<= (5) ; i++ ) { if( a[i]< min ) { (6) ;t=i; } } Console.WriteLine(“该数组最小的数为:{0}”,min ); Console.WriteLine(“最小的数的数组下标为:{0}”,t ); } } 【供选择的答案】 (5) A.7 B.8 C.9 D.10 (6) A.min=a[++i] B.a[i]=min C.min=a[--i] D.min=a[i] 3.已知窗体form1中有3个textBox控件textBox1、textBox2和textBox3输入字段id、Name和Address,当单击Button控件button1时,把数据插入到Employee职工表中。 字段 EmployeeCode Name Address 数据类型 int char (20) char (35) 职工编号 姓名 地址 描述 【程序】 第 47 页 共 54 页 using System; using System.Collections.Generic; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Data.SqlClient; namespace A14_1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { SqlCommand command=new SqlCommand(); command.Connection=con; int id=(int) (7) ; string name=textBox2.Text; string address=textBox3.Text; command.CommandText=\command.Parameters.Add(\(8) \command.Parameters.Add(\command.Parameters.Add(\command.Prepare(); command.Parameters[\ command.Parameters[\command.Parameters[\int row=command.ExecuteNonQuery(); if(row>0) MessageBox.Show(\插入成功\else MessageBox.Show(\插入失败\ ? 【供选择的答案】 (7) A.textBox1.Text B.textBox2.Text C.textBox3.Text D.button1.Text (8) A.@name B.@id C.@address D.id (9) A.SqlDbType.Int B.SqlDbType.Float C.SqlDbType.Char D.SqlDbType.String (10) A.name B.@name C.&name D.#name 五、设计题( 共15 分 ) 第 48 页 共 54 页 1、 设计一个方法GetLenth()返回已知字符串str的长度(字符数)并进行测试。 using System { class StringClass { public void GetLength(string str) { Console.WriteLine(“字符串的长度为:”+str.Length); } } class Test { static void Main() { StringClass objString = new StringClass(); string s = “sfdsdsfdkfd”; objString.GetLength(s); } } } 1.已知在E:\\DATA目录下有ACCESS数据库stud.mdb,其中定义了一张student表,表的数据结构如下: 字段名 Id Xm Xb Nl Zip 类型 数字 文本 文本 数字 文本 说明 编号 姓名 性别 年龄 邮政编码 用编写代码的方法在DataGridView中显示该数据表中年龄大于20且性别为“女”的所有记录,显示时以编号的升序排序。 1. 设计如图1所示的窗体,其功能是在两个列表框之间移动数据。若某个列表框中没有数据,则对应的操作按钮必须设置为不可使用。 第 49 页 共 54 页 图1. Form1运行界面 2.设计如图2所示的窗体,用于实现对E:盘根目录下的school.mdb数据库文件中的score表中记录进行通用查找和排序操作,并将结果显示在窗体的DataGridView控件中。(其中,第一个组合框要与表中的课程名绑定,第二个组合框只能选择表中已有的字段名。) 图2. Form1运行界面 1.写出设计以下操作界面的程序的步骤,程序功能是:单击按钮,计算两个编辑框中数的和,并将结果用MessageBox对话框显示出来。窗体布局如下: 第 50 页 共 54 页
正在阅读:
《中央银行独立性研究》04-14
宝宝教育问题05-13
第5章 :位错基础05-28
数学各个研究方向简介03-08
初中数学课堂合作学习的低效成因分析及对策05-08
城市轨道交通的经济效应研究12-24
智能大厦楼宇自控系统方案设计 - 图文10-14
理想国读后感04-15
稽查工作考核办法11-10
- 必修一物理寒假作业
- 2019-201X年5月大学生入党积极分子思想汇报-word范文模板(3页)
- 药物分析习题五
- 重拾应用意识 体会数学价值(沈建军)
- 2017全国高校辅导员结构化面试题集及参考答案
- 广东徐闻县实验中学2014届高三第二次月测地理试题
- 今天你共鸣了么?
- 2018-2019正能量读后感1000字-推荐word版(6页)
- 2018年中国截切型盖板针布行业专题研究分析报告目录
- 中国移动业务处理流程大全
- 公文写作常用词汇和句子集锦2016
- ARM课程设计说明书
- 教师资格证教育学论文
- 中考试卷分析
- 环境监测试卷(五)
- 党风廉政建设广播稿1
- 快速制作香香宫煮麻辣烫教程
- 《国际金融学》习题
- 文明施工保障措施方案
- 春兰维修资料故障代码
- C#
- 复习资料
- Windows
- 编程
- 考试
- 非诚勿扰之西游篇
- 2009新型农村合作医疗信息管理系统BS操作手册
- 06-1KV绝缘电力电缆工艺规程工艺卡片 - 图文
- 2019年最新检察院公务员个人年终总结工作总结文档
- 人事部年终总结 - 图文
- WORD文档怎么自动生成目录?
- 学习幼儿园安全制度防范措施心得体会三篇
- 电厂锅炉脱硫脱硝施工方案
- 教师业务学习总结
- 我为教育建言献策
- 单位宣传思想工作计划
- 职业素养包含哪些内容
- 计算机检索 文献类型分析
- 政治学原理简答题
- 网页设计试题及答案
- 中小学班主任基本功大赛笔试题库及答案
- 三年级还原问题教学讲义
- 国际开放与远程教育理事会《2017―2020年战略发展规划》探析
- 活动简报第019期(达胜公司举办科学发展观专题讲座)
- 高一数学向量的减法