其他分享
首页 > 其他分享> > .net复习

.net复习

作者:互联网

一、单选题

1.有以下程序

int i, j;

for(i=3; i>=1; i--)

for(j=2; j<=3; j++)

Console.Write("{0}", i+j);

程序的运行结果是( D )。

A. 345456 B. 543654 C. 344556 D. 564534

\2. 有以下程序:

int i;

for (i = 0; i < 3; i++)

switch (i)

{

case 1: Console.Write("{0}", i); break;

case 2: Console.Write("{0}", i); break;

default: Console.Write("{0}", i); break;

}

执行后输出结果是( A )。

A. 012 B. 3 C. 120 D. 12

3.有以下程序段:

int a=3,b=5,c=7;

if(a>b) a=b; c=a;

if(c!=a) c=b;

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

其输出结果是( A )。

A. 3,5,3 B. 3,5,5 C. 3,5,7 D. 程序段有语法错误

\4. 数据类型定义变量时,以下数据类型中( A )的变量所占存储空间最大。

A. decimal B. double C. int D. char

\5. 若int x=5;则执行表达式x/=2*x后,x的值为 ( A )。

A. 0 B. 0.75 C. 0.25 D. 1

\6. 以下程序的输出结果是( A )。

int i=6,j=10;

Console.WriteLine("{0},{1}",++i,j--);

A. 7,10 B. 6,10 C. 7,9 D. 6,9

\7. 在C#语言中,以下关于结构体的说法错误的是( C )

A. 结构成员不能指定为 abstract、virtual 或 protected。

B. 可使用new关键字创建结构体对象

C. 结构体中成员的默认修饰符是private

D. 结构体中可带有方法、字段、索引、属性、运算符方法和事件。

\8. 以下不属于枚举(enum)类型特点的是( C )

A. 声明枚举类型时,必须带上enum关键字。

B. 枚举名必须是C#中合法的标识符。

C. 枚举类型中定义的所有枚举值都默认为字符型。

D. 定义枚举类型时花括号“}”后带或不带“;”符号都是正确的。

\9. 有如下代码:

public enum Color

{

Red=1,

Blue=3,

Green,

Black=7,

Yellow=9

}

那么 Color.Green对应的整型值为:( A )

A. 4 B. 2 C. 6 D. 3

10.以下程序的输出结果是( )。

int i=6,j=10;

Console.WriteLine("{0},{1}",++i,j--);

A. 7,10 B. 6,10 C. 7,9 D. 6,9

11.在C#语言中,以下关于结构体的说法错误的是( C )

A. 结构成员不能指定为 abstract、virtual 或 protected。

B. 可使用new关键字创建结构体对象

C. 结构体中成员的默认修饰符是private

D. 结构体中可带有方法、字段、索引、属性、运算符方法和事件。

12.声明委托:delegate double mydelegate(double x,double y);以下方法能实例化mydelegate的是( A )

A. public double add(double x, double y)

B. public double add(double x, int y)

C. public double add(int x, double y)

D. public void add(double x, double y)

1.3.如果不带修饰符,C#中类成员的默认修饰符为?(B)

A. public B. private C. protected D. new

14.在C#语言中,下列变量名称中合法的是:( C )

A. 6z B. double C. INT D. a+b

15.Visual Studio .Net解决方案文件的后缀名为( A )

A. .sln B. .cs C. .csproj D. .resx

16.设有 int x=13; 则表达式 (--x)%3 的值是( A )。

A. 0 B. 1 C. 2 D. 3

17.有以下程序:
int a=5,b=2;
int x;
x=2.2+a/b;
Console.WriteLine("{0}", x);
程序运行后的输出结果是( B )。

A. 4.2 B. 4 C. 4.7 D. 5

18.以下C#中的数据类型不属于引用类型的是(A)

A. 结构 B. 类 C. 接口 D. 字符串

\19. 要实现拖拽效果,以下不会涉及到的事件或方法为( )

A. DragDrop B. DragEnter C. DoDragEnter() D. DoDragDrop()

\20. 以下不属于.NET Framework 数据提供程序的是( )

A. DataSet B. Connection C. Command D. DataReader

20.在C#中要禁止继承一个类,使用到的关键字是( )

A. sealed B. final C. super D. base

二、多选题

1.在C#语言中,以下关于结构体(Struct)的描述正确的是( ABCD )

A. 结构可带有方法、字段、索引、属性、运算符方法和事件。

B. 结构可定义构造函数,但不能定义析构函数。

C. 结构不能继承其他的结构或类。

D. 结构可实现一个或多个接口。

2.下面说法正确的是( AB )

A. 在.NET框架下,不同命名空间下可以有同名的类。

B. 在C#中,使用sealed修饰的类没有派生类。

C. 在C#的类中,可以包含运算符的重载且所有的运算符都可重载。

D. 在C#中,分部类不论是存放方式还是编译过程都是分开进行的

3.以下关于构造方法的说法正确的是(ABCD)

A. 构造函数的名称与类的名称相同。

B. 构造函数尽管是一个函数,但没有任何类型,即它既不属于返回值函数也不属于void函数。

C. 一个类可以有多个构造函数,但所有构造函数的名称都必须相同,它们的参数各不相同,即构造函数可以重载。

D. 构造函数不能被继承。

4.以下属于面向对象特性的是?( A B C )

A. 封装 B. 继承 C. 多态 D. 模块化

5.以下属于.Net Framework的基本特点的是( ABCD )

A. 统一编程模型

B. 只支持C#语言

C. 基于.NET框架开发的.NET组件不再需要注册到系统注册表

D. 提供强壮安全的运行环境

6.以下叙述正确的是:( B C )

A. 接口中可以有虚方法。 B. 一个类可以实现多个接口。

C. 接口不能被实例化。 D. 接口中可以包含已实现的方法。

7.下列有关于窗体Form的描述正确的是( ABC )

A. 窗体Form的实现是一个分部类。

B. 窗体Form中可以包含类中所有的成员。

C. 窗体Form也是一个控件。

D. 窗体Form的实现中只包含属性和事件。

8.以下关于MessageBox的相关描述正确的是( ABD )

A. MessageBox.Show(……)的返回值为DialogResult类型。

B. 在MessageBox.Show(……)方法中,参数MessageBoxButtons可以控制消息框中的按钮类型以及数量。

C. 在MessageBox.Show(……)方法中,参数MessageBoxOptions可以控制消息框中的按钮类型以及数量。

D. 在MessageBox.Show(……)方法中,参数MessageBoxIcon可以控制消息框的图标。

9.控件ListView有多种视图,为了呈现不同的效果,具有多种可编辑类别包括( ABC )

A. 项 B. 列 C. 组 D. 行

10.以下有关于FileStream的描述正确的是( AB )

A. FileStream构造方法中形参FileMode用于设置文件的创建模式。

B. FileStream构造方法中形参FileAccess用于设置文件的读/写权限。

C. FileStream构造方法中形参FileMode用于设置文件的读/写权限。

D. FileStream构造方法中形参FileAccess用于设置文件的创建模式。

11.下列有关接口的描述正确的是( ACD )

A. 不能直接实例化接口。

B. 接口可以包含字段、事件、索引器、方法和属性。

C. 接口不包含方法的实现。

D. 类和结构可从多个接口继承。

12.以下对抽象类特点描述正确的是( BC )

A. 抽象类可以实例化。

B. 抽象类可以包含抽象方法和抽象访问器。

C. 抽象类中可以存在非抽象的方法。

D. 可以用sealed修饰符修饰抽象类。

13.在C#中,为了实现多态性,涉及到的关键字有( ABC )

A. new B. virtual C. override D. static

14.以下关于C#中继承的相关表述正确的是( ABD )

A.C#中类只允许单继承,即一个派生类只能有一个基类。

B. 如果类是从一个基类派生出来的,那么在调用这个派生类的默认构造函数之前会调用基类的默认构造函数。

C. 调用基类的重载构造函数需使用super关键字。

D. 当销毁对象时,会按照首先调用派生类的析构函数,然后是最近基类的析构函数,最后才调用那个最远的析构函数的顺序

15.以下属于C#中的继承特点的是(ABCD )

A. C#类中只允许单继承,即一个派生类只能有一个基类。

B. C#中继承是可传递的,如果C从B派生,B从A派生,那么C不仅继承B的成员,还继承A的成员。

C. C#中派生类可添加新成员,但不能删除基类的成员。

D. C#中派生类不能继承基类的构造函数和析构函数,但能继承基类的属性。

16.在C#中并不是所有的运算符都允许重载,以下可重载的运算符有( ABD )

A. + B. ++ C. ? D. !

三、填空题

1.有如下代码,其执行结果为“a=-10 b=100123”,即a取最小值,b取最大值,请补全代码:

static void Main( )

{

  int[] nums=new int[]{99,-10,8,36,12,24,88,-9,105,100123};

  int a=nums[0];

  int b=nums[0];

  for(int j=0;j<nums.Length;j++)

  {

​       if( nums[j]<a    )

​          a=nums[j];

​       if(   nums[j]>b   )

​          b=nums[j];          

   }

   Console.WriteLine(“a={0}  b={1}”a , b);

} 

2. 编写一个程序,判断从键盘输入的大于3的正整数是否为素数。

using System;

namespace Proj4_9

{  

   class Program

   { 

​      static void Main(string[] args)

​     { 

​           int n, i;

​           bool prime = true;

​           Console.Write("输入一个大于3的正整数:");

​           n =  int.Parse(Console.ReadLine())  ;//从键盘输入一个正整数

​           for (i = 3; i <= Math.Sqrt(n); i++)

​          {

​               if (    n % i == 0   )

​               { 

​                    prime = false;

​                    break;

​                }

​          }

​           if (prime)

​           Console.WriteLine("{0}是素数", n);

​           else

​           Console.WriteLine("{0}不是素数", n);

​    }

  }

}

3. 请补全以下代码,使TPoint1类具有两个参数的构造方法重载:

namespace Proj6_2

{  

public class TPoint1          //声明类TPoint1

{  

  int x, y;                //类的私有变量

​    public TPoint1() { }       //默认的构造函数

​      public TPoint1(int x1, int y1)         //带参数的构造函数

​    { x = x1; y = y1; }

​    public void dispoint()

​    {  Console.WriteLine("({0},{1})", x, y); }

  }

}

4.请补全以下代码,使得TPoint3具有两个属性px、py,进行变量x、y的读写操作,其中px为只读,py为可读可写:

public class TPoint3   

{  

int x,y;

​       public int px

​       { 

  get {  return x; }      //读取x

​       }

​        public int py

​       {   

​          get {  return y; }   //读取y

​           set { y = value; }    //写入y

​       }

​       public int Read_x()

​       { return x;}

​       public void Write_x(int v) { x=v;}

}

5. 补全以下代码,使得输出结果为:5

public class MyClass4

 {    

int num=0;

​       public void addnum(int num1,  ref int num2       )

​       {

​        num2=num2 + num1;

​       }

  }

  class Program

  {    static void Main(string[] args)

​       {  

int x=0;

​            MyClass4 s = new MyClass4();

​            s.addnum(5,    ref x       );

​           Console.WriteLine(x);  

​       }

}

6. 要实现TextBox控件中显示多行文本,需要其 Multiline 属性设为true;如果想要其显示为密码输入的方式(例如:使文本均显示为),需要将Passwordchar属性设为 *。

7.关于ListBox控件,如果想要在显示列表中添加一项,需要调用属性 Items 进行添加,当前所选中的项可通过属性SelectedItem得到,其中事件SelectedIndexChanged当ListBox的选择项改变时触发。

8. 组合框控件ComboBox,可以通过性 DropDownStyle 改变控件的下拉样式。

9.要将一个Form由单文档窗体设置为多文档窗体,需要将属性 IsMdiContainer 修改为true;要改变Form启动时的初始位置需要修改属性StartPosition;要改变Form的边框样式需要修改属性FormBorderStyle。

10.要实现TabControl中每个Tabpage上的标签显示如下图所示:

img

需要先将TabControl的属性 ShowToolTips 设为true;然后设置每个Tabpage的属性ToolTipText。

11. 给出以下界面中用到的3种控件 TreeView 、 ListView 、 MenuStrip 。

img

12. 根据提示补全以下代码:

  ~~~c#

OpenFileDialog open = new OpenFileDialog();//创建一个打开的对话框

​ open.Title = "打开文本文件";

​ open.FileName = "";

​ open.AddExtension = true;//设置是否自动在文件中添加扩展名

​ open.CheckFileExists = true;//检查文件是否存在

​ open.CheckPathExists = true;//验证路径有效性

open.Filter = "****文本文(*.txt)|*.txt" ;//将打开文件的类型设置为只能打开txt文件且显示为“文本文件(*.txt)”

​ open.ValidateNames = true;//文件有效性验证ValidateNames,验证用户输入是否是一个有效的Windows文件名

​ if (open.ShowDialog() == DialogResult.OK)

​ {

​ StreamReader sr = File.OpenText(open.FileName) ;//通过File类得到StreamReader类对象,文件名通过 OpenFileDialog得到

​ this.richTextBox1.Text = sr.ReadToEnd() ;//将文件中的内容全部读出

​ sr.close();

​ }
~~~

13. 根据提示补全代码:

​ string connstring = "Data Source=(local);Initial Catalog=school;User ID=sa";

​ SqlConnection connection = new SqlConnection(connstring);

connection.Open() ;//打开数据库

​ string sqlstring = "select * from student";

​ SqlCommand mycom = new SqlCommand(sqlstring, connection) ;//创建Command对象

​ SqlDataAdapter adapter = new SqlDataAdapter();

adapter.SelectCommand = mycom ;//使Command与DataAdapter取得联系

​ DataSet ds = new DataSet();

​ adapter.Fill(ds);//填充DataSet

​ //开始循环读取DataSet中的数据表信息

​ for (int i = 0; i < ds.Tables[0].Rows.Count; i++)

​ {

​ label1.Text += ds.Tables[0].Rows[i][2].ToString() + "\n" ;//使label1中显示第0张表第2列的内容,且每显示一个单元格的内容换行

​ }

​ //释放数据库连接资源

​ connection.Dispose();

​ connection.Close();//关闭数据库

​ connection = null;

14.请给出以下窗体中涉及到的四种控件: img

(1) Button

(2) ListBox

(3) ComboBox

(4) TabControl

15.根据提示补全以下代码,完成ColorChange事件的响应:

using System;

namespace Proj6_11

{

public delegate void mydelegate(int c, int n); //声明一个事件委托类型

public class Shape

{

protected int color;

​ public event mydelegate ColorChange ; //依据mydelegate委托声明一个名字为ColorChange的事件

​ public int pcolor //定义属性

​ {

​ set

​ {

​ int ocolor = color; //保存原来的颜色

​ color = value;

​ if(ocolor!=color)

​ {

ColorChange(ocolor, color) ;//在color的值发生改变后,触发ColorChange事件。

​ }

​ }

​ }

​ public Shape()//构造函数

​ { color = 0; }

}

class Program

{

​ static void Main(string[] argvs)

​ {

Shape obj = new Shape();

obj.ColorChange += new mydelegate(CCHandler) ;//为ColorChange事件订阅CCHandler方法

​ obj.pcolor = 3; //改变颜色触发事件

​ }

​ static void CCHandler(int c, int n) //符合mydelegate委托名为CCHandler的方法

​ {

​ Console.WriteLine("颜色从{0}改变为{1}", c, n);

​ }

​ }

}

四、简答题

1. C中的结构体与C++中的结构体有什么区别?C#中的结构体与传统意义上的类有什么区别?

C中的结构体不能包含函数,但在C++中的struct等同于class,只是class默认成员权限是private,而struct默认成员权限是public。
类是引用类型,结构是值类型(class默认成员权限是private,而struct默认成员权限是public)。
结构不支持继承。
结构不能声明默认的构造函数。

2.简述ADO.NET断开式数据库访问的一般步骤。

1)建立Connection对象,创建一个数据库连接。

 (2)在建立连接的基础上可以使用Command对象对数据库发送查询、新增、修改和删除等命令。

 (3)创建DataAdapter对象,从数据库中取得数据。

 (4)创建DataSet对象,将DataAdapter对象填充到DataSet对象(数据集)中。

 (5)如果需要,可以重复操作,一个DataSet对象可以容纳多个数据集合。

 (6)关闭数据库。

 (7)在DataSet上进行所需要的操作。数据集的数据要输出到窗体中或者网页上面,需要设定数据显示控件的数据源为数据集。

3. (简答题)以下程序的执行结果为:

using System;

namespace Proj7_5

{ 

   abstract class A          //抽象类声明

   {   protected int x = 2;

​      protected int y = 3;

​      public abstract void fun();         //抽象方法声明

​      public abstract int px { get;set; }  //抽象属性声明

​      public abstract int py { get; }  //抽象属性声明

   }

   class B : A

   {  public override void fun()   //抽象方法实现

​      { x++; y++; }

​      public override int px    //抽象属性实现

​      {  

​          set {  x = value; }

​          get{ return x + 10; }

​      }

​      public override int py    //抽象属性实现

​      {  get {  return y + 10; }

​      }

​    }

​    class Program

​    {  static void Main(string[] args)

​       {  

​            B b = new B();

​             b.px = 5;

​             b.fun();

​            Console.WriteLine("x={0}, y={1}", b.px, b.py);

​      }

​    }

}

x=16, y=14

标签:Console,复习,以下,int,C#,net,public,构造函数
来源: https://www.cnblogs.com/muxin520/p/16352347.html