C#练手题

选择:  
1、装箱是把值类型转换到(  b  )类型。  
a)数组      b)引用        c)char         d)string 
2、静态构造函数只能对( a )数据成员进行初始化。   
 a)  静态     b) 动态  c)实例       d)  静态和实例 
3、关于如下程序结构的描述中,哪一项是正确的?(  b   ) for (  ;   ;   ) {  循环体;   } 
a) 不执行循环体      b) 一直执行循环体,即死循环
c) 执行循环体一次    d) 程序不符合语法要求 
4、下列哪个类型的对象是ADO.NET在非连接模式下处理数据内容的主要对象?( d  )     
a) Command    b) Connection     c)  DataAdapter    d) DataSet
5、下列哪一个不是类成员的成员的是(  d   ).  
a)属性    b)   数组    c) 索引器    d)while循环结构 
6、枚举类型是一组命名的常量集合,所有整形都可以作为枚举类型的基本类型,如果类型
省略,则定义为(  a   )。 
a) int      b)  sbyte       c) uint       d)  ulong 
7、下列关于数组访问的描述中,哪些选项是正确的? (  d )。   
a) 数组元素索引是从0开始的     
b) 对数组元素的所有访问都要进行边界检查
c)如果使用的索引小于0,或大于数组的大小,编译器将抛出一个IndexOutOfRangeException异常;      
d) 数组元素的访问是从1开始,到Length结束;  
8、下列结构图对应于哪种结构(A是程序段,P是条件)?(  c )。
 
a)  while 循环结构       b) do„while 循环结构    
c) if„else„ 选择结构      d) switch„case„选择结构
9、C#数组主要有三种形式,它们是( c )。 
a)  一维数组 、二维数组、三维数组    b)  整型数组、浮点型数组、字符型数组
c)  一维数组、多维数组、不规则数组    d)  一维数组、二维数组、多维数组 
10、下列标识符命名正确的是( d  )。 
a) X.25    b)4foots      c)val(7)     d)_Years 
11、面向对象编程中的“继承”的概念是指(   b   ) 
a) 对象之间通过消息进行交互  
b)派生自同一个基类的不同类的对象具有一些共同特征 
c)对象的内部细节被隐藏      
d) 派生类对象可以不受限制地访问所有的基类对象 
12、下列语句在控制台上的输出是什么?(  b  ) 
if(true) 
System.Console.WriteLine(“FirstMessage”);     
System.Console.WriteLine(“SecondMessage”); 
a)  无输出           b)FirstMessage      
c)SecondMessage     d)FirstMessage  SecondMessage 
13、在C#的类结构中,class关键字前面的关键字是表示访问级别,下面哪个关键字表示该类只能被这个类的成员或派生类成员访问? (  d )。 
a) public   b) private   c) internal  d) protected  
14、下列类型中, 哪些不属于引用类型?( b )。  
a) String  b) int  c) Class    d) Delegate 
15、 数组pins的定义如下:      int[] pins=new int[4]{9,2,3,1};         则pins[1]=( b   ) 
    a)  1   b) 2   c) 3    d) 
9 16、创建数据库连接使用的对象是(  a )。     
a) Connection      b) Command     c) DataReader       d) DataSet 
17、调用方法时,如果想给方法传递任意个数的参数时,应选用哪个关键字(  c )。 
a)  ref   b) out   c)  params  d) 无特殊要求 
18、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 (); 
19. 在C#中,表示一个字符串的变量应使用以下哪条语句定义?(  b   ) 
a) CString str;       b) string str;    c) Dim str as string     d) char * str; 
20、下列关于C#面向对象应用的描述中,哪项是正确的?( c )。 
a) 派生类是基类的扩展,派生类可以添加新的成员,也可去掉已经继承的成员  b) abstract方法的声明必须同时实现   c) 声明为sealed的类不能被继承  d) 接口像类一样,可以定义并实现方法 
21、C#中导入某一命名空间的关键字是(  a   )。 
a) using       b) use        c)import       d) include 
22、一般情况下,异常类存放在什么命名空间中?( b )。 
a) 生成异常类所在的命名空间     b)  System.Exception命名空间
c) System.Diagnostics命名空间     d) System命名空间 
23、以下程序的输出结果是( d )。 
enum Color 
        { Red, Green = 2, Blue } 
        static void Main(string[] args)         

            Color c = 0; 
            Color c1 = (Color )2;    
            Console.WriteLine("{0},{1}", c,c1 );            
 Console .Read ();         }   
a)  Green,Red   b)  Red,Green   c)  Red,Blue  d) Green,Blue 
24、若将数据库中的数据填充到数据集,应调用SqlDataAdapter的( c )方法。   
a)  Open   b) Close    c)  Fill  d)  Update 
25、下列标识符命名正确的是( a  )。 
        a) X_25    b)4foots      c)&Years     d)val(7) 
26、若将数据集中所作更改更新回数据库,应调用SqlAdapter的( a )方法。   
a) Update b) Close    c)  Fill  d)  Open 
27、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(); 
28、如果左操作数大于右操作数,( d )运算符返回false。     
a)=       b)<       c) <=       d)以上都是 
29、下面哪个关键字不是用来修饰方法的参数?( d )。 
a)  ref   b) params   c)  out  d) in 
30、在使用FileStream 打开一个文件时,通过使用FileMode 枚举类型的(  a  )成员, 来指定操作系统打开一个现有文件并把文件读写指针定位在文件尾部。
a)  Append   b) Create        c) CreateNew     d) Truncate 
31、有说明语句double[,] tab=new double[2,3];那么下面叙述正确的是( c )。
a)   tab是一个数组维数不确定的数组,使用时可以任意调整   
b)  tab是一个有两个元素的一维数组,它的元素初始值分别是2,3       
c)  tab是一个二维数组,它的元素个数一共有6个 
d)  tab是一个不规则数组,数组元素的个数可以变化 
32、在菜单项File中,为将F设为助记符,应将该菜单项的Text属性设置为(   b )。    
 a) @File    b)&File     c)%File     d)_File 
33、下列关于“方法重载”的描述中,哪些选项是不正确的?(   b )。 
a)  方法重载可以扩充现有类的功能 
b) 构造函数不可以重载 
c)  方法ConsoleW(int  _value)是方法ConsoleW(string  _value)的重载
d) 方法重载即“同样的方法名但传递的参数不同” 
34、以下程序的输出结果是( b )。 
class Program 
           {  
static void Main(string[] args)                 

                  MyStruct s1 = new MyStruct(1, 2);
                   s1.x = 2;
                   s1.Sum(); 
                  Console.ReadLine();
                 }
            } 
            struct MyStruct
             { 
                public int x;
                public int y; 
                public MyStruct(int i, int j)
                 { 
                      x = i;
                   y = j;                 

                public void Sum() 
              { 
                 int sum = x + y; 
                 Console.WriteLine("the sum is {0}",sum ); 
               } 
           }  
a) the sum is 4     b)  the sum is 3      c)  the sum is  2     d) the sum is 0 
35、指定操作系统读取文件方式中的FileMode .Create的含义是( d )。  
a) 打开现有文件 
     b) 指定操作系统应创建文件,如果文件存在,将出现异常     
c) 打开现有文件,若文件不存在,出现异常
d) 指定操作系统应创建文件,如果文件存在,将被改写 
36、以下说法正确的是( b )。   
a) 虚方法必须在派生类中重写,抽象方法不需要重写 
b) 虚方法可以在派生类中重写,抽象方法必须重写   
c) 虚方法必须在派生类中重写,抽象方法必须重写  
d) 虚方法可以在派生类中重写,抽象方法也不需要重写 
37、下列标识符命名正确的是(  c )。 
 a) exam-1      b)Main      c)_months       d)X.25 
38、下列关于数组的描述中,哪些选项是不正确的?( d  )。  
a)  String类中的许多方法都能用在数组中 
b)  System.Array类是所有数组的基类 
c)  String类本身可以被看做是一个System.Char对象的数组
d)  数组可以用来处理数据类型不同的批量数据 
39、在类的定义中,类的(  b  )描述了该类的对象的行为特征。      
a)  类名   b)方法  c)所属的命名空间  d)私有域  
40、枚举类型是一组命名的常量集合,所有整形都可以作为枚举类型的基本类型,如果类型省略,则定义为(  d   )。 
a) uint     b)  sbyte    c) ulong      d) int 
41、在定义类时,如果希望类的某个方法能够在派生类中进一步进行改进,以处理不同的派生类的需要,则应将该方法声明成(    c   )。 
a)  sealed方法   b)public方法    c)vitual方法   d)override方法
42、面向对象三个基本原则是(  c  )。  
a) 抽象,继承,派生   
b)  类,对象,方法   
c)继承,封装,多态    
d) 对象,属性,方法 
43、分析下列代码段,运行结果是什么?(  d  )。 
Static void Main(string [] args) 

string[] words = new string[] {“a”,“b”,“c”}; 
foreach (int word in words) 

word =“abc”; 
Console.WriteLine(word); 

Console.ReadKey (); 

a)  a b c       b)  abc abc abc     c)   bc ac ab       d)不能正确编译 
44、在数组中对于for 和 foreach 语句,下列那些选项中的说法不正确?(  b  )。 
a)  foreach语句能使你不用索引就可以遍历整个数组
b) foreach语句总是从索引1遍历到索引Length 
c) foreach总是遍历整个数组 
d) 如果需要修改数组元素就必须使用for语句 
45、在C#的类结构中,class关键字前面的关键字是表示访问级别,下面哪个关键字的访问级别是表示只有在同一个程序集内,且内部类型或成员才是可访问的? ( d )。  
a) public   b) private   c) protected  d) internal 
46、c#的引用类型包括类、接口、数组、委托、object和string.其中object( d  )根类。 
a)  只是引用类型的               b) 只是值类型的   
c) 只是string 类型的             d) 是所有值类型和引用类型的
47、C#的构造函数分为实例构造函数和静态构造函数,实例构造函数可以对( b )进行初始化,静态构造函数只能对静态成员进行初始化。 
a) 静态成员    b) 静态成员和非静态成员   c) 非静态成员     d)动态成员 
48、在C#中,(  b  )表示 “” 。 
   a) 空字符     b) 空串     c) 空值    d) 以上都不是 
49、当( d  )时,条件“expression1 XOR expression2”的值为真。 
a) expression1为真而expression2为假   
b) expression1为假而expression2为真 
c) expression1和 expression2均为真    
d) a和b都对 
50、在C#中无需编写任何代码就能将int型数值转换为double型数值,称为( b  )。 a) 显式转换   b)隐式转换    c) 数据类型转换   d) 变换 51、下面属于合法变量名的是( A  )。 
a) P_qr       b)123mnp       c) char       d) x-y 
52、表达式12/4-2+5*8、4%5/2的值为(  A  )。 
a) 1       b)3       c) 4      d) 10 
53、当运行程序时,系统自动执行启动窗体的(  C )事件。
a) Click   b)DoubleClick   c) Load  d) Activated 
54、若要使命令按钮不可操作,要对(  B )属性进行设置。 
a) Visible       b)Enabled       c) BackColor      d) Text 
55、若要使TextBox中的文字不能被修改,应对(  B )属性进行设置。 
a) Locked       b)Visible           c) Enabled       d) ReadOnly 
56、在设计窗口,可以通过(  A )属性向列表框控件如ListBox的列表添加项。 
a) Items        b)Items.Count      c) Text           d) SelectedIndex 
57、在VS集成开发环境中有两类窗口,分别为浮动窗口和固定窗口,下面不属于浮动窗口的是(  D ) 
a) 工具箱       b)属性       c) 工具栏       d)窗体 
58、引用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] 
59、引用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] 
60、下面代码的输出结果是(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 
61、当month 等于6时,下面代码的输出结果是(c)。 
int days = 0;  
switch (month) 

        case 2:   
            days = 28;              break;       
case 4:        
case 6:        
case 9:        
case 11:  
            days = 30;              break;        
default:  
            days = 31;             break; 

a) 0          b)28         c) 30         d)31 
62、如果 x=35, y=80,下面代码的输出结果是(b)。 
 if (x < -10 || x > 30)  

       if (y >= 100)        

              Console.WriteLine("危险 ");         
}          
else       

              Console.WriteLine("报警 ");         


else 

       Console.WriteLine("安全 "); 
}  
a) 危险       b)报警      c) 报警  安全       d)危险 安全 
63、下面代码运行后,s 的值是(B)。
int s = 0;  
for (int i = 1; i < 100;i++) 
{  
        if (s > 10)         

               break;         

        if (i % 2 == 0)          

               s += i; 
}
 }  
a) 20        b)12        c) 10        d)6 
64、下面代码实现数组array的冒泡排序,画线处应填入(d)。 
int[ ] array = { 20, 56, 38, 45 }; int temp; 
for (int i = 0; i < 3; i++) 

        for (int j = 0; j < _____; j++)         

              if (a[j] < a[j + 1])               

                    temp = a[j]; 
                    array[j] = a[j + 1];                     
array[j + 1] = temp;               

          }                 

a) 4-i        b)i          c) i+1            d)3-i
65、下面代码的输出结果是(c)。 
static void Main(string[ ] args) 
 { 
            int radius = 2; 
            double area = GetArea(radius); 
            Console.WriteLine(area);                   
Console.ReadLine(); 

private static double GetArea(int r) 

            return 3.14 * r * r; 
}  
a)2     b)  3.14     c) 12.56     d)6.28 
66、下面代码的运行结果是(D) 
static void Main(string[ ] args) 

           int num1 = 34;     
  int num2 = 55; 
           Increase(ref num1, num2); 
           Console.WriteLine("{0}和{1}", num1, num2);        
Console.ReadLine();
 } 
private static void Increase (ref int num1, int num2) 

           num1++; num2++; 
}  
a)35和56       b)34和55      c) 34和56       d) 35和55 
67、窗体中有一个年龄文本框 txtAge,下面(d)代码可以获得文本框中的年龄值。
a)int age = txtAge; 
b)int age = txtAge.Text; 
c)int age = Convert.ToInt32(txtAge); 
d)int age = int.Parse(txtAge.Text); 
68、 下面(b)代码可以显示一个消息框。 
a)Dialog.Show(); 
b)MessageBox.Show(); c)Form.Show(); 
d)Form.ShowDialog(); 
69、在C# 编程中,访问修饰符控制程序对类中成员的访问,如果不写访问修饰符,类的默
认访问类型是(b)。 
A  public      B private      C internal      D protected 
70、在C#中创建类的实例需要使用的关键字是(C) 
A : this       B: base      C new       D : as 
71、在下列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 
72、在C# 语言中,方法重载的主要方式有两种,包括( D )和参数类型不同的重载。 
A:参数名称不同的重载       B : 返回类型不同的重载
C: 方法名不同的重载          D :参数个数不同的重载 
73、下列关于继承说法中,哪个选项是正确的(d) 
A。派生类可以继承多个基类的方法和属性。 
B。派生类必须通过base关键字调用基类的构造函数 
C。继承最主要的优点是提高代码性能 
D。继承是指派生类可以获取其基类特征的能力。 
74、当你需要使用一种数据类型表达同一类事物的不同状态,比如:男人、女人、小孩、老人或者春夏秋冬时,C#中最可靠和直观的解决方案是什么?(B) 
A。使用struct结构     
B。使用enum枚举 
C。使用int类型,用不同的数值{0,1,2„„}表示 
D。C#中无法通过一种数据类型实现同一事务的不同状态。 
75、下列选项中,不属于值类型的是(A) 
A。struct        B.Int32        C.Int        D.string 
76、声明double a; int b;下列哪个选项中的表达式能够正确的进行类型转换?(B) 
A. a=(decimal)b;         B。a=b;        C. a=(int)b         D. b=a; 
77、下列哪个语句不是C#2005提供的循环语句(a) 
A。do„loop while„语句     B。foreach 语句 
C。do„while语句         D。while语句 
78、在C# 中,可以避免使用枚举变量来避免不合理的赋值,一下枚举定义中正确的是(A) 
A : public enum Sex{  male,femal } 
B :public enum Sex{ male,femal; } 
C :public Sex enum { male,femal; } 
D :public Sex enum { male,femal } 
79、在C# 中,使用( B)访问修饰符修饰的方法被称之为抽象方法。 
A: this     B :abstract   C :new    D :virtual 
80、在C# 中创造一个对象是,系统最先执行的是(B)中的语句。 
A :main方法  B:构造函数  C :初始化函数   D :字符串函数 
81、C#代码如下,代码的输出结果是(B)。  
class Program

static void Main(string[] args)

Student s=new Student();  
s.sayHi(); 
 Console.ReadLine(); 


class Person

 public virtual void sayHi()

 Console.WriteLine(“你好”);

}  
Class Student:Person

Public override void sayHi()

        Console.WriteLine(“你好,我是一名学生”); 


A :学生       B:你好,我是一名学生       
C:你好! 
 你好,我是一名学生 
D: 空
 
 你好,我是一名学生 D: 空 
82、分析一下C#片段中的属性,该属性是(C)属性。  
private string name;  
Public string Name

 get{return name;} 

A:可读可写         B:只写       C:只读       D: 静态 
83、.NET框架是.NET战略的基础,是一种新的便捷的开发平台,它具有两个主要的组件,分别是(A )和类库。 
A:公共语言运行库     B:Web服务 
C:命名空间              D:Main()函数 
84、在以下代码中,(D)是类Teacher的方法。  
public class Teacher  

         int age=33; 
  private string name;   
public string Name 

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

public void SaySomething{  //„.. } 
A : Name           B name           C age           D  SaySomething 
85、构建Windows窗体以及其所使用空间的所有类的命名空间是下列哪个选项(D) 
A。System.IO           B。System.Data 
C。System.Text          D。System.Windows.Forms
86、C#程序设计语言属于什么类型的编程语言(B) 
A。机器语言        B。高级语言        C。汇编语言         D。自然语言 
87、请问经过表达式a = 3 + 1 >5 ? 0 : 1的运算,变量a的最终值是什么?(D) 
A。4              B。0             C。1              D。3 
88、以下选项中,哪个选项中的变量命名是合法的(B) 
A。**z             B。_ester            C。tc@caac         D。www.eroman.com  
89、下列关于多态的说法中,哪个选项是正确的(D) 
A。重写虚方法时可以为虚方法指定别称 
B。抽象类中不可以包含虚方法 
C。虚方法是实现多态的唯一手段 
D。多态性是指以相似的手段来处理各不相同的派生类。 
90、下列关于接口的说法,哪项是正确的(A) 
A。接口可以被类继承,本身也可以继承其他接口。
B。定义一个接口,接口名必须使用大写字母I开头 
C。接口像类一样,可以定义并实现方法 
D。类可以继承多个接口,接口只能继承一个接口 
91、程序运行可能会出现两种错误:可预料的错误和不可预料的错误,对于不可预料的错误,可以通过C#语言提供的哪个方法来处理这种情形(D) 
A。中断调试      B。逻辑判断       C。跳过异常      D。异常处理 
92、下列哪个选项能正确的创建数组?(B) 
A.int[,] array=int[4,5]; 
B.int size=int.Parse(Console.ReadLine()); int[] pins=new int [size]; 
C. string[] str=new string[]; 
D. int pins[] = new int[2]; 
93、在C#中,下列数据类型属于引用类型的是(C)。 
A.整型(int)    B.结构(struct)  C.接口(interface)  D.枚举(enum) 
94、在C#中,下列关于属性的使用正确的是(B)。 
A. private int num; 
public string Num
     { 
get{retuen num;} 
set{num=value;} 

B. private int num; 
public int Num 

get{retuen num;} 
set{num=value;} 

C. private int num; 
public int Num 

get{ num=value;} 
set{ retuen num;} 

D. private int num; 
private int Num 

get{retuen num;} 
set{num=value;} 

95、 在C#语言中,以下关于继承的说法错误的是(B)。 
A.一个子类不能同时继承多个父类   
B任何类都是可以被继承的 
C.子类继承父类,也可以说父类派生了一个子类 
D.Object类是所有类的基类 
96、 以下关于C#中的构造函数说法正确的是(A)。
A.构造函数可以有参数   
B.构造函数有返回值
C.一般情况下,构造函数总是private类型的 
D.构造函数可以通过类的实例调用 
97、在C#中,如果类C继承自类B,类B继承自类A,则以下描述正确的是(A)。 
a)  C不仅继承了B中的成员,同样也继承了A中的成员 
b) C只继承了B中的成员 
c) C只继承了A中的成员 
d) C 不能继承了A或B中的成员 
98、在C#程序中,定义如下方法,下面选项中(A )错误的实现对该方法的方法重载。 
public string Do(int value,string s)
{//省略代码} 
A.public int Do(int value,string s){//省略代码} 
B.public string Do(string s,int value){//省略代码} 
C.public void Do(string s,int value) {//省略代码} 
D.public void Do(){{//省略代码}} 
99、以下关于结构的说法,正确的是(B) 
A.结构不可以通过ref或out形参以引用 方式传递给函数成员  
B.结构是值类型,类是引用类型 
C.结构和类一样,均支持继承 
D.结构允许声明无形参的实例构造函数 
100、以下关于密封类的说法,正确的是(C) 
A.密封类可以用作基类    
B. 密封类可以是抽象类 
C.密封类永远不会有任何派生类  
D.密封类或密封方法可以重写或继承 
101、以下关于接口的说法,不正确的是(C) 
A.接口不能实例化  
B. 接口中声明的所有成员隐式地为public和abstract 
C.接口默认的访问修饰符是private  
D.继承接口的任何非抽象类型都必须实现接口的所有成员。 
102、派生类访问基类的成员,可使用(A)关键字 
A.base           B.this            C.out                D. external 
103、能作为C#程序的基本单位是( B )。 
A. 字符             B. 语句             C. 函数              D. 源程序文件 
104、可用作C#程序用户标识符的一组标识符是( B )。 
A. void    define    +WORD        
B. a3_b3    _123     YN 
C. for      -abc      Case        
D. 2a      DO      sizeof 
105、改变窗体的标题,需修改的窗体属性是( A )。 
       A.  Text         B. Name          C.Title            D.  Index 
106、在C#中定义接口时,使用的关键字是( A )。 
A.interface            B. :               C.class            D.overrides 
107、在C#中,定义派生类时,指定其基类应使用的语句是( B )。 
A.Inherits         B. :         C.Class            D.Overrides 
108、类的以下特性中,可以用于方便地重用已有的代码和数据的是( C ). 
A.多态          B.封装          C.继承           D.抽象 
109、将变量从字符串类型转换为整型可以使用的类型转换方法是( D )。 
A.Str()           B.Cchar           C.CStr()           D.int.Parse(); 
110、字符串连接运算符包括&和( A )。 
A. +             B. -             C. *            D. / 
111、先判断条件的当循环语句是( B )。 
A.  do...while         B.  while         C. while...do         D. do ...loop 
112、假定一个10行20列的二维整型数组,下列哪个定义语句是正确的( C )。 
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] 
113、以下正确的描述是( B )。 
A. 函数的定义可以嵌套,函数的调用不可以嵌套 
B. 函数的定义不可以嵌套,函数的调用可以嵌套 
C. 函数的定义和函数的调用均可以嵌套 
D. 函数的定义和函数的调用均不可以嵌套 
114、属于C#语言的关键字( A )。 
A. abstract         B. camel           C. Salary            D. Employ 
115、C#语言中,值类型包括:基本值类型、结构类型和( D )。
A.小数类型         B.整数类型        C.类类型        D.枚举类型 
116、下列关于抽象类的说法错误的是( A )。 
A. 抽象类可以实例化      
B. 抽象类可以包含抽象方法 
C. 抽象类可以包含抽象属性     
D. 抽象类可以引用派生类的实例 
117、下列关于重载的说法,错误的是( D )。 
A. 方法可以通过指定不同的参数个数重载 
B. 方法可以通过指定不同的参数类型重载 
C. 方法可以通过指定不同的参数传递方式重载 
D. 方法可以通过指定不同的返回值类型重载 
118、以下关于继承的说法错误的是( D )。 
A. .NET框架类库中,object类是所有类的基类 
B. 派生类不能直接访问基类的私有成员 
C. protected修饰符既有公有成员的特点,又有私有成员的特点 
D. 基类对象不能引用派生类对象 
119、继承具有( B ),即当基类本身也是某一类的派生类时,派生类会自动继承间接      类的成员。 
A. 规律性    B. 传递性  C. 重复性    D. 多样性 
120、下列说法中,正确的是( A )。 
A. 派生类对象可以强制转换为基类对象 
B. 在任何情况下,基类对象都不能转换为派生类对象 
C. 接口不可以实例化,也不可以引用实现该接口的类的对象 
D. 基类对象可以访问派生类的成员 
121、关于base关键字,下列使用方法错误的是:(C) 
A. 在子类中,base可以调用父类的构造函数  
B、 在子类中,base关键字可以访问父类的公共属性  
C、 在子类中,base关键字不可以调用父类的protected成员  
D、 在子类中,base关键字不可以调用父类的private成员 
122、下面关于抽象类的说法正确的是 :(B)
A. 抽象类可以被实例化         
B. 含有抽象方法的类一定是抽象类  
C抽象类可以是静态类和密封类  
D.抽象类中的抽象方法可以在其它类中重写 
123、下面关于虚方法说法错误的是:(B) 
A 使用virtual关键字修饰虚方法   
B. 虚方法必须被其子类重写 
C虚方法可以有自己的方法体      
D.虚方法和抽象方法都可以实现多态性 
124、在C#中,关于接口下面说法错误的是 :(D) 
A. 接口是一组规范和标准         
B.接口可以约束类的行为  
C. 接口中只能含有未实现的方法  
D 接口中的方法可以指定具体实现,也可以不指定具体实现  
125、使用(C)关键字可以再次引发捕获到的异常? 
A.  New   B.  this    C . throw   D. Exception 
126、异常捕获发生在(B)块中? 
A. try      B.catch     C. finally    D. throw 
127、下面关于抽象类的说法正确的是?(C) 
A. 抽象类只能做子类         B. 抽象类可以被实例化 
C 抽象类不能被实例化      D. 一个抽象类只能有一个子类 
128、C#源程序文件的拓展名是(D) 
A、vb               B、c              C、cpp                 D、cs 
129、有两个double类型的变量x和y,分别取值为8.8和4.4,则表达式(int)x-y/y的值是(A) 
A、7            B、7.0           C、7.5         D、8.0 
130、运行int a=20,b=5,c=10,d=3; bool s,e=false; 
   则表达式(s=a<c)&&(e=b-d>0)运算后,e的值是(D) 
A、0           B、1           C、true           D、false 
131、以下程序的输出结果是(D) 
string str=”b856ef10”; 
string result=””; 
for(int i=0;str[i]>=’a’&&str[i]<=’z’;i+=3) 

result =str[i]+result; 
Console.WriteLine(result); 

A、10fe658b            B、feb                C、10658                 D、b 
132、和C#中的所有对象一样,窗体也是对象,是(C)类的实例 
A、Label            B、Controls            C、Form          D、System 
133、(A)控件组合了TextBox控件和ListBox控件的功能。 
A、ComboBox        B、Label           C、ListView        D、DomainUpDown 
134、下列语句创建了(D)个string 对象  string [,]  strArray  =  new string[3,4]  
A.0           B.3            C.4              D.12 
135、c#程序中,可使用try···catch 机制来处理程序出现的(B)错误 
A. 语法            B. 运行           C. 逻辑          D. 拼写 
136、在定义类时,如果希望类的某个方法能够在派生类中进一步改进,已处理不同的派生类的需要,则该将方法声明成(C) 
  A.sealed 方法     B.public 方法     C.virtual 方法      D.override 方法 
137、在类的定义中,类的(B)描述了该类的对象的行为特征 
 A.类名     B.方法    C.所属的命名空间     D.私有域 
138、在类作用域中能够通过直接使用该类的(  D )成员名进行访问。      
A. 私有      B. 公用      C. 保护      D. 任何 
139、在下面循环语句中循环体执行的次数为(   B )。         
for(int i=0; i<n; i++)             
if(i>n/2) 
break; 
          A. n/2         B. n/2+1         C. n/2-1        D. n-1 
140、27.在C#语言中,下列异常处理结构中有错误的是(a)                  
a)catch{}finally{}                   b) try{}finally{}    
c) try{}catch{}finally{}                d) try{}catch{} 
141、在C#程序中,使用(a)关键字来创建数组 
a)   new            b)   array             c)   staic             d)   this 
142、在C#语言的循环结构中,首先执行一次,然后再判断条件的循环结构是( b) 
a)  while循环        b)  do„while循环       c)  for循环        d)  foreach循环
143、在C#中,下列代码的运行结果是(a)            
using System; 
class Test

         static void Main(string[] args)

             string[] strings={“a”,”b”,”c”};   
foreach(string info in strings)

Console.Write(info); 

}

a)abc         b)a             c)b                    d)C 
144、在C#中,下列代码的运行结果是(c) 
int[]age=new int[]{16,18,20,14,22}; 
foreach(int i in age)
{
if(i>18) continue; 
Console.Write(i.ToString()+” ”); 

a)16,18,20,14,22          b)16,18,14,22            c)16,18,14              d)16,18 
145、以下关于C#代码的说法正确的是(a) 
for(int i=l;i<=3;i++) { 
      switch(i)     

        case 1: 
            Console.Write{i.ToString());
case 2:      
Console.Write((i*2).ToString());     
case 3:      
Console.Write((i*3).ToString());     
} }
a)有编译错误,提示case标签不能贯穿到另一个标签,不能运行 
b)    输出149        
c)    输山123246369 
d)    正确运行,但没有输出 
146、在c#中,下列代码的运行结果是(c) 
using System; 
class Test
{   
static Void Main(string [] args)
{    
int a=10,b=20;    
int c=a>b?a++:--b;   
Console.WriteLine(c);      


a)10           b)11           c)19           d)20 
147、在c#的条件判断语句switch case结构中,(d)子句用于指定在找不到匹配项时执行的动作 
a) continue        b)goto        c)else          d)default 
148、Console是C#语言中的控制台类,它负责向控制台输出不同格式的字符串,在格式字符串中,可以使用(b)来实现水平制表输出。 
a)\r          b)\t         c)\n           d)\d 
149、C#程序的(a)方法被成为程序的大门,应用程序从这里开始运行    a) Main()    b) Begin()   c) Start()   d) main() 150、在以下C#类中,(b)是控制台类,利用它我们可以方便的进行控制台的输入输出。 
a) Control   b) Console     c) Cancel     d) Write 
151、关于C#中的switch case 语句,以下说法正确的是(c)                 
a)switch判断的表达式可以是整型或者字符型,但不能是字符串型 
b)在该语句中最多不能超过5个case子句 
c)在该语句中只能有一个default子句 
d)在该句中只能有一个break语句 
152、以下的C#程序代码,程序运行时在控制台打印输出值为(c)      
int count=3; 
while(count>1)

           Console.Write(- -count); 

a) 32          b) 321         c) 21         d) 2 
153、C#语言中的类Console包含两个输入方法:Write()和WriteLine()。它们之间的唯一区别是(a )。                                                        
a) WriteLine()方法输出后换行,Write()方法输出后不换行
b) WriteLine()方法可以格式化输出,Write()方法不可以 
c) Write()方法输出后换行,WriteLine()方法输出后不换行 
d) Write()方法可以格式化输出,WriteLine()方法不可以 
154、在下列C#代码中,程序的命名空间是(a)   
using System; 
namespace Test
{      
class Program

            static void Main(string[]args)

                  Console.Write(“Hello World!”);             
}            
}         

a)Test        b)Main        c)namespace        d)Program 
155、在C#中,下列代码的运行结果是(b )   
using System; 
class Test 

Public static void Main(string[] args) 

int a=21,b=22,c=23;        
if(a<b)     Console.WriteLine(b);         
else      Console.WriteLine(a+b+c);         
}

a)21         b)22         c)23         d)66 
156、C#语言与Java语言一样,也是一种面向对象的语言,C#语言中声明类的关键字是(b)。 
a)  using         b)  class        c)  namespace        d)  Main 
157、C#程序设计语言属于什么类型的编程语言?(  C ) 
A  汇编语言         B  机器语言         C  高级语言          D 自然语言 
158、请问经过表达式 a=3+1>5?0:1 的运算,变量a的最终值是什么? (   D )  
A 3             B 1              C 0                D 4 
159、设int型变量x的值为9,那么表达式x-- + x-- + x--的值为(A)  
A . 27         B. 24        C. 21       D .18 
160、下列属于合法C#变量名的有()    
A、x_123       B if         C 1_x      D 3x 
161、以下数组声明中,不正确的有(B) 
A  int[] a                       B int a[]=new int[2];       C  int [] a={1,3}                 D int [] a=int []{1,3} 
162、下列语句执行后y的值为(C) 
int x=0,y=0;  while(x<10)  
{
y+=(x+=2); 

A  10             B 20             C 30         D 55 
163、C#中每个char类型变量占用( B )字节内存 
A  1      B 2        C  3      D 4 
164、在C#中,表示一个字符串变量应使用下面哪条语句定义(  B) 
A、CString  str;    B、string str; C、Dim str as string;   D、char * str; 
165、下列语句在控制台上的输入是什么?(B) 
if(true) 
      System.Console.WriteLine("FirstMessage");   
System.Console.WriteLine("SecondMessage");     
A、无输出         
B、FirstMessage                   SecondMessage 
C、SecondMessage       
D、FirstMessage 
166、以下数据类型中不可以使用算术运算运算的是(A) 
A. bool        B. char          C. decimal        D. sbyte 
167、以下数据类型不能表示负数范围的是(D) 
A. sbyte       B. decimal       C. double         D. uint 
168、C#中下列变量标识符定义不正确的是(C) 
A. m_n        B. _a124;        C. @3_4;         D. udouble 
169、以下语句不可以在屏幕上输出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”); 
170、在C#语言中,运算符"="和"=="的功能分别是( B ) 
A.关系运算和赋值运算     
B.赋值运算和关系运算 
C.都是关系运算           
D.都是赋值运算 
171、两次运行下面的程序,如果从键盘上分别输入6和3,则输出结果是(  C  )。   
int x; 
x=int.Parse(Console.ReadLine());   
if(x++>5)   Console.WriteLine(x);   
else   Console.WriteLine(x - -); 
A. 7和5          B. 6和3          C. 7和4          D. 6和4 
172、为了避免嵌套的条件分支语句if-else的二义性,C语言规定:C程序中的else总是与(C )组成配对关系。 
A. 缩排位置相同的if          
B. 在其之前未配对的if     
C. 在其之前未配对的最近的if     
D. 同一行上的if 
173、关于循环语句下列错误的是(A) 
A. for语句while语句与do while语句可以相互替换。 
B. while(5){Console.WriteLine(“Hello!”);}将无限输出字符串Hello。
C.for(int i=5;i<13;i++){} 这个语句将运行8次 
D.while语句中的条件必须是布尔类型的结果 
174、下列选项中属于字符串常量的是  (   B ) 
A.  ABC          B.  “ABC”       C. „abs‟        D.  „a‟ 
175、下列代码的运行结果是:(  A   )  
int a = 30;  
int b = 20;  
b = a;  
a = 10; 
Console.WriteLine(a);  
Console.WriteLine(a/b); 
 A、10             C、 30        0                  0      B、10             D、 10       1                 1.5 
176、设int a=9, b=6, c  执行语句c=a/b+0. 8  后c 的值是(   B  ) 
A. 1             B. 1. 8           C. 2             D. 2. 3 
177、已知如下程序,下列选项放在空白处不能输出***的是(D) 
void main() 

     int x=6;  
do  

         Console.WriteLine(“*”);   
x--;   
--x; 
     }
while(_____)-----空白处 

   A. x>=1;         B. x>=2;           C. x>0;          D. x>3; 
178、在C#编制的财务程序中,需要创建一个存储流动资金金额的临时变量,则应使用下列哪条语句(  A  ) 
    A.decimal EMoney;                   B.int EMoney; 
  C.string EMoney;                    D.Dim EMoney as double; 
179、设int x=10, a=0, b=25  则条件表达式x<1?a+10:b 的值是( D   ) 
A.0             B.1         C.10            D.25 
180、在.NET中,从属性的读写特性上来进行分类,可以划分为以下三种,除了( D  )。 
A.只读属性     B.只写属性      C.读写属性      D.不可读不可写的属性 
181、在C#中,一个类(  B  ). 
A.可以继承多个类                           B.可以实现多个接口 
C.在一个程序中只能有一个子类         D.只能实现一个接口 
182、以下的C#代码: 
static void Main(string[] args)

Console.WriteLine("运行结果: {0}",Console.ReadLine());                      
Console.ReadLine();               
}        
代码运行结果为( D   )。 
A.在控制台窗口显示“运行结果:” 
B.在控制台窗口显示“运行结果:{0}” 
C.在控制台窗口显示“运行结果:,Console.ReadLine” 
D.如果用户在控制台输入“ A”,那么程序将在控制台显示“运行结果:A” 
183、在C#中定义一个数组,正确的代码为( B  )。 
A.int arraya = new int[5];          B.int[] arraya = new int[5]; 
C.int arraya = new int[];           D.int[5] arraya = new int; 
184、在C#语言中,下列关于属性的描述正确的是( B  ). 
A.属性系是以public关键字修饰的字段,以public关键字修饰的字段也可称为属性 
B.属性是访问字段值的一种灵活机制,属性更好地实现了数据的封装和隐藏 
C.要定义只读属性只需在属性名前加上readonly关键字 
D.在C#的类中不能自定义属性 
185、程序运行过程中发生的错误,叫作( C  ). 
A.版本          B.断点         C.异常          D.属性 
186、.NET中,程序中的错误可以划分为以下三类,除了( D  )。 
A.逻辑错误        B.运行时错误     C.语法错误     D.自定义错误 
187、在.NET中,一些数据类型为引用类型,当引用类型的值为( B )时,表明没有引用任何对象。 
A.Empty          B.null          C.Nothing            D.0 
188、WinForms程序中,如果复选框控件的 Checked属性值设置为 True,表示( A  )。 
A.该复选框被选中                            B.该复选框不被选中 
C.不显示该复选框的文本信息              D.显示该复选框的文本信息 
189、在C#中,(B  )访问修饰符修饰的变量只能由当前程序集访问。 
A.public             B.protected            C.internal                D.private 
190、在C#中,关于continue和break,以下说法正确的是(   B   ) 
A break是中断本次循环              
B continue是中断本次循环,进入一下次的循环 
C break是中断本次循环,进入一下次的循环   
D continue是中断整个循环 
191、在C#中,关于while和do…while,以下说法正确的是(   C   ) 
A while先执行然后判断条件是否成立            
B while最少的循环次数是1次 
C do…while先执行然后判断条件是否成立     
D do…while最少的循环次数是0次 
192、在.NET中,程序员在代码中漏写了一个大括号,这属于(  C   ) 
A 逻辑错误     B 运行时错误         C 语法错误    D 自定义错误 
193、以下说法正确的是(   B     ) 
A.构造函数名不必和类名相同      B.一个类可以声明多个构造函数 
C.构造函数可以有返回值         D.编译器可以提供一个默认的带一个参数的构造函数 
194、以下说法不正确的是(  B   ) 
A.一个类可以实现多个接口                     
B.一个派生类可以继承多个基类 
C.在C#中实现多态,派生类中重写基类的虚函数必须在前面加override    
D.子类能添加新方法
 
195、C#的数据类型有( B  )  
A 值类型和调用类型                     B 值类型和引用类型  
C 引用类型和关系类型                 D 关系类型和调用类型 
196、C#程序中的类myClass中的成员变量var1如下: 
public class myClass
{   
private int var1; 
}  
则可以访问var1的有( AA )。  
a) 在myClass类中          b) myClass的继承类  
c) myClass的父类          d) 和myClass在同一命名空间下的类 
197、下列关于.net中枚举型的描述正确的是(  b B )。  
a) 枚举型是引用类型  
b) 枚举型是值类型,它是一组称为枚举数列表的命名常量组成的独特类型  
c) 指定分配给每个枚举数的存储大小的基础类型是可以为int,也可以为char类型,还可以为long类型  
d) 枚举型的默认基础类型为int,第一个枚举数的值必须为0,后面每个枚举型的值依次递增1 
198、以下(  c C  )是用于声明枚举类型的关键字。  
a) static          b) struct         c) enum         d) delegate 
199、下列关于异常的描述正确的是( b B  )  
a) 在C#中一个try块只能有一个catch块  
b) 一个try块可能产生多个异常  
c) 可以使用throws回避方法中的异常  
d) finally块是异常处理所必需的 
200、在C#中,下列代码的运行结果是(  )。 
int []age1 = new int[]{10,20}; 
int []age2 = age1; 
age2[1] = 30; 
Console.WriteLine(age1[1]);  
A) 0      B) 10      C) 20      D) 30 
201、public abstract class Anima

public abstract void Eat(); 
public void Sleep()
{  } 
}
以下关于C#代码地描述正确的是( aA )。 
 A) 该段代码正确  
B) 代码错误,因为类中存在非抽象方法  
C) 代码错误,因为类中方法没有实现  
D) 通过代码Animal an = new Animal;可以创建一个Animal对象 
202、for(int i=1;i<=3;i++)

switch(i)

case 1:Console.write(i.ToString()); 
case 2:Console.write((i * 2).ToString()); 
case 1:Console.write((i * 3).ToString()); 
}
}
上述关于C#代码的描述正确的是( aA )。  
A) 程序将报告编译错误,提示Case标签不能贯穿到 一个标签,不能运行  
B) 运行时输出149  
C) 运行时输出123246369  
D) 运行时在屏幕上没有输出 
203、C#程序中,使用关键字(AA)来声明自定义的名称空间。  
A)namespace     B)new     C)import      D)try 
204、在C#程序中,下列用来处理异常的结构,错误的是(A )。  
A)catch{ }finally{ } 
C)try{ }catch{ }finally{ }  
B)try{ }finally{ } 
D)try{ }catch{ } 
205、在C# 中,程序使用(BB)语句抛出系统异常或自定义异常。  
A)run B)throw C)catch D)finally 
206、class A

static void Main()

int[] b = new int[10]; 
for(int i=1;i<=10;i++) 
_________ //(1)此处填写代码 
foreach(int C in b) 
Console.writeLine(C); 

}
要在控制台输出1到10的数字,(1)处应该填写的正确的代码为(CC)。  
A) b[i] = i+1; 
B) b[i] = i; 
C) b[i-1] = i 
D) b[i+1] = i 
207、在C#类中,(BB)允许相同名称、不同参数个数或者参数类型的方法存在。  
A)方法重写     B)方法重载       C)方法取消     D)方法覆盖 
208、用户单击”消息框”按钮时返回(DD)值。  
A)DialogValue     B)DialogBox     C)DialogCommand     D)DialogResult 
209、在C#中,某程序在一个类中编写了两个同名的方法,该段代码的运行结果是(CC)。
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)没有输出 
210、请仔细阅读有如下C#代码: 
int A = 3; 
int B = 4 
Console.WriteLine(A + B); 
因为第二行代码少写了一个分号,程序运行时将(A)。  
A) 产生语法错误 
B) 产生语义错误 
C) 中断 
D) 正常运行 
211、在Visusl Studio.Net 开发环境中,在代码编辑器内输入对象的名称后将自动显示出对应的属性、方法、时间列表,以方便选择和避免书写错误,这种技术被称之为( DD )。  
A) 自动访问 B) 动态帮助 C) 协助编码 D) 智能感知 
212、在C#的语言特性中,关于抽象类,以下描述正确的是( DD)。  
A)在抽象类包含全部已经实现的方法的时候,抽象类可以实例化  
B)子类可以同时实现多个抽象类  
C)使用void关键字标注一个抽象类  
D)抽象基类可以包含己经实现的方法 
213、在C#中,下列代码的运行结果是(BB)。 
int a = 30 , b = 20; 
b = a; 
a = 10; 
Console.WriteLine(a); 
Console.WriteLine(b);  
A) 10   B) 10  C) 30   D) 10 10   30   20   20 
214、Visual Studio.Net开发平台是(BB)公司提供的.NET应用程序集成开发工具。  
A) Borland      B) Microsoft      C) Intel     D) IBM 
215、在C#中,下列代码的运行结果是(A)。 
string[] names = {“ACCP”,”BENET”,”BETEST”}; 
foreach(string name in names) 
Console.WriteLine(name); 
A) ACCP       B) n         C) name         
D) “ACCP” BENET     a   name   “BENET” BETEST    m   name   “BETEST” e s  
216、在C#程序中,使用关键字(D)来定义静态成员。  
A)malloc     B)class        C)private     D)static 
217、以下都是C#提供的循环结构,除了(C)。  
A)while语句 B)for语句    C) if语句   D)foreach语句 
218、在C#程序中,一个类(BB)。  
A) 可以继承多个类                  B) 可以实现多个接口  
C) 在一个程序中只能有一个子类      D) 只能实现一个接口 
219、在C#程序中,声明一个整数类型变量A,正确的代码为(AA)  
A) int  A;               B) Dim A As Integer; 
C) new A int            D) A int; 
220、在.NET中,(D)类提供了操作字符串的方法。  
A) System.Threading     C) System.Collections  
B) System.IO           D) System.String 
221、在C#类中,使用(AA)关键字来设置只读属性。  
A) get        B) let           C) set             D) is
 
222、在C#程序中,如果类B要继承类A,类B正确的定义为(BB)。  
A) public class B inherit A     C) public class B :: A  
B) public class B : A          D) public class  B  from  A 
223、在C#类中,(A)。  
A)允许有多个相同名称的构造函数 
C)至少要有一个构造函数  
B)允许有多个不相同名称的构造函数 
D)只能有一个构造函数 
224、C#类中的构造函数的特点是(BB)。  
A) 一个类中,只能有一个构造函数 
C) 构造函数在对象销毁时自动执行  
B) 构造函数的名称与类名称一样 
D) 要求构造函数至少有两个参数 
225、下面关于C#中值类型和引用类型的描述正确的是(D)。  
A) 结构属于引用类型   
B) 字符串属于值类型  
C) 所有内置的数据类型都是值类型,所有用户定义的数据类型都是引用类型  
D) 值类型变量直接存放真正的数据,引用类型变量存放的是指向真正数据的内存地址 
226、在C#中,下列代码运行后,变量Max的值是(C)。(选择一项) 
int a = 5,b = 10,c = 15,Max = 0; Max = a > b ? a : b; Max = c < Max ? c : Max;  
A) 0 B) 5 C) 10 D) 15 
227、class Student{ 
string type = ”学员”; 
internal string name = ”李明”; } 
public class Test{ 
static void Main(){ 
Student stu = new Student();//1 Console.WriteLine(stu.type);//2 Console.WriteLine(stu.name);//3 } 
}在C#中,关于以上C#代码的描述正确的是(B)。 
A)代码1错误      B)代码2错误    C)代码3错误 D) 代码都正确 
228、运行如下的C#代码段将(DB)。(选择一项) 
int a = 10; 
string b = “10”; 
Console.WriteLine (a + b);  
A)输出:20              B)输出:1010 
C)输出:10+10           D) 编译报错,提示数据类型不匹配 
229、 数据类型转换有隐式转换和(C)转换。 
a)强制          b)自制         c)显式          d)非隐式 
230、 在C#中,下列代码的运行结果是(B)(单选) 
static void Main()
{        
string name=”bird”;        
foreach(char c in name)
{           
Console.Write(c);         
}
}  
a)输出name        b)输出bird    c)输出cccc        d)编译出错,存在语法错误
231、Switch的语法结构不正确的是(B)  
a)Switch条件判断接收int,char,string三种类型 
b)Switch的case块,必须要加上break; 
c)Switch的case块,可以没有break   
d)Switch的default块,在条件都不满足的情况下执行 
232、下列语句在控制台上的输出是多少? (  A  ) 
string msg = @”Hello\nWorld!”;  
System.Console.WriteLine(msg);  
a)Hello\nWorld!      b)@”Hello\nWorld!”    
c)Hello World!       d)Hello  World!  
233、C#中每个int 类型的变量占用____C___个字节的内存(   )   
a)1          b)2        c)4       d)8
234、下面代码输入的结果是:(  B ) 
static void TrunCate(int[] nums)         

nums[1] = 99;         

static void Main(string[] args)         

int[] nums = {1, 2, 3, 4};             
TrunCate(nums); 
Console.WriteLine(nums[1]);             
Console.ReadLine();         

a)2     b)99     c)1     d)编译出现语法错误,不能运行 
235、下列代码输出的结果是:(  B ) 
 int i = 0; i = ++i + 8; 
Console.WriteLine(i++); 
a)8         b)9         c)10         d)编译出现语法错误,不能运行 
236、C#程序中,可使用try..catch 机制来处理程序出现的___B___错误 
a) 语法          b) 运行            c) 逻辑           d) 拼写 
237、当开发者不希望自己编写的类被继承,或者有的类已经没有再被继承的必要时,我们通常对class使用哪一个关键字?(A) 
a.sealed          b.virtual            c.abstract            d.override 
238、下列哪种类型是引用类型的数据类型?(d) 
a. int      b. bool        c.double      d. array 
239、声明方法时,如果有参数,则必须写在方法名后面的小括号内,并且必须指明它的类型和名称,若有多个参数,需要用(A )隔开。  
A. 逗号         B. 分号        C. 冒号        D. 不能定义多个参数 
240、小数类型(decimal)和浮点类型都可以表示小数,正确说法:( C   ) 
A. 两者没有任何区别    
B. 小数类型比浮点类型取值范围大 
C.小数类型比浮点类型精度高    
D. 小数类型比浮点类型精度低 
241、.类的以下特性中,可以用于方便地重用已有的代码和数据的是( C  ). 
A.多态   B.封装  C.继承  D.抽象 
242、将变量从字符串类型转换为数值类型可以使用的类型转换方法是( D  )。 
A.Str()           B.Cchar           C.CStr()           D.int.Parse(); 
243、下列关于抽象类的说法错误的是( A  )。 
A. 抽象类可以实例化    
B. 抽象类可以包含抽象方法 
C. 抽象类可以包含抽象属性  
D. 抽象类可以引用派生类的实例 
244、以下关于继承的说法错误的是( D   )。 
A. .NET框架类库中,object类是所有类的基类 
B. 派生类不能直接访问基类的私有成员 
C. protected修饰符既有公有成员的特点,又有私有成员的特点 
D. 基类对象不能引用派生类对象 
245、继承具有(  B  ),即当基类本身也是某一类的派生类时,派生类会自动继承间接基类的成员。 
A. 规律性       B. 传递性       C. 重复性      D. 多样性
246、在C#.Net中,用来创建主菜单的对象是(  C )。 
A. Menu          B.MenuItem         C.MenuStrip         D.Item 
247、面向对象的语言具有继承性、多态性和__A__性。 
A)  封装         B)  拆箱          C)  封闭         D)  逻辑 
248、当整数a赋值给一个object对象时,整数a将会被__A__。 
A)拆箱          B)丢失             C) 装箱         D)出错 
249、在c#中new关键字的作用是___A__ 
A)新建对象实例     B)定义命名空间    C)调用类       D)引入命名空间 
250、在c#中利用sealed修饰的类__A___。 
      A)密封,不能继承     B)密封,可以继承   C)表示基类      D)表示抽象类 
251、C#中每个 int 类型的变量占用___ C ____个字节的内存。 
A.1           B.2            C.4             D.8 
252、在 C#编制的财务程序中,需要创建一个存储流动资金金额的临时变量,则应使用下列哪条语句? (A) 
A.decimal theMoney;            B.int theMoney; 
C.string theMoney;               D.Dim theMoney as double 
253、分析下列程序:  
public class class4  
{  
private string _sData = ""; 
public string sData
{
set{_sData = value;}
}  
}  
在 Main 函数中,在成功创建该类的对象 obj 后,下列哪些语句是合法的? (A) 
A.obj.sData = "It is funny!";    
B.Console.WriteLine(obj.sData); 
C.obj._sData = 100;           
D.obj.set(obj.sData); 
254、在定义类时,如果希望类的某个方法能够在派生类中进一步进行改进,以处理不同的派生类的需要,则应将该方法声明成___ C _。 
A.sealed 方法        B.public 方法        C.virtual 方法        D.override 方法 
255、C#中,在方法 MyFunc 内部的 try..catch 语句中,如果在 try 代码块中发生异常,并且在当前的所有 catch 块中都没有找到合适的 catch 块,则(D) 
A.NET 运行时忽略该异常      
B.NET 运行时马上强制退出该程序 
C.NET 运行时继续在 MyFunc 的调用堆栈中查找提供该异常处理的过程 
D.NET 抛出一个新的“异常处理未找到”的异常 
256、下列语句创建了多少个 string 对象? (D) 
string[,] strArray = new string[3][4]; 
A.0         B.3        C.4        D.12 
257、以下类 MyClass 的属性 count 属于__A___属性. 
class MyClass  
{  
int i; 
int count  {  get{ return i;}  }  

A.只读           B.只写          C.可读写         D.不可读不可写 
258、为了将字符串 str=“123,456”转换成整数 123456,应该使用以下哪条语句? (A) 
A.int Num = int.Parse(str); 
B.int Num = str.Parse(int); 
C.int Num = (int)str; 
D.int Num = int.Parse(str,Globalization.NumberStyles.AllowThousands); 
259、关于 C#程序的书写,下列不正确的说法是__ D __。 
A.区分大小写    
B.一行可以写多条语句 
C.一条语句可写成多行 
D.一个类中只能有一个 Main()方法,因此多个类中可以有多个 Main()方法 
260、在 C#语言中,下列能够作为变量名的是___ C _。 
A.if     B.3ab    C.a_3b    D.a-bc 
261、以下程序的输出结果是__(C)__。 
Using system;  
Class Example1  
{  
Public Static void main() 
{  
int a=5,b=4,c=6,d;              
Console.Writeline(“{0}”,d=a>b?(a>c?a:c):b); 
}  

A.5             B.4           C.6          D.不确定 
262、if语句后面的表达式应该是__(A)__。 
A.逻辑表达式         B.条件表达式         C.算术表达式        D.任意表达式 
263、以下关于 for 循环的说法不正确的是__(A)__。 
A.for 循环只能用于循环次数已经确定的情况 
B.for 循环是先判定表达式,后执行循环体语句 
C.for 循环中,可以用 break语句跳出循环体 
D.for 循环体语句中,可以包含多条语句,但要用花括号括起来
264、枚举型常量的值不可以是__(D)__类型  
A.int     B.long    C.ushort    D.doule  
265、调用重载方法时,系统根据___(B)_____来选择具体的方法。  
A.方法名    B.参数的个数和类型     C.参数名及参数个数     D.方法的返回值类型 
266、下列的____ D ___不是构造函数的特征。  
A.构造函数的函数名和类名相同     B.构造函数可以重载 
C.构造函数可以带有参数           D.可以指定构造函数的返回值  
267、为了能够在程序中捕获所有的异常,在 catch语句的括号中使用的类名为____ A ___  A.Exception       B.DivideByZeroException     C.FormatException    D.以上三个均可  
268、在设计菜单时,若希望某个菜单项前面有一个“√”号,应把该菜单项的____A___ 属性设置为 true。  
A.Checked    B.RadioCheck    C.ShowShortcut    D.Enabled 
269、以下类型中,不属于值类型的是__ D __。  
A.整数类型    B.布尔类型    C.字符类型    D.类类型 
270、结构化的程序设计的 3 种基本结构是___ D __。  
A.顺序结构,If结构,for 结构     
B.if 结构,if…..else结构 else if结构 
C.while结构,do….while结构,foreach结构 
D.顺序结构,分支结构,循环结构   
271、下列参数类型中_D__是 C#中不允许使用的。  
A.值参数   B.引用参数    C.输出参数    D.指针参数 
272、关于参数数组,下列说法错误的是__ C _.  
A.参数数组必须是函数的最后一个参数。 
B.参数数组必须是一维数组  
C.参数数组的声明同普通数组一样  
D.参数数组所对应的实参的个数是不固定的  
273、103.在下列程序空格处填入正确的选项__C___,能够实现调用函数 show().  
class Class1  
{   
static void show(ref int i)  
{  
i*=15;   
Console.WriteLine(“i={0}”,i);  
}   
static void Main(string[] args)  
{
   int test=10;
   Console.WriteLine(“调用函数 show前,test={0}”,test);
  show(______);
  Console.WriteLine(“调用函数 show后,test={0}”,test);  
}

A.test        B.out test        C.ref test        D.params test 
274、下面对异常说法不正确的是___(D) 
A.try/catch块为基本引发异常的组合     
B.在捕获异常时,可以有多个 catch块 
C.无论异常是否发生,finally块总会执行   
D.try块和 finally 不能连用 
275、在Visual Studio.NET窗口,( B )窗口显示了当前Visual Studio解决方案的树型结构。 
A.类视图      B. 解决方案资源管理器      C. 资源视图      D. 属性 
276、在C#中设计类时,如何将一个可读可写的公有属性Name修改为只读属性?( A ) 
A.将Name的set块删除                      B.将Name的set块置空 
C. 将Name的set块前加修饰符private      D. 将Name添加readonly修饰符 
277、在下面的类定义中,缺省构造函数的作用是(  C  ) 
Public class MyClass 
{  
private MyClass() {  }  
public static int counter;  
public static int increnentCounter()  
{  
return ++counter;  return ++counter; 


A. 在创建类的实例时初始化类的域 
B. 因为是private的,因此不起任何作用 
C. 防止创建类的实例 
278、下列语句是类myclass的一部分,obj是myclass的一个对象。 
Void change(int i) {  i++ } 
public void test() 

int a=100;  
Change(a);  
Console.Writeline(a); 

则调用obj.test后,控制台输出(   B ) 
A. 0         B. 100         C. 101 
279、下列语句是类myclass的一部分,obj是myclass的一个对象。 
Void change(int i) {  i++ } 
public void test() 
{
int a=100;  
Change(ref  a);  
Console.Writeline(a); 
}  
则调用obj.test后,控制台输出(  A  )  
A. 101         B. 100        C. 0  
280、下列类的定义中哪些是合法的抽象类?(   D )  
A. sealed abstract class c1{abstract public void test()  {}   
B. abstract sealed public viud test();  
C. abstract class c1 { abstract void test();  //test()默认为私有,不合法 
D. abstract class c1 {abstract public void test(); }
281、在C#中,将路径名”C:\Documents\”存入字符串变量path中的正确语句是(  A )  
A. path=’C:\\Documents\\’’; √           
B. path=”C://Documents//”; 
C. path=”C:\Documents\”;                
D. path=”C:\/Documents\/”; 
282、C#中执行下列语句整形变量x和y的值是多少?(D) 
int x=100; 
int y=++x;  
A. x=100   y=100         B. x=101   y=100    
C. x=100   y=101         D. x=101   y=101√
283、通过继承( C  )类,用户可以创建自己的异常类。  
A. System.Exception                  
B. System.SystemException 
C. System.ApplicationException√     
D. System.UserException 
284、C#类MyClass下列函数重载是否合法?(B) 
Public void showInfo(int i) {…}  
public bool showInfo(int i) {…}  //重载必须是参数不同  
A.合法     B. 不合法√  
285、C#中,回车字符对应的转义字符串为( C  )  
A. \r     B. \f      C. \n √    D. \a 
286、设置openfiledialog1引用一个openfiledialog对象,则打开该对话框的正确代码是( B )
A. openfiledialog1.show();           
B. openfiledialog1.showdialog();√ 
C. openfiledialog1.open();      
D. openfiledialog1.openandshow();  
287、创建菜单后,为了实现菜单项的命令功能,应为菜单项添加(  C )事件处理方法。
A. DrawItem     B. Popup       C. Click√     D. Select 
288、在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!”);  
289、在C#中,引用命名空间System的正确语句是(  A  )  
A. using System;      B. # import <System>;     
C. uses System;       D. # include <System>;
290、显示消息时,MessageBoxTcon枚举中的Error成员可以消息框中添加一个图标,该图标的形状是(  D  ) 
A. 问号         B. i          C. 感叹号         D. 叉号 
291、下列说法中不正确的是(D)? 
A C#中以“;”作为一条语句的结束 
B C#中注视是不参与编译的 
C C#有三种不同的注释类型 
D swith语言中case标签结束可是有跳转语句,也可以没有。 
292、判断下列语句中哪个存在语法错误(B)。  
bool a=true;
bool b=false;
bool c=true;
int i=0;
A if(a||b)            B if(i)            C if(i!=3)         D if((i==3)==false) 
293、下列关于switch语句的表述中哪个是正确的(B)? 
Aswitch语句的控制表达式可以是任何数据类型 
B switch语句可以出现default标签,也可以不出现default标签 
C switch中可以有两个或两个以上的case标签的常量与控制表达式的值相同 
D switch语句中case标签结束可以有跳转语句,也可以没有。 
294、下列关于异常处理的表述中哪些是正确的(D)? 
A try、catch、finally三个字句必须同时出现,才能正确处理异常 
B catch字句能且只能出现一次 
C try字句中所抛出的异常一定能被catch字句捕获 
D无论异常是否抛出,finally子句中的内容都会被执行。 
295、下列关键字中哪些不能作为修饰类(C) 
A:sealed        B:abstract        C:override       D:public   
296、下列关于继承机制的描述中不正确的是(D) 
A提供继承机制有利于提高软件模块的可重用性及可扩充性。 
B继承机制使面向对象的开发语言能够更准确的描述客观世界,使软件开发方式变简单。 
C继承机制使得软件开发过程效率更高。 
D继承机制使得软件开发的难度相对增加。 
297、下列关于继承的理解,错误的是(A) 
A子类可以从父类中继承其所有的成员。 
B无论是否声明,子类都继承自object(System.object)类。 
C假如,类M继承自类N,而类N又继承自类P,则类M也继承自类P。 
D子类应是对基类的扩展。子类可以添加新的成员,但不能出去已经继承的成员的定义。 
298、开发基于C#的Windows应用程序需要引用哪个名空间(B)? 
A System       B System.Forms        C System.Collections        D System.Data 
299、消息对话框不是放置到窗体上的,是使用MessageBox .(B)方法显示出来的。 
A.Move       B.Show       C.Control      D.Load 
300、下列选项中,( C)是引用类型。 
A.enum类型      B.struct类型          C.string类型       D.int类型

四、读程序写结果和看程序填空

1 class Program     

          static void Main(string[] args)         

Tiger t = new Tiger();             

Console.Read();         

}     

class Animal

           public Animal()         

{   

Console.Write ("基类");    

}     

}

class Tiger : Animal      

        public Tiger() 

        {   

Console.Write ("派生类");   

     }  

 程序的运行结果是_____基类派生类______________  

2 class Program     

        static void Main(string[] args)         

Elephant e = new Elephant("abc");             

Console.ReadLine();         

}     

public class Animal     

public Animal()         

Console.Write ("基类默认构造函数!");         

        public Animal(string s)         

            Console.Write ("非默认构造函数");         

}     

public class Elephant : Animal     

public Elephant()         

Console.Write ("派生类构造函数!");         

public Elephant(string str)  : base(str)         

            Console.Write (str);         

}     

 程序的运行结果是______非默认构造函数abc __________  

3.Main方法中需要调用Display方法,按照要求填空  

class Program     

static void Main(string[] args)         

A1 a = new A1();     //创建A1类的对象a

Console.WriteLine(a.Display());             

Console.ReadLine();         

}     

class A1     

public string Display()         

return "hello everyone!";         

}     

}  

4 下列程序完成了调用静态方法和实例方法,补充空白处并写出运行结果 

class Program     

static void Main(string[] args)         

Example e1 = new Example();             

e1.meth1(); 

Example.meth2();                  //调用meth2()              

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

Console.ReadLine();         

}    

class Example     

public int a; 

static public int b;         

public void meth1()         

a = 10;             

b = 20;         

public static void meth2()         

b = 30;         

程序的输出结果是_________a=10,b=30_______________ 

5  class Program     

static void Main(string[] args)         

s s1 = new s();             

s t1 = new s();Console.ReadLine();        

}

}     

public class s    

{         

public s()         

{

Console.Write ("构造函数!");

}        

static s()         

{

Console .Write ("静态构造函数!");

}    

}     

程序的运行结果是_____静态构造函数!构造函数!构造函数!________________

6 class Program 

static void Main(string[] args)         

Person p = new Person();             

p.N = "www"; 

Console.WriteLine(p.N );             

Console.ReadLine();         

}     

public class Person     

private string p_name="abc";         

public string N         

get { return p_name; }             

set { p_name = value; }          

}     

程序最终的输出结果是_www__

7class Program 

static void Main(string[] args)         

B b = new B();             

A a = b;             

a.G();            

b.G(); 

Console.Read();         

}     

class A     

public virtual void G()         

Console.Write ("A.G!");         

}     

class B : A     

public override void G()        

Console.Write ("B.G!");         

}     

程序的输出结果是___ B.G!B.G!____________________

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

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("smax={0},smin={1}",smax ,smin );             

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];                 

f (a[i] < min) min = a[i];             

}         

9 下列程序完成了调用静态方法和实例方法,补充空白处并写出运行结果 

class Program     

{         

static void Main(string[] args)         

{             

Example e1 = new Example();  

e1.meth1();             

Example.meth2();              

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

Console.ReadLine();         

}     

class Example     

public int a;         

static public int b;         

public void meth1()         

{             

a = 10;             

b = 20;         

public static void meth2()         

{             

b = 30;         

程序的输出结果是____ a=10,b=30_________________ 

10class Program 

static void Main(string[] args)         

{             

Triangle t = new Triangle(3, 4);             

double s = t.area();             

Console.WriteLine("area is {0}",s);             

Console.ReadLine();         

}     

class Shape     

{         

protected double width;         

protected double height;         

public Shape()         

{             

width = height = 0;          

public Shape(double w, double h)         

{              

width = w;             

height = h;         

            public virtual double area() 

{             

return width * height;         

}     

class Triangle : Shape     

{         

public Triangle(double x, double y) : base(x, y) { }         

public override double area()         

{             

return width * height / 2;         

}     

程序的输出结果是____area is 6____________________ 

11class Program 

static void Main(string[] args)         

{             

Point p1 = new Point();             

Point p2 = new Point(3, 4);             

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

Console.WriteLine("p2.x={0:f},p2.y={1}", p2.x, p2.y);             

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    _

12class Program 

{         

static void Main(string[] args) 

{             

Triangle t = new Triangle(3, 4);             

double s = t.area();             

Console.WriteLine("area is {0}",s);             

Console.ReadLine();         

}     

class Shape     

{            

protected double width;         

protected double height;         

public Shape()         

{              

width = height = 0;          

}         

public Shape(double w, double h)         

{              

width = w;             

height = h;         

}         

public virtual double area()         

{             

return width * height;         

}     

}     

class Triangle : Shape     

{         

public Triangle(double x, double y): base(x, y) { }         

public override double area()         

{             

return width * height / 2;         

}     

程序最终的输出结果是_ area is  6_

13class Program 

static void Main(string[] args)         

{             

MyClass m = new MyClass();             

int a, b, c;             

a = 0; 

b =20; 

c = 10;             

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

Console.ReadLine();         

}                    

class MyClass     

{         

public void sort(ref int x, ref int y, ref int t)         

{             

int tmp;             

if (x > y) { tmp = x; x = y; y = tmp; }             

if (x > t) { tmp = x; x = t; t = tmp; }             

if (y > t) { tmp = y; y = t; t = tmp; }             

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

}       

程序的输出结果是_____ a=0,b=10,c=20 ______________________ 

14class Program     

static void Main(string[] args)         

{             

MyClass m = new MyClass();             

int[] s ={ 34, 23, 65, 67, 54, 98, 6, 56 };             

m.Array(s);             

for(int i=0;i<s.Length i++)             

{                 

Console .Write("{0}",s [i]);             

}             

Console .ReadLine ();         

}     

class MyClass     

{        

public void Array(int[] a)         

{             

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

{                 

a[i] = i;              

}         

}   

程序最终的输出结果是01234567         

15class Program     

{

enum Season : int  { Spring,  Summer , Autumn, Winter} 

static void Main(string[] args) 

{                

Season s = (Season)2;                

Console.WriteLine(s);             

Console.Read();         

}     

程序的输出结果是________ Autumn ________________ 

16class Program     

{         

static void Main(string[] args)         

{            

int i = 0, sum = 0;             

do            

{                 

sum++;             

}             

while (i > 0);             

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

}     

程序的运行结果是_________ sum = 1________________  

17static void Main(string[] args)                     

int x = 123; 

object obj1=x;   

x = x+100;                   

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

程序的输出结果是_________ obj1=123___________ 

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

static void Main(string[] args)         

{             

int  j;             

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

{

j = i * 10 + 6;                 

if (i % 10 !=6&&j%3!=0)                     

Continue;                 

Console.Write("\t{0}",j);             

              Console.Read();         

}  

19using System; 

class Program     

{         

static void Main(string[] args)         

{             

int m, n, i, j, max = 0;             

Console.WriteLine("请输入m,n的值");             

m = Convert.ToInt32(Console.ReadLine ());             

n = int.Parse(Console.ReadLine());             

if (m < n)                 

i = m;             

else                 

i = n;             

for (j = i; j > 0; j--)                 

if (m % j == 0 && n % j == 0)                 

{                     

max = j;                     

break;                 

}             

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

Console.ReadLine();         

}     

若分别从键盘输入86,则程序的运行结果是__ max=2___________________   

20static void Main(string[] args)                     

{         

int Sum = 0;                          

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

{              

if (i % 2 == 0)                                        

Sum += i;        

Console.WriteLine(Sum);     

     程序的输出结果是____30______ 

21static void Main(string[] args)

{             

int m, n,i;             

int[] a = new int[6]{1,2,5,3,9,7};            

m = n = a[0];             

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

{                 

if (a[i] > max)

m = a[i];                

if (a[i] < min)

n = a[i];            

}             

Console.WriteLine("{0}, {1}",m,n );            

Console.ReadLine();        

}

程序最终的输出结果是________9,1___________

22class Program     

{         

static void Main(string[] args)         

{             

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

{                

Console.Write(i);                

if (i % 5 == 0)                    

Console.WriteLine();                

else                   

Console.Write('\t');            

 程序的运行结果是_______1    2    3    4    5 

 6    7    8    9    10__________________

23static void Main(string[] args)                     

{         

int Sum = 0;                          

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

{              

if (i % 2 == 1)                                        

Sum += i;        

Console.WriteLine(Sum);     

程序的输出结果是_______25___________ 

24static void Main(string[] args) 

        {             

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

switch (a > 0)

{                 

case  true :                     

switch (b < 10)                    

{                         

case true: Console.Write("^"); break;                        

case false: Console.Write("!"); break;                    

}                     

break;                

case false :                     

switch (c == 5)                    

{                         

case false: Console.Write("*"); break;                        

case true: Console.Write("#"); break;                    

}                     

break;            

}             

Console.Read();        

}

程序最终的输出结果是___ ^___

25static void Main(string[] args) 

        {             

try             

{                 

int x = Convert.ToInt32(Console.ReadLine());                 

int y = Convert.ToInt32(Console.ReadLine());                 

int z = x / y;             

}             

catch (FormatException)             

{                 

Console.WriteLine("格式不符");             

}             

catch (DivideByZeroException)             

{                 

Console.WriteLine("除数不能是0");             

}             

catch (Exception)             

{                 

Console.WriteLine("Exception!");             

}            

finally             

{                 

Console.WriteLine("thank you for using the program!");             

}             

Console.ReadLine(); 

若分别从键盘上输入5x,则程序的最终执行结果是格式不符 

thank you for using the 

program! 

26class Program     

{         

static void Main(string[] args)         

{             

Taxi t = new Taxi();             

Console.WriteLine(t.isInitialized );             

Console.ReadLine();         

}   

public class Taxi     

{         

public bool isInitialized = false;         

public  Taxi()         

{             

isInitialized = true;         

程序最终的输出结果是___  True     __

27class Program     

{

static void Main(string[] args)         

{                

Mouse m = new Mouse();                

m.Eat();                

m.Sleep();         

}      

public abstract class Animal     

{  

public abstract void Sleep();        

public virtual void Eat()            

Console.Write ("eat something"); 

}         

        public class Mouse : Animal 

        {   

public override void Sleep()               

{

Console.Write ("mouse sleeping!");

}            

public override void Eat()              

{

Console.Write ("eat cheese!");

}  

程序的输出结果是_______ eat cheese! mouse sleeping! _____________________ 

28class Program

{         

static void Main(string[] args)        

{             

SharedClass sc = new SharedClass();            

sc.SetDataA("interface IpartA");            

Console.ReadLine();        

}    

}     

public interface IpartA    

{         

void SetDataA(string dataA);    

}     

public class SharedClass : IpartA    

{         

private string DataA;        

private string DataB;         

public void SetDataA(string dataA)        

{             

DataA = dataA;             

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

}    

程序最终的输出结果是  interface IpartA _

29static void Main(string[] args) 

        {             

int m, n, i, j, s= 0;             

Console.WriteLine("请输入m,n的值");             

m = Convert.ToInt32(Console.ReadLine ());             

n = int.Parse(Console.ReadLine());             

if (m < n)                 

i = m;             

else                 

i = n;             

for (j = i; j > 0; j++)                 

if (j % m == 0 && j % n == 0)                 

{                     

s = j;                     

break;                 

}             

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

若从键盘上分别输入46,则程序最终的输出结果是______12________

30static void Main(string[] args) 

        { 

int[] pins = { 9, 3, 7, 2 }; 

for (int index = 0; index != pins.Length; index++) 

{                

int pin = pins[index];                

System.Console.Write (pin); 

foreach (int i in pins) 

Console.Write (i); 

}         

程序的输出结果是________93729372____________________ 

31、分析一下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(); 

}  

32、分析如下C# 代码,根据类的继承关系,运行后的输出结果是___不得入内 未成年人___  

public class Person 

{  

private int age=0;  

public int Age  

{   

get{return age;

}   

set   

{    

if(value>=18)     

Console.WriteLine(“成年人”);

else     

Console.WrteLine(“未成年人”); 

public class People:Person

     public People()  

{   

Console.Write(“不得入内”); 

class Test 

static void Main (string[]args) 

people shang=new People();  

shang.Age=17 

33、阅读下面程序,请确定枚举成员的关联值。 

enum Color:uint {     Red,     Green=3,     Blue,     Max=Blue } 

1 枚举成员Red的关联值为(0 

2 枚举成员Green的关联值为(3 

3 枚举成员Blue的关联值为(4 

4 枚举成员Max的关联值为(4)。 

34、写出以下程序的运行结果。___57__ 

using System; class Test 

{    

public static void Main()    

{      

int x = 5;      

int y = x++;      

Console.Write (y);      

y=++x;      

Console.Write (y);    

}

35、写出下列函数的功能。A>B则返回1,A==B则返回0,A<B则返回-1 

static int SA(int a,int b)  

{       

if (a>b)  

return 1;       

else if (a==b)  

return 0;        

else  

return -1; 

}   

36、写出以下程序运行结果。9 12 15 

using System; 

class Test 

{     

static int[] a = { 1, 2, 3, 4, 5, 6, 7, 8 };     

public static void Main()     

{         

int s0, s1, s2;         

s0 = s1 = s2 = 0;         

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

{             

switch (a[i] % 3)             

{                 

case 0: s0 += Test.a[i]; break;                 

case 1: s1 += Test.a[i]; break;                 

case 2: s2 += Test.a[i]; break;             

}         

}         

Console.WriteLine(s0 + " " + s1 + " " + s2);     

37、写出以下程序的运行结果。 2  4  6    8  10  12     14  16  18 

using System; 

class Test 

{     

public static void Main () 

{            

int[ ] a ={2,4,6,8,10,12,14,16,18};           

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

{                  

Console.Write(“   ”+a[i]);

if ((i+1)%3==0) 

Console.WriteLine();            

}  

}   

38、写出以下程序运行结果。i,s=15,56 

using System; 

class Test 

{    

public static void Main () 

{           

int s=0,i;           

for (i=1;   i++) 

{                   

if (s>50)  

break;                 

if (i%2==0)  

s+=i;          

}          

Console.WriteLine ("i, s=" + i + "," + s); 

}    

39 写出下列程序的运行结果。  

static void Main(string [ ] args)

{     

string[] words = new string[ ] { “a”,”b”,”c”};    

foreach ( string word in words)      

{            

Console.WriteLine(word); 

  答: ______a    

c_____________

40 完善如下程序:  键入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}个整数",i);         

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}", ZengNum, FuNum, zeroNum);

41、下列代码的功能是要遍历整个数组并将其显示出来,但是有一行代码是错误的。请检查下列代码,并在错误代码行后填入该行完整的正确代码:   

1)static void Main(string [] args)   

2). {   

3).     string [ ] myArray = new string[ ] { “C#”, “C++”, “VB”, “java” };   

4).     for(int i = 1; i<myArray.Length -1; i++)    

5).    {   

6).          Console.WriteLine(myArray[i]);   

7).    }   

8). }   

答: __4__行错误。 应改为___ for(int i = 0; i<myArray.Length  i++) ____________  

42 完善如下程序:求5的阶乘并输出        

int mul=  1;        

for(int i=1;i<=5;i++)   

{    

mul*=i;   

}         

Console.WriteLine(___mul__________); 

43 说明本程序的功能。___求数组中的最大值_______________         

int[] nums = new int[3];         

int max = int.MinValue;         

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

{             

string strTemp = Console.ReadLine();             

nums[i] = int.Parse(strTemp);         

}         

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

{             

if (nums[i]>max)             

{                 

max=nums[i]; }         

        Console.WriteLine(max);  

44void main() 

{  

int k=2,i=2,m;  

m=(k+=i*=k);  

Console.WriteLine(“{0},{1}”,m,i); 

输出结果______64___________ 

45void main()  

{  

char grade='C';   switch(grade)   

{    

case 'A': 

Console.WriteLine(">=85."); break;    

case 'B': 

Console.WriteLine(">=70."); break;    

case 'C': 

Console.WriteLine(">=60."); break;    

case 'D': 

Console.WriteLine("<60."); break;    

default:  

Console.WriteLine("error."); break;   

}  

输出结果_______>=60.__________ 

46  说明本程序的功能。  

int num; 

int sum=0;  

int avg=0;  

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

{  

Console.WriteLine("请输入第{0}个整数",i);    

string strTemp=Console.ReadLine();       

num=int.Parse(strTemp);    

sum=sum+num;  

}   

avg = sum / 10;

Console.WriteLine("平均数值={0}",avg); 

答: _____求从键盘输入的10个整数的平均值______________ 

47、完善如下程序:打印输出平方值小于20000的最大整数。        

int i=0;         

while(___i*i_________<20000)         

{             

i++;         

}         

Console.WriteLine(_____i________);  

48 下列程序的作用是求出所有的水仙花数。(所谓水仙花数是指这样的数:该数是三位数,其各位数字的立方和等于该数) 

using system; 

class Example1 

{   

static void Main(string[] args)         

{             

int a, i, b, c, t;             

for (i = 100; i <= 999; i++)             

{                 

t = i;                 

a = t % 10; 

t = t / 10; 

b = t % 10; 

c = t / 10;                 

if (i == a * a * a + b * b * b + c * c * c)                     

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

}              

Console.ReadLine();         

}

49public class TEApp

public static void ThrowException()

throw new Exception(); 

public static void Main()

try

Console.WriteLine(“try”); 

ThrowException(); 

catch(Exception e)

Console.WriteLine(“catch”); 

finally

Console.WriteLine(“finally”); 

 }

上述C#代码运行结果是(try catch  finally

50、分析如上的C#代码段,运行后将输出老师的名字叫小明

                                      学生的名字叫小明 

public class Teacher

public Teacher (string name)

Console.WriteLine(“老师的名字叫”+ name); 

public class Test:Teacher

public Test(string name)

Console.WriteLine(“学生的名字叫”+ name); 

static void Main(string[] args) 

Test t=new Test(“小明”);

51class Test

static void Main()

try

int a = 10; 

int b = 0;

int c = a / b; 

Console.WriteLine(c); 

Catch

Console.WriteLine(“出现错误”); 

Finally

{  

Console.WriteLine(“运行结束”); 

}C#中,上述代码的运行结果是出现错误 

运行结束 

52、下列程序是输出100以内所有能被7整除的数,请将程序补充完整。 

using System;  

class Output  

static void Main()  

{

for (int k=1;k<=100;___k++______ ) 

{

if (k%7!=0)  

____continue;________ 

Console.Write(_____k_______);

}

53、写出下列函数的功能。求出从键盘上输入的一批常数的平均值,以-1作为结束输入的标志。 

static float FH() 

{     

float y=0,n=0; 

int x = Convert.ToInt32(Console.ReadLine()); //从键盘读入整型数据赋给x     

while (x!=-1) 

{            

n++; 

y+=x;           

x = Convert.ToInt32(Console.ReadLine());     

if (n==0)  

return y;  

else  

return y/n; 

54写出以下程序运行结果。    25 10 25 10 

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 (x + “   “ +y); 

55、阅读以下的C#代码:下述代码运行后,将在控制台窗口输出  A   B         

class A      

{           

public A( )           

{     

Console.WriteLine("A");   

}       

}       

class B:A       

{            

public B()           

{    

Console.WriteLine("B");      

}       

}     

class Program     

{         

public static void Main()         

{             

B b = new B();Console.ReadLine();         

56class Program    

{         

static void Main(string[] args)         

{             

Person p = new Person();             

p.N = "www";             

Console.WriteLine(p.N );             

Console.ReadLine();         

}     

}     

public class Person     

{         

private string p_name="abc";         

public string N         

{             

get { return p_name; }             

set { p_name = value; }          

}     

程序最终的输出结果是_________www____________________ 

57static void Main(string[] args)         

{             

try             

{                 

int x = Convert.ToInt32(Console.ReadLine());                 

int y = Convert.ToInt32(Console.ReadLine());                

int z = x / y;             

}             

catch (FormatException)             

{

Console.WriteLine("格式不符");

}             

catch (DivideByZeroException)             

Console.WriteLine("除数不能是0");

}             

catch (Exception)             

{

Console.WriteLine("Exception!");

}             

finally             

Console.WriteLine("thank you for using the program!");             

}             

Console.ReadLine();         

若分别从键盘上输入5x,则程序的最终执行结果是  

58、程序执行后,m的值是    0     

public int which(int k) 

int x=0;    

Switch(k)

{       

case 1: x=10;break;       

case 2: x=15;break;   

}   

return x; 

……

int m=which(5); 

59、在C#中,下列代码的运行结果是(022)。 

public class Student 

{  

public static int Add(int a,int b)  

{   

a++;   

b++;   

return a+b;  

}  

static void Main()  

{   

int a=0;   

int b=2;   

int c = Add(a,b);   

Console.Write(a);   

Console.Write(b);   

Console.Write(c);  

}

60、在C#中,下列代码的运行结果是(-5 )。 

public class Test 

{  

static void Main()  

{   

int i= showInfo(5,10,"-");   

Console.WriteLine(i);  

}  

static int showInfo(int a,int b,string op)  

{   

if(op=="+")

return a+b;   

if(op=="-")    

return a-b;   

return a*b;  

}

61、分析下列程序的功能,并指出运行结果。 

using System; 

public class array1 

{    

public static void Main( )    

{       

int [ ] a={34,91,83,56,29,93,56,12,88,72};       

int i,t=0,temp=100;       

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

if(a[i]<temp)           

{               

temp=a[i];    

t=i;           

}      

Console.WriteLine(“{0}  {1}”,temp,t);    

运行结果:         12  7        . 

62、写岀下面程序的运行结果        050055                      

class Program     

{         

static void Main(string[] args)         

{             

Class1 c1 = new Class1();             

Class1.y = 5;             

c1.output();             

Class1 c2 = new Class1();             

c2.output();             

Console.ReadLine();         

}     

}     

public class Class1     

{         

private static int x = 0;         

public static int y = x;         

public int z = y;         

public void output()         

{             

Console.Write (Class1.x);             

Console.Write (Class1.y);             

Console.Write (z);         

}

}

63、运行结果:                                  . 

static void Main(string[] args)         

{             

int x = 9;             

Console.WriteLine((x--) + (x--) + (x--));             

Console.WriteLine(x);             

int y = (--x) + (--x) + (--x);             

Console.WriteLine(y);             

Console.WriteLine(x);             

Console.ReadLine();         

64、程序的最终运行结果是110 150 199 30 18 

static void Main(string[] args)         

{             

int[] myArray = { 110, 150, 199, 30, 18};             

for (int i = 0; i != myArray.Length - 1;i++ )             

{                 

AddArray(myArray[i]);             

}             

foreach (int i in myArray)             

{                 

Console.WriteLine(i);              

}         

}          

public static void AddArray(int num)          

{   

num += 1;  

65、下面代码是要显示My string, 请分析下列代码段并在空白行补全C#代码: 

static void Main(string[] args)         

{             

string myString = "My string";             

char[] myChars = myString.ToCharArray();             

foreach (_____char character in myChars___________)             

{                 

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

}             

Console.ReadKey();         

66、请写出该段代码的运行结果:____ False  

2____ 

abstract class BaseClass 

{    

public virtual bool MethodA()    

{        

return true;    

}    

public virtual string  MethodB()    

{        

return "0";    

class Class1:BaseClass 

{     

public override bool MethodA()     

{        

return false;     

}     

public override  string  MethodB()     

{         

return "1";     

class Class2:Class1

{     

new public  string MethodB()     

{         

return "2";     

}     

class MainClass 

{     

public static void Main(string[] args)     

{         

Class2 o = new Class2();         

Class2 q = new Class2();         

Console.WriteLine(o.MethodA());         

Console.WriteLine(q.MethodB());     

67  程序运行的最终结果是Microsoft Studio Visual   

using System; 

class Program     

{

private class IntIndexer         

{             

private string[] myData;             

public IntIndexer(int index)             

{                 

myData = new string[index];                 

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

myData[i] = "Microsoft";             

}             

public string this[int pos]             

{                 

get                 

{                     

return myData[pos];                 

}                 

set                

{                     

myData[pos] = value;                 

}             

}          

}       

static void Main(string[] args)       

{           

int size = 3;           

IntIndexer myIndex = new IntIndexer(size);           

myIndex[2] = "Visual";           

myIndex[1] = "Studio";          

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

Console.Write(myIndex[i] + " ");        

}    

68、下面的程序是实现一个方法可以接受n个不相等的参数。在空白行补全。 

using System;

class Program 

private static void Test(     params    string[] strArray)         

{             

for (int i = 0; i < strArray.Length; i++)             

{                 

Console.Write(strArray[i] + " ");             

}             

Console.WriteLine();         

}         

static void Main(string[] args)

{             

Test("One", "Two", "Three");             

Test("Monday","Tuesday","Wednesday","Thursday","Friday");    

}

69、分析下列程序段程序运行的输出结果是sum = 1 

using System; 

class Program     

{         

static void Main(string[] args)         

{             

int i = 0, sum = 0;             

do             

{                 

sum++;             

}             

while (i > 0);             

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

}      

70、下面的程序完成的是:从输入串中找出所有的字母,并把这些字母转换成大写,然后输出到终端。请分析下列代码段并在空白行补全Visual C#代码。 

using System; class Program     { 

        static void Main(string[] args)         { 

            string inputString = string.Empty;             string result = string.Empty;             inputString = Console.ReadLine(); 

            for (int i = 0; i < inputString.Length; i++)             { 

                 if (inputString[i] >= 'a' ___&&___ inputString[i] <= 'z')                      result += inputString[i].ToString().ToUpper();                  if (inputString[i] >= 'A' && inputString[i] <= 'Z')                      ________ result += inputString[i]_________________;              } 

             Console.WriteLine("字母有: " + result);         }      }

五、简答题  

1.一个完整的C#控制台程序包括哪些必要的组成部分? 

Properties:属性。在AssemblyInfo中可以设置应用程序的版本号、作者等信息。 

引用:默认情况下项目引用了SystemSystem.DataSystem.XML3个命名空间,这3个命名空间包括了最常见的类和函数。 

Program.cs:项目默认建立的,是项目的运行入口。 

2.有哪些主要的数据类型?它们之间是怎样进行相互转换的? 

值类型包括整数类型、字符类型、浮点类型、布尔类型、结构类型和枚举类型。引用类型包括类、接口、委托、数组、字符串等。 

C#中提供了隐式类型转换和显式类型转换。 

3.类和对象的区别和关系是什么? 

类是对象的抽象,它为属于该类的全部对象提供了统一的抽象描述。它是对象的模板,对象是类的实例。 

4.静态字段与非静态字段有什么区别? 

static修饰字段时,则该字段为静态字段,静态字段不属于某个实例对象,只与类相关联,因此,对静态字段的访问只与类关联,访问时使用类名.字段,实例字段的访问与实例对象关联,访问时使用对象名.字段。 

5.接口声明主要由几部分组成,各部分的作用是什么? 

接口声明形式:访问修饰符 interface 接口名 

其中:接口的访问修饰符有newpublicprotectedinternalprivate,各个修饰符都代表不同的访问权限。new修饰符仅允许在类中定义的接口内使用,它指定接口隐藏同名的继承成员。publicprotectedprivateinternal修饰符用于控制接口的可访问性,与前面所介绍的意义相同。接口名称通常以I开头。要实现该接口,必须有类继承该接口。 

6.在某些场合中,使用接口继承而不是类继承,为什么? 

程序需要许多彼此无关的对象类型来提供特定功能,此时更适合使用接口  接口可以在基类不同的类之间实现多态性 

接口比基类更加灵活,因为可以定义实现多个接口的单个实现  若不需要从基类继承实现,则接口是更好的选择  若不能使用类继承,则可以使用接口 

7.什么是异常?异常有什么作用? 

异常是错误的一种,它的结果是导致程序不能正确运行,如系统崩溃、程序非正常退出、死循环等。当抛出异常后,程序将不正常终止。但是,如果能很好的在程序中俘获异常并处理异常,可以增强程序的健壮性。 

8.C#中处理异常采用的结构化异常处理语句有哪些?并简要说明。 

C#中共包含3种结构化异常处理语句:trycatch语句,tryfinally语句和trycatchfinally语句。其中:try块语句中用来指明有可能出现异常的代码;catch块内指明对所出现的异常的处理,若没有异常,则catch块不执行;finally块是无论是否发生异常均要执行的代码,主要用来清理资源或执行要在try块末尾执行的其它操作,或不需要清理代码,则可以不使用该块。 

9.类的声明的一般形式是什么? 

类的声明形式:[类的访问修饰符]  class 类名[:基类]{ 类成员 }     最简单的声明类的语法为:  class  类名 {类成员

10.什么是继承? 

继承是这样的一种能力,它可以使用现有类的所有功能,并且在无须重新编写原来的类的情况下对这些功能进行扩展。使用继承而产生的类被称为派生类或子类,被继承的类称为基类或父类。 

11.什么是多态性? 

继承使得在原有的类基础之上,对原有的程序进行扩展,从而提高程序开发的速度,实现代码的复用。同一种方法作用于不同对象可以产生不同的结果,这就是多态性。C#中的多态包括两类:编译时多态性和运行时的多态性。 

12.C#定义了哪几种类的访问修饰符? 

public 可以被任意存取 

protected只可以被本类和其继承子类存取 

internal只可以被本组合体(Assembly)内所有的类存取,组合体是C#语言中类被组合后的逻辑单位和物理单位,其编译后的文件扩展名往往是“.DLL”或“.EXE”。 

protected internal唯一的一种组合限制修饰符,它只可以被本组合体内所有的类和这些类的继承子类所存取。 

private只可以被本类所存取。

13.override与重载的区别  

    重载是方法的名称相同。参数或参数类型不同,进行多次重载以适应不同的需要;      override 是进行基类中函数的重写。为了适应需要。 

14.什么是装箱和拆箱?  

    从值类型接口转换到引用类型装箱。从引用类型转换到值类型拆箱。 

15.面向对象的思想的三个基本特征? 

封装:用抽象的数据类型将数据和基于数据的操作封装在一起,数据被保护在抽象数据类型内部。 

继承:子类拥有父类的所有数据和操作。 

多态:一个程序中同名的不同方法共存的情况。

16.sealed 修饰符有什么特点 

sealed 修饰符可以应用于类、实例方法和属性。密封类不能被继承。密封方法会重写基类中的方法,但其本身不能在任何派生类中进一步重写。当应用于方法或属性时,sealed 修饰符必须始终与 override一起使用。 

17.根据getset访问器是否存在,属性可以分成哪几种类型? 

对于属性,如果只设置get访问器,则为只读属性,若只设置set访问器,则为可写属性,两个访问器均存在时,为既可读又可写属性。 

18.属性主要用于哪些情况? 

C#中提供了属性来实现安全性。C#通过属性特性读取和写入字段,而不直接进行字段的读取和写入,以此来保护类中的字段。属性是类内部封装性的体现。 

19.类所包含的成员种类有哪几种? 

类的成员包括常量、字段、方法、构造函数、属性、事件、索引等。 

20.C#方法有哪4种类型的参数? 

1)普通参数是指在声明方法时,形参前不加任何修饰的参数。若传递的是值类型的参数,则进行值传递,若是引用类型,则进行引用传递。 

2)引用类型参数(ref)。在值类型参数前加上关键字ref,表明实参与形参的传递方式是引用的,对形参的修改会影响实参的值。 

3)输出型参数(out)。与ref相似,该参数为引用类型参数。不同之处在于ref要求变量在作为参数传递之前必须要进行初始化,而out无需进行初始化。当希望方法返回多个值时,声明out方法是很有用。 

4)数组型参数(params)。有时希望能够传递任意个数的参数,使程序更加灵活,比如求2个数的和、3个数的和以及求一个数组各个元素的和,计算方法类似,可以通过一个方法实现,在方法中传递不同个数的参数即可。C#提供了params参数来实现这个功能。params可以使用个数不定的参数调用方法。

21.如何区别重载方法? 

不同的参数类型;不同的参数个数;不同的参数顺序.

22.索引器与属性的主要差别是什么? 

    索引器与属性类似,可以使用getset块定义索引元素的读写权限,与属性不同的是,索引器有索引参数。 

23.构造函数有哪些特征? 

1)函数名与类名相同;(2)没有返回值类型;(3)系统自动调用 

24.什么是装箱和拆箱?  

    从值类型接口转换到引用类型装箱。从引用类型转换到值类型拆箱。 

25.结构化异常处理捕获异常的原则是什么? 

先捕获特殊异常,再捕获普通异常。 

26.简述变量的命名规则? 

    由数字、字母和下划线组成,不能以数字开头,不能是关键字。 

27.简述C#中编译时的多态性和运行时多态性的区别。 

编译时的多态性是通过我们前面所介绍的方法重载来实现的。运行时的多态是指直到系统运行时,才根据实际情况决定要实现何种操作。C#中运行时的多态性是通过虚方法来实现的。 

28.什么是构造函数的重载? 

    构造函数中可以没有参数,也可以有一个或多个参数,多个参数之间用“,”隔开。一个类中可以有一个或多个构造函数,这表明在类中可以有多个函数名相同、但参数类型不同或者参数个数不同的构造函数,这叫构造函数重载。 

29.简述类和结构的区别。 

    类的声明和结构的声明非常类似,只是限定符后面是 struct 还是 class 的区别,而且使用时,定义新的结构和定义新的类的方法也非常类似。类和结构的具体区别为:(1)结构是值类型,类是引用类型。(2)结构不能从另外一个结构或者类继承,本身也不能被继承,而类是完全可扩展的,自身也能被继承。(3)结构没有默认的构造函数,但是可以添加构造函数,没有析构函数;类有默认的构造函数,也有析构函数。 

30.什么是抽象类和密封类? 

抽象类用abstract修饰,能够包含抽象成员。抽象类不能直接实例化,也不能被密封,只能作为其它类的基类。密封类用sealed修饰,不能用作基类。因此,它也不能是抽象类。密封类主要用于防止派生。  

31.如何声明基类虚方法,并在派生类中重载基类虚方法? 

定义虚方法要用到virtual关键字。如果在派生类中要重写基类的方法,需要用override关键字。 

32.什么是委托?委托与C/C++的函数指针有何不同? 

函数指针用指针获取一个函数的入口地址,实现对函数的操作。委托与函数指针不同,委托是引用类型,是面向对象的,在使用时要先定义后实例化,然后再调用。委托可以在运行时间接调用一个或多个方法。 

33.什么是多播委托? 

一个委托只与一个方法关联,称为单路广播委托,也可以将一个委托与多个方法关联,称为多路广播委托,简称多播委托。多播委托通过使用“+”把方法加入执行队列。只调用一个委托就可以完成对多个方法的调用,并且传递给委托的参数会传递到委托所包含的每一个方法。 

34.什么是事件?

事件作为C#的一种类型,主要为类和类的实例定义发出通知的能力,从而将事件和可执行代码捆绑在一起。事件最常见于窗体编程,如点击按钮事件、鼠标移动事件等等。 

35.如何在程序中定义和使用自定义事件? 

1)首先,必须在类中声明事件并确定将要使用的委托和参数。 

2)其次,必须定义在触发事件时要调用的委托。 

3)最后,必须设计事件参数类,该参数类的实例会将信息传递给被调用的方法。如果使用内置的EventArgs对象和EventHandler委托,则可以不执行该步骤。  

36.面向对象程序设计的特征是什么? 

面向对象程序设计(OOP)通过类、对象、继承、多态等机制形成一个完善的编程体系。OOP将程序设计中的数据与对数据的操作作为一个不可分割的整体,通过由类生成的对象来组织程序。 

37.对象的方法与对象的事件方法有何异同? 

两者都是用一段代码完成特定的功能。事件方法代码是由用户添加的,事件方法由事件的发生而被自动调用;对象的方法代码是系统预定义的,对用户是隐藏的,不可见的,而且对象的方法必须在代码中调用。 

38.C#集成开发环境中主要有哪些窗体? 

C#集成开发环境中主要有起始页、设计器视图与代码视图、解决方案资源管理器与类视图、工具箱与服务器资源管理器、属性与动态帮助等。 

39.简述按钮、标签和文本框控件的作用。 

按钮控件通常用来接收用户的操作信息,激发相应的事件,按钮是用户与程序交互的最简便的方法。标签控件的主要功能是输出信息,可以用来标识其他无法显示标题的控件。文本框控件用于数据的输入与输出,文本框中的文本在程序运行时,可以被用户编辑。 

40.命名空间有什么作用? 

命名空间既是Visual Studio.NET提供系统资源的分层组织方式,也是分层组织程序的方式。命名空间有两种:一种是系统命名空间,一种是用户自定义命名空间。

41.C#有几种表达式?根据什么确定表达式的类型? 

C#中,基本表达式有5种:算术表达式、关系表达式、逻辑表达式、条件表达式和赋值表达式.表达式的类型由运算符的类型决定。 

42.switch语句控制表达式可以是哪几种数据类型? 

Switch语句控制表达式所允许的数据类型为:整数类型、字符类型、字符串类型或者枚举类型,可以能够隐式转换成上述类型的其他类型。 

43.单选按钮与复选框控件各有什么作用? 

RadioButton控件即单选按钮,提供由两个或两个以上互斥选项组成的选项集。它支持勾选和不勾选两种状态,在文字前用一个可以勾选的圆点来表示,用户只能在一组选项中选择一项。CheckBox控件即复选框控件,通常用来设置选项,用户可以一次选择任意数量的复选框。 

44.简述值类型与引用类型的区别。 

值类型变量直接包含其本身的数据,因此每个值类型变量本身就包含有赋给它的值。引用类型变量本身不包含数据,只是存储对数据的引用,数据保存在内存的其他位置。 

45.基类中的字段通常使用什么类型的访问修饰符,为什么? 

在类的继承中,作为基类的数据成员通常使用protected修饰符,而不使用private修饰符。因为如果在基类中使用private修饰符声明数据成员,则其成员将不允许派生类成员访问,而使用protected修饰符,既能保证数据成员不被直接访问,又允许其派生类成员访问。 

46.什么是数组?数组最适合在哪种情况下使用?

C#中,把一组具有同一名字、不同下标的下标变量成为数组。实际应用中,往往会遇到具有相同属性的一批数据,此时,应该考虑使用数组来管理或处理这些有规律的数据。数组是引用类型。 

47.自定义的数据类型包括哪些?它们有什么作用? 

自定义数据类型包括结构和枚举,结构和枚举都属于值类型。结构类型可以用来处理一组类型不同、内容相关的数据。枚举类型是由用户定义的一组整型符号常量,使用枚举可以将一组相关的有限常量组织在一起,保证变量只能具有预订的值。 

48.实际应用中,菜单分为哪两种形式?C#中设计主菜单使用哪种控件? 

实际应用中,菜单分为主菜单和弹出式菜单(上下文菜单)。通常使用MenuStrip控件实现主菜单设计。 

49.简述文本文件与二进制文件的区别。 

文本文件中字节单元的内容为字符的代码,在二进制文件中,文件内容是数据的内部表示,是从内存中直接复制过来的。两者对于字符信息无差别,而对于数值信息,数据的内部表示和字符代码截然不同。二进制文件中的数据不需要进行转换,文本文件中的数据需要进行转换。 

50.简述已连接环境与非连接环境的区别与优缺点。 

已连接环境是指应用程序和数据库之间保持连续的通信,优点是能及时刷新数据库,安全性较高,缺点是需要固定的数据库连接,不宜多个用户共同使用同一个数据库,扩展性差。非连接环境是指应用程序能够在与数据库断开的情况下进行操作,优点是应用程序可以随时连接到数据库获取相应的信息,缺点是获得的数据可能不是最新的,并且对数据更改时可能引发冲突,因为在某一时刻可能有多个用户同时对统一数据操作。 

51.何谓数据绑定技术? 

所谓数据绑定技术就是把已经打开的数据集中某个或者字段绑定到组件的某些属性上的一种技术,就是把已经打开的数据的某个或者某些字段绑定到TextBoxListBoxComboBox等组件能够显示数据的属性上,当对组件完场数据绑定后,其显示字段的内容将随着数据记录指针的变化而变化。 

52.事件是一种委托吗?为什么? 

事件不是委托,不过由于事件的性质决定了处理它的程序逻辑能访问的参数,因此,在C#中处理事件的逻辑都包装为委托。 

53.列举ADO.NET中的五个主要对象,并简单描述 

Connection连接对象,Command执行命令和存储过程,DataReader向前只读的数据流,DataAdapter适配器,支持增删查询,DataSet数据级对象,相当于内存里的一张或多张表。 

54.new关键字用法 

(1)new运算符 用于创建对象和调用构造函数。  

(2)new修饰符 用于向基类成员隐藏继承成员。 

(3)new约束   用于在泛型声明中约束可能用作类型参数的参数的类型。 

55.C#中,string str = nullstring str ="",请尽量用文字说明区别。 

string str =""初始化对象分配空间,而string str=null初始化对象 

56.C#中的接口和类有什么异同。 

异:不能直接实例化接口。接口不包含方法的实现。接口、类和结构可从多个接口继承。但是C#只支持单继承:类只能从一个基类继承实现。类定义可在不同的源文件之间进行拆分。 

同:接口、类和结构可从多个接口继承。接口类似于抽象基类:继承接口的任何非抽象类型都必须实现接口的所有成员。接口可以包含事件、索引器、方法和属性。一个类可以实现多个接口。 

57.接口是否可以继承接口?抽象类是否可以实现接口?抽象类是否可以继承实体类? 

接口是可以继承接口的,抽象类是可以实现接口的,抽象类可以继承实体类,但是有个条件,条件是,实体类必须要有明确的构造函数。 

58.用最有效的方法算出2乘以8等于几? 

2<<3. 

59.数组有没有Length()这和方法?string有没有这个方法? 

数组中没有这个方法,但有这个属性,string中有这个方法。 

60.Override, Overload,的区别? 

Override是重写的意思,它表示重写基类的方法,而且方法的名称,返回类型,参数类型,参数个数要与基类相同。Overload是重载是意思,它也表示重写基类的方法,但是只要方法名相同,别的可以不同。 

61.C#种索引器实现过程,是否只能根据数字索引? 

不是的,可以是任意类型。 62.ConstReadOnly 

Const用来声明编程时常量,ReadOnly用来声明运行时常量。 

63..NET中所有类的基类是? 

Object 

64..NET中读写数据库需要用到那些类?他们的作用? 

    DataSet:数据存储器;DataCommand:执行语句命令;DataAdapter:数据的集合,用于填充。 

65.成员变量和成员函数前加static的作用?     

它们被称为常成员变量和常成员函数,又称为类成员变量和类成员函数。分别用来反映类的状态。比如类成员变量可以用来统计类实例的数量,类成员函数负责这种统计的动作。 

66.什么是ASP.net中的用户控件? 

    用户控件一般用在内容多为静态,或者少许会改变的情况下..用的比较大..类似ASP中的include..但是功能要强大的多。 

67..NET的错误处理机制是什么? 

    .net错误处理机制采用try->catch->finally结构,发生错误时,层层上抛,直到找到匹配的Catch为止。 

68.ADO.NET相对于ADO等主要有什么改进? 

    1:ado.net不依赖于ole db提供程序,而是使用.net托管提供的程序,2:不使用com3:不在支持动态游标和服务器端游 4:,可以断开connection而保留当前数据集可用 5:强类型转换 6:xml支持 

69.&&&的区别。 

    &是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and

70.short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错

    short s1 = 1; s1 = s1 + 1; s1+1运算结果是int型,需要强制转换类型)     short s1 = 1; s1 += 1;(可以正确编译) 

71..<%# %>  <% %> 有什么区别? 

    <%# %>表示绑定的数据源;<% %>是服务器端代码块

72.如何理解.net中的垃圾回收机制

    .NET中的垃圾回收机制是引用程序对内存的回收和释放。当每次用new关键字创建一个对象时,运行库都要从托管堆中为其分配内存,因为空间是有限的,最终垃圾回收机制是要回收不用的内存的。已释放内存,重新使用。 

73.Heapstack的差别

    Heap是堆,空间是由手动操作分配和释放的,它的存储区很大的自由存储区。 

    Stack是栈,是由是操作系统自动分配和释放的,栈上的空间是有限的。程序在编译期间变量和函数分配内存都是在栈上进行的,且在运行时函数调用时的参数的传递也是在栈上进行的。 

74.try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code 不会被执行,什么时候被执行,在return前还是后?     

会执行,在return前执行。 

75.如何处理几十万条并发数据?     

用存储过程或事务。取得最大标识的时候同时更新..注意主键不是自增量方 式这种方法并发的时候是不会有重复主键的..取得最大标识要有一个存储过程来获取

76.ASP.NETASP相比,主要有哪些进步? 

   答:asp解释形,aspx编译型,性能提高,有利于保护源码。 

77.DataReaderDataSet的异同 

    DataReader使用时始终占用SqlConnection,在线操作数据库..任何对SqlConnection的操作都会引发DataReader的异常..因为DataReader每次只在内存中加载一条数据,所以占用的内存是很小的..因为DataReader的特殊性和高性能.所以DataReader是只进的..你读了第一条后就不能再去读取第一条了.. 

    DataSet则是将数据一次性加载在内存中.抛弃数据库连接..读取完毕即放弃数据库连接..因为DataSet将数据全部加载在内存中.所以比较消耗内存...但是确比DataReader要灵活..可以动态的添加行,,数据.对数据库进行回传更新操作

78.存储过程和sql语句的优缺点 

优点:1)提高性能,减少网络传输,节约时间。2)减少网络流量。存储过程位于服务器上,调用的时候只须传递存储过程的名称以及参数,不用每次访问都传递很长的sql语句。3)安全性。减少sql注入式攻击。4)可维护性高。更新存储过程通常比更改、测试以及重新部署程序集需要较少的时间和精力。 

缺点:1.交互性差。2.可移植性差 

79.怎样实现多态?  

 1.通过对象直接调用成员函数时,始终默认使用该对象的类的成员函数(除非用::显示指定类名)。 

 2.通过指向对象的指针或引用调用成员函数时:如果该函数是实函数,则调用该指针或引用的类的成员函数;如果该函 

3.数是虚函数,则调用该指针或引用指向的对象的类的成员函数。

 80.何时必须声明一个类为抽象类? 

    当这个类中包含抽象方法时,或是该类并没有完全实现父类的抽象方法时。 

81.为什么不能指定接口中方法的修饰符? 

    接口中的方法用来定义对象之间通信的契约,指定接口中的方法为私有或保护没有意义。他们默认为公有方法。 

82.虚函数的用法 

 1)virtual指明一成员函数为虚函数,virtual仅用于类的定义里,在类外可不加此关键字     2)一个类的成员函数被定义为虚函数时,子类该函数仍保持虚函数特征

 3)子类覆盖此函数时,定义里可不加virtual关键字,但函数声明要和基类的完全一致!且此声明是必须的

    4)不是纯虚函数时,父类的虚函数必须要实现而若将父类的虚函数设定为纯虚函数时,子类必需要覆盖之而且必须要实现之

83.解释virtualsealedoverrideabstract的区别 

virtual声明虚方法的关键字,说明该方法可以被重写; sealed说明该类不可被继承;override重写基类的方法;abstract声明抽象类和抽象方法的关键字,抽象方法不提供实现,由子类实现,抽象类不可实例化。 

84.能够将非静态的方法覆写成静态方法吗?     

不能,覆写方法的签名必须与被覆写方法的签名保持一致,除了将virtual改为override 

85.refout区别? 

1、使用ref型参数时,传入的参数必须先被初始化。对out而言,必须在方法中对其完成初始化。

2、使用refout时,在方法的参数和执行方法时,都要加RefOut关键字。以满足匹配。

3out适合用在需要retrun多个返回值的地方,而ref则用在需要被调用的方法修改调用者的引用的时候。 

86.如何在C#中实现继承?C#支持多重继承吗? 

在类名后加上一个冒号,再加上基类的名称。不支持。可以用接口来实现。 

87.私有成员会被继承吗? 

    会,但是不能被访问。所以看上去他们似乎是不能被继承的,但实际上确实被继承了。 

88.C#中,string str = null  string str = “” 的区别。 

    string str = null 是不给他分配内存空间,string str = "" 给它分配长度为空字符串的内存空间。 

89.delegate是引用类型还是值类型?enumint[]string呢? 

    delegate引用类型,enum值类型,int[]引用类型,string引用类型。 

90.请指出C#中是否有下列关键字?

virtualsealedabstractimportasingotofinalConstsignedString 

没有的关键字:importfinalConstsignedString 

91.objectC#的关键字吗?请指出C#中有哪些类型关键字,如intfloat。(提示,写得越多越好)。 

是,objectintuintlongulongshortushortbytesbytecharfloatdoubledecimalbool,如回答:enumstructclassdelegate也算对。 

92.62-63=1 等式不成立,请移动一个数字(不可以移动减号和等于号),使得等式成立,如何移动? 

62移动成26次方 

93.String s = new String("xyz");创建了几个String Object? 

两个对象,一个是“xyx,一个是指向“xyx”的引用对象。 

94.命名空间System.Data的作用?                       

主要包括了组成ADO.NET体系结构的类 

95.什么叫泛型 (generics) 

使用泛型,可以定义使用类型参数定义的类和/或方法。当客户端代码实例化类型时,会指定一个特定的类型作为参数。 

96.extern是什么意思? 

extern 修饰符用于声明由程序集外部实现的成员函数 经常用于系统API函数的调用(通过 DllImport )。注意,和DllImport一起使用时要加上 static 修饰符 也可以用于对于同一程序集不同版本组件的调用(用 extern 声明别名) 不能与 abstract 修饰符同时使用。

97.abstract 可以和 virtual 一起使用吗?可以和 override 一起使用吗?    

abstract 修饰符不可以和 staticvirtual  override 修饰符一起使用  

98.params 有什么用? 

params 关键字在方法成员的参数列表中使用,为该方法提供了参数个数可变的能力 它在只能出现一次并且不能在其后再有参数定义,之前可以 

99.C#是否可以对内存直接进行操作? 

C#是可以对内存进行直接操作的,虽然很少用到指针,但是C#是可以使用指针的,在用的时候需要在前边加unsafe,,在.net中使用了垃圾回收机制(GC)功能,它替代了程序员,不过在 C#中不可以直接使用finalize方法,而是在析构函数中调用基类的finalize()方法。 

100.怎么理解封装性?举例说明。 

    封装是指用一个框架将数据和代码组合在一起,形成一个对象。一般情况下,数据都是被封装起来的,不能直接被外部访问。C#中,类是支持对象封装的工具,对象则是封装的基本单元。举例略。

六、编程题

1、求数组中的最大值和最小值并输出。 

static void Main(string[] args)         

int max, min; 

int[] a = new int[10] { 1, 34, 5, 9, 23, 59, -9, 0, 40, 22 };             

max = a[0];             

min = a[0]; 

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

{                 

if (max < a[i])                     

max = a[i];                 

if (min > a[i])                     

min = a[i];             

Console.WriteLine("最大值为{0}", max);             

Console.WriteLine("最小值为{0}", min);             

Console.ReadLine();         } 

2、声明一个数组,将一年中的12个月的英文存入其中。当用户输入月份的数字时,打印出月份的英文。若输入0则退出,并提供输入信息不合法提示,如下: 

请输入月份数,若输入0则退出:(输入2,显示February

February 

static void Main(string[] args)         

string[] month ={ "Jan", "Feb", "Mar", "Apri", "May", "June", "July", "Aug", "Sep", "Oct", "Nov", "Dec" }; 

Console.WriteLine("请输入月份:");

int m = Convert.ToInt32(Console.ReadLine());            

if (m == 0)             

Console.WriteLine("月份出错");             

}            

else 

Console.WriteLine(month[m - 1]);           

Console.ReadLine();        

}

3、从键盘上输入一个整数,判断其奇偶性。 

static void Main(string[] args)         

{            

int t = Convert.ToInt32(Console.ReadLine());             

if (t % 2 == 0)                 

Console.WriteLine("输入的数是偶数");             

else                 

Console.WriteLine("输入的数是奇数");             

Console.ReadLine(); 

4、判断从键盘上输入字符串的首字符是字母、数字或是其它字符。 

static void Main(string[] args)         

{            

string s = Console.ReadLine();             

char[] c = s.ToCharArray();             

if (c[0] >= '0' && c[0] <= '9')                 

Console.WriteLine("首字符为数字!");             

else                 

if ((c[0] >= 'a' && c[0] <= 'z') || (c[0] >= 'A' & c[0] <= 'Z'))                     

Console.WriteLine("首字符为字母!");                 

else                     

Console.WriteLine("首字符为其它字符!");             

Console.ReadLine();        

5、使用嵌套if实现如下函数y=1      x>00      x=0-1   x<0

static void Main(string[] args) 

        {             

int x = Convert.ToInt32(Console.ReadLine());             

int y = 0;             

if (x >= 0)                 

if (x > 0)                     

y = 1;                 

else 

y = 0;            

else                 

y = -1;             

Console.WriteLine("y的值是:{0}", y);            

Console.ReadLine();

}

6、输入两个数和运算符,根据运算符进行相应的操作并输出结果。 

static void Main(string[] args) 

        {   

string op;             

double d1, d2, result = 0;             

Console.WriteLine("请输入第1个操作数:");    //将从键盘上输入的字符串转换成double类型             

d1 = Convert.ToDouble(Console.ReadLine());             

Console.WriteLine("请输入运算符:");             

op = Console.ReadLine();             

Console.WriteLine("请输入第2个操作数:");             

d2 = Convert.ToDouble(Console.ReadLine());             

switch (op)             

{                 

case "+": result = d1 + d2; 

break;                 

case "-": result = d1 - d2; 

break;                 

case "*": result = d1 * d2; 

break;                 

case "/": result = d1 / d2; 

break;                 

default: Console.WriteLine("输入的不是合法的运算符"); 

break;             

}             

Console.WriteLine("{0}{1}{2}={3}", d1, op, d2, result);             

Console.ReadLine();         

}

7、使用while语句求1100中的奇数和。 

static void Main(string[] args) 

        {             

int i=1, sum = 0;            

while (i <= 100)             

{                 

sum += i;                 

i+=2;             

}             

Console.WriteLine("1-100的奇数和为{0}", sum);             

Console.ReadLine();         

8、使用dowhile语句求1100中的奇数和。   

static void Main(string[] args)         

{             

int i = 1, sum = 0; 

do             

{                 

sum += i;                 

i += 2;             

while (i <= 100); 

Console.WriteLine("1-100的奇数和为{0}", sum);             

Console.ReadLine();         

9、使用for循环实现1-100中的奇数和。 

static void Main(string[] args) 

        {             

int i , sum = 0;             

for (i = 1; i <= 100; i += 2)                 

sum += i;             

Console.WriteLine("1-100的奇数和为{0}", sum);             

Console.ReadLine();         

10、使用for循环输出乘法小九九。 

static void Main(string[] args)         

{              

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

{                  

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

{       

Console.Write(i.ToString() + "*" + line.ToString() + "=" + (i * line).ToString() + " ");                 

}                 

Console.WriteLine();             

            Console.ReadLine();         

11、使用foreach语句实现求数组中元素的最大值。 

static void Main(string[] args)        

{             

int[] a ={ 12, 32, 4, 6, 98, 35, 78, 69 };            

int max = a[0];            

foreach (int x in a)            

{                 

if (x > max)                    

max = x;            

}             

Console.WriteLine("数组中的最大值为{0}", max);            

Console.ReadLine();        

}

12、求2个数的最大公约数。

static void Main(string[] args)         

{             

int m, n, i, j, max = 0;             

Console.WriteLine("请输入m的值:");             

m = int.Parse(Console.ReadLine());             

Console.WriteLine("请输入n的值:");             

n = int.Parse(Console.ReadLine());             

if (m < n)                 

i = m;             

else                 

i = n;             

for (j = i; j > 0; j--)                 

if (m % j == 0 && n % j == 0)                 

{                     

max = j;                     

break;                 

}             

Console.WriteLine("最大公约数是:{0}", max);             

Console.ReadLine();         

13、求2个数的最小公倍数。 

static void Main(string[] args)         

{             

int m, n, i, j, min = 0;             

Console.WriteLine("请输入m的值:");             

m = int.Parse(Console.ReadLine());             

Console.WriteLine("请输入n的值:");             

n = int.Parse(Console.ReadLine());             

if (m > n)                 

i = m;             

else                 

i = n;             

for (j = i;    ; j++)                 

if (j % m  == 0 && j % n == 0)                

{                     

min = j;                    

break;                 

}            

Console.WriteLine("最小公倍数是:{0}", min);             

Console.ReadLine();         

14、输出1-100中所有不能被3整除的数。 

static void Main(string[] args)         

{

for (int i = 1; i <= 100; i++)             

{                 

if (i % 3 != 0)                     

continue;                 

else                     

Console.Write("   "+i);             

}             

Console.ReadLine();         

}

15、求1-100的和,但不包括个位数为3的数。 

static void Main(string[] args)         

{             

int sum = 0;             

for (int i = 1; i <= 100; i++)             

{                 

if (i % 10 == 3)                     

continue;                 

else                     

sum += i;             

}             

Console.WriteLine("和是" + sum);             

Console.ReadLine();         

}

16、从键盘输入一个数,输出它的绝对值。 

static void Main(string[] args)         

{             

Console.WriteLine("从键盘上输入一个数");             

int m = Convert.ToInt32(Console.ReadLine());            

if (m % 2 == 0)                 

Console.WriteLine("输入的是偶数");             

else                 

Console.WriteLine("输入的是奇数");             

Console.ReadLine();         

}

17、编程实现显示100200之间不能被3整除的数的程序。 

static void Main(string[] args)         

{             

for (int i = 100; i <= 200; i++)             

{                

if (i % 3 != 0)                     

Console.Write(i + "   ");             

}             

Console.ReadLine();         

}

18、编程实现判断某一年是否是闰年。 

static void Main(string[] args)         

{             

int year=Convert.ToInt32(Console.ReadLine ());             

if (year % 400 == 0 || year % 4 == 0 && year % 100 != 0)                 

Console.WriteLine("是闰年");             

else                 

Console.WriteLine("不是闰年");             

Console.ReadLine();         

19、编程实现对3个数降序排列。 

static void Main(string[] args)         

{              

int a = 12, b = 10, c = 18;             

int t;             

if (a > b)             

{                 

t = a; 

a = b; 

b = t;             

}             

if (a > c)             

{                 

t = a; 

a = c; 

c = t;             

}             

if (b > c)             

{                 

t = b; 

b = c; 

c = t;             

}             

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

Console.ReadLine();         

20、有十个数放入数组中,用户输入一个数值,找出这个数值在本数值中的序号,如果没有输出“不存在”! 

static void Main(string[] args)         

{             

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

Console.WriteLine("从键盘上输入一个数:");             

int t = Convert.ToInt32(Console.ReadLine());             

int i;             

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

{                 

if (t == a[i])                     

break;             

if (i == 10)                 

Console.WriteLine("不存在这个数");            

else                 

Console.WriteLine("所在位置是{0}", i + 1);

Console.ReadLine();        

}

21、键盘输入十个数值,统计输出大于等于平均数的数值。 

static void Main(string[] args)         

{             

int[] a = new int[10];             

int sum = 0;

double avg;             

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

{                 

a[i] = Convert.ToInt32(Console.ReadLine());                 

sum += a[i];             

}             

avg = sum / 10.0;             

Console.WriteLine("平均值是{0}", avg);             

Console.WriteLine("大于平均值的数如下:");             

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

if (a[i] > avg)                    

Console.WriteLine(a[i]);             

Console.ReadLine();         

22、已知有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();         

}

23、输出1-100 之间不能被6整除的全部数字。 

static void Main(string[] args) 

{             

for(int i=1;i<=100;i++)                 

if ( i % 6 != 0)                 

{                     

Console.Write(i+"\t");                 

}             

Console.ReadLine();         

24、编程输出1100之间能够被3整除但不能被5整除的数,并统计共有多少个这样的数。 

static void Main(string[] args)         

{             

int count = 0;             

for(int i=1;i<=100;i++)                 

if (i % 3 == 0 && i % 5 != 0)                 

{                     

Console.Write(i+"\t");                     

count++;                 

}             

Console.WriteLine();             

Console.WriteLine("共有{0}", count);             

Console.ReadLine();         

}  

25、编程求100以内能够被7整除的最大自然数。 

static void Main(string[] args)         

{             

for(int i=100;i>0;i--)                 

if (i % 7 == 0)                 

{                     

Console.WriteLine(i);                     

break;                 

}             

Console.ReadLine();         

}  

26、求斐波那契(Fibonacci)数列的第 10 项,已知该数列的前两项都为 1,即 F(1)=1F(2)=1 而后各项满足:F(n)=F(n-1)+F(n-2) 

static void Main(string[] args)         

{             

Console.WriteLine("10项是" + f(10));                         

Console.ReadLine();         

static int f(int n)

{             

int r;             

if (n == 1 || n == 2)                

r= 1;            

else                 

r= f(n - 1) + f(n - 2);            

return r;        

}

27、设计一个程序使用person类,其类中包含如下信息:姓名:name;血型:blood;创建一个person对象p如下:person p=new person(“江涛”,AB);然后,使用printname方法将姓名显示出来。使用printblood方法将血型显示出来。 

class Program     

{               

static void Main(string[] args)         

{             

person p = new person("江涛", "AB");             

p.printname();             

p.printblood();             

Console.ReadLine();         

}           

}     

class person     

{         

string name, blood;         

public person(string name, string blood)         

{             

this.name = name;             

this.blood = blood;                     

}         

public void printname()         

{             

Console.WriteLine("名字是:" + name);         

}         

public void printblood()         

{             

Console.WriteLine("血型是:" + blood);         

28、创建一个Circle类,两个方法分别求圆的面积和周长。并在主函数中调用。 

class Program     

{         

static void Main(string[] args)         

{             

Test t = new Test(2); 

Console.WriteLine("周长是" + t.GetCircumference());             

Console.WriteLine("面积是" + t.GetArea());             Console.ReadLine();         

}     

public class Test     

{         

double r;         

public Test(double r)         

{             

this.r = r;         

}         

public double GetCircumference()         

{             

return Math.PI * r * 2;         

}         

public double GetArea()         

{             

return Math.PI * r * r;         

}     

29、编写Test类,包含GetCircumferenceGetArea方法,分别求矩形形的周长和面积,Main中根据键盘输入的长和宽,调用两个方法,最终显示结果。 

class Program     

{         

static void Main(string[] args)         

{             

Test t = new Test(2, 3);             

Console.WriteLine("周长是" + t.GetCircumference());             

Console.WriteLine("面积是" + t.GetArea());             

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;         

}     

30、编写一个信息类information。使用shezhi方法设置会员的姓名、年龄、学校信息。使用xianshi方法将会员的姓名、年龄、学校信息显示出来。 

class Program     

{               

static void Main(string[] args)         

{             

information f = new information();             

f.shezhi("张三", "沈阳理工", 20);            

f.xianshi();             

Console.ReadLine();         

}           

}     

class information     

{         

string name, school;         

int age;         

public void shezhi(string name, string school, int age)         

{             

this.name = name;             

this.school = school;             

this.age = age;         

}         

public void xianshi()         

{             

Console.WriteLine("姓名是:{0}", name);             

Console.WriteLine("学校是:{0}", school);             

Console.WriteLine("年龄是:{0}", age);         

}      

}

 31、编程计算如图所示圆面积的窗体,其中有两个标签控件label1label2,两个文本框控件textBox1textBox2,一个命令按钮控件button1。在textBox1用于输入圆半径,textBox2用于输出圆面积。计算功能由命令按钮实现。

private void button1_Click(object sender, EventArgs e)         

{             

double r = Convert.ToDouble(textBox1.Text);             

double area = Math.PI * r * r;             

textBox2.Text = area.ToString();         

 32、编写一个程序,输入梯形的上底,下底和高,输出梯形的面积。要求编写成Window应用程序。

private void button1_Click(object sender, EventArgs e)         

{             

double l = Convert.ToDouble(textBox1.Text);             

double w = Convert.ToDouble(textBox2.Text);             

double h = Convert.ToDouble(textBox3.Text);             

double area = (l + w) * h / 2.0;             

label4.Text = "梯形面积是" + area.ToString();         

}

37、摄氏温度和华氏温度之间的转换。要求:编写Windows应用程序,使用Label,TextBox,Button控件,实现摄氏温度和华氏温度的转换。

 摄氏温度C和华氏温度F之间的转换公式为:F=9/5C+32  C=5/9(F-32)

 

double c,c1,f,f1; 

private void button1_Click(object sender, EventArgs e)      

if (textBox1.Text == "")            

MessageBox.Show("请输入摄氏温度");         

else         

c = Convert.ToDouble(textBox1.Text);            

c1=9.0 / 5.0 * c + 32;            

textBox3.Text =c1 .ToString ()          

}      

private void button2_Click(object sender, EventArgs e)      

if (textBox2.Text == "")            

MessageBox.Show("请输入华氏温度");         

else         

{            

f = Convert.ToDouble(textBox2 .Text );            

f1 = 5.0 / 9.0 * (f - 32);            

textBox4 .Text =f1 .ToString ();         

}      

}

38、编写程序,统计4*5二维数组中奇数的个数和偶数的个数。 

static void Main(string[] args)         

{             

int[,] a = new int[4, 5] { { 1, 2, 3, 4, 5 }, { 6, 7, 8, 9, 0 }, { 11, 12, 13, 14, 15 }, { 16, 17, 18, 19, 20 } };             

int m = 0, n = 0;             

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

for (int j = 0; j < 5; j++)                     

if (a[i, j] % 2 == 0)                         

m++;                     

else

n++;             

Console.WriteLine("奇数个数是{0},偶数个数是{1}", n, m);            

Console.ReadLine();        

}

39、创建一个窗体,该窗体包括一个可用来输入数字的文本框,当用户单击按钮后,在标签中显示一条消息,指出该数字是否位于0100之间。 

private void button1_Click_1(object sender, EventArgs e)         

{             

int m = Convert.ToInt32(Console.ReadLine());             

if (m >= 0 && m <= 100)                 

label1.Text = "该数在0-100之间";             

else                 

label1.Text = "该数不在0-100之间";          

}

42、在窗体上建立一个标签,一个文本框,一个命令按钮,标签的text属性设置为“VC#程序设计”,设计一个程序,单击命令按钮,将标签上的信息显示在文本框中。

 

private void button1_Click_1(object sender, EventArgs e)         

{             

textBox1.Text = label1.Text;          

43、创建一个类Test,它存储一个int数据成员MyNumber,并给该数据成员创建属性,当该数据成员被存储时,将其乘以100;当其被读取时,将其除以100,并在主函数中验证。

class Program     

{               

static void Main(string[] args)         

{             

Test t = new Test();             

t.Number = 10;             

Console.WriteLine(t.Number);             

Console.ReadLine();         

}    

}     

class Test     

{        

int MyNumber;         

public int Number         

{             

get { return MyNumber / 100; }             

set { MyNumber = value * 100; }         

}     

}

 44、写出设计以下程序的步骤,程序功能是:单击按钮,计算两个编辑框中数的和,并将结果用MessageBox显示出来。窗体布局如下:

private void button1_Click_1(object sender, EventArgs e)         

double x=0.0;     

string num1,num2;     

num1=textBox1.Text.Trim();     

num2=textBox2.Text.Trim();     

x=Double.Parse(num1)+Double.Parse(num2);     

MessageBox.Show(x.ToString());  

45、编写A 1类,包含Sum方法,用来返回两个整数的积,主函数中调用该方法并将结果输出。 

class Program     

{        

static void Main(string[] args)         

{             

A1 a = new A1(); 

int sum=a.Sum(c,b);            

Console.WriteLine(sum);             

Console.ReadLine();         

}     

}     

class A1     

{         

public int Sum(int x,int y)         

{             

return x* y;          

}     

}

46、编写A 1类,包含Sum方法,用来返回两个整数的和,主函数中调用该方法并将结果输出。 

class Program     

{        

static void Main(string[] args)         

{             

A1 a = new A1();             

int sum=a.Sum(c,b);           

Console.WriteLine(sum);             

Console.ReadLine();         

}     

}     

class A1     

{         

public int Sum(int x,int y)         

{             

return x + y;          

}     

}

47、编写Test类,包含nameageaddr,创建一个Test t=new Test(“张三”,22,”抚顺”);使用Display方法,将姓名、年龄和住址输出,并在Main中调用显示。 

class Program     

{         

static void Main(string[] args)         

{             

Test t = new Test("张三", 22, "抚顺");             

t.Display();                         

Console.ReadLine();         

}     

}     

public class Test

{         

string name, addr;        

int age;         

public Test(string name, int age, string addr)        

{             

this.name = name;            

this.addr = addr;            

this.age = age;        

}         

public void Display()        

{              

Console.WriteLine("姓名是" + name);             

Console.WriteLine("年龄是" + age);            

Console.WriteLine("地址是" + addr);        

}    

}

48、编写Test类,包含average方法,实现求数组中所有元素的平均值,Main中调用方法,显示出平均值。 

class Program     

{         

static void Main(string[] args)         

{             

Test t = new Test();            

int[] a = new int[] { 1, 3, 4, 5, 6, 7 };             

t.average(a);             

Console.ReadLine();         

}     

}     

public class Test     

{         

public void average(int[] a)         

{             

double sum = 0;             

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

{                 

sum += a[i];

}                         

Console.WriteLine("平均值是" + sum / a.Length);         

}     

49、编写Test类包含Max,实现找出数组元素中最大值,并在Main中调用Max方法,最终显示的结果。 

class Program     

static void Main(string[] args)         

Test t = new Test();             

int[] a = new int[] { 1, 34, 6, 7, 9, 45 };             

t.Max(a);             

Console.ReadLine();         

}     

public class Test     

{

public void Max(int[] a)         

{

int max = a[0];             

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

{                 

if (a[i] > max)                    

 max = a[i];             

}             

Console.WriteLine("最大值是" + max);         

}     

}

50、编写Test类包含Min方法,实现找出数组元素中最小值,并在Main中调用Min方法, 显示的结果。 

class Program    

{         

static void Main(string[] args)        

{             

Test t = new Test();             

int[] a = new int[] { 1, 34, 6, 7, 9, 45 };            

t.Min(a);              

Console.ReadLine();        

}    

}     

public class Test    

{         

public void Min(int[] a)        

{             

int min = a[0];             

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

{                 

if (a[i] < min)                    

min = a[i];            

}             

Console.WriteLine("最小值是" + min);

}

}

  • 8
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值