第一章 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的k8凯发的解决方案资源管理器,包含一个项目的所有文件和组件。
单元作业 1、编程实现在一行内输入若干个整数(不超过30个),输出最大的一个整数。 样例: 输入(在一行内输入,空格分隔): 5 6 78 -89 0 23 100 4 6 输出: 100
第二章 数据类型与表达式 单元测试 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小时0分10秒。 样例1: 输入:3601 输出:1小时0分1秒 样例2: 输入:67 输出:0小时1分7秒
第三章 面向对象的编程 单元测验 1、面向对象思想的三大基本特征是
a、抽象,继承,派生
b、类,对象,方法
c、继承,封装,多态
d、对象,属性,方法
2、以下描述中,错误的是
a、封装隐藏了实现细节,使代码模块化。
b、继承可使派生类继承基类的属性和方法。
c、多态是通过继承实现的不同对象调用相同的方法,表现出不同的行为。
d、继承就是派生类继承了基类的所有方法。
3、关于类成员的访问修饰符,描述错误的是
a、在类前添加访问修饰符,声明了类内部成员对该类的访问权限。
b、private私有成员和私有字段成员只能被类内部的方法使用和修改。
c、在类声明时,访问修饰符是可选部分。
d、static修饰的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() { //输出 } }
第四章 控制结构 单元测验 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
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第五章 数组 单元测验 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第六章 方法 单元测验 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、k8凯发的解决方案管理器 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)使用一个单独方法产生每个新问题, 这个方法在程序开始时和每次用户答对时调用。第七章 类与对象(面向对象的编程) 单元作业 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%,再次输出新的结余。第八章 类-继承 单元测验 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 list01 = new list();”是我们常说的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对象,并输出该对象的底面半径,高以及体积。(要求:不使用构造方法,并且类中的域为私有,方法为公有)。第九章 类-多态 单元测验 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中信息。第十章 异常 单元测验 1、c#中用try…catch…捕获的异常属于( )错误 a、语法 b、逻辑 c、运行 d、拼写 2、在()块中放置异常的处理方法 a、try b、catch c、finally d、throw 3、使用关键字()可以抛出异常,如抛出自定义的异常和系统异常。 a、new b、this c、throw d、exception 4、以下异常处理结构中,错误的是() a、catch{} finally{} b、try{} finally{} c、try{} catch{} finally{} d、try{} catch{} 5、下列关于异常处理的表述,正确的是() a、try、catch、finally必须同时出现 b、catch只能出现一次 c、try所抛出的异常一定能被catch捕获 d、无论异常是否抛出,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("异常处理完毕"); } } a、除零异常,异常处理完毕 b、除零异常,产生异常 c、数组越界,异常处理完毕 d、数组越界,产生异常 7、异常对象都是从exception类派生的。 8、exception类中的innerexception属性包含对异常原因的描述信息。 9、system.exception是预定义的公共语言运行库异常类的基类。 10、try块中封装了可能引发异常的代码。 11、当有多个异常要捕获时,应先捕获exception类异常,再捕获具体的异常。单元作业 1、编程,输入里程数和耗油量,计算每升的里程数,程序中使用异常处理器,当输入的里程数或耗油量无法转换成double值时处理formatexception。第十一章 泛型和委托 单元测验 1、关于c#的泛型,以下描述正确的是 a、所有泛型方法声明都将类型参数表放在方法名称的前面 b、类型参数表中只能将类型参数声明一次,但可以在方法的参数表中多次出现 c、不同泛型方法的类型参数名称必须不同 d、类型参数最多只能有一个接口约束,但可以有多个类约束 2、关于c#中泛型的约束,描述错误的是 a、where t:class 表示必须替换t的必须是引用类型 b、where t:ifoo 表示必须替换t的必须是接口 c、where t: struct 表示要替换的t必须是结构体类型 d、where t:new()表示必须替换t的必须是有默认构造函数的类型 3、语句stack objectstack=new stack ();表示objectstack保存的是int型变量。 4、泛型方法的类型参数表用()分隔。类型参数指定了方法实参的类型、返回类型。第十二章 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中至少有一个项目,否则用消息框打印一个消息,然后在用户关闭消息框时终止执行程序。第十三章 gdi 绘图系统 单元测验 1、图形设备接口的缩写是下述哪项() a、mdi b、gdi c、sdi d、clr 2、定义一个画笔对象,下列哪项错误() a、pen mypen=new pen(color.red) b、pen mypen=new pen(new solidbrush(color.red)) c、pen mypen=new pen(color.red,5) d、pen mypen=new pen(new bitmap(“e:\\1.jpg”)) 3、以下哪一个方法不是graphics类中提供的绘图方法() a、drawarc b、drawcircle c、drawline d、drawrectangle 4、下列代码完成的功能,哪项表述正确() pen mypen = new pen(color.blue, 2); graphics g = e.graphics; g.drawrectangle(mypen, 10, 10, 200, 10); a、用蓝色的画笔画了一个左上角坐标为(10,10),右下角坐标为(200,10)的矩形 b、用蓝色的画笔画了一个左上角坐标为(10,10),宽为200,高为10的矩形 c、用蓝色的画刷填充了一个左上角坐标为(10,10),右下角坐标为(200,10)的矩形 d、用蓝色的画刷填充了一个左上角坐标为(10,10),宽为200,高为10的矩形 5、使用gdi 绘图接口可以在窗体上进行绘图,但不能在控件上进行绘图。 6、在gdi 绘图接口中,必须先创建graphics对象,才能用gdi 进行绘图操作。 7、drawstring是绘制文本的方法,确定所绘制文本的颜色是一个pen对象参数。单元作业 1、使用图形方法,在form上画出: 1. 画出5不同颜色直线并形成一个多边形; 2. 用红色画笔画一个圆形; 3.用图片填充一个矩形。第十四章 窗体、对话框和菜单 单元测验 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子窗口单元作业 1、完成图示程序:通过字体菜单选择字体,通过颜色菜单选择颜色,在窗体中画图并输出文字说明。画图菜单包括两个菜单项:画线、画圆。 具体如图所示: 第十五章 文件 文件和流 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、二进制文件读写的顺序要保持一致,否则会报错。课程综合测试 客观题 1、在菜单选项上添加一条横线(分隔线)的方法是 a、–(减号) b、_(下划线) c、line d、 (加号) 2、消息框返回值是( )类型的值 a、0或1 b、bool布尔类型 c、按钮上的文本值 d、dialogresult枚举类型 3、在新建窗体中拖一个控件,此控件自动生成的代码应放在以下哪个文件中 a、.cs b、.properties.cs c、.resx d、.descigner.cs 4、在c# winform程序中,以下关于timer控件的说法正确的是 a、有事件tick b、有方法enabled() c、有事件interval d、有属性start() 5、让窗体初始化加载后显示在屏幕中央,需要设置哪个属性 a、windowstate b、startpositon c、formborderstyle d、showintaskbar 6、picturebox控件显示图片时,应该将该控件的( )属性设置为显示的图片 a、image b、imagelocation c、imagelist d、picture 7、在.net控件中,groupbox、panal、tabcontrol等分组控件,有时候也称之为 a、组合控件 b、排列空间 c、基类控件 d、容器控件 8、引用listbox(列表框)最后一个数据项应使用( )语句 a、listbox1.items[listbox1.items.count] b、listbox1.items[listbox1.items.count-1] c、listbox1.items[listbox1.selectedindex] d、listbox1.items[listbox1. selectedindex-1] 9、指定操作系统读取文件方式中的filemode.create的含义是 a、打开现有文件 b、打开现有文件,如果文件不存在,出现异常 c、指定操作系统应创建文件,如果文件存在,出现异常 d、指定操作系统应创建文件,如果文件存在,将被覆盖 10、streamreader类中的( )方法用于从流中读取一行字符,如果到达流的末尾,则返回null。 a、read b、write c、readline d、writeline 11、窗体中有一个年龄文本框txtage,下面( )代码可以获取文本框的年龄值 a、int age=txtage; b、int age=txtage.text; c、int age=convert.toint(txtage); d、int age=int.parse(txtage.text); 12、在visual studio.net窗口中,( )窗口显示了当前visual studiok8凯发的解决方案的树形结构。 a、类试图 b、k8凯发的解决方案资源管理器 c、资源视图 d、属性 13、异常捕获发生在( )块中 a、try b、catch c、finally d、throw 14、下面描述错误的是 a、类不可以多重继承而接口可以 b、抽象类自身可以定义成员而接口不可以 c、一个类可以有多个基类和多个基接口 d、抽象类和接口都不能被实例化 15、下列有关构造函数的描述正确的是 a、构造函数不可以用private修饰 b、构造函数不能带参数 c、构造函数必须与类名相同 d、构造函数可以声明返回类型 16、c#中创造一个对象,系统最先执行的是( )中的语句 a、构造方法 b、初始化函数 c、字符串函数 d、方法 17、有关枚举的描述错误的是 a、枚举定义一组有限的值 b、枚举是一个指定的常数 c、可以为枚举类型中的元素赋整数值 d、枚举中可以添加一个方法 18、有关对运算符重载的描述正确的是 a、每个运算符都可以被重载成成员函数 b、所有运算符都能被重载 c、当需要时,可以自定义一个运算符进行重载 d、运算符被重载时,它们的优先级与结合性不会发生改变 19、以下对继承的叙述正确的是 a、在c#中任何类都可以被继承 b、一个子类可以继承多个父类 c、object类是所有类的直接基类 d、继承有传递性,如果a类继承b类,b类又继承c类,那么a类也继承c类的成员 20、所有接口成员默认都是 a、public b、protected c、private d、static 21、以下泛型集合声明中正确的是 a、class stack{} stack s=new stack(); b、class stack{} stack s=new stack (); c、class stack{} stack s=new stack(); d、class stack{} stack s=new stack ; 22、下列说法正确的是()。 a、pen对象定义轮廓线的属性,brush对象定义内部区域的属性。 b、pen对象定义内部区域的属性,brush对象定义轮廓线的属性。 c、pen对象定义轮廓线的属性和内部区域的属性。 d、brush对象定义轮廓线的属性和内部区域的属性。 23、绘制直线主要用到了graphics类中的()方法。 a、drawstring b、drawellipse c、drawrectangle d、drawline 24、绘制一个实心圆,下列代码正确的是 a、graphics g=creategraphics(); pen mypen=new pen(color.blue); g.drawellipse(mypen, new rectangle(50, 50, 100, 100)); b、graphics g=creategraphics(); solidbrush mybrush = new solidbrush(color.blue); g.drawellipse(mybrush, new rectangle(50, 50, 100, 100)); c、graphics g=creategraphics(); solidbrush mybrush = new solidbrush(color.blue); g.fillellipse(mybrush, new rectangle(50, 50, 100, 100)); d、graphics g=creategraphics(); pen mypen=new pen(color.blue); g.fillellipse(mypen, new rectangle(50, 50, 100, 100)); 25、给菜单加默认的快捷键,例如“文件(&f)”,这样就可以使用下列哪项来访问这个菜单。 a、ctrl f b、alt f c、tab f d、shift f 26、与文件操作有关的类在命名空间()中。 a、system.text b、system.data c、system.io d、system.linq 27、使用序列化的方法正确的是 a、"serializable" b、'serializable' c、(serializable) d、[serializable] 28、下列哪项不是线性结构()。 a、线性表 b、栈 c、图 d、队列 29、抽象类和抽象方法的声明都要使用关键字 a、struct b、abstract c、static d、override 30、运算符重载的关键字是 a、operator b、override c、overload d、abstract 31、在c#中,借助什么符号构建派生类。 a、“:” b、“;” c、“\” d、“|” 32、类成员的访问修饰符如果没写,则系统默认缺省值是 a、public b、protected c、private d、protectde internal 33、char[] suit={(char)3, (char)4, (char)5, (char)6};可以换成以下那句 a、char[] suit={3, 4, 5, 6}; b、char[] suit={‘3’, ‘4’, ‘5’, ‘6’}; c、char[] suit={"3", "4", "5", "6"}; d、char[] suit={3.tostring(), 4.tostring(), 5.tostring(), 6.tostring()}; 34、如果没有类修饰符,系统默认该类是: a、public b、private c、internal d、protected 35、定义结构的关键字是 a、static b、string c、const d、struct 36、c#一般使用try和catch捕捉和处理异常。 37、派生类可以继承基类的构造函数。 38、基类中私有成员可以被继承到派生类中。 39、try…catch语句中可以有多个catch语句。 40、try…catch...finally语句中,无论有无异常,finally块始终会执行。 41、gdi 中最主要的对象是graphics对象,它封装了gdi 画图板。 42、timer1.interval=300;这条语句表示定时器事件触发的时间间隔是300秒。 43、要显示窗体form2,可以使用语句:form2.show(); 44、构造binarywriter 对象,必须从一个存在的filesteam流来构造。 45、在派生类中可以使用this关键字指代当前类的父类。 46、递归就是直接或间接调用自身的方法。 47、在声明类的方法时,如果没有参数列表,方法名后面的圆括号可以省略。 48、类的构造方法可以有返回值。 49、switch(表达式) 中表达式的返回值可以是浮点型。 50、常量是使用static关键字进行声明的。程序设计题 1、建立一个名为triangle的控制台项目,打印输出下图所示的金字塔图案。作答完成后请对项目文件夹进行压缩,压缩包的文件名为应该为triangle.rar或者triangle.zip,把该压缩包以文件附件的形式作为本题的答案上传提交。(本题15分)。 具体要求: 有正确的程序结构、类的定义 有正确的入口函数main()定义 图案行数由用户输入控制 有正确的行、列双重循环控制 有每行的左边的正确空格输出(一个五角形占据两个空格的占位符的位置) 2、建立一个名为chessboard的windows窗体应用项目,打印输出下图所示的国际象棋棋盘图案,棋盘方格可使用黑白背景的label控件实现,也可以自画实心矩形块实现。作答完成后请对项目文件夹进行压缩,压缩包的文件名为应该为chessboard.rar或者chessboard.zip,把该压缩包以文件附件的形式作为本题的答案上传提交。(本题15分)。 要求: 有正确的显示棋盘背景的方法定义 有正确的棋盘行、列变量定义 有正确的棋盘方格大小变量定义 有正确的棋盘行、列双重循环输出 有正确的棋盘颜色交错相间判断 有正确的有方法调用语句 期末考试试卷 客观题 1、能正确表示逻辑关系“a≥10 或 a≤0”的c#语言表达式是( )。 a、a>=10 or a<=0 b、a>=10 | a<=0 c、a>=10 && a<=0 d、a>=10 || a<=0 2、在c#语言中,if语句后面的表达式,不能是( )。 a、逻辑表达式 b、算数表达式 c、关系表达式 d、布尔类型的表达式 3、小数类型(decimal)和浮点类型都可以表示小数,正确说法:( )。 a、两者没有任何区别 b、小数类型比浮点类型取值范围大 c、小数类型比浮点类型精度高 d、小数类型比浮点类型精度低 4、在c#语言中,转义字符不可以表示( )。 a、任何字符 b、字符串 c、字母 d、小数点 5、引用类型主要有4种:类类型、数组类型、接口类型和( )。 a、对象类型 b、字符串类型 c、委托类型 d、整数类型 6、加载窗体时触发的事件是( )。 a、click b、load c、gotfoucs d、doubleclick 7、改变窗体的标题,需修改的窗体属性是( )。 a、text(即内容) b、name c、title d、index 8、c#中,新建一字符串变量str,并将字符串“tom's living room”保存到串中,则应该使用下列哪条语句?( ) a、string str = “tom\'s living room”; b、string str = “tom's living room”; c、string str(“tom's living room”); d、string str(“tom”s living room”); 9、在类的成员中,用于存储属性值的是( )。 a、属性 b、方法 c、事件 d、成员变量 10、在类作用域中能够通过直接使用该类的( )成员名进行访问。 a、私有 b、公用 c、保护 d、任何 11、类的以下特性中,可以用于方便地重用已有的代码和数据的是( )。 a、多态 b、封装 c、继承 d、抽象 12、在array类中,可以对一维数组中的元素进行排序的方法是( )。 a、sort() b、clear() c、copy() d、reverse() 13、将变量从字符串类型转换为数值类型可以使用的类型转换方法是( )。 a、str() b、char() c、cstr() d、int.parse() 14、数据类型转换的类是( )。 a、mod b、convert c、const d、single 15、应用ado.net 访问数据时,connection 对象的连接字符串中initial catalog 子串的含义是( )。 a、connection 对象连接到的数据库的名称 b、connection 对象的身份验证信息 c、connection 对象的最大连接时间 d、connection 对象使用的缓存大小 16、先判断条件的当循环语句是( )。 a、do...while b、while c、while...do d、do ...loop 17、在c#中设计类时,应如何保证在释放对象的所有引用之前,释放对象使用的文件、网络等资源?( ) a、为类添加析构函数,在析构函数中释放资源 b、为类重载new运算符 c、为类实现idisposable接口,并实现dispose方法,在该方法中释放资源 d、为类添加delete运算符 18、c#中myclass 为一自定义类,其中有以下方法定义( )。 public void hello(){...} 使用以下语句创建了该类的对象,并使变量obj 引用该对象: myclass obj = new myclass(); 那么,可如何访问类myclass 的hello 方法? a、obj.hello(); b、ob j::hello(); c、myclass.hello(); d、myclass::hello(); 19、以下正确的描述是( )。 a、函数的定义可以嵌套,函数的调用不可以嵌套 b、函数的定义不可以嵌套,函数的调用可以嵌套 c、函数的定义和函数的调用均可以嵌套 d、函数的定义和函数的调用均不可以嵌套 20、假定一个10行20列的二维整型数组,下列哪个定义语句是正确的( )。 a、int[]arr = new int[10,20] b、int[]arr = int new[10,20] c、int[,]arr = new int[10,20] d、int[,]arr = new int[20;10] 21、静态类和实例类的区别在于:静态类不需要初始化即可直接使用,实例类需要进行实例化,生成对象才可使用。( ) 22、不能指定接口中方法的修饰符。( ) 23、dotnet包含两个部分,即公共语言运行时和框架类库。( ) 24、在数据类型转化时,只能通过类型转换关键字或convert类实现。( ) 25、在定义数组时不允许为数组中的元素赋值。( ) 26、设置图片框控件的sizemode属性为stretchimage时,图片可以按图片框的大小比例缩放显示。( ) 27、dataset对象中的表可以和数据库中的表同名,也可以不同名。( ) 28、委托是将方法作为参数传递给另一方法的一种数据类型。事件与委托没有关系。( ) 29、在c#中,子类不能继承父类中用private修饰的成员变量和成员方法。( ) 30、在c#类中,this代表了当前类本身。( ) 31、写出以下程序的输出结果。using system; class program { public static void main(string[] args) { int a=5,b=4,c=6,d; console.writeline(“”,d=a>b?(a>c?a:c):b); } } 运行结果:_________。 32、写出以下程序的运行结果。 using system; class test { public static void main() { int x = 15; int y = x ; console.write(“”,y); } } 运行结果: 。 33、写出以下程序的运行结果。 using system; class test { public static void main() { int x = 15; int y = x ; y= x; console.write(“,”,y); } } 运行结果: 。 34、分析下列程序中类myclass 的定义,写出console语句的输出结果。class baseclass { public int i; } class myclass:baseclass { public new int i; } public static void main() { myclass y = new myclass(); baseclass x = y; x.i = 100; console.writeline(“”,x.i); } 运行结果: 。 35、分析下列程序中类myclass 的定义,写出console语句的输出结果。 class baseclass { public int i; } class myclass:baseclass { public new int i; } public static void main() { myclass y = new myclass(); baseclass x = y; x.i = 100; console.writeline(“”,y.i); } 运行结果: 。程序设计题 1、建立一个名为triangle的控制台项目,打印输出下图所示的金字塔图案,五角星图案字符为“★”。作答完成后请对项目文件夹进行压缩,压缩包的文件名为应该为triangle.rar或者triangle.zip,把该压缩包以文件附件的形式作为本题的答案上传提交,同时对程序运行结果进行截图并上传该图片。(本题15分)。 具体要求: 有正确的程序结构、类的定义 有正确的入口函数main()定义 图案行数由用户输入控制 有正确的行、列双重循环控制 有每行的左边的正确空格输出(一个五角形占据两个空格的占位符的位置) 有上传的程序运行结果截图 2、建立一个名为chessboard的windows窗体应用项目,打印输出下图所示的国际象棋棋盘图案。作答完成后请对项目文件夹进行压缩,压缩包的文件名为应该为chessboard.rar或者chessboard.zip,把该压缩包以文件附件的形式作为本题的答案上传提交,同时对程序运行结果窗口进行截图并上传该图片。(本题15分)。 具体要求: 上传程序运行结果窗口截图、程序项目压缩包 窗口标题中须包含考生本人的学号和姓名,如:国际象棋棋盘(20180039-张三丰) 棋盘方格使用黑白背景的label控件实现 有正确的显示棋盘背景的方法定义 有正确的棋盘行、列变量定义 有正确的棋盘方格大小变量定义 有正确的棋盘行、列双重循环输出 有正确的棋盘颜色交错相间判断 有正确的有方法调用语句 猜你喜欢 2022-12-05 21:49 2022-12-05 21:16 2022-12-05 21:01 2022-12-05 20:58 2022-12-05 20:34 2022-12-05 20:11 2022-12-05 20:06 2022-12-05 19:48 2022-12-05 19:37 2022-12-05 19:34