软件工程专业C#程序设计基础 课程期末试卷

举报
tea_year 发表于 2022/04/27 22:45:56 2022/04/27
【摘要】 软件职业技术学院2008 ~2009  学年 第 2 学期级软件工程专业C#程序设计基础 课程期末试卷题号一二三四五六七八九十总分一、判断题(共8分,每题1分) 1.C#语言属于解释型语言 ( ) 2.在C#中所有类的基类都是Object类 ( ) 3.抽象类可以用来实例化对象 ( ) 4.File类可以用于操作文件内的数据 ( ) 5.析构函数可以有多个重载。 ( ) 6.一个可以独立运行...

软件职业技术学院

2008 ~2009  学年 第 2 学期

级软件工程专业C#程序设计基础 程期末试卷

题号

总分













一、判断题(共8分,每题1分)

1.C#语言属于解释型语言 ( )

2.在C#中所有类的基类都是Object类 ( )

3.抽象类可以用来实例化对象 ( )

4.File类可以用于操作文件内的数据 ( )

5.析构函数可以有多个重载。 ( )

6.一个可以独立运行的程序有且只能有一个Main函数 ( )

7. 成员变量不赋初值也能使用。 ( )

8.函数重载要求参数的个数不同或参数的类型不同或返回值类型不同( )

、选 择 题(共40分,每题2分)

1.C#语言中最简单的数据类型包括 ( )

A)整型、实型、逻辑型           B)整型、实型、字符型

C)整型、字符型、逻辑型         D)整型、实型、逻辑型、字符型

2.下列给出的变量定义正确的方式是 ( )

A)int No$1       B)char _No      C)float new       D)string public

3.设a=7,b=3,则表达式a*=b+2的值为: ( )

   A)23       B)35       C)27       D)36

4.为表示关系xy≥z,应使用C#语言表达式 ( )

    A)(x<=y)&&(y>=z)                  B(x<=y)AND(y>=z)
    C)(x<=y>=z)                       D)(x<=y)||(y>=z)

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

            static void Main(string[] args)

             {   int x=8,y=8;

                 Console.Write("{0},{1}\n",x++,++y);}

     A)8,8                          B)9,9

C)9,8                         D)8,9

6.C#程序中,可使用try..catch 机制来处理程序出现的以下那种类型的错误. ( )

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


7.设有说明语句int [] a=new int[8]则数组a包括了几个数组元素。 ( )

      A)6       B)7       C)8      D)9

8.C#MyC 为一自定义类,其中有以下方法定义 ( )

public static void Hello(){..}

使用以下语句创建了该类的对象,并使变量obj 引用该对象:

MyC obj = new MyC ();

那么,如何才能正确访问类MyCHello 方法?

A. obj.Hello(); B. MyC.Hello(); C. 以上两种方式都能正确; D.以上两种方式都不正确 ;

9. using System; ( )

static void  Main(string[] args)

     {  char  c1=(char)70;    /*‘A’的ASCII码值为65  */

        if  (‘A’<=c1 && c1<=’Z’)   

     Console.Write(“{0},{1}”,c1,c1+1);

        else   Console.Write(c1);  }

运行结果:

A. 70,71 B. F,G C. 70,G D. F,71

10.以下哪个命名空间中的类和接口可以用于操作Access数据库?

A. System.Data B. System.IO C. System.Data.SqlClient D. using System.Data.OleDb;

11.Static void  Main(string[] args) ( )

{ byte b = 255;

unchecked

{b++;}

Console.WriteLine(b); }

运行结果:

A.256 B.255 C.0 D.1

12.以下关于DataSet的描述正确的是. ( )

A.一个DataSet不能包含多个DataTable

B.DataSet只能实现对数据的查询,不能实现数据的插入、修改和删除

C. DataSet是ADO.NET面向无连接的数据库操作的最佳体现。

D. 如果操作SqlServer数据库,最好采用SqlDataSet,操作其他数据库则应采用OleDbDataSet


13.要控制打开文件对话框(OpenFileDialog)可以打开的文件类型.需设置OpenFileDialog的___________属性。

A.FileName B. Filter C. FilterIndex D.FileNames

14.要使ComboBox控件中的内容只能选择,不能输入,需设置它以下哪个属性 ( )

A. ReadOnly B.ComboStyle C.DropDownStyle D.Style

15. 在C#,将路径名”C: \Doc\”存入字符变量path中的正确语句是: ( )

A path=“C://Doc//”;

B path=“C:\/Doc\/”;

C path=“C:\\Doc\\”;

D path=“C: \Doc\”;


                           本试卷共 4 页,此页为  A 卷第 1 页          注:参加重修考试者请在重修标识框内打钩

16.对于类:

class Test

{

private int a;

public int A

{

get{ return a;}

}

}

以下代码可以正确使用成员变量a或属性A的是: ( )

A. Test t=new Test(); B. Test t=new Test();

t.a=5; Console.WriteLine(t.a);

C. Test t=new Test(); D. Test t=new Test();

t.A=5; Console.WriteLine(t.A);

17. C#程序中,为使变量myForm 引用的窗体对象显示为对话框,必须:

A. 使用myForm.ShowDailog 方法显示对话框

B. 将myForm 对象的isDialog 属性设为true

C. 将myForm 对象的FormBorderStyle 枚举属性设置为FixedDialog

D. 将变量myForm 改为引用System.Windows.Dialog 类的对象

18.在ADO.NET中,为了确保DataAdapter对象能够正确地将数据从数据源填充到DataSet中,则必须事先设置好DataAdapter对象的下列哪个Command属性? ( )
A. Delete Command B. Update Command C. Insert Command D. Select Command    

19.想要得到当前正在运行的应用程序所在文件夹的路径,需使用以下哪个属性。 ( )

A.Application.StartupPath B.Application.ExecutablePath

C. this.Path D. File.CurrentPath

20.要向ListBox控件listBox1中添加一个新选项,需使用以下哪个方法。 ( )

A.listBox1.Rows.Add() B. listBox1.Item.Add()

C. listBox1.Add() D. listBox1.Insert()

三、简答题(共20分,每题5分)

1. 简述访问修饰符的作用、C#中有哪几种修饰符,以及各修饰符的访问特点











2.简述ADO.NET的面向无连接操作数据库的含义、特点及实现方式








3.谈谈你对面向对象的多态性的理解









4.简述FileStream类、StreamWriter类与StreamReader类、BinaryWriter类与BinaryReader类三者之间的区别


本试卷共 4 页,此页为  A 卷第 2 页 

四、程序题(共32分,第18,第2题10分,第3题14分

1.打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1*1*1+5*5*5+3*3*3   (8分)

 












2. 编写一个利用键盘控制窗体上红色方块移动的程序,当用户按下键盘上的“上”、“下”、“左”、“右”键时,方块会向该方向移动。程序的运行界面如图所示。(10分)

int x=20,y=20; //x控制方块的当前横坐标,y控制方块的当前纵坐标

bool isDrawed=false; //标识窗体上当前是否已经绘制了最初的方块

private void Form1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)

{

        

        











}

private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)

{

        

        





}

本试卷共 4 页,此页为  A 卷第 3 页 


3.设计一个数据库管理程序,要求完成以下功能:(14分)

1)在Form1中实现用户的登录功能,如果用户登录成功,则进入另外一个窗体Form3(Form3中暂不实现任何代码),如果用户登录不成功,要求采用MessageBox提示用户到底是用户名不存在还是密码输入错误。用户点击 Form1中的注册按钮可弹出Form2进行新用户的注册

2)在Form2中实现注册功能:将textBox1, textBox2, comboBox1,textBox3中的内容依次插入Access数据库Test.MDB中的myUsers表的字段有uName类型为nvarchar(20)、uPwd类型为nvarchar(20)、uGender类型为nvarchar(2)、uAge类型为int(4)中.

public class Form1 : System.Windows.Forms.Form

{

private void button1_Click(object sender, System.EventArgs e)

//登录按钮的事件代码

{















}

private void button2_Click(object sender, System.EventArgs e)

//Form1中注册按钮的事件代码

{   



}

public class Form2 : System.Windows.Forms.Form

{

    private void button1_Click(object sender, System.EventArgs e)

    //Form2中注册按钮的事件代码

{














本试卷共 4 页,此页为  A 卷第 4 页

中原工学院软件职业技术学院

2008~2009 学年 第 2 学期

08级软件工程专业C#程序设计 课程期末试卷标准答案(即评分标准)

一、判断题(共8分,每题1分)

错对错错错对对错

、选 择 题(共40分,每题2分)

DDBAD BCBDD CCBCC DADAB

三、简答题(共20分,每题5分)

1)访问修饰符的作用是为了控制它所修饰的成员变量、属性、方法或类的对外可访问性的。C#中共有四种访问修饰符:Public、Private、Protected、Interval.Public修饰符可使任何外部类都能访问,Private只有本类可以访问,Protected只有子类能访问,Internal只有在同一程序集下的类才能访问

2)所谓面向无连接,就是程序可以在不和数据库保持连接的情况下访问数据库中的数据,在C#中实现此技术的是DataSet,在程序将数据库中的数据填充到DataSet后,即和数据库断开连接。程序后续操作完全可以从内存的DataSet中获取数据。

3)所谓多态性是指,在通过父类的引用调用具有多态实现的方法时,程序可自动根据该引用所指的实际对象的具体类型来调用该对象实际的方法,而非一味的调用父类的方法。

4)FileStream类是操作文件内容的基本类型,但它能读写的数据类型有限,只能以Byte类型方式读写数据。StreamWriter和StreamReader可以文本文件形式读写数据,读写方式灵活、BinaryWriter和BinaryReader可以以二进制形式读写文件,读写方式灵活。

、编程题(共32分)(本题所有答案均为参考,如若有其他正确思路并结构清晰的答案仍然可以给满分)

1.8分)

Using System;

Class shuixian

{ Static void Main(string[] args)

{ int x,y,z,m,n;

for(x=0;x<=9;x++) 1分

for(y=0;y<=9;y++) 1分

for(z=0;z<=9;z++) 1分

{ m=x*100+y*10+z 2分

n=x*x*x+y*y*y+z*z*z 1分

if(m==n) 1分

Console.WriteLine(m) ; 1分

}}}

2. (10分)

int x=20,y=20;

bool isDrawed=false;

private void Form1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)

        {

             Graphics g=this.CreateGraphics();

            g.FillRectangle(new SolidBrush(this.BackColor),x,y,20,20);

            switch(e.KeyData)

            {

                case Keys.Left:

                    x-=5;

                 break;

                case Keys.Right :

                    x+=5;

                    break;

                case Keys.Up:

                    y-=5;

                    break;

                case Keys.Down:

                    y+=5;

                    break;

            }

            g.FillRectangle(new SolidBrush(Color.Red),x,y,20,20);

         }

        private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)

        {

            if(!isDrawed)

            {

                this.CreateGraphics().FillRectangle(new SolidBrush(Color.Red),x,y,20,20);

             isDrawed=true;

            }    

        }


本试卷答案共 2 页,此页为第 1 页 

3.(14分)

private void button2_Click(object sender, System.EventArgs e)

//Form1中注册按钮        

{

            Form2 f=new Form2();

            f.Show();

}

private void button1_Click(object sender, System.EventArgs e)

//Form1中的登录按钮

        {

            OleDbConnection conn=new OleDbConnection("provider=Microsoft.Jet.OleDb.4.0;data source=Test.MDB");

            conn.Open ();

            OleDbCommand cmd=new OleDbCommand();

            cmd.Connection =conn;

            cmd.CommandText="select upwd from myusers where uname=@username";

            cmd.Parameters .Add(new OleDbParameter("@username",textBox1.Text));

            OleDbDataReader dr=cmd.ExecuteReader();

            if(dr.Read)

            {

                if(dr[0].ToString()==textBox2.Text)

                {

                    Form3 f=new Form3();

                    f.Show ();

                }

                else

                {

                    MessageBox.Show("密码错误");

                }

            }

            else

            {

                MessageBox.Show("用户名不存在");

            }

            conn.Close ();

        }

private void button1_Click(object sender, System.EventArgs e)

  //Form2中的注册按钮        

{

            OleDbConnection conn=new OleDbConnection("provider=Microsoft.Jet.OleDb.4.0;data source=Test.MDB");

            conn.Open ();

            OleDbCommand cmd=new OleDbCommand();

            cmd.Connection =conn;

            cmd.CommandText="insert into myUsers values(@UserName,@UserPwd@UserSex,@UserAge)";

            cmd.Parameters .Add(new OleDbParameter("@UserName",textBox1.Text));

            cmd.Parameters .Add(new OleDbParameter("@UserPwd",textBox2.Text ));

            cmd.Parameters .Add(new OleDbParameter("@UserSex",comboBox1.SelectedItem));

            cmd.Parameters .Add(new OleDbParameter("@UserAge",textBox3.Text));

            cmd.ExecuteNonQuery();

            conn.Close ();

        } 



本试卷答案共 2 页,此页为第 2 页 

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。