mooc章节答案(慕课2023课后作业答案)

计算机类习题2024-05-19 06:31:5431379抢沙发
mooc章节答案(慕课2023课后作业答案)摘要: 1 c#概述单元测试1、关于C#和.NET的关系描述错误的是( )。A、.NET是微软开发的一个硬件平台B、C#是一个程序设计语言,运行在.net平台上用于创建应用程序C、CLR是公共语言运行时,是提 ...

mooc章节答案(慕课2023课后作业答案)

1 c#概述

单元测试

1、章节作业关于C#和.NET的答案答案关系描述错误的是( )。
A、慕课.NET是课后微软开发的一个硬件平台
B、C#是章节作业一个程序设计语言,运行在.net平台上用于创建应用程序
C、答案答案CLR是慕课公共语言运行时,是课后提供内在管理,代码安全性检测等功能
D、章节作业Visual Studio是答案答案一个集成开发环境,可用于C#语言和.netFramework的慕课交互

2、.NET语言不包括以下哪种语言( )
A、课后Visual Basic
B、章节作业Visual C++
C、答案答案Visual C#
D、慕课Java

3、在C#中任何( )都是对象
A、任何类型
B、任何事物
C、任何技术
D、任何代码

4、对象包含数据和( )的方法
A、调用
B、函数调用
C、传递参数
D、该数据上工作

5、以下描述错误的是( )
A、namespace描述了一个类库
B、using语句引用名字空间后,代码中可省略名字空间
C、namespace限定了类的作用域
D、可以自己定义namespace

6、以下描述正确的是( )
A、Console是C#系统的输出类
B、Console.Readline是从控制台读取输入的一行
C、Consle.Write是向控制台输出一个字符
D、以上都正确

7、执行下列代码,如果在控制台输入123,以下描述正确的是( ) int x; x=Console.ReadLine();
A、x的值是整形123
B、x的值是字符串"123"
C、报错,无法将string类型隐式转换为int
D、报错,无法将int类型隐式转换为string

8、执行以下代码,以下描述正确的是() Console.WriteLine("现在的得分是比{ 1}","2","3");
A、现在的得分是0比1
B、现在的得分是0比2
C、现在的得分是2比3
D、现在的得分是2比1

9、执行C#代码的过程包括( )。
A、选择编译器
B、将代码编译为MSIL
C、将MSIL编译为本机代码
D、运行代码

10、用C#写的应用程序就是.NET程序。

11、CLR是公共语言运行时,独立于CPU的指令集,可以被转换为特定与某种CPU的代码。

12、C#源程序的后缀名是.cs。

13、Visual Studio的解决方案资源管理器,包含一个项目的所有文件和组件。

单元作业

1、编程实现在一行内输入若干个整数(不超过30个),输出最大的一个整数。 样例: 输入(在一行内输入,空格分隔): 5 6 78 -89 0 23 100 4 6 输出: 100

2 数据类型与表达式

单元测试

1、在C#中,以下描述错误的是()
A、关系运算符的运算结果是布尔值
B、逻辑运算符的运算结果是布尔值
C、关系运算符用于比较两个操作数的大小
D、逻辑运算符用于比较两个操作数的大小

2、下列运算附中属于关系运算符的是( )
A、=
B、+=
C、-=
D、==

3、以下表示“a>3 或 a<0”的C#表达式的是( )
A、a>3 or a<0
B、a>3 || a<0
C、a>3 && a<0
D、a>3 | a<0

4、如果定义的变量表示的是银行的存款,则最好选( )类型
A、int
B、float
C、double
D、decimal

5、以下变量名不合法的是( )
A、yamaha
B、123Nameis
C、_hebi
D、名字

6、以下赋值语句错误的是()
A、int i=’a’;
B、decimal d1=1.0m;
C、char ch=9;
D、var name=“张龙”;

7、以下赋值语句合法的是( )
A、int x==1;
B、int x=1;y=1;
C、int x=y=1;
D、int x,y; x= y=1;

8、以下代码执行后,不会报错的是( ) int i = 0; decimal d = 0; float f = 0; char ch=’\0’;
A、Console.WriteLine(10/i);
B、Console.WriteLine(10/d);
C、Console.WriteLine(10/f);
D、Console.WriteLine(10/ch);

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。

单元作业

1、输入一个总的秒数,将该秒数换算为相应的时、分、秒。如输入3600秒,则输出结果为1小时;输入3610秒,结果为1小时10秒。 样例1: 3601 1小时1秒 样例2: 67 0小时1分7秒

4 控制结构

单元测验

1、以下描述中,错误的是
A、C#有三种控制语句:顺序、选择、循环。
B、选择结构有if语句,if...else…语句,switch语句三种。
C、if语句条件为false时,跳过if语句块{ },执行else语句块,若没有else语句,顺序执行后面的语句。
D、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(“ 阴”); }
A、晴
B、晴转阴
C、晴 阴
D、晴转阴 阴

3、以下for语句的表示方法,错误的是
A、int i=0; for(i; i<10; i++){ }
B、for( int i=0, i<10, i++){ }
C、int i; for(i=0; i<10; i++){ }
D、for(int i=0; i<10; ){ }

4、以下描述正确的是 for( ; ; ) { 循环体;}
A、不执行循环体;
B、一直执行循环体,死循环;
C、执行循环体一次;
D、程序不符合

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);
A、0
B、28
C、30
D、31

6、在下面循环语句中循环体执行的次数是 for(int i=n; i>0; i--) if(i<n/2) break;
A、(n+5)/2
B、n/2+1
C、n/2-1
D、n-1

7、下面对数组的描述错误的是
A、数组是一种数据结构,它由相同类型的相关数据项组成。
B、数组是固定长度的实体,一旦创建,就会保持长度不变。
C、数组是值类型。
D、数组的元素可以是值类型或引用类型。

8、下面声明和创建数组的语句错误的是
A、int[] a=new int[12];
B、int[] c; c=new int[12];
C、int[] n={ 1,2,3,4,5};
D、int[] array = new int[3] { 1,2};

9、有关对foreach语句描述不正确的是
A、foreach语句的语法为:foreach(type identifier in arrayName){ statement;}
B、其中type和identifier分别表示迭代变量的类型和名称,arrayName表示要迭代的数组。
C、foreach语句只能用来访问数组元素。
D、可以在foreach语句体中改变迭代变量的值。

10、有一个定义了变长实参的方法,其方法头为: public static double getAverage(params double[] numbers){ …} 下面调用该方法不正确的是
A、double d1= getAverage (1);
B、double d2= getAverage (10.0,20.0,30.0);
C、double[] arrayDouble={ 1.0,2.0,3.0,4.0};double d4= getAverage(arrayDouble);
D、都正确

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、abcd
B、123456
C、a
D、编译出错,无法运行

12、以下哪种循环语句的循环体可能被执行0次
A、while
B、do…while
C、for
D、foreach

13、关于跳转语句break和continue,以下说法正确的是
A、break是中断本次循环,进入下一次的循环。
B、continue是中断本次循环,进入下一次的循环。
C、break是中断整个循环。
D、continue是中断整个循环。

14、switch语句的关键字case后面的表达式可以是整形、字符型、字符串型。

15、while循环语句,一定要有修改循环条件的语句,否则会造成死循环。

16、while,do…while,for和foreach循环语句的循环体只有当条件为真时才执行。

17、foreach语句用于遍历数组中的元素,也可改变元素的值。

18、switch语句中的default语句是可选的,也可有多个。

19、C#数组有三种形式,它们是:一维数组、多维数组、交错数组。

20、交错数组各行长度必须相同。

单元作业

1、某城市最高的楼只有一部电梯。该电梯和一般电梯不同的是它依照输入楼层数的先后次序运行。电梯最初在0层。 运行完一个输入序列后就停止在该楼层,不返回0层。 编写程序计算电梯运行一个序列的时间。每次都假设电梯在0层开始, 无论上一次运行到几层。电梯每上1层需要6秒。每下1层需要4秒。 如在某层停留,无论上下人多少,均停留5秒。 输入:楼层的值大于等于1,小于100 ,N=0表示结束输入。 输出:计算每个序列电梯运行的时间。 输入: 2 1 0 输出: 26

5 数组

单元测验

1、下面对数组的描述错误的是( )
A、数组是一种数据结构,它由相同类型的相关数据项组成
B、数组是固定长度的实体,一旦创建,就会保持长度不变
C、数组是值类型
D、数组的元素可以是值类型或引用类型

2、C#数组有三种形式,它们是:( )
A、一维数组、二维数组、三维数组
B、一维数组、二维数组、多维数组
C、整形数组、浮点型数组、字符型数组
D、一维数组、多维数组、交错数组

3、数组scores定义如下: int[] scores=new int[5]{ 65,71,90,68,80}; 则scores[1]=( )
A、65
B、71
C、80
D、未知,编译报错

4、下面声明和创建数组的语句错误的是( )
A、int[] a=new int[12];
B、int[] c; c=new int[12];
C、int[] n={ 1,2,3,4,5};
D、int[] array = new int[3] { 1,2};

5、关于多维数组的描述正确的是( )
A、二维数组用来表示值表,它将信息存放在行和列中,为了确定某个表元素,必须指定两个索引
B、矩阵数组用行和列的形式表示表信息,每行的列数可以不同
C、交错数组各行长度必须相同
D、用arrayName[row,column]形式可以访问到交错数组中的元素

6、在调用方法时,如果想给方法传递任意个数的参数时,应选哪个关键字()
A、ref
B、params
C、any
D、无法实现

7、有关对foreach语句描述不正确的是( )
A、foreach语句的语法为: foreach(type identifier in arrayName) { statement;}
B、其中type和identifier分别表示迭代变量的类型和名称,arrayName表示要迭代的数组
C、foreach语句只能用来访问数组元素
D、可以在foreach语句体中改变迭代变量的值

8、有一个定义了变长实参的方法,其方法头为: public static double getAverage(params double[] numbers){ …} 下面调用该方法正确的是:( )
A、double d1= getAverage (1);
B、double d2= getAverage (10.0,20.0,30.0);
C、double[] arrayDouble={ 1.0,2.0,3.0,4.0}; double d4= getAverage(arrayDouble);
D、以上写法都正确

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; } } }
A、i
B、i+1
C、4-i
D、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、abcd
B、123456
C、a
D、编译出错,无法运行

单元作业

1、利用一维数组求解问题。读入若干(1-15个)整数(一行输入,空格分隔),每个数在10-100之间的整数包括10和100。在读入每个数时,确认这个数的有效性(在10到100之间),并且若它和之前读入的数不一样,就把它存储到数组中,无效的数不存储。读完所有数之后,仅显示用户输入的不同的数值。 样例1: 输入: 12 34 99 123 12 123 78 0 12 99 输出: 12 34 99 78 样例2: 输入: -9 -9 0 34 99 99 99 34 34 34 输出 34 99

6 方法

单元测验

1、在下列代码中,有( )处实现了拆箱。 int score=5; object o= score; o=10; score =(int)o; object oScore = score;
A、0
B、1
C、2
D、3

2、下面控制对成员访问描述错误的是( )
A、访问修饰符public和private控制着对类的变量、方法和属性的访问
B、类的私有变量、属性和方法时类的对象无法直接访问的
C、如果一个类试图去使用另一个类的私有成员,则编译器会产生错误消息,提示这些私有成员无法访问
D、如果类的成员没有用访问修饰符声明,则默认为共有的

3、有关this引用访问当前对象成员的描述正确的是()
A、每个对象都可以用关键字this引用自己
B、调用特定对象的的非静态方法时,方法体会显式用this引用这个对象的实例变量、其他方法和属性
C、如果方法包含与字段同名的局部变量,则方法将引用字段而不是局部变量
D、方法中的参数名或局部变量名应尽可能和字段名保持一致,方便阅读

4、有关构造函数的说法,错误的是( )
A、要重载构造函数,只需提供具有不同签名的多个构造函数声明
B、当实现类的方法时,应使用类的属性来访问类的私有数据,这样可以减少代码维护的工作量,降低出错的可能性
C、每个类都必须至少有一个构造函数
D、不管是否显式的声明了构造函数,编译器都会创建默认的构造函数

5、有关析构函数和内存回收的描述正确的是()
A、在内存回收期回收对象的内存之前,析构函数由内存回收期调用,执行终止清理工作。析构函数和构造函数类似,可以重载
B、析构函数的名字由符号“~”加类名组成,其中“~”可以省略
C、析构函数没有任何修饰符、没有任何参数、也不返回任何值
D、析构函数可以被自动调用,也可以主动显示的调用

6、下面对readonly和const修饰的实例变量不正确的是( )
A、静态常量(const)是指编译器在编译时候会对常量进行解析,并将常量的值替换成初始化的那个值。
B、动态常量(readonly)的值则是在运行的那一刻才获得的,编译器编译期间将其标示为只读常量,而不用常量的值代替,这样动态常量不必在声明的时候就初始化,而可以延迟到构造函数中初始化。
C、const修饰的常量在声明的时候必须初始化; readonly修饰的常量则可以延迟到构造函数初始化。
D、const是静态常量,所以必须要手动再为const增加一个static修饰符。

7、假设student类定义了Name,ClassInfor,StuNumber,利用对象初始化器student类的一个对象并初始化它的属性,下面写法正确的是()
A、student s1 =new student{ Name=”ZhangSan”, ClassInfor =”IT201801”, StuNumber =”10000001”};
B、student s2 =new student{ ClassInfor =”IT201801”, Name=”ZhangSan”, StuNumber =”10000001”};
C、student s3 =new student{ StuNumber =”10000001”};
D、以上写法均正确

8、在visual studio窗口中,在( )窗口中可以查看当前项目的类和类型的层次信息
A、资源视图
B、类视图
C、解决方案管理器
D、属性

9、包装代码的三种常见途径是方法、类和名字空间。

10、递归方法的定义是“直接调用自己的方法”。

11、基类的构造函数不被派生类继承。

单元作业

1、开发计算机辅助教学程序,教小学生学乘法。程序功能: (1)程序开始时让用户选择“年级”为1或2。一年级使只用1位数乘法;二年级使用2位数乘法。 (2)用Random对象产生两个1位或2位正整数,然后输入以下问题,例如: How much is 6 times 7? 然后学生输入答案,程序检查学生的答案。如果正确,则打印“Very good!”,然后提出另一个乘法问题。如果不正确,则打印“No,Please try again.”,然后让学生重复回答这个问题,直到答对。 (3)答对3道题后程序结束。 (4)使用一个单独方法产生每个新问题, 这个方法在程序开始时和每次用户答对时调用。

3 面向对象的编程

单元测验

1、面向对象思想的三大基本特征是
A、抽象,继承,派生
B、类,对象,方法
C、继承,封装,多态
D、对象,属性,方法

2、以下描述中,错误的是
A、封装隐藏了实现细节,使代码模块化。
B、继承可使派生类继承基类的属性和方法。
C、多态是通过继承实现的不同对象调用相同的方法,表现出不同的行为。
D、继承就是派生类继承了基类的所有方法。

3、关于类成员的访问修饰符,描述错误的是
A、在类前添加访问修饰符,声明了类内部成员对该类的访问权限。
B、private私有成员和私有字段成员只能被类内部的方法使用和修改。
C、在类声明时,访问修饰符是可选部分。
D、public修饰的方法,在类实例化调用时,可用“类名.方法名()”调用。

4、下面关于var关键字的描述,错误的是
A、var关键字并不是某种特别类型的符号,它只是句法上的速记,表示任何可以从初始化的右边推断出的类型。
B、能用于局部变量和全局变量。
C、只能在变量声明中包含初始化时使用。
D、一旦编译器推断出变量的类型,它就是固定且不能改变的。

5、关于静态字段的描述,错误是
A、一个类的所有对象共享静态字段。
B、static修饰符声明的字段为静态字段。
C、静态函数成员能访问实例成员和静态成员。
D、如果静态字段的值被一个实例改变,所有实例都可见。

6、关于属性的使用正确的是
A、private int num; public string Num { get{ return num;} set{ num=value;} }
B、private int num; public int Num { get{ return num;} set{ num=value;} }
C、private int num; public int Num { get{ num=value;} set{ return num;} }
D、private int num; private int Num { get{ return num;} set{ num=value;} }

7、C#中的数据类型的描述,错误的是
A、C#中的数据类型分为值类型和引用类型。
B、类类型属于引用类型,默认值是null。
C、int类型的默认值是0,bool类型默认值是false。
D、简单类型如int,double,float,bool,string等是值类型。

8、关于值类型和引用类型,描述正确的是
A、struct属于引用类型
B、string属于值类型
C、所有内置的数据类型都是值类型,所有用户定义的数据类型都是引用类型
D、值类型变量直接存放真正的数据,引用类型变量存放的是指向真正数据的内存地址

9、以下的描述错误的是
A、类的关键字是class。
B、new关键字的作用是类的实例化。
C、类的默认访问修饰符是public。
D、C#没有全局变量,所有的变量都是在类中声明。

10、关于属性的描述,正确的是
A、属性的get方法能修改实例变量的值。
B、用private声明的属性,只能由声明它的类访问。
C、属性的声明必须同时包含get方法和set方法。
D、属性的set方法能够修改实例变量的值。

11、Console.ReadLine读取字符,遇换行符停止,然后将这些字符做为string返回。

12、在调用方法时,实参个数和类型必须与被调用的方法声明参数表中的参数个数和类型一致。

13、局部变量的作用域在声明它的方法内。

14、按照约定,方法名的第一个字母小写,后续所有单词的首字母大写。

15、const修饰的常量在声明中可以初始化也可以不初始化。

16、类实例的值类型成员,分配内存中的栈空间。

17、static字段的值在运行时才能确定。

18、关键字readonly表明对象或者变量在初始化后不能修改。

单元作业

1、定义并实现一个公民类Citizen,该类包括的特征信息有:身份证号ID、姓名Name、性别Gender、年龄Age、籍贯Birthplace、家庭住址Familyaddress属性以及构造方法(不含参数)、输入公民信息方法Input以及输出公民信息方法Print,要求能够对该类对象进行初始化、输入和输出操作。 参考样例: public class Citizen { public string ID { set; get; } //...... public Citizen() { //数据的默认值 } public void Input(string id,string name.....) { ID = id; //.... } public void Print() { //输出 } }

7 类与对象(面向对象的编程)

单元作业

1、定义SavingsAccount类,类中有如下成员: l 静态变量annualInterestRate存储所有账户持有者的年利率。 l 类的每个对象包含一个专用实例变量savingBalance,表示该存款账户当前的金额。 l 定义CalculateMonthlyInterest方法,将annualInterestRate与savingBalance相乘后除以12得到月利息,这个月利息加进savingBalance中。 l 定义静态方法ModifyInterestRate,将savingBalance设置为新值。 测试SavingsAccount类,创建两个SavingsAccount的对象saver1和saver2,结余分别为2000.0美元和3000.0美元。将annualInterestRate设置为4%,然后计算月息,并将月息加入账户结余后,输出两个账户的新结余。然后将annualInterestRate设置为5%,再次输出新的结余。

8 类-继承

单元测验

1、在C#中定义接口时,使用的关键字是( )
A、interface
B、class
C、abstract
D、overrides

2、下列说法正确的是( )
A、接口可以实例化
B、类只能实现一个接口
C、接口的成员前面可以加访问修饰符
D、接口的成员都必须是未实现的

3、关于虚方法实现多态,下列说法错误的是( )
A、关键字virtual可以与override一起使用
B、定义虚方法使用关键字virtual
C、虚方法是实现多态的一种应用形式
D、派生类是实现多态的一种应用形式

4、下列哪一个不是面向对象编程的特征()
A、继承
B、多态
C、封装
D、统一接口

5、下列有关抽象类和虚方法的描述中,正确的是( )
A、抽象类可以实例化其对象
B、抽象类是指具有抽象方法的类
C、虚方法是一个非成员方法
D、虚方法是一个static类型的成员方法

6、下列描述是抽象类的特征是( )
A、可以定义虚函数
B、可以进行构造函数重载
C、可以定义友元函数
D、不能实例化其对象

7、有关对运算符重载的描述正确的是( )
A、所有运算符都能被重载
B、每个运算符都可以被重载成成员函数
C、运算符被重载时,它们的优先级与结合性不会发生改变
D、当需要时,可以自定义一个运算符进行重载

8、关于委托,下面描述错误的是( )
A、委托是一种类的成员
B、委托不一定定义在类中
C、定义委托需使用delegate关键字
D、委托是一种数据类型

9、语句“List<string>?list01?=?new?List<string>();”是我们常说的C#中的哪种技术( )
A、泛型
B、委托
C、引用
D、覆盖

10、调用重载方法时,系统根据( )来选择具体方法。
A、方法名
B、参数名和参数个数
C、方法的返回值类型
D、参数个数和类型

11、利用多态,根据方法调用的对象类型,相同的方法名和签名引起的行为相同。

12、抽象类中的所有方法都必须被声明为抽象的。

13、抽象基类的每个具体派生类,必须为基类的抽象方法和属性提供具体实现。

14、被sealed关键字修饰的方法不能被继承。

单元作业

1、定义圆类Circle,包含半径r,属性R能判断半径r的合理性(r>=0),计算圆面积的方法double Area()。从Circle类派生出圆柱体类Cylinder类,新增圆柱体的高h,属性H能判断高h的合理性(h>=0),新增计算圆柱体体积的方法double Volume()。在主方法中,创建一个Cylinder对象,并输出该对象的底面半径,高以及体积。(要求:不使用构造方法,并且类中的域为私有,方法为公有)。

9 类-多态

单元测验

1、在C#中定义接口时,使用的关键字是
A、interface
B、class
C、abstract
D、overrides

2、下列说法正确的是
A、接口可以实例化
B、类只能实现一个接口
C、接口的成员前面可以加访问修饰符
D、接口的成员都必须是未实现的

3、关于虚方法实现多态,下列说法错误的是
A、关键字virtual可以与override一起使用
B、定义虚方法使用关键字virtual
C、虚方法是实现多态的一种应用形式
D、派生类是实现多态的一种应用形式

4、下列哪一个不是面向对象编程的特征
A、继承
B、多态
C、封装
D、统一接口

5、下列有关抽象类和虚方法的描述中,正确的是
A、抽象类可以实例化其对象
B、抽象类是指具有抽象方法的类
C、虚方法是一个非成员方法
D、虚方法是一个static类型的成员方法

6、下列描述是抽象类的特征是
A、可以定义虚函数
B、可以进行构造函数重载
C、可以定义友元函数
D、不能实例化其对象

7、有关对运算符重载的描述正确的是
A、所有运算符都能被重载
B、每个运算符都可以被重载成成员函数
C、运算符被重载时,它们的优先级与结合性不会发生改变
D、当需要时,可以自定义一个运算符进行重载

8、调用重载方法时,系统根据( )来选择具体方法
A、方法名
B、参数名和参数个数
C、方法的返回值类型
D、参数个数和类型

9、利用多态,根据方法调用的对象类型,相同的方法名和签名引起的行为相同。

10、抽象类中的所有方法都必须被声明为抽象的。

11、抽象基类的每个具体派生类,必须为基类的抽象方法和属性提供具体实现。

12、被sealed关键字修饰的方法不能被继承。

单元作业

1、设计一个交通工具类Vehicle,包含的数据成员有车轮个数wheels和车重weight。以及带有这两个参数的构造方法,具有Run方法,Run中方法输出running字样。小车类Car是它的子类,其中增加了数据成员车载人数passenger_load。Car类中有带参数的构造方法,重写Run方法:输出Car is running。并重写ToString()方法:显示car中信息(显示车轮数、车重、车载人数)。最后编写主方法,定义car的对象,并调用Run方法,以及显示car中信息。

12 Windows Form 编程

单元测试

1、构建Windows窗体以及其所使用空间的所有类的命名空间是()
A、System.IO
B、System.Data
C、System.Text
D、System.Windows.Forms

2、所有Windows窗体控件都是从System.Windows.Forms.Control类继承而来,它公开的成员不包含( )
A、属性
B、事件
C、方法
D、窗体

3、改变窗体\控件的标题,需要修改的属性是
A、Text
B、Name
C、Title
D、Index

4、在C#中,可以标识不同的对象的属性是
A、Text
B、Name
C、Title
D、Index

5、Winforms程序中,如果复选框控件的Checked属性值设置为True,表示
A、该复选框被选中
B、该复选框不被选中
C、不显示该复选框的文本信息
D、显示该复选框的文本信息

6、当鼠标悬停在控件上方时,触发的事件是
A、MouseEnter
B、MouseUp
C、MouseHover
D、MouseMove

7、以下哪个控件可以将其他控件进行分组
A、GroupBox
B、TextBox
C、ComboBox
D、Label

8、以下哪个选项不属于ListBox控件Item属性的方法
A、Add()
B、Insert()
C、Count()
D、Remove()

9、Windows窗体应用程序的编程模型主要由( )三部分组成。
A、窗体
B、控件
C、事件
D、元素

10、Button控件的属性ClickMode可以获取Click事件,这里的Click模式有( )
A、经过
B、悬停
C、按下
D、释放

11、所有的窗体、组件和控件都是类。

12、在C# Winform程序中,新建的窗体后台cs代码自动继承了Form窗体。

13、所有的鼠标事件都使用MouseEventArgs类。

14、Timer控件的Interval属性,用来指定时钟空间触发时间的时间间隔,单位是毫秒。

15、让控件可用的属性是visible,可见的属性是enabled。

16、图片框PictureBox中用于定义图片路径的属性是ImagePath。

单元作业

1、编写一个程序,含有1个ComboBox控件和1个ListBox控件。在ComboBox中显示9种状态名。从ComboBox中选择一个项目时,将其从ComboBox删除并加ListBox中。程序要保证ComboBox中至少有一个项目,否则用消息框打印一个消息,然后在用户关闭消息框时终止执行程序。

14 窗体、对话框和菜单

单元测验

1、当鼠标右击一个控件时出现的菜单一般称为()
A、主菜单
B、菜单项
C、子菜单
D、上下文菜单

2、为菜单添加快捷键的属性是()
A、ShortcutKeys
B、keys
C、MenuKeys
D、MenuShortcutKeys

3、OpenFileDialog是打开文件对话框,显示此对话框的语句是OpenFileDialog1.ShowDialog();当用户点击此对话框的“确定”按钮时,该语句返回等于()
A、DialogResult.Yes
B、DialogResult.OK
C、DialogResult.Cancel
D、DialogResult.NO

4、想要在打开对话框中只显示后缀名为TXT和DOCX文件,那么应设定打开对话框的Filter 的值为()
A、TXT|DOCX
B、TXT|.TXT|DOCX|.DOCX
C、.TXT|.DOCX
D、TXT|.TXT|.DOCX

5、上下文菜单ContextMenu是通过控件的MenuStrip属性进行关联。

6、当调用窗体的Hide方法,程序会直接将此窗体的对象删除掉。

7、菜单会自动将子菜单分类显示

8、MDI父窗口可以具有多个MDI子窗口

15 文件

文件和流

1、以下类中()需要实例化
A、File
B、Directory
C、StreamWriter
D、Path

2、在使用FileSystem打开一个文件时,通过使用FileMode枚举型的( )成员,来指定操作系统打开一个现有文件并把文件读写指针定位在文件尾部。
A、Create
B、CreateNew
C、Truncate
D、Append

3、以下描述中,错误的是( )
A、Directory类和DirectoryInfo用于对目录的管理,File类和FileInfo类用于对文件的管理。都派生自Object类。
B、“文件”是指记录在外部介质上的数据的集合。程序中常处理的两类文件: 文本文件和二进制文件。
C、C#中对文件的操作需要引入命名空间System.IO。
D、流可以分成输入和输出两类,比如从键盘输入到内存的是输入流,从内存到打印机的是输出流。

4、对读写文本文件描述错误的是()
A、用于文本文件读写的主要有两个对象, StreamWriter对象和StreamReader对象。
B、可以使用StreamWriter swFile =new StreamWriter(“C:\\MyFile.txt”);来创建一个读文件对象。
C、用StreamWriter swFile = new StreamWriter(“C:\\MyFile.txt”, True);创建对象时,True表示创建文件返回成功。
D、用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(); } }
A、6789
B、5678
C、4567
D、3456

6、对于Path类的方法描述正确的是( )
A、GetFullPath()返回绝对路径
B、GetTempPath()返回当前系统的临时文件夹的路径
C、GetDirectoryName()返回文件的目录信息
D、都正确

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(); } } }
A、以上程序的输出是hellotest
B、如果注释掉sw.Close(),会报错
C、如果注释掉sw.Close(),不会报错,但是重复执行,文件内容不会改变
D、这段程序的功能是向文件中追加hellotest

8、序列化描述,错误的是( )
A、序列化是为了把对象序列化成字节流写入到磁盘中,去序列化是从文件中读取的过程。
B、类的所有成员都可以被序列化。
C、BinaryFormatter方法需要引入命名空间using System.Runtime.Serialization.Formatters.Binary;
D、在使用序列化方法时,需要在该类声明前加入[Serializable]。生成该类的对象后,Serialize和Deserialize分别将对象写入流和从流中读取对象。

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()); } }
A、必须先生成一个FileStream对象;再讲该对象进一步构造为BinaryWriter和BinaryReader对象。
B、写入文件1.bin后,文件内容是 恭喜你学会了 100
C、BinaryWriter类和BinaryReader类提供多个重载的Write方法和Read方法,方便对文件的读写。比如上例中的对字符串、整形的写入和读出。
D、读出文件的结果是 100 恭喜你学会了

10、StreamReader类继承自Stream类。

11、Directory和DirectoryInfo类提供对目录的操作。

12、FileStream类的Seek方法总是会以相对于文件开头的位置搜索。

13、FileStream以FileMode.Create方式创建文件时,如果文件已存在,则会报错。

14、Serialize方法和Deserialize方法都要求使用Stream对象。

15、二进制文件读写的顺序要保持一致,否则会报错。

中国大学.NET应用开发

随着信息化时代的到来,.NET应用开发成为了当今大学计算机专业的一个热门方向。中国大学的.NET应用开发也日益见长,许多大学都开设了相关课程,并且在近年来的招生中也增加了该专业的招生人数。

中国大学.NET应用开发的优势

中国大学.NET应用开发的优势在于其学科体系的完善和实践教学的丰富。

首先,中国大学的计算机专业学科体系完善,.NET应用开发作为计算机专业的一个方向,其教学内容和课程设置在学科体系中得到了很好的安排。专业课程分为基础课程和应用课程,其中基础课程包括C#程序设计、ASP.NET开发、数据库应用等,这些课程为学生奠定了.NET应用开发的基础;应用课程则涉及到.NET框架下的各种应用场景的开发,如电子商务平台、社交网络、移动应用等。同时,还有相关的实验课程和实习课程,让学生在实践中不断提升自己的开发能力。

其次,中国大学的.NET应用开发实践教学非常丰富。许多大学开设了.NET应用开发实验室,为学生提供了良好的实践环境。学生可以在实验室中完成相关的项目任务,不断提升自己的开发能力。此外,许多大学还与企业合作,提供实习机会,让学生在真实的工作环境中应用所学知识,获取更多的经验。

中国大学.NET应用开发的前景

近年来,随着移动互联网的发展,.NET应用开发的前景越来越广阔。

首先,.NET应用开发在企业中的应用越来越广泛。在传统的PC应用中,.NET应用开发已经得到了充分的应用,如ERP系统、OA系统等。在移动互联网领域,.NET应用开发也有着广泛的应用场景,如移动商城、社交应用等。

其次,.NET应用开发的相关工作岗位也越来越多。从事.NET开发的工作人员可以从事软件开发、互联网应用开发、移动应用开发等众多岗位。根据最近的一个调查显示,.NET开发人员的薪资待遇相较其他专业开发人员更高。

中国大学.NET应用开发的挑战

随着.NET应用开发的日益普及,其发展也面临着一些挑战。

首先,.NET应用开发的竞争压力日益增大。越来越多的计算机专业的学生选择了.NET应用开发作为自己的专业方向,竞争压力也越来越大。此外,.NET应用开发面对的竞争也越来越激烈,越来越多的公司在.NET领域开展业务,竞争也越来越激烈。

其次,.NET应用开发的技术更新速度逐渐加快。随着技术的进步和应用场景的变化,.NET应用开发也需要不断更新自己的知识和技术。这对.NET开发人员的学习和应用能力都提出了更高的要求。

中国大学.NET应用开发的发展建议

为了更好地发展中国大学.NET应用开发,我们可以采取以下建议:

首先,注重实践教学。实践是.NET应用开发学习的重要环节,只有通过实践才能更好地提升学生的开发能力。因此,学校应该注重.NET应用开发实验室的建设和实习课程的设置,为学生提供更好的实践环境。

其次,加强与企业的合作。与企业的合作可以让学生更好地了解实际应用场景和企业需求,为学生的就业和企业的发展提供更好的服务。因此,学校应该积极与企业进行合作,为学生提供更多的实习机会。

最后,注重人才培养。.NET应用开发需要具备较高的编程能力和创新能力,因此学校应该注重学生的素质培养,注重学生的编程训练和创新教育。

总结

中国大学.NET应用开发是一个蓬勃发展的专业方向,其优势在于学科体系的完善和实践教学的丰富。其前景也十分广阔,但同时也面临着竞争压力和技术更新的挑战。为了更好地发展中国大学.NET应用开发,我们应该注重实践教学、加强与企业的合作、注重人才培养。

文章版权及转载声明

本文地址:http://www.zzxhsh.org/41d799934.html发布于 2024-05-19 06:31:54
文章转载或复制请以超链接形式并注明出处五煦查题

评论列表 (暂无评论,44人围观)参与讨论