C#练习题及答案_第1页
C#练习题及答案_第2页
C#练习题及答案_第3页
C#练习题及答案_第4页
C#练习题及答案_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

第1章

选择题

1.关于C#程序的书写,下列不正确的说法是【D】。

A)区分大小写

B)一行可以写多条语句

C)一条语句可以写成多行

D)一个类中只能有一个Main()方法,因此多个类中可以有多个Main()方法。

2.C#应用程序项目文件的扩展名是【A】。

A)csprojB)csC)sinD)suo

3.运行C#程序可以通过按【A】键实现。

A)F5B)Alt+F5C)Ctrl+F5D)Alt+Ctrl+F5

4.公共语言运行库可简写为(C)o

A)MSILB)JITC)CLRD)MSDN

5.NET编程语言不包括下面哪种语言?(D)

A)VisualBasicB)VisualC++C)VisualC#D)JAVA

第2章

选择题

1.在C#语言中,下列能够作为变量名的是【C

A)ifB)3abC)a_3bD)a-bc

2.在C#语言中,转义字符不可以表示[B]o

A)任何字符B)字符串C)字母D)小数点

3.表达式5/2+5%2-1的值是【B】。

A)4B)2C)2.5D)3.5

4.下列数值类型的数据精度最高的是【C】。

A)intB)floatC)decimalD)ulong

5.在C#语言中,下面的运算符中,优先级最高的是【B

A)%B)++C)*=D)>

6.能正确表示逻辑关系“210或a<0”的C#语言表达式是【DJo

A)a>=10ora<=0B)a>=10|a<=0

C)a>=10&&a<=0D)a>=10||a<=0

7.以下程序的输出结果是【C】。

usingSystem;

classProgram

publicstaticvoidMain(string[]args)

{inta=5,b=4,c=6,d;

Console.WriteLine(^{0}^,d=a>b?(a>c?a:c):b);

A)5B)4C)6D)不确定

8.要使用变量score来存储学生某一门课程的成绩(百分制,可能出现小数部分),则最好

将其定义为[C]类型的变量。

A)intB)decimalC)floatD)double

9.已定义下列变量:

intn;floatf;doubledf;

df=10;n=2;

下列语句正确的是[C]o

A)f=12.3;B)n=df;C)df=n=100;D)f=df;

10.下列表达式或语句中,有语法错误的是【AL

A)n=12%3.0;(n为int型)B)12/3.0

C)12/3D)匕,b'

11.下面有关变量和常量的说法,正确的是【B]o

A)在程序运行过程中,变量的值是不能改变的,而常量是可以改变的

B)常量定义必须使用关键字const

C)在给常量赋值的表达式中不能出现变量

D)常量在内存中的存储单元是固定的,变量则是变动的

12、下列类型转换中正确的是[A]

(A)inti='A'(B)longL=l.lf(C)inti=(float)l.l(D)inti=l.l

13、以下选项中,合法的赋值语句是(B)

(A)inta==l(B)inti=l;intj=i++;

(C)inta=a+1=2;(D)inti=int(j);

14、下列运算符中属于关系运算符的是(A)

(A)==(B)=(C)+=(D)-=

15、阅读下面的程序,程序的运行结果为(C)

inta=10,b=4,c=20,d=6;

label1.Text=a++*b+c*-d;

(A)144(B)160(C)140(D)164

16、阅读下面的程序,程序的运行结果为(B)

intx=3,y=4,z=5;

Strings="xyz"

label1.Text=s+x+y+z;

(A)xyzl2(B)xyz345(C)xyzxyz(D)12xyz

17、阅读下面的程序,程序的运行结果为(B)

inti=10,j=3;

floatm=213.5f,n=4.0f;

label1.Text=i%j+,w,;

label2.Text=m%n+W,;

(A)1.0和1.5(B)l和1.5(C)1.0和2.5(D)1和2.5

二、程序改错题

1、在编写贪吃蛇游戏中,使用变量输出贪吃蛇游戏当前的状态、运行速度、得分,参

考程序如下,但该程序还存在一些错误,请调试改正。

privatevoidbuttonl_Click(objectsender,I'ventArgse)

(

intspeed=0;

constintscore=0;

Stringstatus—”;

label1.text="游戏正在进行...../n";

4-ftt^-speed二0;

•Hrt-score=30;

wfe-status="正常运行";

label1.Text=label1.Text+”当前速度:"+speed+"像素/秒”;

label1.Text+=label1.Text+”当前得分:〃+score+"分”;

label1.Text+=labell.Text+”当前状态:“士status;

}

2、模拟连连看游戏判断是否打破记录的程序,参考程序如下,但该程序还存在一些错误,

请调试改正。

privatevoidbuttonl_Click(objectsender,HvcnlArgse)

inta=立32々〃代表原纪录

intb=。101上;〃代表新纪录

intc=(aXb):上“打破记录";未打破记录〃;

labell.Text="原记录:"+a+"\/n”;

label1.Text+="新记录:\/n"+b+"\/n”;

labell.Text+=〃当前结构:\4"+。+"'4”;

第3章

选择题

1.在C#语言中,if语句后面的表达式应该是【B

A)逻辑表达式B)条件表达式

C)关系表达式D)布尔类型的表达式

2.在C#语言中,if语句后面的表达式,不能是【BJo

A)逻辑表达式B)算数表达式

C)关系表达式D)布尔类型的表达式

3.在C#语言中,switch语句用【A】来处理不匹配case语句的值。

A)defaultB)anyelse

C)breakD)goto

4.下列程序的输出结果是【C

usingSystem;

classProgram

{publicstaticvoidMain(string[Jargs)

intx=l,a=0,b=0;

switch(x)

{case0:b++;break;

case1:a++;break;

case2:a++;b++;break;

)

Console.WriteLine(ua={0},b={1}?,,a,b);

A)a=2,b=lB)a=l,b=lC)a=l,b=0D)a=2,b=2

5.以下叙述正确的是【DJo

A)do……while语句构成的循环不能用其他语句构成的循环来代替

B)do....while语句构成的循环只能用break语句结束循环

C)用do.......while语句构成的循环,在while后的表达式为true时结束循环

D)用do……while语句构成的循环,在while后的表达式应为关系表达式或逻辑表达式

6.以下关于for循环的说法不正确的是[A]o

A)for循环只能用于循环次数已经确定的情况

B)for循环是先判定表达式,后执行循环体

C)在for循环中,可以用break语句跳出循环体

D)for循环体语句中,可以包含多条语句,但要用花括号括起来

7.以下关于if语句和switch语句的说法,正确的【CD

A)如果在if语句和switch语句中嵌入break语句,则在程序执行过程中,一旦执行到

break语句,就会结束相应的执行,转向执行其后面的语句

B)凡是能够使用if语句的地方就可以使用switch语句,反之亦然

C)if语句有3种基本形式:if…、if…else…和if…elseif…else…

D)if语句是实现“单判断二分支”的选择结构,switch语句是实现“单判断多分支”的

选择结构。

8.以下关于for循环的说法,不正确的是[C],

A)for语句中的3个表达式都可以省略

B)for语句中的3个表达式中,若第2个表达式的值为true,则执行循环体中的语句,

直到第3个表达式的返回值为false

C)for语句中的3个表达式中,第2个表达式必须是布尔类型的表达式,其他两个可以

是任意类型的表达式。

D)for语句中的3个表达式中,第1个表达式执行且仅执行一次;每当循环体语句被执

行后,第3个表达式都跟着被执行一次。

9.C#提供的4种跳转语句中,不推荐使用的是【D】。

A)returnB)breakC)continueD)goto

10执行下列语句序列后,i和j的值分别是[C]

inti=3,j=5;

if(i-l>j)i—;elsej-;

A)2,4B)2,5C)3,4D)3,5

11下列语句序列执行后,j的值是[B]

intj=5,i=6;

while(i->3)-J;

A)1B)2C)3D)4

12以下for循环的执行次数是[B]

for(inti=1;(i==1)&(i>2);i++)

A)无限次B)一次也不执行C)执行1次D)执行2次

13以下由do-while语句构成的循环执行次数是[C]

intm=l;

do{++m}while(m<1);

A)有语法错误,不能执行B)一次也不执行C)执行1次D)执行2次

--改错题

1、根据消费总额进行打折,消费总额在100元以上(含100元)时打7折,90元以上(含

90元)100元以下时打8折,50元以上(含50元)90元以下时打9折,50元以下的不打

折。参考程序如下,但是该参考程序有错误,请调试并改正。

privatevoidbuttonl_Click(objectsender,EventArgse)

(

inttotalAmount=int.Parse(textBoxl.Text);〃消费总额

if(totalAmount<0)

(

label1.Text="输入有误!

}

Elseif(totalAmount>三100)

(

label1.Text="打7折";

)

Elseif(totalAmount>90)

(

label1.Text="打8折";

)

E1seif(tota1Amount>50)

(

label1.Text="打9折";

)

ElsAHKHIR屯…〉50)

label1.Text="不打折";

)

)

2、从键盘输入2012年的某一月份,打印出该月份的天数•参考程序如下,该参考程序还

存在一定的错误,请调试改正。

privatevoidbuttonl_Click(objectsender,EventArgse)

(

intday;

intmonth=int.Parse(textBoxl.Text);〃月份

switch(month)

(

case1;

case3;

case5;

case7;

case8;

case10;

case12:」

day=31;

break;

case4;

case6;

case9;

case11:

day=30;

break;

default:

day=-l;

break;

)

if(day==-l)

{

label1.Text="无效输入";

)

else

(

label1.Text=”2012年"+month+"月的共有"+day+"天”;

)

}

3、利用for循环打印出以下格式的内容,参考程序如下,但该参考程序有一定的错误,请

调试改正。

****

privatevoidbuttonl_Click(objectsender,I'vcntArgse)

for(inti==5;i〉0;i-)〃打印列

for(intj-=0;j<i;j++);〃打印行并控制每行的*数量

(

labell.Text+="**"

}

label1.Tcxt+="\n"

第4章

选择题

1.下面哪个语句是创建数组的正确语句【c

A)floatf[]=newfloat[6]B)floatf[6]=newfloat[6J

C)float[]f=newfloat[6]D)floatf=newfloat[6]

2.已知表达式int[]m={0,1,2,3,4,5,6},下面哪个表达式的值与数组的下标量总数相等[B]

A)m.Length()B)m.Length

C)m.Length-1D)m.Length()-l

3.数组中各个元素的数据类型是[A]o

A)相同的B)不同的

C)部分相同的D)任意的

4.语句int[Ja=newint[12]定义了几个数组元素[A]..

A)12B)13

C)11D)0

改错题

1、编写用数组保存某个学生的三门课程的成绩的程序,参考程序如下,但该参考程序有一

些错误,请调试改正。

privatevoidbuttonlClick(objectsender,EventArgse)

{

Int[]score-H-=newint[3];

score[1]=90;

score[2]=80;

score[30]=70;

for(inti=0;i<=3;i++)

labell.Text=labell.Text+"成绩"+(i+l)+":"+score[i];

}

第五章

选择题

1.下列的()不是构造函数的特征【DL

A)构造函数的函数名和类名相同B)构造函数可以重载

C)构造函数可以带有参数D)可以指定构造函数的返回值类型

2.己知类MyClass定义如下:

classMyClass

(

intal=l;

privateinta2=2;

protectedinta3=3;

publicinta4=4;

)

obj是MyClass的一个对象,则下列哪条语句是正确的?(D)

A)obj.a1=2;B)obj.a2=2;3

C)obj.a3=2;D)obj.a4=2;

3.已知类MyClass定义如下:

classMyClass

(

staticintal=l;//没指定默认是私有的

protectedinta3=3;

staticpublicinta4=4;

)

obj是MyClass的一个对象,则下列哪条语句是正确的【DI

A)obj.al=2;B)obj.a4=2;

C)MyClass.a1=2;D)MyClass.a4=2;

4.分析下列程序

classClassi

(

ushortu1;

publicClassi(ushortu)

(

this.ul=u;

)

)

则以下哪条语句能够正确创建对象?[A]«

A)Classicl=newClassl('u');B)Classicl=newClassl(Huu);

C)Classicl=newClass1();D)Classicl=newClassi(5.7);

5.分析下列程序

classClassi

□shortu1;

publicClassl(ushortu)

(

this.ul=u;

)

则以下哪条语句能够正确创建对象?[A]o

A)Classicl=newClassl('u');B)Classicl=newClassl("u");

C)Classicl=newClass1();D)Classic1=newClassl(5.7);

6.分析下列程序

publicclassPeople

(

intage=8;

publicintAge

(

get{returnage:)〃只读不可写

)

)

则调用下列语句,输出的是?【C1

Peoplep=newPeople();

Console.Write(p.Age++);

A)8B)9

C)编译错误D)0

7.要使一个类能被同一命名空间中的其他类访问,但不能被这个命名空间以外的类访问,

该类可以【A

A)不使用任何修饰符

B)使用private修饰符

C)使用const关键字

D)使用protected修饰符

8.类的字段和方法的默认访问修饰符是【B

A)publicB)privateC)protectedD)internal

9.下列关于构造函数的描述中,【A1是正确的。

A)构造函数名必须与类名相同B)构造函数不可以重载

C)构造函数不能带参数D)构造函数可以声明返回类型

10.C#中的TestClass为一自定义类,其中有如下属性定义:

publicvoidProperty)........}

使用以下语句创建了该类的对象,并让变量。bj引用该对象。

TestClassobj=newTestClass();

那么,可通过【B】方式访问类TestClass的Property属性。

A)MyClass.PropertyB)obj.Property

C)TestClass.PropertyD)obj.PropertyO

11.调用重载方法时,系统根据[B]来选择具体的方法。

A)方法名B)参数的个数和类型

C)参数名及参数个数D)方法的返回值类型

12.下列的【D]不是构造函数的特征。

A)构造函数的函数名与类名系统B)构造函数可以重载

C)构造函数可以带有参数D)可以指定构造函数的返回值类型

13.类ClassA有一个名为Ml的方法,在程序中有如下一段代码,假设该段代码是可以执

行的,则声明Ml方法时一定使用了【B】修饰符。

ClassAAobj=newClassA();

ClassA.Ml();

A)publicB)staticC)privateD)virtual

14.已知类B是由类A继承而来,类A中有一个名为M的非虚方法,现在希望在类B中

也定义一个名为M的方法,且两方法的参数个数和类型完全相同,若希望编译时不出现

警告信息,则在类B中声明该方法时,应使用【B1关键字。

A)staticB)newC)overrideD)virtual

15.下列关于类的定义,错误的是【D

A)classAB)classA

{VOidf(){}{voidf(){}

1i.

/h

C)classAB)classA

{privatevoidf(){return;}{f(){}

16.在类A中试图重载构造函数,并使用构造函数创建对象:

classA

{A(){}〃语句1

publicvoidA(intx){}//语句2//不可以指定构造函数的返

回值类型

publicA(intx,inty){}〃语句3

classprogram

{staticvoidMain(string[]args)

{Aa=newA();//语句4

Ab=newA(100,200);//语句5

其中,正确的语句包括【B

A)语句2和语句4B)语句1、语句3和语句5

C)语句1、语句2和语句3D)语句4和语句5

17.假设类B继承了类A,下列说法错误的是【C],>

A)类B中的成员可以访问类A中的公有成员

B)类B中的成员可以访问类A中的保护成员

C)类

温馨提示

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

评论

0/150

提交评论