C#前3章练习题参考答案doc.docx
《C#前3章练习题参考答案doc.docx》由会员分享,可在线阅读,更多相关《C#前3章练习题参考答案doc.docx(13页珍藏版)》请在冰豆网上搜索。
C#前3章练习题参考答案doc
一.选择题
1.关于C#程序的书写,下列不正确的说法是【D】。
A)区分大小写
B)一行可以写多条语句
C)一条语句可以写成多行
D)一个类中只能有一个Mai】i()方法,因此多个类中可以有多个M“in()方法。
2.C#应用程序项目文件的扩展名是[A]o
A)
D)suo
D)Alt+Ctrl+F5
csprojB)csC)sin
3.运行C#程序可以通过按【C】键实现。
A)Shift+F5B)Alt+F5C)Ctrl+F5
4.
公共语言运行库可简写为(C)o
*/”符号对,其中【〃】
D)a-bc
D)3.5
5.下面对Write()和WriteLineO^*法的描述,不正确的是(C)。
A.WriteLine()方法在输出字符串的后面添加换行符
B.使用Write。
输出字符串吋,光标将会位于字符串的后面
C.使用Write()和WriteLineO方法输出数值变量时,必须要先把数值变量转换成字符串
D.使用不带参数的WriteLineO方法时,将会产生一个空行
6.以下哪句话是正确的?
(D)
A.命名空间应该包含在类中
B.每个类都是为了完成一个独立的功能
C.—个资源解决方案只能包含一个项目
D.C#源程序的扩展名是.cs
7.要看到程序运行的结果,必须按下列哪个组合键(A)。
A.Ctrl+F5B.Ctrl+F9C.Alt+F5D.Alt+F
二.填空题
1.在C#屮,进行注释有两种方法:
使用“//”和使用“/*只能进行单行注释。
2.在C#程序中,程序的执行总是从【M“in()】方法开始的。
第2章
一.选择题
1.在C#语言屮,下列能够作为变量名的是【C】。
A)ifB)3abC)a_3b
2.表达式5/2+5%2-l的值是【B
A)4B)2C)2.5
下列数值类型的数据精度最高的是【C】。
D)ulong
A)intB)floatC)decimal
在C#语言中,下面的运算符中,优先级最高的是【B】。
A)%B)++C)*=D)>
能正确表示逻辑关系“a$10或aWO”的C#语言表达式是【D】。
B)a>=10anda<=0
D)a>=10||a<=0
A)a>=10ora<=0
C)a>=10&&a<=0
以下程序的输出结果是【C】。
usingSystem;
classProgram
{publicstaticvoidMain(stringf]args)
{inta=5,b=4,c=6,d;
Console.WriteLine("{0}”,d=a>b?
(a>c?
a:
c):
b);
}
}
A)5B)4C)6D)不确定
要使用变量score来存储学生某一门课程的成绩(百分制,可能出现小数部分),则最
A)在程序运行过程中,变量的值是不能改变的,而常量是可以改变的
B)常量定义必须使用关键字const
C)在给常量赋值的表达式屮不能出现变量
D)常竝在内存中的存储单元是固定的,变竝则是变动的下列类型转换中正确的是【AJ
(A)inti=,A*(B)longL=1.If(C)inti=(float)l.l(D)inti=l.l以下选项中,合法的赋值语句是(B)
(A)inta==1(B)inti=1;intj二i++;
(C)inta=a+1=2;(D)inti=int(j);
下列运算符中属于关系运算符的是(A)
(A)==(B)=(C)+二(D)-=
阅读下面的程序,程序的运行结果为(C)
inta=10,b=4,c=20,d=6;
labell,Text=a++*b+c*—d;
(A)144(B)160(C)140(D)164
阅读下面的程序,程序的运行结果为(B)intx=3,y=4,z=5;
Strings=”xyz";
label1.Text=s+x+y+z;
(A)xyzl2(B)xyz345(C)xyzxyz(D)12xyz
16.阅读下面的程序,程序的运行结果为(B)
inti=10,j=3;
floatm=213.5f,n=4.0f;
labell.Text=i%j+^^^^;
label2.Text二m%n+"'';
(A)1.0和1.5(B)l和1.5(C)1.0和2.5(D)l和2.5
17.C#屮每个int类型的变量占用(C)个字节的内存。
A」B.2C.4D.8
18.在C#中,表示一个字符串的变量应使用以下哪条语句定义?
(B)
A.CStringstr;B.stringstr;C.DimstrasstringD.char*str;
19.C#中,新建一字符串变量sir,并将字符$"Tom'sLivingRoom"保存到串中,则应该使用下列哪条语句?
(B)
A.stringstr="Tom\'sLivingRoom";B.stringstr="Tom'sLivingRoom";
C.stringstr("Tom'sLivingRoom'*);D.stringstr("Tom"sLivingRoom");
20.设”inta=3,b=4,c=5;”表达式"(a+b)>c&&b==cM的值是(B)
A.trueB.falseC.3D.7
21.设"inta=12;w则执行完语句“a卄;a=a+3”后,a的值是(D)
A」2B」5C」3D.16
22.以下数据中,属于int类型的是(A)
A.8B.'8'C.”8”D.8.8
23.在C#以下哪个变量名是正确的(C)
A.$34B.45bC.a_3D.int
24.以下哪句话是正确的?
(B)
A.C#是-•种面向对象的开发语言,而JAVA不是。
B.C#项目编译后的可执行文件扩展名为.exe
C.C#中Main()方法中的M首字母不一定要大写
D.基本数据类型的变量,其内容为引用,即地址。
25.下列选项中,(c)是引用类型。
a)enum类型b)struct类型c)string类型d)int类型
26.C#的数据类型有(b)
a)值类型和调用类型;b)值类型和引用类型;
c)引用类型和关系类型;d)关系类型和调用类型;
27.在C#'P,下列代码运行后,变量max的值是(C)
inta=5,b=10,c二15,max=0;
max=a>b?
a:
b;max=cc:
max;
A.OB.5C.10D.15
28.在C#屮,下列常量定义正确的是(B)。
A.constdoublePI3」415926;B.constdoublePi=2.7
C.definedoublePI3.1415926D.definedoublee=2.7
29.设a=6,b=4,则表达式b陀+3的值为(C)
A.3B・18C.27D.36
30.标识符的名字不能使用c#语言中的关键字,如果要使用,则应使用(C)字符作为前缀:
A.,B.任意字符C.@D./
31.在C#中,下列代码的运行结果是(A)。
floatf=123.56F;
objecto=f;
f=789.123F;
Console.WriteLine("f二{0}“,f);
Console.WriteLine(〃o二{0}〃,o);
a)f=789.123
o=123.56
b)仁123.56
0=789.123
c)f=789.123
0=789.123
d)f=123.56
0=123.56
32.在C#中,下列代码的输出结果是(C)。
usingSystem;
classTest
{
publicenumWeekDays
{
Mon,Tue,Wed,Thur,Fri,Sta,Sun
}
staticvoidMainO
{
WeekDaysweek二(WeekDays)2;
Console.WriteLine(week);
}
}
a)2b)Tuec)Wedd)编译错误
33.以下代码段体现了C#中的(C)概念,该概念使得对象模型变得简单易懂。
intval二10;
Objectobj=val;
a)继承b)重载c)装箱d)委托
34.下面关于C#中值类型和引用类型的描述正确的是(D)o
“)结构属于引用类型
b)字符串属于值类型
c)所有内置的数据类型都是值类型,所有用户定义的数据类型都是引用类型
d)值类型变量直接存放真止的数据,引用类型变暈存放的是指向真止的数据的存放地址
二.填空题
1.8/3的结果是:
【2】。
2.C#中,所有类型(包括所有的值类型和所有的引用类型)的基类是[object类】。
3.当整数b赋值给一个object对象时,这个过程称为【装箱】。
4.设x为int型变量,请写出描述“x是奇数”的C#语言表达式[x%2!
=0]o
5.设x为int型变量,请写出描述“・10v二xv=10”的C#语言表达式[-10<=x&&x<=10]o
6.在C#中,bool类型只有两种值,分别是[true]和[false]o
第3章
一.选择题
1.在C#语言屮,if语句后面的表达式,不能是【B1
A)逻辑表达式B)算术表达式
C)关系表达式D)布尔类型的表达式
2.在C#语言中,switch语句用【A】来处理不匹配case语句的值。
A)defaultB)anyelse
C)breakD)goto
3.下列程序的输出结果是【C]o
usingSystem;
classProgram
{publicstaticvoidMain(string[]args)
{intx=l,a=0,b=0;
switch(x)
{case0:
b++;break;
case1:
a++;break;
case2:
a++;b++;break;
}
Console.WriteLine("a二{0},b二{1}”,a,b);
1
}
A)a=2,b=1B)a=l,b=lC)a=l,b=0D)a=2,b=2
4.以下叙述正确的是【D】。
A)do……while语句构成的循坏不能用其他语句构成的循坏來代替
B)dowhile语句构成的循环只能用break语句结束循环
C)用dowhile语句构成的循环,在while后的表达式为true时结束循环
D)用dowhile语句构成的循环,在while后的表达式应为关系表达式或逻辑表达式
5.以下关于foi•循环的说法不正确的是【A]0
A)for循环只能用于循环次数已经确定的情况
B)fo「循环是先判定表达式,后执行循环体
C)在for循环中,可以用break语句跳出循环体
D)for循环体语句屮,可以包含多条语句,但要用花活号括起来
6.C#提供的4种跳转语句屮,不推荐使用的是【D】。
A)returnB)breakC)continueD)goto
7.执行下列语句序列后,i和j的值分别是【C]
inti=3,j=5;if(i-l>j)i-;elsej—;
A)2,4B)2,5C)3,4D)3,5
&下列语句序列执行后,j的值是【B]
intj=5,i=6;
while(i—>3)—j;
A)1B)2C)3D)4
9.以下for循环的执行次数是【B】
for(inti=l;(i=二1)&(i>2);i++)
A)无限次B)—次也不执行C)执行1次D)执行2次
10.以下由do-while语句构成的循环执行次数是【C】
intm=l;
do
{
++m;
}while(mA)有语法错误,不能执行B)—次也不执行C)执行1次D)执行2次
11.循环语句“血(沐i=0;ivn;i++);”屮循环体执行的次数为(C)
A.lB.n-1C.nD.n+1
12.在下面循环语句中循环体执行的次数为(B)
for(inti=0;i{if(i>n/2)break;}
A.n/2B.n/2+1C.n/2-1D.n-1
13.下面有关for语句的描述有错误的是(A)。
A.使用for语句时,可以省略其中的某个或多个表达式,但不能同时省略全部3个表达式
B.在省略for语句的某个表达式时,如果该表达式后面原来带有分号,则一定要保留它所带的分号
C.在foi*语句表达式屮,可以直接定义循环变量,以简化代码
D.for语句的表达式可以全部省略
14.以下哪段代码,最合理地实现了以下结构图描述的流程(B)
15.
以下关于C#代码的说法正确的是(A)。
usingSystem;
classTest
staticvoidMain()
{
for(inti=l;i<=3;i++)
{
switch(i)
{
case1:
Console.Write(i.ToStringO);
case2:
Console.Write((i*2).ToString());
case3:
Console.Write((i*3).ToString());
}
}
A)程序将报告编译错误,提示case标签不能贯穿到另一个标签,不能运行
B)运行是输出149
C)运行吋输出123246369
D)运行时在屏幕上没有输出
16.已知a,b,c的值分别是4,5,6,执行下面的程序段后,判断变量n的值为(C)if(c
elseif(a+belsen=a+b;
A.3B.-3C.9D」5
17.while语句循环结构和do・・・while语句循环结构的区别在于(D)
A.while语句的执行效率较高
B.do・・・while语句编写程序较复杂
C.无论条件是否成立,while语句都要执行一次循环体
D.do-while循坏是先执行循坏体,后判断条件表达式是否成立,而while语句是先判断条件表达式,再决定是否执行循环体.
18.下列代码输出正确的是(D)
namespaceAnswer
{
classProgram
{
staticvoidMain(stringf]args)
{
inti,j;
for(i=l;i>=0;i-)
for(j=0;j<=i;j++)
Console.WriteLine("i*j={0}”,i*j);
A.i*j=Oi*j=0i*j=OB.i*j=li*j=0i*j=l
C.i*j=li*j=li*j=0D.i*j=Oi*j=li*j=0
19•下面对i值的输出结果说法正确的是(A)
namespaceAnswer
{
classProgram
{
staticvoidMain(string[]args)
{
inti=0;
do
{i++;
}while(i<5);
Console.WriteLine(“i值的为:
{0}”,i);}}}
A.i的值为:
5B.i的值为:
6
C.i的值为:
7D.i的值为:
8
20.下面代码运行后,s的值是(B)。
ints=0;
for(inti=1;i<100;i++)
{
if(s>10)
{
break;
}
if(i%2==0)
s+=i;
二、程序分析题
1.运行以下程序段,结果是(150)
doublek,t;
t=0;
for(intn=l;n<=10;n++)
{
for(k=1;kv=5;k++)
t=t+k;
}
Console.WriteLine(t);
运行以下程序段,结果是(总和为:
25)
usingSystem;
classSumw
{
staticvoidMain()
{
inti=l,sum=0;
while(i<=10)
{
sum+二i;
i+=2;
}
stringsl="总和为:
"+sum・ToString();
Console.WriteLine(s1);
}
}
2.以下程序运行后,变量a的值为(10)
inta=100;
for(intj=10;j>0;j-=2)
a-=j*3;
3.以下程序运行后,控件textBox1显示内容为(1112131416171819)
inti;
stringsl=,,n;
for(i=10;i<=20;i++)
{
if(i%5==0)
{
continue;
}
si+=i.ToStringO+H”;
Console.WriteLine(s1);
4.给出下列程序的运行结果:
(1+2+3+...+100=5050)
usingSystem
ClassDome
{
StaticvoidMain()
{intn=l,sum=0;
while(n<101)
{
sum+=n;
n++;
Console.WriteLine(n1+2+3+…+100=M+sum);