C#练习题及答案Word文件下载.docx
- 文档编号:18391645
- 上传时间:2022-12-16
- 格式:DOCX
- 页数:18
- 大小:150.43KB
C#练习题及答案Word文件下载.docx
《C#练习题及答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《C#练习题及答案Word文件下载.docx(18页珍藏版)》请在冰豆网上搜索。
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】。
A)f=12.3;
B)n=df;
C)df=n=100;
D)f=df;
10.下列表达式或语句中,有语法错误的是【A】。
A)n=12%3.0;
(n为int型)B)12/3.0
C)12/3D)‘a’>
’b’
11.下面有关变量和常量的说法,正确的是【B】。
A)在程序运行过程中,变量的值是不能改变的,而常量是可以改变的
B)常量定义必须使用关键字const
C)在给常量赋值的表达式中不能出现变量
D)常量在内存中的存储单元是固定的,变量则是变动的
12、下列类型转换中正确的是【A】
(A)inti=’A’(B)longL=1.1f(C)inti=(float)1.1(D)inti=1.1
13、以下选项中,合法的赋值语句是(B)
(A)inta==1(B)inti=1;
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)xyz12(B)xyz345(C)xyzxyz(D)12xyz
17、阅读下面的程序,程序的运行结果为(B)
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、在编写贪吃蛇游戏中,使用变量输出贪吃蛇游戏当前的状态、运行速度、得分,参考程序如下,但该程序还存在一些错误,请调试改正。
privatevoidbutton1_Click(objectsender,EventArgse)
{
intspeed=0;
intscore=0;
Stringstatus="
"
;
label1.text="
游戏正在进行....../n"
speed=0;
score=30;
status="
正常运行"
label1.Text=label1.Text+"
当前速度:
+speed+"
像素/秒"
label1.Text+=label1.Text+"
当前得分:
+score+"
分"
当前状态:
+status;
}
2、模拟连连看游戏判断是否打破记录的程序,参考程序如下,但该程序还存在一些错误,请调试改正。
privatevoidbutton1_Click(objectsender,EventArgse)
inta=32;
//代表原纪录
intb=101;
//代表新纪录
intc=(a<
b)?
打破记录"
:
未打破记录"
label1.Text="
原记录:
+a+"
\n"
label1.Text+="
新记录:
+b+"
当前结构:
+c+"
第3章
1.在C#语言中,if语句后面的表达式应该是【B】。
A)逻辑表达式B)条件表达式
C)关系表达式D)布尔类型的表达式
2.在C#语言中,if语句后面的表达式,不能是【B】。
A)逻辑表达式B)算数表达式
3.在C#语言中,switch语句用【A】来处理不匹配case语句的值。
A)defaultB)anyelse
C)breakD)goto
4.下列程序的输出结果是【C】。
usingSystem;
{intx=1,a=0,b=0;
switch(x)
{case0:
b++;
break;
case1:
a++;
case2:
}
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.以下叙述正确的是【D】。
A)do……while语句构成的循环不能用其他语句构成的循环来代替
B)do……while语句构成的循环只能用break语句结束循环
C)用do……while语句构成的循环,在while后的表达式为true时结束循环
D)用do……while语句构成的循环,在while后的表达式应为关系表达式或逻辑表达式
6.以下关于for循环的说法不正确的是【A】。
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-1>
j)i--;
elsej--;
A)2,4B)2,5C)3,4D)3,5
11下列语句序列执行后,j的值是【B】
intj=5,i=6;
while(i3)–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=1;
do{++m}while(m<
1);
A)有语法错误,不能执行B)一次也不执行C)执行1次D)执行2次
二.改错题
1、根据消费总额进行打折,消费总额在100元以上(含100元)时打7折,90元以上(含90元)100元以下时打8折,50元以上(含50元)90元以下时打9折,50元以下的不打折。
参考程序如下,但是该参考程序有错误,请调试并改正。
inttotalAmount=int.Parse(textBox1.Text);
//消费总额
if(totalAmount<
0)
输入有误!
Elseif(totalAmount>
=100)
打7折"
90)
打8折"
50)
打9折"
Else
不打折"
2、从键盘输入2012年的某一月份,打印出该月份的天数。
参考程序如下,该参考程序还存在一定的错误,请调试改正。
intday;
intmonth=int.Parse(textBox1.Text);
//月份
switch(month)
case1:
case3:
case5:
case7:
case8:
case10:
case12:
;
day=31;
case4:
case6:
case9:
case11:
day=30;
default:
day=-1;
break;
if(day==-1)
label1.Text="
无效输入"
else
2012年"
+month+"
月的共有"
+day+"
天"
3、利用for循环打印出以下格式的内容,参考程序如下,但该参考程序有一定的错误,请调试改正。
*****
****
***
**
*
for(inti=5;
i>
0;
i--)//打印列
for(intj=0;
j<
i;
j++);
//打印行并控制每行的*数量
label1.Text+="
*"
第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、编写用数组保存某个学生的三门课程的成绩的程序,参考程序如下,但该参考程序有一些错误,请调试改正。
Int[]score=newint[3];
score[1]=90;
score[2]=80;
score[0]=70;
for(inti=0;
i<
3;
label1.Text=label1.Text+"
成绩"
+(i+1)+"
+score[i];
第五章
1.下列的()不是构造函数的特征【D】。
A)构造函数的函数名和类名相同B)构造函数可以重载
C)构造函数可以带有参数D)可以指定构造函数的返回值类型
2.已知类MyClass定义如下:
classMyClass
{
inta1=1;
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定义如下:
staticinta1=1;
//没指定默认是私有的
staticpublicinta4=4;
obj是MyClass的一个对象,则下列哪条语句是正确的【D】。
B)obj.a4=2;
C)MyClass.a1=2;
D)MyClass.a4=2;
4.分析下列程序
classClass1
ushortu1;
publicClass1(ushortu)
this.u1=u;
则以下哪条语句能够正确创建对象?
【A】。
A)Class1c1=newClass1('
u'
);
B)Class1c1=newClass1("
u"
C)Class1c1=newClass1();
D)Class1c1=newClass1(5.7);
5.分析下列程序
6.分析下列程序
publicclassPeople
intage=8;
publicintAge
get{returnage;
}//只读不可写
则调用下列语句,输出的是?
【C】
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.下列关于构造函数的描述中,【A】是正确的。
A)构造函数名必须与类名相同B)构造函数不可以重载
C)构造函数不能带参数D)构造函数可以声明返回类型
10.C#中的TestClass为一自定义类,其中有如下属性定义:
publicvoidProperty{……}
使用以下语句创建了该类的对象,并让变量obj引用该对象。
TestClassobj=newTestClass();
那么,可通过【B】方式访问类TestClass的Property属性。
A)MyClass.PropertyB)obj.Property
C)TestClass.PropertyD)obj.Property()
11.调用重载方法时,系统根据【B】来选择具体的方法。
A)方法名B)参数的个数和类型
C)参数名及参数个数D)方法的返回值类型
12.下列的【D】不是构造函数的特征。
A)构造函数的函数名与类名系统B)构造函数可以重载
C)构造函数可以带有参数D)可以指定构造函数的返回值类型
13.类ClassA有一个名为M1的方法,在程序中有如下一段代码,假设该段代码是可以执行的,则声明M1方法时一定使用了【B】修饰符。
ClassAAobj=newClassA();
ClassA.M1();
A)publicB)staticC)privateD)virtual
14.已知类B是由类A继承而来,类A中有一个名为M的非虚方法,现在希望在类B中也定义一个名为M的方法,且两方法的参数个数和类型完全相同,若希望编译时不出现警告信息,则在类B中声明该方法时,应使用【B】关键字。
A)staticB)newC)overrideD)virtual
15.下列关于类的定义,错误的是【D】。
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);
//语句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)类B中的成员可以访问类A中的私有成员
D)类B中的成员可以访问类A中的静态成员
程序设计题
1设计和编码实现一个实用的计算器,具体要求如下:
(1)界面设计整洁美观,参考界面如图1所示
(2)点击数字按钮和操作符按钮能够在输入框正确显示信息
(3)点击“=”按钮至少能够计算一个操作符的表达式
(4)点击“清空”按钮能够将内容清空
(5)点击“=”按钮能够计算两个操作符以上的表达式
(6)能够正确显示标题,标题信息为“计算器”
图1计算器参考界面
2设计和实现一个登录界面(使用student.rar中的数据库,参考界面如图2和图3所示),具体要求如下:
1)界面设计美观
2)如果数据库不存在该用户,则提示用户不存在
3)如果存在用户,则提示密码错误
4)学号和密码正确,则提示登录成功
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C# 练习题 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)