文档库 最新最全的文档下载
当前位置:文档库 › C#期末考题及答案

C#期末考题及答案

C#考试题及答案

一、单选题(每题1分,共50分)

https://www.wendangku.net/doc/5d15098051.html,“公共语言运行库”的简写为(A )

A)CLR B)CRL C)IL D)JVM

2.调用“命名空间”的命令是(C )

A)namespace B)use C )using D)#include

3声明“命名空间”的命令是(A )

A)namespace B)use C)using D)#include

(4)C#的每一个应用程序应该有一个入口方法,称为Main,该方法必须被声明为(B )A)private static B)public static C)protect static D)protected static

(5)下列不正确的代码注释方式是(B )

A)// 注释B)*/ 注释/*C)/* 注释*/ D)/// 注释

(6)在程序中设置断点,是为了(D )

A)定位程序入口点B)定位程序结束点C)发布程序D)调试程序

(7)数据库系统与文件系统的最主要区别是(B)。

A)数据库系统复杂,而文件系统简单

B) 文件系统不能解决数据冗余和数据独立性问题,而数据库系统可以解决

C) 文件系统只能管理程序文件,而数据库系统能够管理各种类型的文件

D) 文件系统管理的数据量较小,而数据库系统可以管理庞大的数据量

(8)以下不属于C#和Java共同特征的是(B )

A)除操作系统外,都需要额外运行环境B)源程序文件名都受到文件中类名的限制

C)都采用Try-Catch-Finally的异常处理机制D)都完全面向对象

(9)C#数据类型包括值类型和引用类型两种,下列类型不属于值类型的是(A )

A)类类型B)int C)枚举类型D)结构类型

(10)C#中的字符型数据,均是Unicode字符,这样一个字符的标准长度为(C)

A)4位B)8位C)16位D)32位

(11)声明结构型的关键字是(B)

A)enum B)struct C)class D)interface

(12)值类型比引用类型的执行效率(A)

A)高B)低C)相同D)视情况而定

(13)下列声明双精度型二维数组array1的正确方式是(B )

A)double[][] array1 B)double[ , ] array1 C)float[][] array1 D)float[ , ] array1

(14)——(18)题采用如下“教师”和“学院”表

以下为“教师”表和“学院”表:

(14)为“学院”表增加一个字段“教师人数”的标准SQL语句是( C)。

A)CHANGE TABLE学院ADD教师人数int B)ALTER STRU学院ADD教师人数int

C)ALTER TABLE学院ADD教师人数int D)CHANGE TABLE学院INSERT教师人数int

(15)将“欧阳秀”的工资增加200元的标准SQL语句是( D)。

A)REPLACE教师WITH工资=工资+200 WHERE 姓名=“欧阳秀”

B)UPDATE教师SET工资=工资+200 WHEN 姓名=“欧阳秀”

C)UPDATE教师工资WITH工资+200 WHERE姓名=“欧阳秀”

D)UPDATE教师SET 工资=工资+200 WHERE姓名=“欧阳秀”

(16)有SQL语句“SELECT * FROM教师WHERE NOT(工资>3000 OR 工资<2000) ”与之等价的SQL

语句是( A)。

A)SELECT*FROM 教师WHERE 工资<=3000 AND 工资=>2000

B)SELECT*FROM 教师WHERE 工资>2000 AND 工资<3000

C)SELECT*FROM 教师WHERE 工资>2000 OR 工资<3000

D)SELECT*FROM 教师WHERE 工资<=2000 AND 工资>=3000

(17)有SQL语句:“SELECT 主讲课程, COUNT(*) FROM 教师GROUP BY 主讲课程”该语句执行结

果含有记录个数是( D)。

A)3 B)4 C)5 D)6

(18)有SQL语句“SELECT COUNT(*) AS人数, 主讲课程FROM教师GROUP BY 主讲课程ORDER

BY 人数DESC”该语句执行结果的第二条记录的内容是( B)。

A) 4 数据结构B) 3 操作系统C) 2 数据库D) 1 网络技术

(19)使用SQL语句将学生表S中年龄(AGE)大于30岁的记录删除,正确的命令是( B)。

A)DELETE FOR AGE>30B) DELETE FROM S WHERE AGE>30 C) DELETE S FOR AGE>30D) DELETE S WHERE AGE>30

(20)使用SQL语句向学生表S(SNO,SN,AGE,SEX)中添加一条新记录,字段学号(SNO)、姓名(SN)、性

别(SEX)、年龄(AGE)的值分别为0401、王芳、女、18,正确的命令是( C)。

A)APPEND INTO S (SNO,SN,SXE,AGE) value S (‘0401','王芳','女',18)

B)APPEND S value S (‘0401','王芳','女',18)

C)INSERT INTO S (SNO,SN,SEX,AGE) value S (‘0401','王芳','女',18)

D)INSERT S value S (‘0401','王芳',18,'女')

(21)对于“关系”的描述,正确的是( D)。

A .同一个关系中允许有完全相同的元组 B.同一个关系中元组必须按关键字升序存放

C .在一个关系中必须将关键字作为该关系的第一个属性 D. 同一个关系中不能出现相同的属性名

(22)在SQL的SELECT查询结果中,消除重复记录的方法是( C)。

A)通过指定主关系键B) 通过指定惟一索引

C) 使用DISTINCT D)使用HA VING子句

(23)下列关于SQL中HA VING子句的描述,错误的是( B)。

A)HA VING子句必须与GROUP BY子句同时使用B)HA VING子句与GROUP BY子句无关

C)使用WHERE子句的同时可以使用HA VING子句D)使用HA VING子句的作用是限定分组的条件

(24)C#提供了对数组进行排序的方法,是(A)

A)Sort B)Reverse C)GetLength D)Length

(25)现有长整形定义“long abc=12345678;”,显式转换为int型变量cba的语句为(A )A)cba=(int)abc B)cba=int(abc) C )cba=int abc D)cba=Convert.ToInt32(abc)

(26)与” i++ ”等价的表达式为(A)

A)i=i+1 B)i+1 C)i=i+2 D)i+2

(27)在C#循环语句中,从当前一轮循环跳出,进入下一轮循环的命令是(C )

A)return B)break C)continue D)goto

(28)现有C#方法定义为public void function1(int parameter1) {…省略…},在该方法中可使用的return

语句正确格式是(D)

A)return 1; B)return parameter1; C)return function1; D)return;(29)try-catch-finally语句结构中,由try模块抛出的异常,被(B )模块捕获。

A)try B)catch C)finally D)throw

(30)现有类Class1,选出如下选项中正确的缺省构造函数形式(C )

A)private int Class1(){ } B)private class1(){ }

C)public Class1(){ } D)public void Class1(){ }

(31)定义引用类型的字符串参数str1的正确形式是(B )

A)ref str str1 B)ref String str1 C)string str1 D)out string str1

(32)选择如下对Convert类的正确说明(D )

A)Convert类位于System.Console命名空间下B)Convert类位于system命名空间下C)Convert类中的方法用于转化引用类型的数据D)Convert类中的方法用于转化值类

型的数据

(33)单击一下按钮,不会激发的事件是(A)

A)MouseLeave B)MouseUp C)MouseDown D)MouseClick

(34)选择如下关于void的正确说明(C)

A)void可用于声明参数B)void可用于声明类

C)void可用于声明方法D)void与空字符串等价

(35)以下关于字符串str1的用法,错误的是(D)

A)str1.ToUpper();可将str1转化成大写B)str1.ToLower();可将str1转化成小写

C)str1.split(‘,’);返回字符串数组D)str1.split(‘,’);返回一个字符串

(36)以下关于Math类的各方法说明,错误的是(D)

A)Math.Abs(-1);返回值为1 B)Math.Ceiling(1.3);返回值为2

C)Math.Floor(1.3);返回值为1 D)Math.Round(1.3);返回值为2

(37)已定义基类Animal,扩充类Cat继承自Animal,表示继承关系的正确C#代码是( A )A)class Cat: Animal{…类内部定义省略…} B)Class Cat: Animal{…类内部定义省略…}

C)class Animal: Cat{…类内部定义省略…} D)Class Animal: Cat{…类内部定义省略…}

(38)基类Cat中定义了方法EatFish( int fishnumber),Cat的实例tom调用方法的正确语句是(C )

A)tom.EatFish(); B)Cat.EatFish(3); C)tom.EatFish(3); D)Cat.EatFish();

(39)类Cat采用默认构造函数,声明类Cat的实例tom的正确语句是(A)

A)Cat tom=new Cat(); B)Cat tom=new tom(); C)Cat tom=new Cat; D)Cat tom=new tom;

(40)在基类Animal和扩充类Cat中,关于方法Method(),用法错误的是(C )

A)在Animal中,Method可用virtual前缀修饰,Method称为虚拟方法

B)在Cat中,Method可用new前缀修饰,Cat中的Method会隐藏Animal中的Method

C)在Cat中,Method可用override前缀修饰,Cat中的Method会重写Animal中的Method

D)在Cat中,Method可用override前缀修饰,Cat中的Method会重写Animal中的虚拟方法Method

(41)以下关于虚拟方法和抽象方法的说明,错误的是(D)

A)虚拟方法用virtual前缀修饰B)抽象方法用abstract前缀修饰

C)抽象方法不具有方法体实现部分D)虚拟方法不具有方法体实现部分

(42)以下关于抽象类的说明,错误的是(B)

A)用abstract做类的修饰符B)用virtual做类的修饰符

C)抽象类中的方法都要生命为抽象方法D)非抽象类可继承自抽象类

(43)以下关于接口的说明,错误的是(A )

A)接口中的方法可以加public前缀B)接口中的方法都是公共属性的

C)接口中的方法不具有方法体实现部分D)一个类只能继承自一个基类,但是可以实现多个接口

(44)已定义接口interface Ieatable,接口中只有一个方法int eat(int num);,关于接口的实现类CatEat的

说法错误的是(C )

A)实现接口的语法为class CatEat: Ieatable {…省略类内容…}

B)类CatEat中除构造函数外,只有一个方法eat

C)类CatEat中除构造函数外,可以有多个方法

D)类CatEat中的eat方法,只能有一个整形参数

(45)关于C#的委托机制的主要步骤的说明,错误的是(A )

A)第一步声明样板,需用delegate修饰,样板要有方法体实现部分

B)第二步定义准备调用的方法,该方法的参数类型、个数及参数的顺序必须与样板的定义相同

C)第三步定义delegate类型的处理函数,该函数的参数就是第二步中调用的方法

D)创建样板的实例,传入准备调用的方法名

(46)关于序列化的说明,错误的是(C )

A)序列化的简单方式是在要序列化的类定义前加[Serializable]

B)XML和SOAP序列化主要用于网络

C)XML序列化较二进制序列化保存的内容完整

D)二进制序列化较XML序列化保存的内容完整

(47)以下不属于C#集合类的是(D )

A)ArrayList B)HashTable C)SortedList D)List

(48)对于标签控件Label的错误说法是(A )

A)要修改Label上的字内容,可修改该控件Caption属性

B)要修改Label上的字内容,可修改该控件Text属性

C)要修改Label的背景色,可修改该控件BackColor属性

D) 要修改Label的文本颜色,可修改该控件ForeColor属性

(49)下述关于控件的属性,说法错误的是(D)

A)为了使TextBox中输入文字能够换行,需要设置该控件的Multiline属性为true

B)为了使TextBox能接受密码,需要设置该控件的PasswordChar属性

C)设置ComboBox中的条目内容的属性是Items

D)RichTextBox控件提供了高级文本编辑功能,可通过修改属性SelectedColor以修改其中文本的颜色

(50)下述关于控件的事件,说法错误的是(D)

A)CheckBox的选中状态发生变化时,会触发CheckChanged事件

B)ComboBox的选中条目发生变化时,会触发SelectedIndexChanged事件

C)Form在加载的时候,会触发Load事件

D)选择菜单项,会触发MenuIndexChanged事件

二、填空题(每空1分,共20分)

(1)使用C#语句实现在控制台输出一空白行的命令是Console.WriteLine();在控制台输入一行数据的命

令是Console.ReadLine()。

( 2 )现有赋值语句string str1=string.Format(“{0},{1},{2}”, “青岛”, “科技”, “大学”);,str1被赋值为青岛, 科

技, 大学。

(3)在表单上放置一个Timer组件,设置其Interval属性为1000,即___1__秒发生一次Tick 事件。

(4)C#提供的制作一般菜单的控件叫做MenuStrip;制作右键快捷菜单的控件叫做

_ContextMenuStrip_;制作工具栏的控件叫做__ToolStrip__;制作组件提示信息的控件叫做__ToolTip__。

(5)C#提供了FolderBrowserDialog对话框用于选择文件夹,提供了OpenFileDialog对话框用于打开文件,

提供了SaveFileDialog对话框用于保存文件。这3个控件具有相同的打开对话框方法,是__ShowDialog__。

(6)C#提供了目录管理的两个主要类是__Directory_和_DirectoryInfo_;提供了文件管理的两个主要类

是_File_和_FileInfo_;这4个类都位于命名空间_System.IO_中。

(7)正则表达式提供了灵活高效的处理文本字符串的方法,现有表达式“^[0-9]{13}$”,另有电话号码

“0532-********”,问该号码是否与给出的正则表达式匹配___否_。

(8)VS2005开发环境使用的是https://www.wendangku.net/doc/5d15098051.html, 2.0数据库引擎,该引擎内置多种.Net Framework 数据提供程

序来访问数据源。如要使用Microsoft SQL Server数据库,则引用命名空间__System.Data.SqlClient_;如

要使用Microsoft Access数据库,则引用命名空间__System.Data.OleDb_。另外,.Net Framework开放式

的框架还吸引了众多第三方厂家开发数据库引擎,例如开源软件MySQL提供称为Connector/Net 5.1的数

据库驱动版本,实现.Net与MySQL数据库的连接,已知其命名空间为MySql.Data.MySqlClient,要正确

引用该命名空间,需在类声明前面加上语句___using MySql.Data.MySqlClient___。

(9)https://www.wendangku.net/doc/5d15098051.html, 2.0数据库引擎,提供了先进的数据库管理工具,以SQL Server为例,包括SqlConnection

对象,SqlCommand对象、SqlDataAdapter对象等,其中,用于实现基本的数据插入、删除、查询和更新

操作的对象是__SqlCommand_;用于实现高级数据操作,即.Net与数据库之间大量数据动态交互的对象

是_SqlDataAdapter__。

三、编程题(每空3分,共30分)

(1)使用如下三个数据库表:

学生表:S(学号,姓名,性别,出生日期,院系)

课程表:C(课程号,课程名,学时)

选课成绩表:SC(学号,课程号,成绩)

在上述表中,出生日期数据类型为日期型,学时和成绩为数值型,其他均为字符型。

用标准SQL检索选修课程在5门以上(含5门)的学生学号、姓名和平均成绩,并按平均成绩降序排序:

SELECT S.学号,S.姓名,A VG(成绩)AS 平均成绩FROM S,SC WHERE S.学号=SC.学号GROUP BY S.学号__

HA VING

COUNT(*)>=5 ORDER BY 平均成绩DESC;

用标准SQL向S中插入一条新记录(学号为’95001’、性别为’男’、出生日期为1985-8-8、姓名为’小明’):

INSERT INTO S(学号,出生日期,性别,姓名) V ALUES (‘95001’, {^1985-8-8}, ‘男’, ‘小明’);

(2)现有表单Form1,其上有三个控件DataGridView(name:DataGridView1)、Button(name:buttonOpen,

caption:打开表)和Button(name:buttonSave,caption:保存修改)。如下图所示。现通过编程,在单

击buttonOpen时,DataGridView1自动由SQL Server某数据库中的表MyTable填充;当单击buttonSave

时,DataGridView1的数据变化会被数据库中的MyTable保存。请根据要求,补充完整程序Form1.cs。

using System;

using System.Collections.Generic;

using https://www.wendangku.net/doc/5d15098051.html,ponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using System.Data.SqlClient;

namespace SqlDataAdapterExample

{

public partial class FormAdapter : Form

{

SqlDataAdapter adapter;

DataTable table;

public FormAdapter()

{

InitializeComponent();

}

private void buttonOpen_Click(object sender, EventArgs e)

{

string connectionString = Properties.Settings.Default.MyDatabaseConnectionString;

SqlConnection conn = new SqlConnection(connectionString);

adapter = new SqlDataAdapter("_____select * from MyTable_____", conn);

SqlCommandBuilder builder = new SqlCommandBuilder(_____adapter_____);

adapter.InsertCommand = builder.GetInsertCommand();

adapter.DeleteCommand = builder.GetDeleteCommand();

adapter.UpdateCommand = builder.GetUpdateCommand();

table = new DataTable();

________adapter.Fill(table);________

dataGridView1.DataSource =___table___;

}

private void buttonSave_Click(object sender, EventArgs e)

{

dataGridView1.EndEdit();

try

{

adapter.___Update___ (table);

MessageBox.Show("保存成功!");

}

____catch___(SqlException err)

{

MessageBox.Show(err.Message, "保存失败!"); }

}

}

}

相关文档