C#习题集.docx
- 文档编号:30748041
- 上传时间:2023-08-20
- 格式:DOCX
- 页数:19
- 大小:23.39KB
C#习题集.docx
《C#习题集.docx》由会员分享,可在线阅读,更多相关《C#习题集.docx(19页珍藏版)》请在冰豆网上搜索。
C#习题集
第1章
一.选择题
1.关于C#程序的书写,下列不正确的说法是【】。
A)区分大小写
B)一行可以写多条语句
C)一条语句可以写成多行
D)一个类中只能有一个Main()方法,因此多个类中可以有多个Main()方法。
2.C#应用程序项目文件的扩展名是【】。
A)csprojB)csC)slnD)suo
3.运行C#程序可以通过按【】键实现。
A)F5B)Alt+F5C)Ctrl+F5D)Alt+Ctrl+F5
4.公共语言运行库可简写为()。
A)MSILB)JITC)CLRD)MSDN
5.NET编程语言包括下面哪种语言?
A)VisualBasicB)VisualC++C)VisualC#D)JAVA
二.填空题
1.在C#中,进行注释有两种方法:
使用“//”和使用“/**/”符号对,其中【】只能进行单行注释。
第2章
一.选择题
1.在C#语言中,下列能够作为变量名的是【】。
A)ifB)3abC)a_3bD)a-bc
2.在C#语言中,转义字符不可以表示【】。
A)任何字符B)字符串C)字母D)小数点
3.表达式5/2+5%2-1的值是【】。
A)4B)2C)2.5D)3.5
4.下列数值类型的数据精度最高的是【】。
A)intB)floatC)decimalD)ulong
5.在C#语言中,下面的运算符中,优先级最高的是【】。
A)%B)++C)*=D)>
6.能正确表示逻辑关系“a≥10或a≤0”的C#语言表达式是【】。
A)a>=10ora<=0B)a>=10|a<=0
C)a>=10&&a<=0D)a>=10||a<=0
7.以下程序的输出结果是【】。
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来存储学生某一门课程的成绩(百分制,可能出现小数部分),则最好将其定义为【】类型的变量。
A)intB)decimalC)floatD)double
9.已定义下列变量:
intn;floatf;doubledf;
df=10;n=2;
下列语句正确的是【】。
A)f=12.3;B)n=df;C)df=n=100;D)f=df;
10.下列表达式或语句中,有语法错误的是【】。
A)n=12%3.0;(n为int型)B)12/3.0
C)12/3D)‘a’>’b’
11.下面有关变量和常量的说法,正确的是【】。
A)在程序运行过程中,变量的值是不能改变的,而常量是可以改变的
B)常量定义必须使用关键字const
C)在给常量赋值的表达式中不能出现变量
D)常量在内存中的存储单元是固定的,变量则是变动的
12、下列类型转换中正确的是【】
(A)inti=’A’(B)longL=1.1f(C)inti=(float)1.1(D)inti=1.1
13、以下选项中,合法的赋值语句是()
(A)inta==1(B)inti=1;intj=i++;
(C)inta=a+1=2;(D)inti=int(j);
14、下列运算符中属于关系运算符的是()
(A)==(B)=(C)+=(D)-=
15、阅读下面的程序,程序的运行结果为()
inta=10,b=4,c=20,d=6;
label1.Text=a++*b+c*--d;
(A)144(B)160(C)140(D)164
16、阅读下面的程序,程序的运行结果为()
intx=3,y=4,z=5;
Strings=”xyz”
label1.Text=s+x+y+z;
(A)xyz12(B)xyz345(C)xyzxyz(D)12xyz
17、阅读下面的程序,程序的运行结果为()
inti=10,j=3;
floatm=213.5f,n=4.0f;
label1.Text=i%j+””;
label2.Text=m%n+””;
(A)1.0和1.5(B)1和1.5(C)1.0和2.5(D)1和2.5
二.填空题
1.设x为int型变量,请写出描述“x是奇数”的C#语言表达式【】。
2.请写出描述“-10≤x≤10”的C#语言表达式【】。
3、1|2&3的值是【】
三.问答题
1.什么是字符类型和字符串类型?
两者有何区别和联系?
2.变量与常量有何区别?
3.什么是数据类型转换?
有哪几种方法?
4.数据类型的隐式转换和显式转换分别在什么场合使用?
它们可以相互替换吗?
5.下列程序段的输出结果是什么?
inta=1,b=2,c=3;
Console.WriteLine(a>b&&b==c||a 四、程序改错题 1、在编写贪吃蛇游戏中,使用变量输出贪吃蛇游戏当前的状态、运行速度、得分,参考程序如下,但该程序还存在一些错误,请调试改正。 privatevoidbutton1_Click(objectsender,EventArgse) { intspeed=0; constintscore=0; Stringstatus=""; label1.text="游戏正在进行....../n"; intspeed=0; intscore=30; intstatus="正常运行"; label1.Text=label1.Text+"当前速度: "+speed+"像素/秒"; label1.Text=label1.Text+"当前得分: "+score+"分"; label1.Text=label1.Text+"当前状态: "status; } 2、模拟连连看游戏判断是否打破记录的程序,参考程序如下,但该程序还存在一些错误,请调试改正。 privatevoidbutton1_Click(objectsender,EventArgse) { inta="32";//代表原纪录 intb="101";//代表新纪录 intc=(a>b): "打破记录"? "未打破记录"; label1.Text="原记录: "+a+"/n"; label1.Text="新记录: /n"+b+"/n"; label1.Text="当前结构: /n"+c+"/n"; } 五、编程题 (1)编写一个程序,要求定义三个整形变量i,j,k,分别用于存储给定的三个成绩,然后点击“计算”按钮,计算三个成绩的总分和平均分,并用整形变量sum和浮点型变量average分别存储总分和平均分,最后将结果输出(输出到label控件中,输入值可以写死也可以通过控件输入)。 (2)编写程序计算半径为5的圆的面积,计算公式为: 面积=半径*半径*圆周率,最后点击“计算”按钮将结果输出(输出到label控件中)。 第3章 一.选择题 1.在C#语言中,if语句后面的表达式应该是【】。 A)逻辑表达式B)条件表达式 C)关系表达式D)布尔类型的表达式 2.在C#语言中,if语句后面的表达式,不能是【】。 A)逻辑表达式B)算数表达式 C)关系表达式D)布尔类型的表达式 3.在C#语言中,switch语句用【】来处理不匹配case语句的值。 A)defaultB)anyelse C)breakD)goto 4.下列程序的输出结果是【】。 usingSystem; classProgram {publicstaticvoidMain(string[]args) {intx=1,a=0,b=0; switch(x) {case0: b++;break; case1: a++;break; case2: 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=2 5.以下叙述正确的是【】。 A)do……while语句构成的循环不能用其他语句构成的循环来代替 B)do……while语句构成的循环只能用break语句结束循环 C)用do……while语句构成的循环,在while后的表达式为true时结束循环 D)用do……while语句构成的循环,在while后的表达式应为关系表达式或逻辑表达式 6.以下关于for循环的说法不正确的是【】。 A)for循环只能用于循环次数已经确定的情况 B)for循环是先判定表达式,后执行循环体 C)在for循环中,可以用break语句跳出循环体 D)for循环体语句中,可以包含多条语句,但要用花括号括起来 7.以下关于if语句和switch语句的说法,正确的【】。 A)如果在if语句和switch语句中嵌入break语句,则在程序执行过程中,一旦执行到break语句,就会结束相应的执行,转向执行其后面的语句 B)凡是能够使用if语句的地方就可以使用switch语句,反之亦然 C)if语句有3种基本形式: if…、if…else…和if…elseif…else… D)if语句是实现“单判断二分支”的选择结构,switch语句是实现“单判断多分支”的选择结构。 8.以下关于for循环的说法,不正确的是【】。 A)for语句中的3个表达式都可以省略 B)for语句中的3个表达式中,若第2个表达式的值为true,则执行循环体中的语句,直到第3个表达式的返回值为false C)for语句中的3个表达式中,第2个表达式必须是布尔类型的表达式,其他两个可以是任意类型的表达式。 D)for语句中的3个表达式中,第1个表达式执行且仅执行一次;每当循环体语句被执行后,第3个表达式都跟着被执行一次。 9.C#提供的4种跳转语句中,不推荐使用的是【】。 A)returnB)breakC)continueD)goto 10执行下列语句序列后,i和j的值分别是【】 inti=3,j=5; if(i-1>j)i--;elsej--; A)2,4B)2,5C)3,4D)3,5 11下列语句序列执行后,j的值是【】 intj=5,i=6; while(i3)–j; A)1B)2C)3D)4 12以下for循环的执行次数是【】 for(inti=1;(i==1)&(i>2);i++) A)无限次B)一次也不执行C)执行1次D)执行2次 13以下由do-while语句构成的循环执行次数是【】 intm=1; do{++m}while(m<1); A)有语法错误,不能执行B)一次也不执行C)执行1次D)执行2次 三、填空题 1.在switch语句中,在每个分支的最后应有一条【】语句。 2.在C#中,实现循环的语句主要有【】、do……while和【】语句。 3.在循环执行过程中,希望当某个条件满足时强行退出循环,应使用【】语句。 4.continue语句的作用是【】。 四.改错题 1、根据消费总额进行打折,消费总额在100元以上(含100元)时打7折,90元以上(含90元)100元以下时打8折,50元以上(含50元)90元以下时打9折,50元以下的不打折。 参考程序如下,但是该参考程序有错误,请调试并改正。 privatevoidbutton1_Click(objectsender,EventArgse) { inttotalAmount=int.Parse(textBox1.Text);//消费总额 if(totalAmount<0) { label1.Text="输入有误! "; } else(totalAmount>100) { label1.Text="打7折"; } else(totalAmount>90) { label1.Text="打8折"; } else(totalAmount>50) { label1.Text="打9折"; } else(totalAmount>50) { label1.Text="不打折"; } } 2、从键盘输入2012年的某一月份,打印出该月份的天数。 参考程序如下,该参考程序还存在一定的错误,请调试改正。 privatevoidbutton1_Click(objectsender,EventArgse) { intday; intmonth=int.Parse(textBox1.Text);//月份 switch(month) { case1 case3 case5 case7 case8 case10 case12: day=31; break; case4 case6 case9 case11: day=30; break; default: day=-1; } if(day=-1) { label1.Text="无效输入"; } else { label1.Text="2012年"+month+"月的共有"+day+"天"; } } 3、利用for循环打印出以下格式的内容,参考程序如下,但该参考程序有一定的错误,请调试改正。 ***** **** *** ** * privatevoidbutton1_Click(objectsender,EventArgse) { for(inti==5;i>0;i--)//打印列 { for(intj==0;j { label1.Text+="*\n" } label1.Text+="\n" } } 第4章 一.选择题 1.下面哪个语句是创建数组的正确语句【c】。 A)floatf[]=newfloat[6]B)floatf[6]=newfloat[6] 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()-1 3.数组中各个元素的数据类型是【a】。 A)相同的B)不同的 C)部分相同的D)任意的 4.语句int[]a=newint[12]定义了几个数组元素【a】。 A)12B)13 C)11D)0 二.改错题 1、编写用数组保存某个学生的三门课程的成绩的程序,参考程序如下,但该参考程序有一些错误,请调试改正。 privatevoidbutton1_Click(objectsender,EventArgse) { Int[]score=newint[3]; score[0]=90; score[1]=80; score[2]=70; for(inti=0;i<=2;i++) { label1.Text+=label1.Text+"成绩"+(i+1)+": "+score[i]; } } 第五章 一.选择题 1.下列的()不是构造函数的特征【】。 A)构造函数的函数名和类名相同B)构造函数可以重载 C)构造函数可以带有参数D)可以指定构造函数的返回值类型 2.已知类MyClass定义如下: classMyClass { inta1=1; privateinta2=2; protectedinta3=3; publicinta4=4; } obj是MyClass的一个对象,则下列哪条语句是正确的? () A)obj.a1=2;B)obj.a2=2;3 C)obj.a3=2;D)obj.a4=2; 3.已知类MyClass定义如下: classMyClass { staticinta1=1; protectedinta3=3; staticpublicinta4=4; } obj是MyClass的一个对象,则下列哪条语句是正确的【】。 A)obj.a1=2;B)obj.a4=2; C)MyClass.a1=2;D)MyClass.a4=2; 4.分析下列程序 classClass1 { ushortu1; publicClass1(ushortu) { this.u1=u; } } 则以下哪条语句能够正确创建对象? 【】。 A)Class1c1=newClass1('u');B)Class1c1=newClass1("u"); C)Class1c1=newClass1();D)Class1c1=newClass1(5.7); 5.分析下列程序 classClass1 { ushortu1; publicClass1(ushortu) { this.u1=u; } } 则以下哪条语句能够正确创建对象? 【】。 A)Class1c1=newClass1('u');B)Class1c1=newClass1("u"); C)Class1c1=newClass1();D)Class1c1=newClass1(5.7); 6.分析下列程序 publicclassPeople { intage=8; publicintAge { get{returnage;} } } 则调用下列语句,输出的是? 【】 Peoplep=newPeople(); Console.Write(p.Age++); A)8B)9 C)编译错误D)0 7.要使一个类能被同一命名空间中的其他类访问,但不能被这个命名空间以外的类访问,该类可以【】。 A)不使用任何修饰符 B)使用private修饰符 C)使用const关键字 D)使用protected修饰符 8.类的字段和方法的默认访问修饰符是【】。 A)publicB)privateC)protectedD)internal 9.下列关于构造函数的描述中,【】是正确的。 A)构造函数名必须与类名相同B)构造函数不可以重载 C)构造函数不能带参数D)构造函数可以声明返回类型 10.C#中的TestClass为一自定义类,其中有如下属性定义: publicvoidProperty{……} 使用以下语句创建了该类的对象,并让变量obj引用该对象。 TestClassobj=newTestClass(); 那么,可通过【】方式访问类TestClass的Property属性。 A)MyClass.PropertyB)obj.Property C)TestClass.PropertyD)obj.Property() 11.调用重载方法时,系统根据【】来选择具体的方法。 A)方法名B)参数的个数和类型 C)参数名及参数个数D)方法的返回值类型 12.下列的【】不是构造函数的特征。 A)构造函数的函数名与类名系统B)构造函数可以重载 C)构造函数可以带有参数D)可以指定构造函数的返回值类型 13.类ClassA有一个名为M1的方法,在程序中有如下一段代码,假设该段代码是可以执行的,则声明M1方法时一定使用了【】修饰符。 ClassAAobj=newClassA(); ClassA.M1(); A)publicB)staticC)privateD)virtual 14.已知类B是由类A继承而来,类A中有一个名为M的非虚方法,现在希望在类B中也定义一个名为M的方法,且两方法的参数个数和类型完全相同,若希望编译时不出现警告信息,则在类B中声明该方法时,应使用【】关键字。 A)staticB)newC)overrideD)virtual 15.下列关于类的定义,错误的是【】。 A)classAB)classA {voidf(){}{voidf(){} }}; 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);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C# 习题集