C#程序设计习题集_第1页
C#程序设计习题集_第2页
C#程序设计习题集_第3页
C#程序设计习题集_第4页
C#程序设计习题集_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、PAGE PAGE - 65 -C#程序设计习题集辛晓辉2014年12月中国地质大学(北京)信息工程学院第2章 简单的C#程序设计一选择题1C#中程序的入口方法是【 】方法。A) mainB) MainC) beginD) Program2假设变量x的值为25,要输出x的值,下列正确的语句是【 】。A) System.Console.writeline(“x”);B) System.Console.WriteLine(“x”);C) System.Console.WriteLine(“x=0”,x);D) System.Console.WriteLine(“x=x”);3要退出应用程序的执行,

2、应执行下列的【 】语句。A) Application.Exit();B) Application.Exit;C) Application.Close();D) Application.Close;4关于C#程序的书写,下列不正确的说法是【 】。A) 区分大小写B) 一行可以写多条语句C) 一条语句可以写成多行D) 一个类中只能有一个Main()方法,因此多个类中可以有多个Main()方法。5公共语言运行库即【 】。A) CRLB) CLRC) CRRD) CLS6.NET平台是一个新的开发框架,【 】是.NET的核心部分。A) C#B) .NET FrameworkC) VB.NETD) 公共

3、语言运行库7C#应用程序项目文件的扩展名是【 】。A) csprojB) csC) slnD) suo8C#应用程序解决方案文件的扩展名是【 】。A) csprojB) csC) slnD) suo9运行C#程序可以通过按【 】键实现。A) F5B) Alt+F5C) Ctrl+F5D) Alt+Ctrl+F510C#语言中类模块代码文件的扩展名是【 】。A) csprojB) csC) slnD) suo11构建桌面应用程序需要.NET提供的类库是【 】。A) ADO.NETB) Windows FormC) XMLD) ASP.NET12C#中导入某一命名空间的关键字是【 】。A) use

4、B) usingC) importD) include13.NET Framework将【 】定义为一组规则,所有.NET语言都应遵守这个规则,才能创建可以与其他语言互操作的应用程序。A) JITB) CLRC) MSILD) ADO.NET14在VS.NET中,在【 】中可以查看当前项目的类和类的层次信息。A) 解决方案资源管理器B) 类视图窗口C) 对象浏览器窗口D) 属性窗口15在.NET Framewor中,MSIL是指【 】A) 接口限制B)中间语言C) 核心代码D) 类库16【 】是独立于CPU的指令集,它可以被高效地转换为本机机器语言。A) CLRB) CTSC) CLSD) M

5、SIL17利用C#开发应用程序通常有三种类型,不包括【 】。A) 控制台应用程序B) Web应用程序C) SQL程序D) Windows应用程序18【 】包含在. NET Framewor的各语言之间兼容的数据类型。A) JIT(Just-In-Time Compiler即时编译器)B)CTS(通用类型系统)C) CLS(公共语言规范)D) MSIL(微软中间语言)19C#源代码经过【 】次编译,才能在本机上执行。A) 1B)2C) 3D) 020所有.NET支持的编程语言编写的源代码经过一次编译后,被编译成【 】。A) 机器代码B)MSIL代码C) CLS代码D) C#源代码21在.NET中

6、,关于CLR和MSIL的叙述正确的是【 】。A) 应用程序在CLR环境被编译成MSIL,MSIL将能够被任何计算机执行B) 应用程序被编译两次,第一次生成MSIL,MSIL在运行时被CLR快速编译C) 应用程序被编译两次,但第二次CLR编译比第一次慢D) 借取CLR,MISL被编译成机器代码,该机器代码能够在不同计算机下执行22CLR为.NET通过如下方面的功能或者服务,除了【 】。A) 无用存储单元收集B) 代码验证和类型安全C) 代码访问安全D) 自动消除程序中的逻辑错误23.NET Framework是一种新的开发平台,它具有两个主要组件,分别是【 】和.NET基础类库。A) 公共语言运

7、行库B) Web服务C) 命名空间D) Main()函数24控制台应用程序使用【 】命名空间中的类处理输入和输出。A) SystemB) System.WebC) System.Windows.FormsD) System.Data25【 】类型的应用程序适合于交互性操作较少的情况。A) 控制台应用程序B) Windows应用程序C) Web应用程序D) 以上都不是26以下对Read() 和ReadLine()方法的叙述中正确的是【 】。A) Read()方法一次只能从输入流中读取一个字符B) Read()方法一次可以从输入流中读取一个字符串C) ReadLine()方法一次只能从输入流中读取

8、一个字符D) ReadLine()方法只有当用户按下Enter键时返回,而Read()方法不是27以下对Write() 和WriteLine()方法的叙述中正确的是【 】。A) Write()方法在输出字符串的后面添加换行符B) 使用Write()方法输出字符串时,光标将会位于字符串的后面C) 使用Write()方法和WriteLine()方法输出数值变量时,必须要先将数值转换成字符串D) 使用不带参数的WriteLine()方法时,将不会产生任何输出28以下关于控制台应用程序和Windows应用程序的叙述中正确的是【 】。A) 控制台应用程序中有一个Main静态方法,而Windows应用程序

9、中没有B) Windows应用程序中有一个Main静态方法,而控制台应用程序中没有C) 控制台应用程序和Windows应用程序中都没有Main静态方法D) 控制台应用程序和Windows应用程序中都有一个Main静态方法二填空题1.NET框架包括【 公共语言运行库(CLR) 】和.NET基础类库。2为便于管理多个项目,在VS.NET集成环境中引入【 解决方案资源管理器 】,用来对企业级解决方案涉及的多个项目进行管理。3C#是作为【 C+ 】语言的替代品种出现的。4要使lable控件显示给定的文字“您好。”,应在设计状态下设置它的【 Text 】属性值。5C#要求程序中的每个元素都要属于一个【

10、类 】。6在C#程序中,程序的执行总是从【 Main 】方法开始的。7在C#中,进行注释有两种方法:使用“/”和使用“/* */”符号对,其中【 / 】只能进行单行注释。8要在控制台程序运行时输入信息,可使用Console类的【 Write 或 WriteLine 】方法。三问答题1C#语言的特点是什么?2说明Visual Studio.NET、.NET Framework和C#之间的联系。3Visual Studio 2008包含哪几种开发语言?4控制台应用程序有哪些常用的输入输出方法?5简述命名空间的作用。6什么是解决方案?什么是项目?解决方案与项目有什么关系?第3章 C#程序设计基础一选

11、择题1在C#语言中,下列能够作为变量名的是【 】。A) ifB) 3abC) a_3bD) a-bc2下列标识符中,非法的是【 】。A) MyNameB) c sharpC) abc2cdD) _1233C#的数据类型分为【 】。A) 值类型和调用类型B) 值类型和引用类型C) 引用类型和关系类型D) 关系类型和调用类型4C#中的值类型包括三种,它们是【 】。A) 整型、浮点型和基本类型B) 数值类型、字符类型和字符串类型C) 简单类型、枚举类型、结构类型D) 数值类型、字符类型、枚举类型5下列选项中,【 】是引用类型。A) enum类型B) struct类型C) string类型D) int

12、类型6以下类型中,不是值类型的是【 】。A) 整数类型B)布尔类型C) 类类型D) 字符类型7在C#语言中,转义字符不可以表示【 】。A) 任何字符B)字符串C)字母D)小数点8下列数值类型的数据精度最高的是【 】。A) intB) floatC) decimalD) ulong9要使用变量score来存储学生某一门课程的成绩(百分制,可能出现小数部分),则最好将其定义为【 】类型的变量。A) intB) decimalC) floatD) double10在C#中,每个int类型的变量占用【 】个字节的内存。A) 1B) 2C) 4D) 811以下C#语句中,常量定义正确的是【 】。A) c

13、onst double PI 3.1415926;B) const double PI= 3.1415926;C) define double PI 3.1415926;D) define double PI=3.1415926;12在C#中,表示一个字符串的变量应使用以下【 】语句定义。A) str as String;B) String str;C) String *str;D) char *str;13在C#中,新建一个字符串变量str,并将字符串“Toms Living Room”保存到串中,则下列正确的语句是【 】。A) String str=Toms Living Room;B)

14、String str=Toms Living Room;C) String str=Toms Living Room;D) String *str=Toms Living Room;14在C#语言中,下面的运算符中,优先级最高的是【 】。A) %B) +C) *=D) 15表达式5/2+5%2-1的值是【 】。A) 4B) 2C) 2.5D) 3.516能正确表示逻辑关系“a10 或 a0”的C#语言表达式是【 】。A) a=10 or a=10 | a=10 & a=10 | ab20以下装箱、拆箱语句中,错误的有【 】。A) object obj=100; int m=(int)obj;B

15、) object obj=100; int m=obj;C) object obj=(int)100; int m=(int)obj;D) object obj=(object)100; int m=(int)obj;21下面有关变量和常量的说法,正确的是【 】。A) 在程序运行过程中,变量的值是不能改变的,而常量是可以改变的B) 常量定义必须使用关键字constC) 在给常量赋值的表达式中不能出现变量D) 常量在内存中的存储单元是固定的,变量则是变动的22代码public static const int A=1;中的错误是【 】。A) A需要定义类型B) 格式错误C) const不能用st

16、atic修饰符D) const不能用public修饰符23以下对枚举类型的定义,正确的是【 】。A) enum a=one,two,three;B) enum aa1,a2,a3;C) enum a1, 2, 3;D) enum a one,two,three ;25枚举型常量的值不可以是【 】类型。A) intB) longC) ushortD) double26执行下列两条语句后,结果s2的值为【 】。string s=abcdefgh;string s2=s.Substring(2,3);A) bcB) cdC) bcdD) cde二填空题1在C#中,使用【 const 】关键字来声明符

17、号常量。2在C#中,表达式Math.Pow(2,-2)的值是【 0.25 】。3为计算表达式ex+y的值,应使用的C#语言的表达式是【 Math.Exp(x+y) 】。4C#语言规定,变量在使用之前必须先【 定义 】。5下列程序完成的功能是:从键盘上输入一个直角三角形的斜边长度和一个角的度数,计算出另两条直角边的长度并输出。请填空。class Programpublic static void Main(string args)double a, b, c, d, jd;c= Convert.ToSingle(Console.ReadLine();/输入斜边的长度jd=Convert.ToSi

18、ngle(Console.ReadLine();/输入角的度数d=【jd *Math .PI /180 】;a=c*Math.Sin(d);b=【c*Math .Cos (d) 】;Console.WriteLine(a=0,b=1,a,b); /输出两直角边的值6设x为int型变量,请写出描述“x是奇数”的C#语言表达式【 x%2=1 】。7请写出描述“-10 x10”的C#语言表达式【 x=-10 & x=10 】。8在代码中明确表示将某种数据类型转换为另一种数据类型称为【 显式类型转换 】。9下面程序的运行结果是【 】。class Program public static void M

19、ain(string args) string str1=星期一星期二星期三; string str2=星期一星期二星期三; Console.WriteLine(str1=0,str1); Console.WriteLine(str2=0,str2); str1=星期一星期二星期三str2=星期一星期二星期三10C#中的字符串有两类:规则字符串和逐字字符串,定义逐字字符串时,应在其前面加上【 】号。11下列程序的执行结果是【 False 】。class Programpublic static void Main(string args)string str1,str2;str1=abdde;

20、 str2=abcde;Console.WriteLine(0,str1=str2);12已知str的值为”abcdefgh”,则表达式str.Substring(1,3)的值为【 bcd 】。13若要从字符串str的第3个字符开始取5个字符作为一个子串赋给sstr,可以使用语句【 sstr=str.Substring(3,5) 】实现。14以下程序的执行结果是【 123 】。public static void Main(string args)string str=1a2b3c;int i;for(i=0;i=0& strib&b=c|ab?(ac?a:c):b);19以下程序的输出结果是

21、【 】。class Program public static void Main(string args) int a = new int3 1, 2, 3 ; for (int i = 0; i 3; i+) Console.Write(0 , ai); Console.WriteLine(); int b = a; for (int i = 0; i 3; i+) bi = 2 * bi; for (int i = 0; i 3; i+) Console.Write(0 , ai); Console.WriteLine(); Console.Read(); 1 2 32 4 620以下程

22、序的输出结果是【 】。class Program public static void Main(string args) int a=4,b=5,m,n; m=(a+)+(b+); n=a+b; Console.WriteLine(m=0 n=1,m,n); m=(+a)+(+b); n=a+b; Console.WriteLine(m=0 n=1,m,n); m=9 n=13m=13 n=13三问答题1什么是字符类型和字符串类型?两者有何区别和联系?2是否可以定义这样的数组:它即包含int类型数据,也包含float类型数据?为什么?3变量与常量有何区别?4什么是数据类型转换?有哪几种方法?

23、5数据类型的隐式转换和显式转换分别在什么场合使用?它们可以相互替换吗?6除(/)运算对整型数据和浮点型数据有何不同?7简述C#中有哪些数据类型。8说明C#值类型与引用类型数据的区别。9简述C#中结构类型和枚举类型的声明方法。10简述C#中常用类的静态方法和非静态方法的差异。第4章 C#控制语句一选择题1在C#语言中,if语句后面的表达式应该是【 】。A) 逻辑表达式B) 条件表达式C) 关系表达式D) 布尔类型的表达式2在C#语言中,if语句后面的表达式,不能是【 】。A) 逻辑表达式B) 算数表达式C) 关系表达式D) 布尔类型的表达式3在C#语言中,switch语句用【 】来处理不匹配ca

24、se语句的值。A) defaultB) anyelseC) breakD) goto4下列程序的输出结果是【 】。public static void Main(string args)int x=1,a=0,b=0;switch(x) case 0: b+; break;case 1: a+; break;case 2: a+; b+; break;Console.WriteLine(“a=0,b=1”,a,b);A) a=2,b=1B) a=1,b=1C) a=1,b=0D) a=2,b=25以下叙述正确的是【 】。A) dowhile语句构成的循环不能用其他语句构成的循环来代替B) do

25、while语句构成的循环只能用break语句结束循环C) 用dowhile语句构成的循环,在while后的表达式为true时结束循环D) 用dowhile语句构成的循环,在while后的表达式应为关系表达式或逻辑表达式6以下关于for循环的说法不正确的是【 】。A) for循环只能用于循环次数已经确定的情况B) for循环是先判定表达式,后执行循环体C) 在for循环中,可以用break语句跳出循环体D) for循环体语句中,可以包含多条语句,但要用花括号括起来7以下关于if语句和switch语句的说法,正确的【 】。A) 如果在if语句和switch语句中嵌入break语句,则在程序执行过程

26、中,一旦执行到break语句,就会结束相应的执行,转向执行其后面的语句B) 凡是能够使用if语句的地方就可以使用switch语句,反之亦然C) if语句有3种基本形式:if、ifelse和ifelse ifelseD) if语句是实现“单判断二分支”的选择结构,switch语句是实现“单判断多分支”的选择结构。8以下关于for循环的说法,不正确的是【 】。A) for语句中的3个表达式都可以省略B) for语句中的3个表达式中,若第2个表达式的值为true,则执行循环体中的语句,直到第3个表达式的返回值为falseC) for语句中的3个表达式中,第2个表达式必须是布尔类型的表达式,其他两个可

27、以是任意类型的表达式。D) for语句中的3个表达式中,第1个表达式执行且仅执行一次;每当循环体语句被执行后,第3个表达式都跟着被执行一次。9 C#提供的4种跳转语句中,不推荐使用的是【 】。A) returnB) breakC) continueD) goto二填空题1在switch语句中,在每个分支的最后应有一条【 break 】语句。2在C#中,实现循环的语句主要有【while】、dowhile和【 for】语句。3在循环执行过程中,希望当某个条件满足时强行退出循环,应使用【break 】语句。4下列程序完成的功能是求出所有的水仙花数。(所谓水仙花数是指这样的数:该数是三位数,其各位数字

28、的立方和等于该数。例如:153=13+53+33,所以153是一个水仙花数。)请填空。class Programpublic static void Main(string args)int a, b, c, t;for(i=100; i=【 999 】; i+)t=i;a=t%10; t=t/10; b=t%10; c=t/10;if(【 i=a*a*a+b*b*b+c*c*c 】) Console.WriteLine(i=0 ,i); 5下列程序的功能是:输出100以内能被3整除且个位数为6的所有整数。请填空。class Programpublic static void Main(str

29、ing args)int i, j;for(i=0;【 i10 】; i+)j=i*10+6;if(【 j%3=0】) Console.Write (0 , j); 6下列程序的功能是:产生100个两位随机正整数,求这些数中所有能被3整除的数的和,以及所有不能被3整除的数的各位数字和。请填空。static void Main(string args) float sum1=0,sum2=0; int i,num; Random randObj1=new Random(); for(i=1;i=100;i+) num=【randObj1.Next(10,100) 】;if(num%3=0) su

30、m1=sum1+num; 【 continue; 】 sum2=sum2+num%10; sum2=sum2+num/10; Console.WriteLine(能被3整除的数的和为:0,sum1); Console.WriteLine(不能被3整除的所有数的各位数字和为:0,sum2); Console.Read ();三读程序题1有以下程序代码,若执行时从键盘上输入9,则输出结果是【 10 】。class Programpublic static void Main(string args)int n;n=int.Parse (Console.ReadLine(); if (n+10) C

31、onsole.WriteLine(0, n); else Console.WriteLine(0, n-); Console.Read(); 2下列程序的运行结果是【i=11, s=0 】。class Programpublic static void Main(string args)int i=0,s=1;do s/=s+1; i+; while(i=10);Console.WriteLine(i=0, s=1 ,i,s); 3下列程序的运行结果是【 m=51,n=50 】。class Programpublic static void Main(string args)int i=0,m

32、=0,n=0;while(i=100) if(i%2=0) m+=1;else n=n+1;i+; Console.WriteLine(m=0,n=1,m,n); 4下列程序的运行结果是【 m=3 】。static void Main(string args) int a=15,b=21,m=0; switch (a%2) case 0: m+; break; case 1: m+; switch (b%2) case 0: m+; break; default: m=m+2; break; break; Console.WriteLine(m=0, m);4下列程序的运行结果是【 s=10

33、】。static void Main(string args) int i, j, s=0; for( i=2; i6; i=i+2 ) s=1; for( j=i; j6; j+) s+=j; Console.WriteLine(s=0, s);5下列程序的运行结果是【 a=32 】。static void Main(string args) int i=0, a=0; while( i20 ) for( ; ; ) if(i%10=0) break; else i-; i+=11; a+=i; Console.WriteLine(a=0, a);四编程题1设计一个控制台应用程序,将用户输入

34、的正整数反向显示出来。如输入12345,则输出54321。 static void Main(string args) int digit, num; Console.Write(输入一个整数:); num = int.Parse(Console.ReadLine(); Console.Write(反向显示结果:); while (num != 0) digit = num % 10; /依次求个位、十位、上的数字digit num = num / 10; Console.Write(digit); Console.WriteLine(); Console.Read(); 2设计一个控制台应用

35、程序, 读入一组整数(以输入0结束),分别输出其中奇数和偶数的和。static void Main(string args) int n, s1 = 0, s2 = 0; do n = int.Parse(Console.ReadLine(); if (n % 2 = 1) s1 += n; else s2 += n; while (n != 0); Console.WriteLine(奇数之和=0, s1); Console.WriteLine(偶数之和=0, s2); Console.Read(); 3设计一个控制台应用程序, 输入正整数n,计算s=1+(1+2)+(1+2+3)+(1+2

36、+n) 。static void Main(string args) int n, i, j, s = 0, p=0; Console.Write(n:); n = int.Parse(Console.ReadLine(); for (i = 1; i = n; i+) p = p + i; s += p; Console.WriteLine(s=0, s); Console.Read(); 4设计一个控制台应用程序,利用下面的公式编程计算的值。 static void Main(string args) double pi=0.0; int n; for (n=1;n=2000;n+) if

37、 (n%2=1) pi=pi+1.0/(2*n-1); else pi=pi-1.0/(2*n-1); pi=4*pi; Console.WriteLine(=0, pi); 第5章 数组和集合一选择题1在C#中定义一个数组,以下正确的是【 】。A) int a=new int5;B) int a= new int5;C) int a=new int5;D) int5 a=new int;2下列语句中,不能正确定义长度为4的数组a的语句是【 】。A) int a=new int1,2,3,4;B) int a= 1,2,3,4;C) int a=new int41,2,3;D) int a=n

38、ew int41,2,3,4;3假定int类型变量占用4个字节,若有定义:int x=new int100,2,4,4,5,6,7,8,9,10;则数组x在内存中所占字节数是【 】。A) 10B) 20C) 40D) 804以下数组定义语句中不正确的是【 】。A) int a=new int51,2,3,4,5;B) int, a=new int34;C) int a=new int30;D) int a=1,2,3,4,5;5以下定义并初始化一维数组的语句中正确的是【 】。A) int a = 1,2,3,4,5;B) int a=new int;C) int a=new int1,2,3,

39、4,5;D) int a; a=1,2,3,4,5;6以下定义并初始化一维数组的语句中正确的是【 】。A) int a= new int;B) int a=new int;C) int a=new int1,2,3,4,5;D) int a=new intn1,2,3,4,5;7以下定义并初始化数组的语句中正确的是【 】。A) int a=new int4,5;B) int a=new int4,5;C) int a,=new int4,5;D) int, a=new int4,5;8有定义语句:int, a=new int5,6; 则下列正确的数组元素引用是【 】。A) a(3,4) B)

40、a(3)(4)C) a34D) a3,49对于foreach语句和for语句,下列说法错误的是【 】。A) for语句与foreach语句在结构上不一样,前者有3个表达式,表达式间用分号隔开;后者仅有一个“表达式”,形式为“数据类型 变量 in 集合表达式”B) 语句for(;true;);是合法的,但是个死循环;“foreach(true);”也是合法的,也是一个死循环C) 语句for(;true;);是合法的,但是个死循环;而“foreach(true);”是非法的D) 语句块“ int a=1,2; foreach(int i in a);”是合法的。10在C#中,关于Array和Arr

41、ayList的维数,以下说法正确的是【 】。A) Array可以有多维,而ArrayList只能是一维B) Array只能是一维的,而ArrayList可以有多维C) Array和ArrayList都只能是一维D) Array和ArrayList都可以是多维11以下List集合声明中正确的是【 】。A) List f=new List();B) List f=new List ();C) List f=new List ();D) List f=new List;二填空题1数组定义与赋初值语句如下:int a=1,2,3,4,5; 则a2的值为【 3 】。2下列程序段执行后,a4的值为【 4

42、】。int a=1,2,3,4,5;a4=aa2;3下列数组定义语句中:int a=new int3; ,定义的数组a占的字节数为【 12 】。4下列数组定义语句中,数组将在内存中占用【 160 】个字节。double, d=new double 4,5;5要定义一个3行4列的单精度二维数组f,使用的定义语句为【 float, f=new float 3,4; 】。6要定义一个int型的参差数组a,数组有两行,第一行一个元素,第二行两个元素并赋初值3和4,使用的语句如下,请填空。int a=【new int2 】;a0=【 new int1 】;a1=【 new int23,4 】;7. 下列

43、程序完成的功能是采用二分查找方法在给定的有序数组a中查找用户输入的值,并提示相应的查找结果。请填空。public static void Main(string args)double a=new int100, 1.2, 2.5, 3, 4.6, 5.0, 6.7, 7.6, 8.2, 9; double k; int low=0, high=9, mid; Console.Write(输入查找数据:); k=double.Parse(Console.ReadLine(); while (【(1)】) mid=(low+high)/2; if (amid = k) Console.Write

44、Line(a0=1, mid, k); return; else if (amid k) 【(2)】; else low = mid + 1; Console.WriteLine(未找到0, k);(1)low=0;i-) ai=10-i; Console.WriteLine(“012”,a2,a5,a8);2下面程序的运行结果是【 】。class Programpublic static void Main(string args) const int SIZE=10;int y=1,2,3,4,5,6,7,8,9,10;int z=new intSIZE;for (int i = 0; i

45、 z.Length; i+)zi = i * 2 + yi; Console.Write(0 , zi);Console.Read(); 1 4 7 10 13 16 19 22 25 282下面程序的运行结果是【 】。static void Main(string args) const int M = 5; int yhsj = new intM; int i, j; for (i = 0; i M; i+) yhsji = new inti + 1; for (i = 0; i M; i+) yhsji0 = 1; yhsjii = 1; for (i = 2; i M; i+) for

46、 (j = 1; j i; j+)yhsjij = yhsji - 1j - 1 + yhsji - 1j; for (i = 0; i M; i+) for (j = 0; j = i; j+) Console.Write(0 , yhsjij);Console.WriteLine(); Console.Read();11 11 2 11 3 3 11 4 6 4 13下面程序的运行结果是【 s=28 】。static void Main(string args) int s = 0; int a = new int2; a0 = new int3 1, 2, 3 ; a1 = new in

47、t4 4, 5, 6, 7 ; for (int i = 0; i a.Length; i+) for (int j = 0; j ai.Length; j+) s = s + aij; Console.Write(s=0,s);3下面程序的运行结果是【 3 】。 static void Main(string args) int num = 1, 3, 5 ; ArrayList arr = new ArrayList(); for(int i=0;ia1?a0:a1; max2=a0a1?a1:a0; for (i=2;in;i+) if (max1ai) max2=max1; max1=

48、ai; Console.WriteLine(max1=0,max2=1,max1,max2); 2设计一个控制台应用程序,用两个二维数组分别存放5个学生4门功课的考试成绩,求每位考生的平均成绩,并输出结果。static void Main(string args) const int Max = 5; /考生数 int Ave = new intMax; /定义一个一维数组存储考生的总成绩 int, grade=88,75,62,84,96,85,75,92, 68,63,72,78,95,89,76,98, 76,65,72,63;/定义二维数组存储考生成绩 for(int i=0; iMa

49、x; i+) for(int j=0; j4; j+) Avei += gradei,j; for (int k = 0; k Max; k+) Console.WriteLine(考生0平均成绩=1 ,k+1, Avek/4.0);3设计一个控制台应用程序,用两个一维数组分别存放5个学生的学号和姓名,分别按学号和姓名进行排序,并输出排序后的结果。 class Program const int Max = 5; static void disp(int no,string name, string str) Console.WriteLine(str); Console.Write(学号:t

50、); for (int i = 0; i no.Length; i+) Console.Write(0t,noi); Console.WriteLine(); Console.Write(姓名:t); for (int i = 0; i name.Length; i+)Console.Write(0t, namei); Console.WriteLine(); static void Main(string args) int no = new int 2, 4, 5, 1, 3; string name = new string Smith,John,Mary,Cherr,Tomn; dis

51、p(no, name,排序前:); Array.Sort(no, name); disp(no, name,按学号排序后:); Array.Sort(name, no); disp(no, name, 按姓名排序后:);Console.Read(); 第6章 面向对象程序设计一选择题1下面有关类和对象的说法中,不正确的是【 】。A) 类是系统提供的一种数据类型B) 对象是类的实例C) 类和对象的关系是抽象和具体的关系D) 任何一个对象只能属于一个具体的类2面向对象的特点主要概括为【 】。A) 可分解性、可组合型性和可分类性B) 继承性、封装性和多态性C) 封装性、易维护性、可扩展性和可通用性D

52、) 抽象性、继承性和封装性3要使一个类能被同一命名空间中的其他类访问,但不能被这个命名空间以外的类访问,该类可以【 】。A) 不使用任何修饰符B) 使用private修饰符C) 使用public修饰符D) 使用internal修饰符4在C#中,【 】访问修饰符修饰的字段只能由当前程序集访问。A) privateB) publicC) protectedD) internal5类的字段和方法的默认访问修饰符是【 】。A) publicB) privateC) protectedD) internal6下列关于构造函数的描述中,不正确的是【 】。A) 构造函数中,不可以包含return语句B) 一

53、个类只能有一个构造函数C) 实例构造函数在生成类实例时被自动调用D) 用户可以定义无参构造函数7下列关于构造函数的描述中,【 】是正确的。A) 构造函数名必须与类名相同B) 构造函数不可以重载C) 构造函数不能带参数D) 构造函数可以声明返回类型8下列的【 】不是构造函数的特征。A) 构造函数的函数名与类名相同B) 构造函数可以重载C) 构造函数可以带有参数D) 可以指定构造函数的返回值类型9类ClassA有一个名为M1的方法,在程序中有如下一段代码,假设该段代码是可以执行的,则声明M1方法时一定使用了【 】修饰符。ClassA Aobj=new ClassA();ClassA.M1();A)

54、 publicB) public staticC) privateD) virtual10在C#中,从属性的读写特性上来进行分类,可以划分为以下3种,除了【 】。A) 只读属性B) 只写属性C) 读写属性D) 不可读不可写属性11在C#中,以下关于属性的描述中正确的是【 】。A) 属性是以public关键字修饰的字段,以public关键字修饰的字段也可称为属性B) 属性是访问字段值的一种灵活机制,属性更好地实现了数据的封装和隐藏C) 要定义只读属性只需在属性名前加上readonly关键字D) C#的类中不能自定义属性12以下类MyClass的属性count属于【 】属性。class MyCla

55、ss int i;int count get return i; A) 只读B) 只写属性C) 读写D) 不可读不可写13C#中的TestClass为一自定义类,其中有如下属性定义:public int Property 使用以下语句创建了该类的对象,并让变量obj引用该对象。TestClass obj=new TestClass();那么,可通过【 】方式访问类TestClass的Property属性。A) MyClass. PropertyB) obj. PropertyC) TestClass. PropertyD) obj. Property()14关于C#语言的方法,下列叙述正确的是

56、【 】。A) 方法的定义不能嵌套,但方法的调用可以嵌套B) 方法的定义可以嵌套,但方法的调用不能嵌套C) 方法的定义和调用都不能嵌套D) 方法的定义和调用都可以嵌套15以下所列的各方法头部中,正确的是【 】。A) void play(var a:Integer, var b:Integer)B) void play(int a, b)C) void play(int a, int b)D) Sub play(a as integer, b as integer)16在类A中定义了属性y:class A public int yget return 1; set 并试图通过下列代码来实现对属性y

57、的访问:A b=new A();b.y=2;int x=b.y;对此,下列说法正确的是【 】。A) 属性y可读可写,因此变量x的值为2B) 属性y可读,但不可写,因此语句“b.y=2;”是错误的C) 属性y可写,但不可读,因此语句“int x=b.y;”是错误的D) 属性y可读可写,变量x的值为117有以下类声明:public class Class1private string _sData=OK!; privare string sDataset _sData = value;在Main函数中,在成功创建该类的对象obj后,以下【 】语句是合法的。A) obj. _sData=Hello!

58、B) obj. set(obj.sData);C) obj. sData=Hello!D) Console.WriteLine(obj. sData);18在类的定义中,类的【 】描述了该类的对象的行为特征。A) 字段B) 方法C) 属性D) 类名19调用重载方法时,系统根据【 】来选择具体的方法。A) 参数的类型B) 参数的个数和类型C) 参数个数D) 方法的返回值类型20下列关于方法重载的说法中,完全正确的是【 】。A) 重载方法的参数个数必须不同B) 重载方法必须具有不同的形参列表C) 重载方法必须具有不同的返回值类型D) 重载方法的参数类型必须不同21关于静态成员,下列说法正确的是【

59、】。A) 同一个类中的静态成员,类实例化后,在不同的对象中形成不同的静态成员B) 在类实例化后,同类型的对象都共享类的静态成员,静态成员只有一个版本C) 在类定义时静态成员属于类,在类实例化后静态成员属于对象D) 在类实例化后静态成员已被实例化,因此不同的对象有不同的静态成员22下列关于静态方法的说法,错误的是【 】。A) 静态方法不对特定实例进行操作,不与实例相关联B) 使用静态方法的语法格式:类名.静态方法(实参列表)C) 静态方法只能访问类中的静态成员,不能访问非静态成员D) 静态方法不能访问类中的静态成员23已知: int a=100;void Func(ref int b) 则下列函

60、数调用正确的是【 】。A) Func(ref(10*a)B) Func(ref 10*a)C) Func(ref(a)D) Func(ref a)24下面对方法中的ref和out参数说明错误的是【 】。A) ref和out参数传递方法相同,都是把实参的内存地址传递给形参,实参与形参指向同一个内存存储区域,但ref要求实参必须在调用之前明确赋过值B) ref是将实参传入形参,out只能用于从方法中传出值,而不能从方法调用处接受实参数据。C) ref和out参数因为传递的是实参的地址,所以要求实参和形参的数据类型必须一致D) ref和out参数要求实参和形参的数据类型或者一致,或者实参能被隐式地转

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论