华南理工大学广州学院-C#复习题-2018

更新时间:2023-03-08 04:57:36 阅读量: 高等教育 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《C#桌面程序应用开发》复习题

一、 选择题

1、装箱是把值类型转换到( b )类型。

a)数组 b)引用 c)char d)string

2、下列哪个类型的对象是ADO.NET在非连接模式下处理数据内容的主要对象?( d ) a) Command b) Connection c) DataAdapter d) DataSet

3、枚举类型是一组命名的常量集合,所有整型都可以作为枚举类型的基本类型,如果类型

省略,则定义为( a )。

a)intb) sbyte c) uint d) ulong 4、面向对象编程中的“继承”的概念是指( b ) a) 对象之间通过消息进行交互 b)派生自同一个基类的不同类的对象具有一些共同特征 c)对象的内部细节被隐藏 d) 派生类对象可以不受限制地访问所有的基类对象 5、在C#的类结构中,class关键字前面的关键字是表示访问级别,下面哪个关键字表示该类只能被这个类的成员或派生类成员访问? ( d )。

a) public b) private c) internal d) protected 6、下列类型中, 哪些不属于引用类型?( b )。 a) String b) int c) Class d) Delegate 7、数组pins的定义如下:

int[] pins=new int[4]{9,2,3,1}; 则pins[1]=( b )

a) 1 b) 2 c) 3 d) 9 8、创建数据库连接使用的对象是( a )。 a) Connection b) Command c) DataReader d) DataSet

9、调用方法时,如果想给方法传递任意个数的参数时,应选用哪个关键字( c )。

a) ref b) out c) params d) 无特殊要求

10、C#中TestClass为一自定义类,其中有以下属性定义

public void Property{…}开卷考

使用以下语句创建了该类的对象,并使变量obj引用该对象: TestClass obj = new TestClass();

那么,可通过什么方式访问类TestClass的Property属性?( a )

a) Obj,Property; b) MyClass.Property; c) obj :: Property; d) obj.Property (); 11、下列关于C#面向对象应用的描述中,哪项是正确的?( c )。

a) 派生类是基类的扩展,派生类可以添加新的成员,也可去掉已经继承的成员 b) abstract方法的声明必须同时实现 c) 声明为sealed的类不能被继承 d)接口像类一样,可以定义并实现方法

12、C#中导入某一命名空间的关键字是( a )。

a)usingb) use c)import d) include

13、一般情况下,异常类存放在什么命名空间中?( b )。

a) 生成异常类所在的命名空间b) System.Exception命名空间 c) System.Diagnostics命名空间d) System命名空间

14、若将数据库中的数据填充到数据集,应调用SqlDataAdapter的( c )方法。 a) Open b) Close c) Fill d) Update

15、若将数据集中所作更改更新回数据库,应调用SqlAdapter的( a )方法。 a) Update b) Close c) Fill d) Open

16、C#中MyClass 为一自定义类,其中有以下方法定义public void Hello(){??} 使用以下语句创建了该类的对象,并使变量obj 引用该对象:MyClass obj = new MyClass(); 那么,可如何访问类MyClass 的Hello 方法?( a )。

a) obj.Hello(); b) obj::Hello(); c) MyClass.Hello(); d)MyClass::Hello();

17、在使用FileStream 打开一个文件时,通过使用FileMode 枚举类型的( a )成员,

来指定操作系统打开一个现有文件并把文件读写指针定位在文件尾部。 a) Appendb)Create c) CreateNewd) Truncate 18、有说明语句double[,] tab=new double[2,3];那么下面叙述正确的是( c )。

a) tab是一个数组维数不确定的数组,使用时可以任意调整 b) tab是一个有两个元素的一维数组,它的元素初始值分别是2,3 c) tab是一个二维数组,它的元素个数一共有6个 d) tab是一个不规则数组,数组元素的个数可以变化 19、以下说法正确的是( b )。 a) 虚方法必须在派生类中重写,抽象方法不需要重写

b)虚方法可以在派生类中重写,抽象方法必须重写 c)虚方法必须在派生类中重写,抽象方法必须重写

d) 虚方法可以在派生类中重写,抽象方法也不需要重写

20、在定义类时,如果希望类的某个方法能够在派生类中进一步进行改进,以处理不同的派生类的需要,则应将该方法声明成( c )。

a) sealed方法 b)public方法 c)vitual方法 d)override方法 21、面向对象三个基本原则是( c )。 a)抽象,继承,派生 b) 类,对象,方法

c)继承,封装,多态 d) 对象,属性,方法

22、在数组中对于for 和 foreach 语句,下列那些选项中的说法不正确?( b )。 a) foreach语句能使你不用索引就可以遍历整个数组 b) foreach语句总是从索引1遍历到索引Length c) foreach总是遍历整个数组

d) 如果需要修改数组元素就必须使用for语句

23、c#的引用类型包括类、接口、数组、委托、object和string.其中object( d )根类。

a) 只是引用类型的 b) 只是值类型的

c) 只是string 类型的 d) 是所有值类型和引用类型的

24、C#的构造函数分为实例构造函数和静态构造函数,实例构造函数可以对( b )进行初始化,静态构造函数只能对静态成员进行初始化。

a) 静态成员 b) 静态成员和非静态成员c) 非静态成员d)动态成员 25、当运行程序时,系统自动执行启动窗体的( C )事件。 a) Click b)DoubleClick c) Load d) Activated

26、若要使命令按钮不可操作,要对( B )属性进行设置。 a) Visible b)Enabled c) BackColor d) Text

27、在设计窗口,可以通过( A )属性向列表框控件如ListBox的列表添加项。 a) Items b)Items.Count c) Text d) SelectedIndex

28、在VS集成开发环境中有两类窗口,分别为浮动窗口和固定窗口,下面不属于浮动窗口的是( D )

a) 工具箱 b)属性 c) 工具栏 d)窗体

29、引用ListBox(列表框)最后一个数据项应使用( C )语句 a) ListBox1.Items[ListBox1.Items.Count] b)ListBox1.Items[ListBox1.SelectedIndex] c) ListBox1.Items[ListBox1.Items.Count-1] d) ListBox1.Items[ListBox1.SelectedIndex-1]

30、引用ListBox(列表框)当前被选中的数据项应使用( B )语句 a) ListBox1.Items[ListBox1.Items.Count]

b)ListBox1.Items[ListBox1.SelectedIndex] c) ListBox1.Items[ListBox1.Items.Count-1] d) ListBox1.Items[ListBox1.SelectedIndex-1] 31、下面代码的输出结果是(d)。 int x = 5; int y = x++;

Console.WriteLine(y); y = ++x;

Console.WriteLine(y);

a)5 6 b) 6 7 c) 5 6 d) 5 7

34、在C#语言的main方法定义体中,下面()是错误的。 C A) static voidMain(string[] args){ } B) static int Main(string[] args){ }

C) static Main(string[] args){ } 缺少定义返回类型 D) static int Main( ){ }

35、在C#语言中,下面的关于公共类型常量定义正确的是() A A) public const int dayMax=7; B) public const dayMax=7; C) const int dayMax=7;

D) public const int day-Max=7; 变量名错误,不能有“-” 36、在C#中,关于下面代码的输出结果正确的是()。 D static void Main(string[] args) {

int[] array = new int[3] { 0, 1, 2}; foreach(int temp in array) {

temp++; forach循环只能读,不能更改 Console.WriteLine(temp); } }

A) 0 B) 1C) 2D) 编译错误

37、下面C#中,使用String类把字符串“abcd”截取成“cd”,应采用的方法是()。D A) Compare() B) IndexOf()C) Join() D) Substring()

38、在C#中,int num=2 采用Convert方法转换为单精度浮点型,应采用()方法。 B A) Convert.ToInt32() 转换为int型

B) Convert.ToSingle() 转换为单精度浮点型 C) Convert.ToDouble() 转换为双精度型 D) Convert.ToString()

39、在sql server中,下面()不属于sql server数据库的数据类型。 A A) bool B) datetime C) bitD) image

40、在SQL Server假设订单表order用来存储订单信息,cid代表客户编号现在要查询每个客户的订购次数以及客户编号,以下语句正确的是()。D A) select conut(ciD),cid from orders

B) select conut(ciD),cid form orders order by cid

C) select count(ciD),cid form orders having count(ciD>0)

D) select count(ciD),cid from orders group by cid 要查询每个客户,要进行分组查询 41、在SQL Server中,现有订单表orders,包含用户信息userid,产品信息productid,以下()语句能够返回至少被订购过两回的productid。 D

A) select productid from orders group by productid where count(productiD>1) B) select productid from orders having count(productiD>1) order by productid

C) select productid from orders where having count(productiD>1) group by productid

D) select productid from orders group by productid having count(productiD>1 先进行分组,再用having筛选 42、在表Employee中有一列为EmpName,执行删除语句: B DELETE FROM Employee WHERE EmpName LIKE ‘_[a e]%’ 下面包含EmpName 列的()值的数据行可能被删除。 A) Whyte

B) Carson 只允许第二个字母为a或e C) Annet D) Hunyer

43、在C#中,下列代码的运行结果是()。 A string appName=\.NET\ foreach(char ch in appName){ if(ch=='4') break;

Console.Write(ch); }

A) ACCP 截取四个之后,ACCPB) 40 C) ASP.NETD) ACCPASP.NET

44、在C#语言的类定义体中,下面()访问修饰符可以访问该类的成员。 D A) privateB) publicC) internalD) 以上选项均可

45、下列执行数据的删除语句在运行时不会产生错误信息的是() B C (选择二项)

A) delete * from employee where sgrade='6' delete与from之间不允许有任何东西 B) delete from employee where sgrade='6' C) delete employee where sgrade='6'

D) delete employee set sgrade='6' 不符合delete语法

46、在C#中,要使用ExecuteReader()方法查询获取数据库中的数据集,需要创建()类型对象. A (选择一项)

A) SqlCommand 返回SqlDataReader B) SqlConnection C) SqlDataAdapter D) DataSet

47、在c#中,关于命名空间说法正确的是()。B C (选择二项)

A) 采用import关键字添加命名空间引用 Java中用import B) 采用using关键字添加命名空间引用

C) 添加命名空间引用必须添加在当前命名空间外部 D) 添加命名空间引用可以添加在当前命名空间内部 48、在c#中,下面关于int.Parse()方法使用正确的是()。 A A) String value=\

int temp=int.Parse(value); B) int temp=int.Parse(24.5); C) int temp=int.Parse(\D) int temp=int.Parse(24);

49、下面关于命名空间说法错误的是() C A) 命名空间用于组织相关的类型 B) 命名空间可以嵌套

C) 在同一个应用程序中,不同的命名空间中不允许有相同名称的类允许有 D) using关键字用于引用命名空间

50、下面关于DataSet描述正确的是() A A) 不直接和数据库打交道,与数据库类型没有关系关闭数据库,DataSet依然是可用的,DataSet在内部是用XML来描述数据的,由于XML是一种与平台无关、与语言无关的数据描述语言,而且可以描述复杂关系的数据,比如父子关系的数据,所以DataSet实际上可以容纳具有复杂关系的数据,而且不再依赖于数据库链路。 B) 用于读取只读的数据

C) DataSet中的数据存储在数据库服务器的内存中 D) 在断开数据库连接时,不可以操作数据库

51、在C#中,下面关于属性(UserName)定义正确的是() C D (选择二项)

A) string UserName{get} get少; B) string UserName{set;} C) string UserName{set;get;} D) private string userName; public string UserName {

set{userName=value;} get{return userName;} }

52、以下选项中,()符合\类和对象\的关系 B A) 猫和老虎同属于动物类 B) 大学和北京大学从属关系 C) 学生和中学生 D) 中国和中国人

53、下面选项中,()是对常量正确的声明 B

A) int MaxCount=1; 不符合常量定义语法:const 数据类型变量名; B) const int MaxCount=1;

C) int const MaxCount=1; comst顺序与int错误 D) const MaxCount=1; 没有定义变量类型 54、设 Students 表有三列number1,number2,number3 ,并且都是整数类型,则以下()查询语句能按照number2列进行分组,并在每一组取number3的平均值 C (选择一项)

A) select avg(number3) from students 没有分组 B) select avg(number3) from students order by number2 不需要排序

C) select avg(number3) from students group by number2 使用avg()得到number3平均值,并进行number2的分组

D) select avg(number3) from students group by number3,number2

55、conn是一个可用的数据库连接对象,下面一段代码再生成解决方案时出错,错误在第()行。 C

1 string sql=\ //编写sql语句

2 SqlCommand cmd=new SqlCommand(sql,conn); //创建command对象 3 conn.Open(); //打开数据库连接 4 int num=cmd.ExecuteScalar();应改为int num = (int) cmd.ExecuteScalar();

原因:.ExecuteScalar()方法的返回值是odject类型的用该方法的返回值为其他变量进行赋值操作时,必须进行显示的类型转换

5 conn.Close(); //关闭数据库连接 A) 2 B) 3 C) 4 D) 5

56、c#中,引用命名空间关键字是() B A) namespace 命名空间 B) using

C) import Java中 D) input

57、在C#中,要获取“select * from student”的查询结果,则通过SqlCommand对象的()方法实现 B

A) ExecuteNonQuery B) ExecuteReader

C) ExecuteScalarCount(*) D) Fill

58、在c#中,下面关于访问修饰符描述正确的是()D A) private定义的字段在类外可以调用 private私有

B) public定义的字段只能在类外调用公开的,任何时候可以调用 C) private和public定义的字段在任何地方都可以调用 D) 以上全部分错误

59、在c#中,关于引用传递说法正确的是()C

A) 引用传递不用加ref关键字 B) 使用引用传递值不会发生改变 C) 使用引用传递值会发生改变 D) 引用类型和值传递结果一样

60、在c#中,下列关于属性说法,正确的是() D

A) set为只读属性,可以用来读取值 get只读属性,set读取属性 B) get为只写属性,可以设置值 C) set为只写属性,可以用来读取值

D) 定义一个属性,类型必须与它所访问的字段类型一致

61、c#中,要向数据库发送如下sql语句,最好使用SqlCommand类的()方法。A update 学生表 set 年龄=年龄+1 where 年龄<18 A) ExecuteNonQuery() 增删改方法 B) ExecuteScalar() C) ExecuteReader() D) b和c

62、在c#程序中,使用try-catch结构进行异常处理,下列选项中会出现编译错误的是C、D (选择二项) A) try{} catch{} B) try{}finally{} C) try{}

D) catch{}finally{} 63、在下列C# 代码中,(A)是类Teacher 的属性。 Public class Teacher{ int age=13;

private string Name{ get{return name;} set{name=value;}

}

public void SaySomething(){//…} }

A Name B name C age D SaySomething 64、分析一下C#片段中的属性,该属性是(C)属性。 private string name; Public string Name{

get{return name;} }

65、构建Windows窗体以及其所使用空间的所有类的命名空间是下列哪个选项(D)

A) System.IO B) System.Data

C) System.Text D) System.Windows.Forms 66、下列关于多态的说法中,哪个选项是正确的(D)

A)重写虚方法时可以为虚方法指定别称 B)抽象类中不可以包含虚方法 C)虚方法是实现多态的唯一手段

D)多态性是指以相似的手段来处理各不相同的派生类。

67、在C#语言中,以下关于继承的说法错误的是(B)。

A.一个子类不能同时继承多个父类 B任何类都是可以被继承的 C.子类继承父类,也可以说父类派生了一个子类 D.Object类是所有类的基类

68、以下关于接口的说法,不正确的是(C)

A.接口不能实例化 B. 接口中声明的所有成员隐式地为public和abstract

C.接口默认的访问修饰符是private D.继承接口的任何非抽象类型都必须实现接口的所有成员。

69、改变窗体的标题,需修改的窗体属性是( A )。

A. Text B. Name C.Title D. Index 70、下列关于抽象类的说法错误的是( A )。

A. 抽象类可以实例化 B. 抽象类可以包含抽象方法

C. 抽象类可以包含抽象属性 D. 抽象类可以引用派生类的实例 71、异常捕获发生在(B)块中?

A. try B.catch C. finally D. throw 72、下面关于抽象类的说法正确的是?(C)

A. 抽象类只能做子类 B. 抽象类可以被实例化

C 抽象类不能被实例化 D. 一个抽象类只能有一个子类 73、C#源程序文件的拓展名是(D)

A、vb B、c C、cpp D、cs 74、和C#中的所有对象一样,窗体也是对象,是(C)类的实例

A、Label B、Controls C、Form D、System 75、c#程序中,可使用try···catch 机制来处理程序出现的(B)错误

A. 语法 B. 运行 C. 逻辑 D. 拼写

76、27.在C#语言中,下列异常处理结构中有错误的是(a)

a)catch{}finally{} b) try{}finally{} c) try{}catch{}finally{} d) try{}catch{} 77、在以下C#类中,(b)是控制台类,利用它我们可以方便的进行控制台的输入输出。

a) Control b) Console c) Cancel d) Write 78、WinForms程序中,如果复选框控件的 Checked属性值设置为 True,表示( A )。

A.该复选框被选中B.该复选框不被选中

C.不显示该复选框的文本信息D.显示该复选框的文本信息 79、C#的数据类型有( B )

A 值类型和调用类型B 值类型和引用类型

C 引用类型和关系类型D 关系类型和调用类型 80、如果要修改表中的数据,一般的做法为()A

A) 使用SqlCommand的ExecuteNonQuery方法增删改的方法

B) 使用SqlCommand的ExecuteReader方法读取查询结果集的方法 C) 使用SqlCommand的ExecuteScalar方法查询多个值的方法 D) 使用SqlCommand的EndExecuteNonQuery方法

81、下面关于C#中值类型和引用类型的描述正确的是(D)。 A) 结构属于引用类型 B) 字符串属于值类型 C) 所有内置的数据类型都是值类型,所有用户定义的数据类型都是引用类型

D) 值类型变量直接存放真正的数据,引用类型变量存放的是指向真正数据的内存地址 82、当整数a赋值给一个object对象时,整数a将会被__A__。

A)拆箱 B)丢失 C) 装箱 D)出错

83、在C#中设计类时,如何将一个可读可写的公有属性Name修改为只读属性?( A )

A.将Name的set块删除 B.将Name的set块置空

C. 将Name的set块前加修饰符private D. 将Name添加readonly修饰符 84、设置openfiledialog1引用一个openfiledialog对象,则打开该对话框的正确代码是( B )

A. openfiledialog1.show(); B. openfiledialog1.showdialog(); C. openfiledialog1.open(); D. openfiledialog1.openandshow(); 85、创建菜单后,为了实现菜单项的命令功能,应为菜单项添加( C )事件处理方法。 A. DrawItem B. Popup C. Click D. Select 86、在C#程序中,显示一个信息为“This is a test!”,标题为“Hello”的消息框,正确的语句是( B )

A. MessageBox(“this is a test!”,”Hello”);

B. MessageBox.Show(“this is a test!”,”Hello”); √ C. MessageBox(”Hello” , “this is a test!”);

D. MessageBox.Show (”Hello” , “this is a test!”);

87、下列关于异常处理的表述中哪些是正确的(D)?

A try、catch、finally三个字句必须同时出现,才能正确处理异常 B catch字句能且只能出现一次

C try字句中所抛出的异常一定能被catch字句捕获

D无论异常是否抛出,finally子句中的内容都会被执行。 88、下列关键字中哪些不能作为修饰类(C)

A:sealed B:abstract C:override D:public

89、以下语句不可以在屏幕上输出Hello,World语句是(C)

A. Console.WriteLine(“Hello”+”,World”); B. Console.Write(“Hello{0}”,”World”);

C. Console.WriteLine(“{0},{1}”,”Hello,World”); D. Console.Write(“Hello,World”);

90、在表Employee中有两列为年龄Age,职位Position,执行删除语句: B Delete from Employee where Age<30 and Position='项目经理' 下面包含()值的数据行可能被删除。 A) 小于30岁的项目经理和所有员工 B) 小于30岁的项目经理

C) 小于30岁的员工和项目经理 D) 小于30岁的员工或者项目经理

二、程序阅读

1、下列程序完成了输出数组中的最大值和最小值,请补充程序中的空白处

class Program {

static void Main(string[] args) {

MyClass m = new MyClass();

int[] s ={ 1, 6, 4, 7, 3, 87, 5 }; int smax, smin; m.MaxMin(s, out smax, out smin);

Console.WriteLine(\ Console.ReadLine(); }}

class MyClass {

public void MaxMin(int[] a, out int max, out int min) {

max = min = a[0];

for (int i = 1; i < a.Length; i++) {

if (a[i] > max) max = a[i]; if (a[i] < min) min = a[i]; } }} 2、class Program

{

static void Main(string[] args) {

Point p1 = new Point(); Point p2 = new Point(3, 4);

Console.WriteLine(\ Console.WriteLine(\ Console.ReadLine(); }}

class Point {

public double x = 0, y = 0; public Point() {

x = 1; y = 1; }

public Point(double a, double b) {

x = a; y = b; } }

程序最终的输出结果是___ p1.x=1,p1.y=1

p2.x=3,p2.y=4 __

3、class Program {

enum Season : int {

Spring, Summer , Autumn, Winter }

static void Main(string[] args)

{

Season s = (Season)2; Console.WriteLine(s);

Console.Read(); } }

程序的输出结果是________ Autumn ________________

4、分析一下C#代码,根据面向对象的多态性,代码的运行结果是__B___________ class A{

public void F(){

Console.Write(“A”); }

Public void F(string chr) {

Console .Write(“B”); }}

class B:A {Public void F(){

Console.write(“B”); }

Static void Main() {

B objB=new B(); objB.F(); }}

5、完善如下程序: 键入10个整数,统计其中正数(neg)、负数(pos)和零(zero)的个数并将三者输出。 int i; int num;

int zeroNum = 0;

int ___ZengNum=0;_________ int FuNum = 0;

for (i = 1; i <= 10; i++)

{Console.WriteLine(\请输入第{0}个整数\ string strTemp = Console.ReadLine();

num = ___Convert.ToInt32(strTemp);_______ if (num > 0) { ZengNum++; }

else if (num == 0) {zeroNum++; } else

{ FuNum++;_ } }//for_end

Console.WriteLine(\正数:{0}、负数: {1}、零:{2}\

6.比尔在教他的女儿面向对象的知识。他写了一个类Bill和一个接口IPrintname。现在他希望女儿能够写一个类Jennifer,继承自Bill,重写基类函数WhoAmI(),将输出改为“Jennifer”;并且实现接口IPrintname,该接口只有一个方法Print,这个方法的实现会在控制台打印调用WhoAmI函数的结果(即:“Jennifer”)。请改正错误的代码。 public class Bill {

public string WhoAmI() //这一行改为public virtual string WhoAmI() {

return \ } }

public void interface IPrintname //本行应更正为:public interface IPrintname,即接口不应该有void {

void Print(); }

public class Jennifer : Bill, IPrintname {

public override string WhoAmI() {

return \ }

public void Print() {

Console.WriteLine(WhoAmI()); } }

7. We have two integers: m and n, write an function to compute m in power of n. And how you test it?

static float pow(int m, int n) {

if (m == 0)

return 1;//某些领域为1,或者抛出异常 else

{

if (n == 0) return 1; if (n > 0)

return m * pow(m, n - 1); else

return 1 / pow(m, -n); } }

测试:

pow(0,0) ? 1 Pow(0, -0)?1 Pow(1, 0)? 1 Pow (-2, 0) Pow (3, 2) Pow (3, -2)

Pow (300, 100) Pow (300, -100)

8. 接口和抽象类有什么区别?你选择使用接口和抽象类的依据是什么?

从形式上看 接口无实现方法只有方法声明 而抽象类有实现方法也有方法声明,从偶合度来说 由于抽象类 有实现的方法 所以容易紧偶合 而接口就比较好的实现了松散偶合。 I. 一般在仅实现单继承用途时, 尽量用基类; 反之使用接口.

II. 如果基类不作为业务对象(在应用时不需要声明其实例), 则尽量声明为抽象类; 否则声明为一般基类.

III. 各个子类如果 公共(重用)代码较多, 建议使用类继承方式, 把公共代码抽象到基类中. 请自行举例说明。

9. What is the different between data Set and data Reader in ADO.NET?

dataset表示一个数据集,是数据在内存中的缓存。 可以包括多个表

DatSet 连接数据库时是非面向连接的。把表全部读到Sql中的缓冲池,并断开于数据库的连接

datareader 连接数据库时是面向连接的。读表时只能向前读取,读完数据后有用户决定是否断开连接。

10. Reverse every word in a String (abc def becomes cba fed). private static string ReverseStringByWord(string input) { if (string.IsNullOrEmpty(input)) throw new ArgumentNullException(\ char[] sb = new char[input.Length]; int lastIndex = input.Length; while ((lastIndex > 0) && char.IsWhiteSpace(input[lastIndex - 1])) lastIndex--; int appendIndex = 0;

.

for (int i = lastIndex - 1; i >= 0; i--) { char c = input[i]; // if (char.IsWhiteSpace(input[i])) if ( c == ' ' || c == '\\t' || c == '\\n' || c == '\\r' ) { for (int j = i + 1; j < lastIndex; ++j) sb[appendIndex++] = input[j]; sb[appendIndex++] = input[i]; lastIndex = i; } }

for (int j = 0; j < lastIndex; ++j) sb[appendIndex++] = input[j]; return new string(sb); }

四、 程序题(请掌握以下程序中列出的要点)

1.编写一个程序,定义三个float类型的变量,分别从键盘上输入值给它们,然后用if..else选择语句找出它们中的最小(大)数,最后输出结果。

答案略,要求掌握从键盘读入数据的方法,及怎么转换字符串到数值(整型、float/double小数类型),以及如何输出。 2. 编写Test类,包含GetCircumference和GetArea方法,分别求矩形形的周长和面积,Main中根据键盘输入的长和宽,调用两个方法,最终显示结果。 class Program {

static void Main(string[] args) {

Test t = new Test(2, 3);

Console.WriteLine(\周长是\ Console.WriteLine(\面积是\ Console.ReadLine(); } }

public class Test {

double width, length;

public Test(double w, double l) {

width = w; length = l;

}

public double GetCircumference() {

return (width + length) * 2; }

public double GetArea() {

return width * length; }

}

本题要求:除了1题所要求外,掌握基本的类、方法编写方法。 3. 使用while语句求1到100中的奇数(偶数)和。 static void Main(string[] args) {

int i=1, sum = 0; while (i <= 100) {

sum += i; i+=2; }

Console.WriteLine(\的奇数和为{0}\ Console.ReadLine(); }

要求掌握while/do..while语句的用法。 4.使用for循环输出九九乘法表。 static void Main(string[] args) {

for (int line = 1; line <= 9; line++) {

for (int i = 1; i <= line; i++) {

Console.Write(i.ToString() + \ }

Console.WriteLine(); }

Console.ReadLine(); }

要求掌握for语句的变量控制及嵌套方法,在for语句中输出如何换行,包括下题。 5. 输出如下图形:

第二个图形参考代码:

public static void star1(int n) { string s = \

for (int i = 1; i <= n; i++) {

Console.Write(\

for(int j=1;j<=2*i-1;j++){ Console.Write(\ Console.WriteLine(); } //上部三角

for(int i=1;i<= 2*n+1;i++){ Console.Write(\ }

Console.WriteLine();//中部

for(int i=n; i>=1;i--){ Console.Write(\

for (int j = 1; j <= 2*i-1; j++) { Console.Write(\ }

Console.WriteLine(); }//下部倒三角 }

static void Main(string[] args) {

int n = 3; star1(n);

Console.ReadKey(); }

6. 已知有5个元素的数组a,请用冒泡排序法将其排序。 static void Main(string[] args) {

int[] a ={ 1, 4, 5, 2, 0 }; int t;

for(int i=0;i<4;i++)

for (int j = 0; j < 4 -i; j++) if (a[j] > a[j + 1]) {

t = a[j];

a[j] = a[j + 1]; a[j + 1] = t; }

foreach (int k in a)

Console.WriteLine(k); Console.ReadLine(); }

掌握常用的排序算法。

7.C#中常用控件的用法,重点要求掌握文本框、标签框、复选框、单选框、组合框、图像框、下拉框(组合框)的用法,以及文件对话框的使用。请参考下面两题 (1).复选框、单选框、组合框

实现如图所示的功能。要求对相应控件做了设置之后,马上见到对应的字体效果。清除按钮用来清除文本框中的文字内容(textbox1.clear()方法),退出按钮用来退出程序(Application.Exit()方法)。

(2). 创建个人简历应用程序,参见上机指导

编写一个简单的个人简历程序,要求可以通过文本框输入姓名,通过单选按钮设置性别,通过下拉列表框选择文化程度,通过文本区域填写其他个人信息;通过文件对话框选择照片并显示;通过两个下拉列表框来关联选择籍贯。

8. C#中连接和使用数据库:要求掌握连接Sql Server的几个主要步骤(连接字符串设置、打开及关闭、使用DataAdapter对象(DataReader对象)、Command对象、DataSet对象以及主要控件的数据绑定方法),请参考以下几个示例。

(1) 在下划线处填上合适的内容,使程序变得正确完整,程序要实现的功能是:完成向数据集中填充数据,然后DataGridView1控件绑定到此数据集。

string connString=\ SqlConnection conn= ___new_____ SqlConnection(connString); string strsql=\

SqlDataAdapter adapter=new SqlDataAdapter(strsql , ____strsq1_____ ) ; DataSet dataset=new DataSet( );

adapter.Fill(______dataset_________);

this.dataGridView1.DataSource=dataset.Tables[0]; (2)图形界面的SqlAdapter与DataSet应用 (3)DataReader的使用

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

Top