c:
Max;
A.OB.5C.10D.15
答案:
c
11、在C#中,关于continue和break,以卜说法正确的是()
Abreak是中断本次循环Bcontinue是中断本次循环,进入一下次的
循环
Cbreak是中断本次循坏,进入一下次的循环Dcontinue是中断整个循环
答案:
A
12、在C#中,关于while和do…while,以下说法正确的是()
Ewhile最少的循环次数是1次
Ddo...while最少的循坏次数是0
Awhile先执行然后判断条件是否成立cdo...while先执行然后判断条件是否成立次
答案:
C
13、在C#中,卞列变量定义与赋值正确的是()
Aiiita=同学Bfloata=老师Cdouble3=教室Dchara=,学,答案:
D
14、表达式“abcde”==Sbcde"+”2006”的值为()
A.Tme2006B.trueC.falseD.0
答案:
C
D、overrides
15、在C#中定义类时,使用的关键字是(
A、interfaceE、intC、class
答案:
C二•写出下列程序的结果
1、
iiity=l.x;
if(y!
=0)
{
x=5;
}
elseif(y<0)
{
x=4;
x=3;
}
Console.WriteLme(,,x={0}x);
}答案:
5
intx,v=0;
do
{
x=y++;
Console.WiiteLme(x);}while(y<6);
}
答案:
15
3、
classTest
{
staticvoid)
{
intx=5;
intv=x-
Console.WriteLme(ny={0}v);
y=--x;
Console.WriteLme(ny={0}v);
}
}
答案:
5,5
4、
classTest
{
publicstaticvoidMainQ
{
staticint[]a={1,2,3,4,5,6,7,8};iiitsO.si,s2;
s0=sl=s2=0;
for(inti=0;i<8;i++)
{
switch(a[i]%3)
case0:
sO+=Test.a[i];break;
case1:
si+=Test.a[i];break;
case2:
s2+=Test.a[i];break;
}
}
Console.WnteLme(sO+””+si+"+s2);
}
}
答案:
9+12+13
5、
usingSystem;
classTest
{
publicstaticvoidMamQ
{
ints=0,i=l;
for(;;i++)
{
if(s>50)break;
if(i%2==0)s+=i;
}
Console.writeLiiie(”i,s=M+i++s);
}
}
答案:
14,S=2+4+6…+14、566、写出下列函数的功能。
staticfloatFH()
{
floaty=0卫=0;
intx=Convert.ToInt32(Coiisole.ReadLineO);//从键盘读入整型数据赋给x
wliile(x!
=・l)
{
n++;y+=x;
x=Convert.ToInt32(Console.ReadLine());
}
if(n=0)
{
returny;
returny/n;
}
答案:
从键盘中输入输入整型数只要不是-1就求和,不输入数就返回0,否则求这几个数的的平均值。
7、
usingSystem;
classTest
{
publicstaticvoidMainQ
{
mt[]a={2,4,6,8,10,12,14,16,18};
for(mti=0;i<9;i++)
{
Console,write(“,,+a[i]);
if((i+l)%3==0)Console.writeLineQ;
}
}
}
答案:
246
81012
141618
三、编程题(全部把功能写到自定义函数里)
1、编一个程序,从键盘上输入三个数,用三元运算符(?
:
)把最人数找出来。
答案:
{
Console.Wnte(”请输入三个数:
");
mta-int.Parse(Console.ReadLmeQ);
mtb-int.Parse(Console.ReadLineO);
mtc-mt.Parse(Console.ReadLineO);
mtmax-a;
mts-Max(a,b,c);
Console.WiiteLineC结果为:
{0}”,s);
Console.ReadKey();
}
staticuitMax(mta,mtbantc)
intmax:
max-a>b?
a:
b;
max-max>c?
max:
c;
returnmax;
2、编一个程序,输入一个字符,如果是人写字母,就转换成小写字母,否则不转换。
答案:
{
Console.WriteC输入字符:
°);
chaic-chai.Parse(Console.ReadLmeQ);
chais-Cliange(c);
Console.WriteLine(M{0}s);
Console.ReadKeyO;
}
staticcharChange(charc)
{
if(c>-W&&cZ)
{
c-Convert.ToChar(c+32);
}
returnc;
3、输入一个字符,判定它是什么类型的字符(人写字母,小写字母,数字或者其它字符)答案:
{
Console.WnteC输入字符”);
chaic-char.Parse(Console.ReadLmeQ);
Console.WnteLme(M{0}H,Judge(c));
Console.ReadKeyO;
}
staticmtJudge(charc)
{
intb:
if(c>-W&&cZ)
{
b-0;
}
elseif(ca3&&cZ)
{
b-1;
}
elseif(cx48&&c<-57)
{
b-2;
b・3;
}
returnb;
4、编一个程序,输入一个正数,对该数进行四舍五入到个位数的运算。
例如,实数12.56经过四舍五入运算,得到结果13;而12.46经过四舍五入运算,得到结果12o
答案:
{
Console.Wnte(u输入一个正数:
°);
doublea-double.Parse(Coiisole.ReadLine());
Console.WriteLine(H{0}M,Count(a));
Console.ReadKeyO;
}
staticmtCount(doublea)
{
intb-(int)a;
if(a>-0)
{
if(n・b>-0.5)
{
b-b±l;
}
}
returnb;
5、编一个程序,输入0-100之间的一个学生成绩分数,用switch语句输出成绩等第(成绩优秀(90-100),成绩良好(80-89),成绩及格(60-79)和成绩不及格
(59以下))。
答案:
staticvoidMam(stimg[]aigs)
{
ScoreQ;
Console.ReadKeyO;
}
staticvoidScoreQ
{
mtscore-mtPaise(Console.ReadLineQ);
ints-score/10:
mta;
if(s>-9&&sJ10)
{
a-0;
elseif(s>-8&&s<9)
a-1;
}
elseif(s>-6&&s<8)
{
a-2;
}
else
{
a-3;
}
switch(a)
{
case0:
Console.WnteLme(n成绩优秀”);
break:
break:
case1:
Console.WnteLme(n成绩良好”);
break:
case2:
Console.WnteLme(n成绩及格
break:
default:
Console.WnteLme(n成绩不及格”);
break:
6、编一个程序,用wlule循环语句来计算1+1/2+2/3+3/4+...+99/100之和。
答案:
{
Conso2.WmeCsimi・”);
doublesum-1;
Console.WnteLme(M{0}”,Sum());
Console.ReadKey();
}
staticdoubleSum()
{
doublesum-1;
double1-1;
while(i<-100)
sum十・i/(i十1);i-i+1;
}
returnsum;
7、编写一个程序,用wlule语句,求出1+(1+2)+(1+2+3)+・・・+(1+2+3+・・・+10)之和。
答案:
{
mtsum-0;
Console.WriteC和为:
M);
Console.WnteLme(M{0},\Sum());
Console.ReadKeyO;
}
staticmtSum()
{
mtsum-0;
int1-1;
mta-0;
while(1<-10)
{
a-a+i;
sum-sum十a:
i-i+1;
}
returnsum;
8、有关系式1*1+2*2+3*3+...+k*k<2000,编一个程序,求出满足此关系式的k的最人值。
答案:
{intsum-0;
Console.WnteLme(M最大值为:
{0}”,Max(j);
Console.ReadKeyO;
}
staticmtMax()
{
mtsum-0;
mtk-1;
vvhile(sum<2000)
{
sum+-k*k;
k^+;
returnk-1;
}
9、编写一个程序,要求用while循坏语句,打印1到100的正整数,每行打印5个数,每列右对齐。
答案:
{
Quee();
Console.ReadKeyO;
}
staticvoidQueeQ
{
for(inti-1;i<-100;i卄)
{
Console.Write(M{0}M,i);
if(i%5—0)
{
Console.WnteLine(j;
i卄;
return;
10、编一个程序,利用二重fOT循坏语句,打印出九九乘法II诀表。
答案:
{
ChengfabiaoQ;
Console.ReadKey();
}
staticvoidCliengfabiaoQ
{
for(inti-1;i<-9;i++)
{
for(intj-1;j<-i;j卄)
{
Console.Write(M{0}♦{1)-{2}
}
Console.WriteLmeQ;
}
return;
1K编一个程序,利用f0T循坏语句,求出1!
+2!
+3!
+・・・+10!
的和。
答案:
{
mtsum-0;
Console.WnteLme(H{0}”,Sum());
Console.ReadKey();
}
staticmtSum()
{
mtsum-0;
inta-1;
for(inti-1;i<-10;i++)
{
a-a*i;
sum-sum十a;
returnsum;
13、编一个程序,定义一个字符串变量,输入字符串,然后再输入一个字符,在字符串中查找该字符出现的次数。
答案:
{
Console.Wnte(M请输入字符串:
*);stringstr■Console.ReadLmeQ;
Console.Wnte(M请输入字符:
”);
chaic-char.Parse(Console.ReadLme());ints-Str(str.c);
Console.WnteLme(M{0}s);
}
Console.ReadKeyO;
staticmtStr(stimgstr,charc)
mta-0:
for(int1-0;iif(str[i]—c)
{
a++;
}
}
returna;
15、编一个程序,输入一个整数•判定它为几位数。
例如,99是2位数,-100是3位数。
答案:
{
Console.WnteLme(M{0}”,Math());
Console.ReadKey();
}
staticmtMath()
{
mta-mt.Parse(Console.ReadLineQ);
intb-0;
intc-1;
if(a<0)
{
b--a;
}
if(a>0)
{
b-a;
}
while(b>-10)
{
b-b/10;
C++;
}
returnc;
四、面向对彖
1、定义一个车辆(Vehicle)基类,具有Run、Stop等方法,具有Speed(速度)、MaxSpeed(最人速度)、Weight(重量)等域。
然后以该类为基类,派生出BicycleCar等类。
并编程对该派生类的功能进行验证。
答案:
基类:
classVehicle
{
publicdoubleSpeed;
publicdoubleMaxspeed;
publicdoubleWeiglit;
publicvoidRun()
{
Console.WnteLine(M我跑°。
。
。
。
”);
}
publicvoidStop()
Console.\VnteLme(H我停。
。
。
。
。
”);
派生类:
classBicyclezVelucle
{
}
classCar:
Vehicle
{
}
对派生类功能的验证:
staticvoidMam(strmg[]args)
{
Bicyclep-newBicycleQ;
р.RunQ;
Carc■newCarQ;
с.StopQ;
Console.ReadKeyO:
}
2、写一个控制台应用程序,接收一个长度人于3的字符串,完成卞列功能:
1)输出字符串的长度。
2)输出字符串中第一个出现字母a的位置。
3)在字符串的第3个字符后面插入子串“hello”,输出新字符串。
4)将字符串“hello”替换为“me”,输出新字符串。
5)以字符“m”为分隔符,将字符串分离,并输出分离后的字符串。
答案:
{
Console.WriteC输入字符:
”);
stringstr-Console.ReadLmeQ;
while(str.Length<-3)
{
str-Console.ReadLmeQ;
}
Console.WriteC'字符串的个数:
");
Console.WnteLuie("{0}",str.Length);
mtindex-strIndexOf('a');
if(mdex>-0)
{
ConsoleAVriteC*出现字符a的位蜀:
“);
Console.WnteLineC*{0}index);
}
else
{
Console.WriteLine(M字符串中不含字符:
T);
stringstrl-”hello"+str.Substring(3);
Console.Wnte(°Hl现新字符串:
M);
Console.WnteLme(stil);
strl-strl.Replace(MhelloH;,meH);
Console.\Vnte(°^换后的字符串:
H);
Console.WnteLme(strl);
string[]str2-stil.SplitCm*);
for(mt1-0;i{
Console.Write(吩割后的字符串:
J;
Consoie.WiiteLme(str2[i]);
}
Console.ReadKeyQ;
}
3、编写一个控制台应用程序,完成卞列功能,并写出运行程序后输岀的结果。
1)创建一个类A,在A中编写一个可以被重写的带int类型参数的方法MyMethod,并在该方法中输出传递的整型值后加10后的结果。
2)再创建一个类B,使其继承自类A,然后重写A中的MyMethod方法,将A中接收的整型值加50,
}
3)在Main方法中分别创建A和类B的对象,并分别调用MyMethod方法。
答案:
并输出结果。
classA
{
publicviruialvoidMyMethod(intnum)
{
num+-10;
Console.WnteLine(M{0},\num);
}
classB:
A
{
publicovenidevoidMyMethod(mtnum)
{
num十・50;
Console.WnteLine(M{0},\num);
}
{
Aa-newAQ;
a.MyMethod(3);
Bb-newBQ;
b.MyMethod(S);
Console.ReadKeyO;
4编写一个类Calculateb实现加、减两种运算,然后,编写另一个派生类Calculate2,实现乘、除两种运算。
classCalculate1
{
publicvirtualvoidMix(inta,intb)
{
Console.Wnte(H运算符为「);
strings-Console.ReadLineQ:
intc;
if(s
{
c-a+b;
Console.WriteLme(u{0}c);
}
elseif(s—
{
c-a-b;
Console.WriteLme(M{0}c);
}
}
publicovenidevoidMix(mta.intb)
{
Console.WriteCis算符为:
H);
strings-Console.ReadLineQ;
mtc;
c-a*b;
Console.WriteLine(M{0},,,c);
}
elseif(s—
{
c-a/b;
Console.WiiteLme(H{0}c);}
Calculate1c-newCalculateIQ;
c.Mix(3,4);
Calulate2d-newCalulate2(j;
d.Mix(&4);
Console.ReadKeyO;
}
5、编写出一个通用的人员类(Person),该类具有姓名(Name)、年龄(Age)、性别(Sex)等域。
然后对Person类的继承得到一个学生类(Student),该类能够存放学生的5门课的成绩,并能求出平均成绩。
最后在Mam函数中对student类的功能进行验证。
classPerson
{
publicstungName;
publicintAge;
publicstungSex:
}
classStudentzPerson
{
publicdoubleAvg()
{
mt[]Score-newint[5]{23,34,56,78,90};
int1-0;
intsum-0;
while(i<5)
{
sum十-Scoiefi];
i卄;
}
retum(double)sum/5;
}
{
Students-newStudentQ;
Console.WriteC1姓名:
H);
s.Narne-”张三";
Console.WriteLine(M{0}H,s.Name);
Console.Write(H年龄:
J;
s.Age-19;
Console.WnteLme(H{0}H,s.Age);
Console.WriteC性别:
H);
s.Sex-°男