《C#程序设计》复习题(student)

更新时间:2024-06-17 08:39:01 阅读量: 综合文库 文档下载

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

一.选择

1.下面几个函数,()是重载函数

1.void f1(int) 2.int f1(int) 3.int f1(int,int) 4.float k(int)

(A)四个全 (B)1 和 4 (C)2 和 3 (D)3和4

2.异常是在什么时候发生的?

(A)编写程序时 (B)编译时 (C)运行时 (D)最终用户发出请求时

3.如果一个类命名为mywidger,则mywidger的默认构造函数是哪一个? (A) new mywidger(); (C)public class mywidger

(B) public mywidger() {}; ( D) mywidger{};

4.下列说法哪个正确?

(A) 不需要定义类,就能创建对象 (C)属性可以定义为抽象的 (B) 对象中必须有属性和方法 (D)常量不能作为类成员

5.关于类成员访问控制权限正确的是

(A)public 能被所有类访问 (C)private 能被同一文件中的其它类访问 (B)protected能被所有类访问 (D)internal能被所有类访问

6.构造函数何时被调用?

(A) 创建对象时 (B)类定义时 (C)使用对象的方法时 (D) 使用对象的属性时

7.int[][] myArray3=new int[3][]{new int[3]{5,6,2},new int[5]{6,9,7,8,3},new int[2]{3,2}}; myArray3[2][2]的值是()。

(A)9 (B)2 (C)6 (D)越界

8.抽象方法

(A)可以有方法体 (C)可以出现在非抽象类中

(B)是没有方法体的方法 (D)抽象类中的方法都是抽象方法

9.关于继承的说法正确的是: (A) 子类将继承父类所有的成员 (B) 子类将继承父类的非私有成员 (C) 子类只继承父类public成员 (D) 子类只继承父类的方法,而不继承属性

1

10.下列说法哪个正确?

(A) 允许一个子类有多个父类

(B) 某个类是一个类的子类,它仍有可能成为另一个类的父类 (C) 一个父类只能有一个子类 (D) 继承关系最多不能超过4层

11.关于构造函数的说法哪个正确?

(A) 一个类只能有一个构造函数

(B) 一个类可以有多个不同名的构造函数 (C) 构造函数与类同名 (D) 构造函数不能被重载

12.下面错误很可能位于哪一行?

My_prog.cs(35,6):error cs1010: Newline in constant (A)35 (B)6 (C)1010 (D)没有指出

13.关于接口哪个正确?

(A) 实现一个接口必须实现接口的所有方法 (B) 一个类可以实现多个接口 (C) 接口间不能有继承关系 (D) 接口和抽象类是同一回事

14.下列选项中,()是引用类型。

(A)enum类型 (B)struct类型 (C)string类型 (D)int类型

15.abstract class BaseClass

{ public virtual void MethodA() { Console.WriteLine(\ }

class Class1: BaseClass { public override void MethodA() { Console.WriteLine(\ }

class Class2: Class1 { public void MethodB() {} }

class MainClass

2

{ public static void Main(string[] args) { BaseClass o = new Class2(); o.MethodA(); } }

请问,此程序输出结果是:

(A) BaseClass (B) BassClass Class1 (C) Class1 (D) Class1 BassClass

16.以下的C#代码,试图用来定义一个接口: public interface IFile {

int A;

int delFile() {

A = 3; }

void disFile(); }

关于以上的代码,以下描述错误的是( ) (A)以上的代码中存在的错误包括:不能在接口中定义变量,所以int A代码行将出现错误; (B)以上的代码中存在的错误包括:接口方法delFile是不允许实现的,所以不能编写具体的实现函数;

(C)代码void disFile();声明无错误,接口可以没有返回值; (D)代码void disFile();应该编写为void disFile(){};

17.以下哪一个命名空间是在进行Sql Server数据库访问时必须加载的? (A) System.Data.Odbc (B) System.Data.SqlClient (C) System.Data.OleDb (D) System.Data.SqlTypes

18.以下哪一种参数是设置非Windows集成安全下的数据库连接? (A) Trusted_Connection=Yes (B) user id=sa;password=111 (C) Integrated Security=True (D) Integrated Security=SSPI

19.数据库连接中的参数设置Connection Timeout=10表示 (A) 设置数据库连接超时为10秒钟 (B) 设置数据库连接超时为10毫秒

3

(C) 设置数据库连接的用户最多为10个 (D) 设置数据库连接的次数不能超过10次

20.SQL语句“delete from department”,需要SqlCommand对象的哪一个方法在执行? (A) ExecuteNonQuery() (B) ExecuteScalar() (C) ExecuteReader() (D) ExecuteXmlReader()

21.SQL语句“select count(*) from employee”,需要SqlCommand对象的哪一个方法在执行?

(A) ExecuteNonQuery() (B) ExecuteScalar() (C) ExecuteReader() (D) ExecuteXmlReader()

22.SQL语句“Create Table department(id integer,name char(10))”,需要SqlCommand对象的哪一个方法在执行?

(A) ExecuteNonQuery() (B) ExecuteScalar() (C) ExecuteReader() (D) ExecuteXmlReader()

23.让控件不可用的属性是以下哪一个 (A) AllowDrop (B) Enabled (C) Bounds (D) Visible

24.让控件不可见的属性是以下哪一个? (A) Cursor (B) Enabled (C) Dock (D) Visible

25.设置控件布局位置的属性是以下哪一个? (A) DisplayRectangle (B) FlatStyle (C) Dock (D) Location C#程序设计试卷 一、 选择题(每小题3分,共15分) 4

1.下面是几条定义类的语句,只能被继承的类是( ) A.class student B.public class student C.abstract class student D.sealed class student 2.如果要在窗体中始终显示系统的当前时间,应该使用的控件是( ) A.CheckBox B.Panel C.RadioButton D.Timer 3.下面对C#中类的构造函数描述正确的是( ) A.与方法不同的是,构造函数只有void这一种返回类型 B.构造函数如同方法一样,需要人为调用才能执行其功能 C.构造函数一般被声明成private型 D.在类中可以重载构造函数,C#会根据参数匹配原则来选择执行合适的构造函数 4.下面有关类的继承的说法正确的是( ) A.派生类的成员应该与基类的成员一致,不能为派生类增加新成员 B.在派生类中可通过隐藏继承成员,来删除基类的成员 C.在描述类的继承关系时,父类与子类是基类与派生类的另一种说法 D.所有的类成员都可以被继承 5.下面有关事件的描述中,正确的是( ) A.方法一旦被事件预订后,就不能被撤消 B.事件的预订一次只能预订一个方法 C.创建事件的关键字是delagate 5

d)int类型

14.下列选项中,(c)是引用类型。

a)enum类型 b)struct类型 c)string类型 d)int类型

15.下列关于构造函数的描述正确的是(c)

a)构造函数可以声明返回类型。 b)构造函数不可以用private修饰 c)构造函数必须与类名相同 d)构造函数不能带参数

16.以下是一些C#中的枚举型的定义,其中错误的用法有(a)

a)public enum var1{ Mike = 100, Nike = 102, Jike } b)public enum var1{ Mike = 100, Nike, Jike } c)public enum var1{ Mike=-1 , Nike, Jike } d)public enum var1{ Mike , Nike , Jike }

17.接口是一种引用类型,在接口中可以声明(a),但不可以声明公有的域或私有的成员变量

a)方法、属性、索引器和事件; b)方法、属性信息、属性; c)索引器和字段; d)事件和字段;

18.Winform中,关于ToolBar控件的属性和事件的描述不正确的是(d)

a)Buttons属性表示ToolBar控件的所有工具栏按钮

b)ButtonSize属性表示ToolBar控件上的工具栏按钮的大小,如高度和宽度

c)DropDownArrows属性表明工具栏按钮(该按钮有一列值需要以下拉方式显示)旁边是否显示下箭头键

d)ButtonClick事件在用户单击工具栏任何地方时都会触发

16

19.如果将窗体的FormBoderStyle设置为None,则(B)

a)窗体没有边框并不能调整大小; b)窗体没有边框但能调整大小; c)窗体有边框但不能调整大小; d)窗体是透明的;

20.如果要将窗体设置为透明的,则( b)

a)要将FormBoderStyle属性设置为None; b)要将Opacity属性设置为小于100%得值; c)要将locked 属性设置为True; d)要将 Enabled属性设置为True; 21.下面描述错误的是(D ) a)窗体也是控件; b)窗体也是类;

c)控件是从窗体继承来的; d)窗体的父类是控件类;

22.声明一个委托public delegate int myCallBack(int x); 则用该委托产生的回调方法的原型应该是(b )

a)void myCallBack(int x) ; b)int receive(int num) ; c)string receive(int x) ; d)不确定的;

四、分析题(24分) 1、写出程序的输出结果 class Class1 {

private string str = Class1.str; private int i = 0;

static void StringConvert(string str) { str = string being converted.; }

static void StringConvert(Class1 c) { c.str = string being converted.; }

17

static void Add(int i) { i++; }

static void AddWithRef(ref int i) { i++; }

static void Main() { int i1 = 10; int i2 = 20; string str = str;

Class1 c = new Class1(); Add(i1);

AddWithRef(ref i2); Add(c.i);

StringConvert(str); StringConvert(c);

Console.WriteLine(i1); Console.WriteLine(i2); Console.WriteLine(c.i); Console.WriteLine(str); Console.WriteLine(c.str); } }

(考查值引用和对象引用) 10 21 0 str

string being converted.

评分标准:答对一点得2分,满分8分。

7.写出程序的输出结果

public abstract class A {

public A() {

Console.WriteLine('A');

18

}

public virtual void Fun() {

Console.WriteLine(A.Fun()); } }

public class B: A {

public B() {

Console.WriteLine('B'); }

public new void Fun() {

Console.WriteLine(B.Fun()); }

public static void Main() {

A a = new B(); a.Fun(); } } A B A.Fun()

(考查在继承类中构造函数, 以及new 方法, )

8. 写出程序的输出结果: public class A

public virtual void Fun1(int i) {

Console.WriteLine(i); }

public void Fun2(A a)

19

{

a.Fun1(1); Fun1(5); } }

public class B : A {

public override void Fun1(int i) {

base.Fun1 (i + 1); }

public static void Main() {

B b = new B(); A a = new A(); a.Fun2(b); b.Fun2(a); } }

2 5 1 6

五、编程题

1、一列数的规则如下: 1、1、2、3、5、8、13、21、34...... 求第30位数是多少, 用递归算法实现。(C#语言) public class MainClass {

public static void Main() {

Console.WriteLine(Foo(30)); }

public static int Foo(int i) {

if (i <= 0) return 0;

20

else if(i > 0 && i <= 2) return 1;

else return Foo(i -1) + Foo(i - 2); } }

三、判断题

1.不能指定接口中方法的修饰符。 答:对

3.在同一行上可以书写多条语句,每条语句间用分号分隔。 答案:对

4.在数据类型转化时,只能通过类型转换关键字或Convert类实现。 答案:错

5.在定义数组时不允许为数组中的元素赋值。 答案:错

6.定义枚举时至少为其中的一个枚举成员赋值。 答案:错

7.接口与类同样是面向对象程序设计的核心,是创建对象的模版。 答案:对

8.委托是将方法作为参数传递给另一方法的一种数据类型。事件与委托没有关系。 答案:错

9.如果要实现重写,在基类的方法中必须使用virtual关键字,在派生类的方法中必须使用overrides关键字。 答案:错

10.在C#类中,this代表了当前类本身。 答案:错

11.静态类和实例类的区别在于:静态类不需要初始化即可直接使用,实例类需要进行实例化,生成对象才可使用。 答案:对

12.用Interval属性设置Timer控件Tick事件发生的时间间隔单位为秒。 答案:错

13.设置图片框控件的SizeMode属性为StretchImage时,图片可以按图片框的大小比例缩放显示。 答案:对

14.可以重写私有的虚方法。 答:错

15.在C#中,所有类都是直接或间接地继承System.Object类而得来的。

21

答案:对

16.在C#中,任何方法都不能实现多继承。 答案:错

17.在C#中,子类不能继承父类中用private修饰的成员变量和成员方法。 答案:对

18.菜单项标题中有含有带下划线的字符,这是快捷键。 答案:错

19.可以阻止某一个类被其他类继承。 答:对

20.一个窗体中可以有多个弹出式菜单。 答案:对

21.在C#Net中,窗体父子关系通过“属性”窗口来创建。 答案:对

22.DataSet对象中的表可以和数据库中的表同名,也可以不同名。 答案:对

23.Command对象可以执行SQL语句。 答案:对

22

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

Top