《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 页

本文来源:https://www.bwwdw.com/article/xlja.html

Top