c#

来源:互联网 发布:郑州肯同知乎 编辑:程序博客网 时间:2024/06/05 15:32

一、单项选择题

1、以下属于C#简单值数据类型的有【】。

(A) int类型 (B) int[]类型(C) char类型 (D)枚举类型

2、以下数组声明语句中,不正确的有【】。

(A) int[] a;       (B) int [] a=new int[2];

(C) int[] a={1,3}; (D) int [] a =int [] {1,3};

3、以下拆箱转换语句中,正确的有【】。

(A)object o; int i=(int)o;         (B)object o=10.5;int i=(int)o;

(C)object o=10.5;float f=(float)o;  (D)object o=10.5;float f=((float)(double)o);

4、若bool型变量a和b的取值分别为true和false,则表达式a && (a||!b)和a | (a &!b)的值分别为【】。

(A) true true  (B)true false  (C)false false  (D)false true

5、下列属于值类型的是()。

(A)枚举(B)接口(C)委托(D)数组

6、.NET Framework的SDK中提供了一个反汇编工具,利用该工具可以查看可执行文件所包含方法和元数据。该工具是【】。(A)ccspy.exe (B)ildasm.exe (C)msvsmon.exe(D)dotfuscator.exe

7、下列【】选项不是.Net框架可以创建的应用程序类型。

(A)控制台应用  (B)MIS系统  (C)Web 服务  (D)windows应用

8、下面有关静态方法的描述中,错误的是【】。

(A)静态方法属于类,不属于实例             (B)静态方法可以直接用类名调用

(C)静态方法中,可以定义非静态的局部变量   (D)静态方法中,可以访问实例方法

9、关于委托的说法,错误的描述是【】。

(A)委托属于引用类型          (B)委托用于封装方法的引用

(C)委托可以封装多个方法      (D)委托不必实例化即可被调用

10、C#中导入某一命名空间的关键字是【】。(A)using (B)use (C)import  (D)include

11、类的成员中,不能定义为静态的有【】。

(A)析构函数(B)属性(C)索引函数(D)方法

12、在编写C#程序时,若需要对一个数组中的所有元素进行处理,则使用【】方法最好。

(A) for 循环(B) while 循环(C) foreach 循环(D) do...while 循环

13、下列关于构造函数的描述正确的是【】。

(A)构造函数不可以用public修饰   (B)构造函数的方法名必须与类名相同

(C)构造函数可以声明返回类型     (D)构造函数不能带参数

14、关于泛型类中类型参数的说法错误的是【】。

(A)类型参数可以用作成员字段类型   (B)类型参数可以用作成员方法的参数类型

(C)类型参数可以用作成员方法的返回类型(D)以上说法不全对

15、设可空类型的变量x取值为null,那么访问其下列成员会引发异常的有【】。

(A)x.GetValueOrDefault(B)x.HasValue(C)x.ToString()    (D)x.GetType()

16、对于下面的泛型方法定义,以下调用形式中会失败的有【】。

public class C

{

    public static void FA<T>(T t1,T t2) where T:struct{}

}

(A)C.FA(2, 3);        (B) C.FA<int>(2, 0.3);

(C)C.FA<double>(2, 3);    (D)C.FA<double>(2, 0.3);

17、下列【】特性不属于C#3.0新增特性。

(A)隐式类型(B)扩展方法(C)匿名方法(D)自动实现的属性

18、假定有一个菜单项,名为MenuItem,为使菜单不可用,应使用的语句为【】。

(A) MenuItem. Visible= False     (B) MenuItem. Enabled=True 

(C) MenuItem. Visible= True      (D)MenuItem. Enabled=False

19、如果要将窗体设置为半透明,则【】。

(A)要将Opacity属性的值设置为小于100%(B)要将FormBoderStyle属性设置为None

(C)要将locked 属性设置为True          (D)要将 Enabled属性设置为True

20、下面对方法中的ref和out参数说明错误的是(  )。

(A) ref和out参数传递方法相同,都是把实在参数的内存地址传递给方法,实参与形参指向同一个内存存储区域,但ref要求实参必须在调用之前明确赋过值

(B) ref是将实参传入形参,out只能用于从方法中传出值,而不能从方法调用处接收实参数据

(C) ref和out参数传递的是实参的地址,所以要求实参和形参的数据类型必须一致

(D) ref和out参数要求实参和形参的数据类型或者一致,或者实参能被隐式地转化为形参的类型

21、打开通用对话框openFileDialog的【】属性用于返回用户在打开对话框中所选择的文件名和盘符路径。(A)Tag  (B)  FileName (C)Title  (D) ValidateNames

22、在窗体上放置一个列表框和一个命令按钮,其名称分别为listBox1和button1,然后编写如下事件过程代码,程序运行后,单击命令按钮button1,其结果是【】。

        private void Form1_Load(object sender, EventArgs e)  {

            listBox1.Items.Add("Item1");

            listBox1.Items.Add("Item2");

            listBox1.Items.Add("Item3");

        }

        private void button1_Click(object sender, EventArgs e)  {

            listBox1.Items.Add("AAAA");

        }

(A)把字符串"AAAA"添加到列表框,位置不确定

(B)把字符串"AAAA"添加到列表框最后

(C)把字符串"AAAA"添加到列表框第一项

(D)将列表框原有最后一项修改为"AAAA"

23、C#中,GDI+可以使用三种坐标空间,它们是全局坐标、页面坐标和【】。

(A)设备坐标(B)局部坐标(C)窗体坐标(D)自定义坐标

24、在ASP.NET程序设计中,要将文本输入框转变为密码输入框,需要设置Web服务器控件TextBox的【】属性。(A) TextMode  (B)PasswordChar(C)AutoPostBack (D)ID

26、如果想要验证用户输入的数字是否为素数,则应该使用【】类型的验证控件。

(A)RequiredFieldValidator(B)CompareValidator(C)RangeValidator(D)CustomValidator

27、在.NET3.5中,微软提供了一种新的标记语言,用于对WPF程序的所有界面元素进行定制,从而构成具有WPF风格的界面。这种标记语言是【】。

(A)milcore(B)Kernel(C)XML(D)XAML

28、下面有关属性的说法,不正确的有【】。

A. 属性的值表示该对象相应的状态值。

B. 属性的修饰符不可以为static。

C. get访问器的返回类型必须与属性类型相同,或者可以隐式转换为属性类型。

D. set访问器等价于一个具有隐含参数value的方法。

29、关于AJAX描述,正确的是【】。

(A)AJAX是使用托管代码建立和运行面向服务应用程序的统一框架

(B)AJAX是一种最新的异步通信框架,可以有效地提升了Web应用程序的客户体验

(C)AJAX是Microsoft提供的一种数据绑定技术

(D)AJAX主要用于解决页面之间数据传输问题

30、关于LINQ描述,说法错误的是【】。

(A)LINQ查询操作通过编程语言自身来传达,而不是以字符串嵌入到应用程序代码中

(B)LINQ包括LINQ to Objects、LINQ to SQL、LINQ to DataSet和LINQ to XML组件

(C)一个LINQ查询表达式不允许包含多个from子句

(D)LINQ是.NET 3.5中一项突破性的创新,在对象领域和数据领域之间架起了一座桥梁

31、C#语言源代码文件的后缀名为【】。

(A) .C#  (B) .C (C) .CSP   (D) .CS

32、若多维数组a有4行3列,那么数组中第10个元素的写法为【】。

(A) a[10] (B)a[2, 1] (C)a[3, 0] (D)a[4, 1]

33、 在ASP.NET程序设计中,要验证输入的银行信用卡卡号是否符合规定,需要使用(   )验证控件。

(A)CustomValidator (B)RangeValidator (C)RegularExpressionValidator(D)CompareValidator

34、以下多维数组声明语句中,不正确的有【】。

(A) int[,] a=new int[2, 3];  (B) int[,] a = { { 1, 2, 3 } };

(C) int[,] a=new int[2,3];   (D) int [,] a={{1,2,3},{2,3}};

35、设bool型变量a和b的取值分别为true和false,那么表达式a && (a||!b)和a | (a &!b)的值分别为(  )。

(A) true true  (B)true false  (C)false false  (D)false true

36、设double型变量x和y的取值分别为12.5和5.0,那么表达式x/y+(int)(x/y)-(int)x/y的值为【】。 

(A)2.9  (B)2.5  (C)2.1  (D)2

37、下面语句属于()操作。

int i = 10;

object obj = i;

(A)装箱(B)拆箱 (C)委托 (D)回调

38、CLR是一种【】。

(A)程序设计语言(B)运行环境  (C)开发环境    (D) API编程接口

39、C#程序的执行过程是【】。

(A)从程序的第一个方法开始,到最后一个方法结束

(B)从程序的Main方法开始,到最后一个方法结束

(C)从程序的第一个方法开始,到Main方法结束

(D)从程序的Main方法开始,到Main方法结束

40、下列各种数据类型中,哪种数据类型属于引用类型。【】

A.enum     B. string     C. struct    D.int

41、在C#中不可作为注释的选项是【】。(A) //  (B) ’ (C)/*  和*/  (D)///

42、在类的外部可以被访问的成员是【】。

(A)public成员(B)private成员(C)protected成员(D) proteced internal成员

43、以下关于类和对象的说法中,不正确的是【】。

(A)类包含了数据和对数据的操作  (B)一个对象一定属于某个类

(C)密封类不能被继承            (D)可由抽象类直接生成对象

44、下面有关析构函数的说法中,不正确的是【】。

(A)析构函数中不可以包含return语句(B)一个类中只能有一个析构函数

(C)用户可以定义有参析构函数      (D)析构函数在对象被撤销时,被自动调用

45、下列不属于C#方法参数类型的是【】。

(A) 以ref修饰符声明的引用型参数    (B)以byval修饰符声明的值类型参数

(C) 以out修饰符声明的输出参数      (D) 以params修饰符声明的数组型参数

46、要使用变量age来存储年龄,则将其声明为(  )类型最为适合。

(A) sbyte (B) byte (C) int (D) float

 

47、打开通用对话框colorDialog的【】属性用于返回用户在打开对话框中所选择的颜色。

(A)GetColor(B)  Color(C)Value  (D)AnyColor

48、在ASP.NET程序设计中,要验证输入的邮编是否符合规定,需要使用【】验证控件。

(A)CustomValidator         (B)RangeValidator

(C)RegularExpressionValidator(D)CompareValidator

49、下面代码执行后,Label2标签将会显示的结果为【】。

Application["a"]=Label1.Text;

Label2.Text = Application["a"];

(A)字符a (B)Label1.Text   (C)没有输出结果 (D)上面的语句有语法错误

50、执行下面语句的结果为【】。

Response.Write("<a href='http://news.sohu.com'></a>");

(A)news.sohu.com    (B)<a href='http://news.sohu.com'></a>

(C)没有输出结果    (D)有语法错误

51、要使得窗体一开始运行就充满整个屏幕则须设置【】属性。

(A)BorderStyle     (B) WindowState   (C)Appearance   (D)DrawMode

52、如果将窗体的FormBorderStyle设置为None,则【】。

(A)窗体是透明的                 (B)窗体没有边框但能调整大小

(C)窗体有边框但不能调整大小     (D)窗体没有边框并不能调整大小

53、下面关于运算符重载的描述中,错误的是(  )。

(A)重载的运算符仍然保持原来的操作数个数、优先级和结合性不变

(B)可以重载双目运算符,不可以重载单目运算符

(C)运算符重载函数必须是public的

(D)运算符重载函数必须是static的

54、页面上有一个DropDownList控件,如果要实现当用户对DropDownList控件中选项的选择发生变化时重新加载页面的功能,则需要设置该控件的【】属性值为true。

(A)AutoPostBack(B)Enabled   (C)IsPostBack  (D)Visible

55、在WF中,可以作为工作流宿主的外围程序有多种,但不包括【】。

(A)WorkflowRuntime(B)Windows应用(C)Web 服务(D)ASP.NET应用

56、WPF支持的功能众多,但不包括【】。(A)文档 (B)图形(C)数据绑定(D)milcore

57、关于WCF描述,正确的是【】。

(A)WCF是Microsoft为构建面向服务的应用提供的分布式通信编程框架

(B)WCF是一种异步通信技术

(C)WCF是Microsoft提供的一种数据绑定技术

(D)WCF是使用非托管代码建立和运行面向服务应用程序的统一框架。

58、AJAX技术一个重要应用是【】。

(A)提供网络通信安全性

(B)解决HTTP请求的同步性问题

(C)解决页面之间数据传输问题

(D)解决浏览器器兼容问题

59、LINQ查询表达式包含8个常用子句,但不包括【】。

(A)where子句(B)from子句(C)insert子句(D)select子句

60、在VS2008开发环境中,重构不能实现的功能是。【】

A. 提取方法  B. 提取接口 C. 重新排列参数   D. 导入其他类的方法

61、下列哪个方法可以实现同时删除字符串变量strX前导和尾随空格。【】

A.strX.TrimStart()   B.strX.TrimEnd ()  C.strX.Trim()  D.strX.Substring()

62、下面对Read()和ReadLine()方法的描述,哪些是正确的?

(A)Read()方法一次只能从输入流中读取一个字符

(B)使用Read()方法读取的字符不包含回车和换行符

(C)ReadLine()方法读取的字符不包含回车和换行符

(D)只有当用户按下Enter键时,Read()和ReadLine()方法才会返回

63、下面关于XML的描述错误的是【】。

A.XML是一种简单、与平台无关并被广泛采用的标准

B.XML提供一种描述结构化数据的方法

C.XML是微软.NET战略的一个重要组成部分,是 Web 服务的基石。

D.XML只是为了生成结构化文档

64、设a=-7, b=5, c=10,表达式a<=(c) && (4*c==b/2) && b!=(a+(c))的值是【】。

 A.True  B.False  C.-1    D.1

65、在.NET中,Stream类是抽象类,它有一些重要的子类,下列不属于其子类的是【】。

A. FileStream类  B. MemoryStream类  C. NetStream类  D. BufferedStream类

66、下面哪一项功能是VS2008开发环境中不提供的。【】

A. 重构   B. IntelliSense   C. 测试     D. 代码段编辑器

67、 对Write()和WriteLine()方法的描述,哪个是正确的。【】

A. WriteLine()方法在输出字符串的后面添加换行符

B. 使用Write()输出字符串时,光标将会位于字符串的后边

C. 使用Write()方法输出数值变量时,必须要先把数值变量转换成字符串

D. 使用不带参数的WriteLine()方法时,将不会产生任何输出

68、 下面说法,不正确的有【】。

A. 事件应当被定义为public,否则就不能被外部对象引用。

B. 事件的注册就是把委托和事件发送方关联起来。

C.对象的成员不包括事件。

D. 委托是一种编程技术,而事件机制就是委托这种技术的一个应用。

69、下列能正确定义一维数组的是【】。

A.int a[5]={0,1,2,3,4};                 B.char [] a={0,1,2,3,4};

C.int [] a= { '0', '1', '2', '3', '4'}; D.char[] a ={ '0', '1', '2', '3', '4' };

70、使用什么方法可以完成对DataSet对象的数据充填。【】

A. DataAdapter的Fill方法   B. DataSet的GetChanged方法

C. DataSet的Fill方法       D. DataAdapter的GetChanged方法

71、在.NET程序设计中,语句Console.ReadLine()的作用是()。

(A)将程序暂停,直到用户输入回车

(B)从控制台一次读取一行字符的输入,并且直到用户按下Enter键它才会返回

(C)将内容输出到屏幕

(D)读取网络中的数据流

72、Console标准的输入和输出设备分别是(  )和(  )。

(A)键盘 (B)鼠标(C)屏幕(D)打印机

 

二、填空题

1、创建与SQL Server2005数据库连接,需要使用【】类。

2、面向对象的三个基本特征是【】、【】和【】。

3、在Windows应用程序中,若要将文本框设置为密码输入框(输入内容显示*),需要将【】属性指定为*。

4、可以通过【】属性来获取滚动条trackBar控件的当前值。

5、为使计时器控件每隔3秒钟产生一个Tick事件,则应将其Interval属性值设为【】。

6、Graphics类中,【】方法用于绘制一条直线。

7、在C#中,通常使用【】类和【】类来读写文本文件。这两个类主要用于以文本方式对流进行读写操作,以字节流为操作对象,并支持不同的编码格式。

8、菜单控件只包括一个【】事件。

9、DataReader对象是通过Command对象的【】方法生成的。

10、用于设置MenuStrip控件中某菜单项快捷键的属性是【】。

11、表示trackBar控件取值范围最大值的属性是【】。

12、流是用于传输数据的对象。C#中常见三种流分别为【】、【】和【】,它们都继承Stream类,Stream类为它们的抽象基类。

13、C#中的数据类型分成两大类:值类型和【】。

14、若要创建新的一行,可以调用DataTable对象的【】方法。

15、.NET 3.0 中引入了四个重要组件,分别为:【】、【】、【】和Windows CardSpace 。

16、执行float f = -67.89F; int i = (int)f; 语句之后,i的值是【】。

17、从DataSet向数据源更新数据用DataAdapter对象的【】方法。

18、在C#中,目录管理主要使用System.IO名称空间下的【】类和【】类。

19、语句var i = 5; 是利用C# 3.0中的【】新特性,该特性允许声明一个局部变量,变量的具体类型通过初始化表达式来推断。

20、Web服务的全称是【】,是一种可编程的应用程序逻辑的组件,它可以在Internet或企业内部网的Web应用程序之间共享。

21、DataReader对象可通过Command对象的【】方法生成的。

22、以下是一些C#中的枚举型的定义及引用,则x的值为【】。

        public enum var1 { Mike = -1, Nike = 2, Jike };

        static void Main(string[] args)

        {

            int x = (int)var1.Jike;

            ……

        }

23、下面程序的功能是:输出100以内能被3整除且个位数为6的所有整数,请填空。

using System;

public class sample11{

    public static void Main() {

        int i,j;

        for (i=0;【】;i++)

        {

            j=i*10+6;

            if(【】) 

            continue;

            Console.WriteLine("{0}",j);

        }

    }

}

 

三、阅读程序,按要求写出运行结果或补齐程序。

1、下述代码执行后,输出结果是【】。

代码

using System;

class A{

    public virtual void Fun1(int i) { Console.WriteLine(i); }

    public virtual void Fun2(A a)

    {

        a.Fun1(1);

        Fun1(5);

    }

}

class B : A{

    public override void Fun1(int i) { base.Fun1(i + 1); }

}

class MyApp{

    public static void Main() {

        A a = new A();

        B b = new B();

        a.Fun2(a);

        b.Fun1(10);

    }

}

 

2、下述代码执行后,输出结果是【】。

代码

using System;

class A

{

    public int x = 1;

    public virtual void PrintFields()

    {

        Console.WriteLine("x = {0}", x);

    }

}

class B : A

{

    int y = 2;

    public override void PrintFields()

    {

        base.PrintFields();

        Console.WriteLine("y = {0}", y);

    }

    public static void Main()

    {

        B me = new B();

        me.PrintFields();

    }

}

 

3、下述代码执行后,输出结果是【】。

代码

using System;

namespace MyNamespace{

    public delegate string MyDelegate(string name);

    public class Test {

        public static string FunctionA(string name)

        {

            return "A say Hello to " + name;

        }

        public static string FunctionB(string name)

        {

            return "B say Hello to " + name;

        }

        public static void MethodA(MyDelegate Me)

        {

            Console.WriteLine(Me("张三"));

        }

        public static void Main()

        {

            MyDelegate a = new MyDelegate(FunctionA);

            MyDelegate b = new MyDelegate(FunctionB);

            MethodA(a);

            MethodA(b);

        }

    }

}

 

4、下述代码执行后,输出结果是【】。

代码

using System;

using System.Linq;

namespace LINQ_Sample{

    class Program {

        static void Main(string[] args){

            int[] values = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };

            var results = from v in values

                          where v % 2 == 0

                          select v;

            foreach (var item in results)

            {

                Console.WriteLine(item);

            }

        }

    }

}

 

5、编写一个类,该类存在一个静态方法。该方法可以统计一个整数数组中的偶数和奇数出现的个数。整数数组作为方法形参。下面给出了这段代码,请补齐代码。

代码

using System;

namespace ConsoleApp_sample{

    class Program {

        static void Main(string[] args) {

            int[] x = { 17, 45, 67, 18, 10, 11, 34, 71 };

            int a,b;

            MyClass.Count(out a,out  b, x);

            Console.WriteLine("{0},{1}",a,b);

        }

    }

    class MyClass {

        public 【】 void Count(out int c1,out int c2,【】 int [] args)

        {

            int t1 = 0, t2 = 0;

            foreach (int item in 【】)

            {

                if (【】)

                {

                     t1++;

                }

                else

                {

                     t2++;

                }

            }

            c1 = t1;

            c2 =【】;

        }

    }

}

 

 

四、简答题

1、简述.NET程序的编译和执行机制。

2、简述值类型和引用类型的主要区别。

3、什么是抽象类?什么是接口?接口与抽象类有什么不同?

4、简述类与结构的异同点。

5、.NET Framework3.0增加了哪些新功能?

6、简述.net异常处理机制。

7、创建Graphics对象有几种方法?

8、GDI+的坐标系有哪些?它们是如何转换的?

9、什么是流?列举.NET中几种常见的流?它们的共同抽象基类是什么?

10、简述File和FileInfo类、Directory和DorectoryInfo类区别。

 

五、综合题

1、编写一个控制台应用,实现输出一个从1开始到11*11长度的随机数序列。

2、下面代码是一个非泛型的栈操作类,请在此基础上将其改造为泛型的栈操作类。写出改造后的完整代码。

代码

using System;

using System.Collections.Generic;

namespace StackSample{

    class Stack{

        int[] m_Items = new int[100];

        int p;

        public void Push(int x) {

            m_Items[p] = x;

            p++;

        }

        public int Pop() {

            p--;

            return m_Items[p];

        }

    }

}

3、设计一个描述坐标点的CPoint类,该类实现以下功能:其私有变量x和y代表一个点的x,y坐标值。利用构造函数传递参数,并设其默认参数值为60和75,利用公有成员方法display()输出这一默认值;利用公有成员方法setpoint()将坐标值修改为(80, 150),并利用成员方法输出修改后的坐标值。

4、二叉树的定义及遍历

下面代码段欲实现如图所示的二叉树的定义及先序遍历算法(A->B->D->G->H->C->E->F)。

下面代码已经完成了基本框架,试根据上下文要求完成三处剩余代码。

using System;

using System.Collections;

class Demo

{

    static void Main(string[] args)

    {   //使用字符串构造二叉树

        BinaryTree bTree = new BinaryTree("ABC#DEF##GH");

        bTree.PreOrder(bTree.Head); //先序遍历

        Console.WriteLine();

    }

}

class Node

{

    //成员变量

    private object _data; //数据

    private Node _left; //左孩子

    private Node _right; //右孩子

    public object Data

    {

        get { return _data; }

    }

    public Node Left //左孩子

    {

        get { return _left; }

        set { _left = value; }

    }

    public Node Right //右孩子

    {

        get { return _right; }

        set { _right = value; }

    }

    //构造方法

    public Node(object data)

    {

        _data = data;

    }

    public override string ToString()

    {

        return _data.ToString();

    }

}

class BinaryTree

{    //成员变量

    private Node _head; //头指针

    private string cStr; //用于构造二叉树的字符串

    public Node Head //头指针

    {

        get { return _head; }

    }

    //构造方法

    public BinaryTree(string constructStr)

    {

        cStr = constructStr;

        _head = new Node(cStr[0]); //添加头结点

        Add(_head, 0); //给头结点添加孩子结点

    }

    private void Add(Node parent, int index)

    {

        int leftIndex = 2 * index + 1; //计算左孩子索引

        if (leftIndex < cStr.Length) //如果索引没超过字符串长度

        {

            if (cStr[leftIndex] != '#') //'#'表示空结点

            { 

 //添加左孩子及左孩子的子节点

 //从此开始编写代码,代码写在答题纸上①

            }

        }

        int rightIndex = 2 * index + 2;

        if (rightIndex < cStr.Length)

        {

            if (cStr[rightIndex] != '#')

            {  

//添加右孩子及右孩子子节点

//从此开始编写代码,代码写在答题纸上②

            }

        }

    }

    public void PreOrder(Node node)

    {

            //先序遍历

        //从此开始编写代码,代码写在答题纸上③

    }

}

 

 

 

1、本栏目为114-1、2、3、4 本学期实验要求。
2、实验内容及要求均在附件中。
3、截止2012.12.10日最新实验要求文档为:第14次实验(2012.12.10).rar


4、实验“复习资料2012.12.06”中答案不明确题目

原创粉丝点击