C#程序设计(西安交通大学) 中国大学mooc慕课答案2024版 m110655
1 c#概述 单元测试
1、 关于C#和.NET的关系描述错误的是( )。
答案: .NET是微软开发的一个硬件平台
2、 .NET语言不包括以下哪种语言( )
答案: Java
3、 在C#中任何( )都是对象
答案: 任何事物
4、 对象包含数据和( )的方法
答案: 该数据上工作
5、 以下描述错误的是( )
答案: namespace描述了一个类库
6、 以下描述正确的是( )
答案: Console.ReadLine()的返回值为字符串
7、 执行下列代码,如果在控制台输入123,以下描述正确的是( )int x;x=Console.ReadLine();
答案: 报错,无法将string类型隐式转换为int
8、 执行以下代码,以下描述正确的是()Console.WriteLine(“现在的得分是{0}比{1}”,”2″,”3″);
答案: 现在的得分是2比3
9、 执行C#代码的过程包括( )。
答案: 选择编译器;
将代码编译为MSIL;
将MSIL编译为本机代码;
运行代码
10、 用C#写的应用程序就是.NET程序。
答案: 错误
11、 CLR是公共语言运行时,独立于CPU的指令集,可以被转换为特定与某种CPU的代码。
答案: 正确
12、 C#源程序的后缀名是.cs。
答案: 正确
13、 Visual Studio的解决方案资源管理器,包含一个项目的所有文件和组件。
答案: 正确
2 数据类型与表达式 单元测试
1、 在C#中,以下描述错误的是()
答案: 逻辑运算符用于比较两个操作数的大小
2、 下列运算附中属于关系运算符的是( )
答案: ==
3、 以下表示“a>3 或 a<0”的C#表达式的是( )
答案: a>3 || a<0
4、 如果定义的变量表示的是银行的存款,则最好选( )类型
答案: decimal
5、 以下变量名不合法的是( )
答案: 123Nameis
6、 以下赋值语句错误的是()
答案: char ch=9;
7、 以下赋值语句合法的是( )
答案: int x,y; x= y=1;
8、 以下代码执行后,不会报错的是( )int i = 0;decimal d = 0;float f = 0; char ch=’\0’;
答案: Console.WriteLine(10/f);
9、 C#中的数值0表示bool类型的false,数值1表示bool类型的true。
答案: 错误
10、 char类型的本质上是整数。可以直接赋值给int,long型变量。
答案: 正确
11、 char.IsUpper和char.IsLower分别用来判断字符是大写还是小写。
答案: 正确
12、 枚举类型的元素默认值类型是int。每个元素的值按照定义的顺序依次加1必须连续。
答案: 错误
13、 Convert类支持数据类型的显示转换。如Convert.ToInt32(1.5)的结果是1。
答案: 错误
14、 int a=1; int b=a++; b的值是2。
答案: 错误
3 面向对象的编程 单元测验
1、 面向对象思想的三大基本特征是
答案: 继承,封装,多态
2、 以下描述中,错误的是
答案: 继承就是派生类继承了基类的所有方法。
3、 关于类成员的访问修饰符,描述错误的是
答案: 在类前添加访问修饰符,声明了类内部成员对该类的访问权限。
4、 下面关于var关键字的描述,错误的是
答案: 能用于局部变量和全局变量。
5、 关于静态字段的描述,错误是
答案: 静态函数成员能访问实例成员和静态成员。
6、 关于属性的使用正确的是
答案: private int num;public int Num{get{return num;}set{num=value;}}
7、 C#中的数据类型的描述,错误的是
答案: 简单类型如int,double,float,bool,string等是值类型。
8、 关于值类型和引用类型,描述正确的是
答案: 值类型变量直接存放真正的数据,引用类型变量存放的是指向真正数据的内存地址
9、 以下的描述错误的是
答案: 类的默认访问修饰符是public。
10、 关于属性的描述,正确的是
答案: 用private声明的属性,只能由声明它的类访问。;
属性的set方法能够修改实例变量的值。
11、 Console.ReadLine读取字符,遇换行符停止,然后将这些字符做为string返回。
答案: 正确
12、 在调用方法时,实参个数和类型必须与被调用的方法声明参数表中的参数个数和类型一致。
答案: 正确
13、 局部变量的作用域在声明它的方法内。
答案: 正确
14、 按照约定,方法名的第一个字母小写,后续所有单词的首字母大写。
答案: 错误
15、 const修饰的常量在声明中可以初始化也可以不初始化。
答案: 错误
16、 类实例的值类型成员,分配内存中的栈空间。
答案: 错误
17、 static字段的值在运行时才能确定。
答案: 正确
18、 关键字readonly表明对象或者变量在初始化后不能修改。
答案: 正确
4 控制结构 单元测验
1、 以下描述中,错误的是
答案: switch语句中的break语句是必须的,和case语句成对儿出现。
2、 以下if…else…结构执行结果是int x=80;int y=30;if ( x <0 || x>75 ){ if(y>=80) { Console.Write(“晴”); } else { Console.Write(“晴转阴”); }}else{ Console.Write(“ 阴”);}
答案: 晴转阴
3、 以下for语句的表示方法,错误的是
答案: for( int i=0, i<10, i++){}
4、 以下描述正确的是for( ; ; ){循环体;}
答案: 一直执行循环体,死循环;
5、 如果month=4,下面代码的输出结果是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;}Console.WriteLine(days);
答案: 30
6、 在下面循环语句中循环体执行的次数是for(int i=n; i>0; i–)if(i<n/2) break;
答案: n/2
7、 下面对数组的描述错误的是
答案: 数组是值类型。
8、 下面声明和创建数组的语句错误的是
答案: int[] array = new int[3] {1,2};
9、 有关对foreach语句描述不正确的是
答案: 可以在foreach语句体中改变迭代变量的值。
10、 有一个定义了变长实参的方法,其方法头为:public static double getAverage(params double[] numbers){…}下面调用该方法不正确的是
答案: 都正确
11、 下面程序的输出结果是 string str = “a123bc456d”; string result = “”; for (int i = 0; str[i] >= ‘a’ && str[i] <= ‘z’; i += 1) { result = str[i] + result; Console.WriteLine(result); }
答案: a
12、 以下哪种循环语句的循环体可能被执行0次
答案: while;
for;
foreach
13、 关于跳转语句break和continue,以下说法正确的是
答案: continue是中断本次循环,进入下一次的循环。;
break是中断整个循环。
14、 switch语句的关键字case后面的表达式可以是整形、字符型、字符串型。
答案: 正确
15、 while循环语句,一定要有修改循环条件的语句,否则会造成死循环。
答案: 正确
16、 while,do…while,for和foreach循环语句的循环体只有当条件为真时才执行。
答案: 错误
17、 foreach语句用于遍历数组中的元素,也可改变元素的值。
答案: 错误
18、 switch语句中的default语句是可选的,也可有多个。
答案: 错误
19、 C#数组有三种形式,它们是:一维数组、多维数组、交错数组。
答案: 正确
20、 交错数组各行长度必须相同。
答案: 错误
下方是付费阅读内容:本平台商品均为虚拟商品,无法用作二次销售,不支持退换货,请在购买前确认您需要购买的资料准确无误后再购买,望知悉!
完整答案需点击上方按钮支付5元购买,所有答案均为章节测试答案,购买后上方矩形框将出现已付费的隐藏内容。
,
5 数组 单元测验
1、 下面对数组的描述错误的是( )
答案: 数组是值类型
2、 C#数组有三种形式,它们是:( )
答案: 一维数组、多维数组、交错数组
3、 数组scores定义如下:int[] scores=new int[5]{65,71,90,68,80};则scores[1]=( )
答案: 71
4、 下面声明和创建数组的语句错误的是( )
答案: int[] array = new int[3] {1,2};
5、 关于多维数组的描述正确的是( )
答案: 二维数组用来表示值表,它将信息存放在行和列中,为了确定某个表元素,必须指定两个索引
6、 在调用方法时,如果想给方法传递任意个数的参数时,应选哪个关键字()
答案: params
7、 有关对foreach语句描述不正确的是( )
答案: 可以在foreach语句体中改变迭代变量的值
8、 有一个定义了变长实参的方法,其方法头为: public static double getAverage(params double[] numbers){…}下面调用该方法正确的是:( )
答案: 以上写法都正确
9、 下面代码是实现数组array冒泡排序的片段,划线处应填入( ) int[] array = { 60, 56, 38, 45 }; int temp; for (int i = 0; i < 3; i++) { for (int j = 0; j < ____; j++) { if (array[j] < array[j + 1]) { temp = array[j]; array[j] = array[j + 1]; array[j + 1] = temp; } } }
答案: 3-i
10、 下面程序的输出结果是( ) string str = “a123bc456d”; string result = “”; for (int i = 0; str[i] >= ‘a’ && str[i] <= ‘z’; i += 1) { result = str[i] + result; Console.WriteLine(result); }
答案: a
7 方法 单元测验
1、 在下列代码中,有( )处实现了拆箱。int score=5;object o= score;o=10;score =(int)o;object oScore = score;
答案: 1
2、 下面控制对成员访问描述错误的是( )
答案: 如果类的成员没有用访问修饰符声明,则默认为共有的
3、 有关this引用访问当前对象成员的描述正确的是()
答案: 每个对象都可以用关键字this引用自己
4、 有关构造函数的说法,错误的是( )
答案: 不管是否显式的声明了构造函数,编译器都会创建默认的构造函数
5、 有关析构函数和内存回收的描述正确的是()
答案: 析构函数没有任何修饰符、没有任何参数、也不返回任何值
6、 下面对readonly和const修饰的实例变量不正确的是( )
答案: const是静态常量,所以必须要手动再为const增加一个static修饰符。
7、 假设student类定义了Name,ClassInfor,StuNumber,利用对象初始化器student类的一个对象并初始化它的属性,下面写法正确的是()
答案: 以上写法均正确
8、 在visual studio窗口中,在( )窗口中可以查看当前项目的类和类型的层次信息
答案: 类视图
9、 包装代码的三种常见途径是方法、类和名字空间。
答案: 正确
10、 递归方法的定义是“直接调用自己的方法”。
答案: 错误
11、 基类的构造函数不被派生类继承。
答案: 正确
8 类-继承 单元测验
1、 在C#中定义接口时,使用的关键字是( )
答案: interface
2、 下列说法正确的是( )
答案: 接口的成员都必须是未实现的
3、 关于虚方法实现多态,下列说法错误的是( )
答案: 关键字virtual可以与override一起使用
4、 下列哪一个不是面向对象编程的特征()
答案: 统一接口
5、 下列有关抽象类和虚方法的描述中,正确的是( )
答案: 抽象类是指具有抽象方法的类
6、 下列描述是抽象类的特征是( )
答案: 不能实例化其对象
7、 有关对运算符重载的描述正确的是( )
答案: 运算符被重载时,它们的优先级与结合性不会发生改变
8、 关于委托,下面描述错误的是( )
答案: 定义委托需使用delegate关键字
9、 语句“List<string> list01 = new List<string>();”是我们常说的C#中的哪种技术( )
答案: 泛型
10、 调用重载方法时,系统根据( )来选择具体方法。
答案: 参数个数和类型
11、 利用多态,根据方法调用的对象类型,相同的方法名和签名引起的行为相同。
答案: 错误
12、 抽象类中的所有方法都必须被声明为抽象的。
答案: 错误
13、 抽象基类的每个具体派生类,必须为基类的抽象方法和属性提供具体实现。
答案: 正确
14、 被sealed关键字修饰的方法不能被继承。
答案: 正确
9 类-多态 单元测验
1、 在C#中定义接口时,使用的关键字是
答案: interface
2、 下列说法正确的是
答案: 接口的成员都必须是未实现的
3、 关于虚方法实现多态,下列说法错误的是
答案: 关键字virtual可以与override一起使用
4、 下列哪一个不是面向对象编程的特征
答案: 统一接口
5、 下列有关抽象类和虚方法的描述中,正确的是
答案: 抽象类是指具有抽象方法的类
6、 下列描述是抽象类的特征是
答案: 不能实例化其对象
7、 有关对运算符重载的描述正确的是
答案: 运算符被重载时,它们的优先级与结合性不会发生改变
8、 调用重载方法时,系统根据( )来选择具体方法
答案: 参数个数和类型
9、 利用多态,根据方法调用的对象类型,相同的方法名和签名引起的行为相同。
答案: 错误
10、 抽象类中的所有方法都必须被声明为抽象的。
答案: 错误
11、 抽象基类的每个具体派生类,必须为基类的抽象方法和属性提供具体实现。
答案: 正确
12、 被sealed关键字修饰的方法不能被继承。
答案: 正确
10 异常 单元测验
1、 C#中用try…catch…捕获的异常属于( )错误
答案: 运行
2、 在()块中放置异常的处理方法
答案: catch
3、 使用关键字()可以抛出异常,如抛出自定义的异常和系统异常。
答案: throw
4、 以下异常处理结构中,错误的是()
答案: catch{} finally{}
5、 下列关于异常处理的表述,正确的是()
答案: 无论异常是否抛出,finally的内容都会被执行
6、 以下代码的输出是()static void Main(string[] args) { int m = 10; int n = 10; int[] a = new int[5]; try { for (int i = a.Length; i > 0; i–) { a[i] = i; n = 1 / (n – m); } } catch (DivideByZeroException e1) { Console.Write(“除零异常,”); } catch (IndexOutOfRangeException e2) { Console.Write(“数组越界,” ); } catch { Console.WriteLine(“产生异常”); } finally { Console.WriteLine(“异常处理完毕”); } }
答案: 数组越界,异常处理完毕
7、 异常对象都是从Exception类派生的。
答案: 正确
8、 Exception类中的InnerException属性包含对异常原因的描述信息。
答案: 错误
9、 System.Exception是预定义的公共语言运行库异常类的基类。
答案: 正确
10、 try块中封装了可能引发异常的代码。
答案: 正确
11、 当有多个异常要捕获时,应先捕获Exception类异常,再捕获具体的异常。
答案: 错误
11 泛型和委托 单元测验
1、 关于C#的泛型,以下描述正确的是
答案: 类型参数表中只能将类型参数声明一次,但可以在方法的参数表中多次出现
2、 关于C#中泛型的约束,描述错误的是
答案: where T: struct 表示要替换的T必须是结构体类型
3、 语句Stack <int> objectStack=new Stack <int> ();表示objectStack保存的是int型变量。
答案: 正确
4、 泛型方法的类型参数表用()分隔。类型参数指定了方法实参的类型、返回类型。
答案: 正确
12 Windows Form 编程 单元测试
1、 构建Windows窗体以及其所使用空间的所有类的命名空间是()
答案: System.Windows.Forms
2、 所有Windows窗体控件都是从System.Windows.Forms.Control类继承而来,它公开的成员不包含( )
答案: 窗体
3、 改变窗体\控件的标题,需要修改的属性是
答案: Text
4、 在C#中,可以标识不同的对象的属性是
答案: Name
5、 Winforms程序中,如果复选框控件的Checked属性值设置为True,表示
答案: 该复选框被选中
6、 当鼠标悬停在控件上方时,触发的事件是
答案: MouseHover
7、 以下哪个控件可以将其他控件进行分组
答案: GroupBox
8、 以下哪个选项不属于ListBox控件Item属性的方法
答案: Count()
9、 Windows窗体应用程序的编程模型主要由( )三部分组成。
答案: 窗体;
控件;
事件
10、 Button控件的属性ClickMode可以获取Click事件,这里的Click模式有( )
答案: 悬停;
按下;
释放
11、 所有的窗体、组件和控件都是类。
答案: 正确
12、 在C# Winform程序中,新建的窗体后台cs代码自动继承了Form窗体。
答案: 正确
13、 所有的鼠标事件都使用MouseEventArgs类。
答案: 错误
14、 Timer控件的Interval属性,用来指定时钟空间触发时间的时间间隔,单位是毫秒。
答案: 正确
15、 让控件可用的属性是visible,可见的属性是enabled。
答案: 错误
16、 图片框PictureBox中用于定义图片路径的属性是ImagePath。
答案: 错误
13 GDI+绘图系统 单元测验
1、 图形设备接口的缩写是下述哪项()
答案: GDI
2、 定义一个画笔对象,下列哪项错误()
答案: Pen myPen=new Pen(new Bitmap(“e:\1.jpg”))
3、 以下哪一个方法不是Graphics类中提供的绘图方法()
答案: DrawCircle
4、 下列代码完成的功能,哪项表述正确()Pen myPen = new Pen(Color.Blue, 2);Graphics g = e.Graphics; g.DrawRectangle(myPen, 10, 10, 200, 10);
答案: 用蓝色的画笔画了一个左上角坐标为(10,10),宽为200,高为10的矩形
5、 使用GDI+绘图接口可以在窗体上进行绘图,但不能在控件上进行绘图。
答案: 错误
6、 在GDI+绘图接口中,必须先创建Graphics对象,才能用GDI+进行绘图操作。
答案: 正确
7、 DrawString是绘制文本的方法,确定所绘制文本的颜色是一个Pen对象参数。
答案: 错误
14 窗体、对话框和菜单 单元测验
1、 当鼠标右击一个控件时出现的菜单一般称为()
答案: 上下文菜单
2、 为菜单添加快捷键的属性是()
答案: ShortcutKeys
3、 OpenFileDialog是打开文件对话框,显示此对话框的语句是OpenFileDialog1.ShowDialog();当用户点击此对话框的“确定”按钮时,该语句返回等于()
答案: DialogResult.OK
4、 想要在打开对话框中只显示后缀名为TXT和DOCX文件,那么应设定打开对话框的Filter 的值为()
答案: TXT|.TXT|DOCX|.DOCX
5、 上下文菜单ContextMenu是通过控件的MenuStrip属性进行关联。
答案: 错误
6、 当调用窗体的Hide方法,程序会直接将此窗体的对象删除掉。
答案: 错误
7、 菜单会自动将子菜单分类显示
答案: 错误
8、 MDI父窗口可以具有多个MDI子窗口
答案: 正确
15 文件 文件和流
1、 以下类中()需要实例化
答案: StreamWriter
2、 在使用FileSystem打开一个文件时,通过使用FileMode枚举型的( )成员,来指定操作系统打开一个现有文件并把文件读写指针定位在文件尾部。
答案: Append
3、 以下描述中,错误的是( )
答案: Directory类和DirectoryInfo用于对目录的管理,File类和FileInfo类用于对文件的管理。都派生自Object类。
4、 对读写文本文件描述错误的是()
答案: 用StreamWriter swFile = new StreamWriter(“C:\MyFile.txt”, True);创建对象时,True表示创建文件返回成功。
5、 下段程序的输出是( )class Program{ static void Main(string[] args) { string path = @”D:\1.txt”; FileStream fs = new FileStream(path, FileMode.OpenOrCreate, FileAccess.ReadWrite); string message = “123456789abcdefg”; byte[] info = new UTF8Encoding(true).GetBytes(message); fs.Write(info, 5, 4); fs.Flush(); fs.Close(); }}
答案: 6789
6、 对于Path类的方法描述正确的是( )
答案: 都正确
7、 以下程序,描述错误的是( )class Program{ static void Main(string[] args) { string path = @”c:\trytest.txt”; File.Create(path).Close(); if(File.Exists(path)) { StreamWriter sw = File.AppendText(path); sw.Write(“hello”); sw.Write(“test”); sw.Close(); } }}
答案: 如果注释掉sw.Close(),会报错
8、 序列化描述,错误的是( )
答案: 类的所有成员都可以被序列化。
9、 使用BinaryWriter和BinaryReader读取二进制流文件时,描述错误的是( )class Program { static void Main(string[] args) { FileStream fsW = new FileStream(@”c:\1.bin”, FileMode.Create, FileAccess.Write); BinaryWriter bwMyFile = new BinaryWriter(fsW); string s = “恭喜你学会了”; int grade = 100; bwMyFile.Write(s); bwMyFile.Write(grade); bwMyFile.Close(); fsW.Close(); FileStream fsR = new FileStream(@”c:\1.bin”, FileMode.Open, FileAccess.Read); BinaryReader brMyFile = new BinaryReader(fsR); Console.WriteLine(brMyFile.ReadInt32()); Console.WriteLine(brMyFile.ReadString()); } }
答案: 读出文件的结果是100恭喜你学会了
10、 StreamReader类继承自Stream类。
答案: 错误
11、 Directory和DirectoryInfo类提供对目录的操作。
答案: 正确
12、 FileStream类的Seek方法总是会以相对于文件开头的位置搜索。
答案: 错误
13、 FileStream以FileMode.Create方式创建文件时,如果文件已存在,则会报错。
答案: 错误
14、 Serialize方法和Deserialize方法都要求使用Stream对象。
答案: 正确
15、 二进制文件读写的顺序要保持一致,否则会报错。
答案: 正确
点关注,不迷路,微信扫一扫下方二维码
关注我们的公众号:阿布查查 随时查看答案,网课轻松过
为了方便下次阅读,建议在浏览器添加书签收藏本网页
电脑浏览器添加/查看书签方法
1.按键盘的ctrl键+D键,收藏本页面
2.下次如何查看收藏的网页?
点击浏览器右上角-【工具】或者【收藏夹】查看收藏的网页
手机浏览器添加/查看书签方法
一、百度APP添加/查看书签方法
1.点击底部五角星收藏本网页
2.下次如何查看收藏的网页?
点击右上角【┇】-再点击【收藏中心】查看
二、其他手机浏览器添加/查看书签方法
1.点击【设置】-【添加书签】收藏本网页
2.下次如何查看收藏的网页?
点击【设置】-【书签/历史】查看收藏的网页