C基础试题附答案Word文档下载推荐.docx
《C基础试题附答案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C基础试题附答案Word文档下载推荐.docx(22页珍藏版)》请在冰豆网上搜索。
Max=c<
Max?
c:
Max;
A.OB.5C.10D.15
c
11、在C#中,关于continue和break,以卜说法正确的是()
Abreak是中断本次循环Bcontinue是中断本次循环,进入一下次的
循环
Cbreak是中断本次循坏,进入一下次的循环Dcontinue是中断整个循环
12、在C#中,关于while和do…while,以下说法正确的是()
Ewhile最少的循环次数是1次
Ddo...while最少的循坏次数是0
Awhile先执行然后判断条件是否成立cdo...while先执行然后判断条件是否成立次
13、在C#中,卞列变量定义与赋值正确的是()
Aiiita=同学Bfloata=老师Cdouble3=教室Dchara=,学,答案:
14、表达式“abcde”==Sbcde"
+”2006”的值为()
A.Tme2006B.trueC.falseD.0
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;
5,5
4、
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];
case2:
s2+=Test.a[i];
Console.WnteLme(sO+””+si+"
+s2);
9+12+13
5、
usingSystem;
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、
publicstaticvoidMainQ
mt[]a={2,4,6,8,10,12,14,16,18};
for(mti=0;
9;
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));
staticmtJudge(charc)
intb:
b-0;
elseif(ca3&
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));
staticmtCount(doublea)
intb-(int)a;
if(a>
-0)
if(n・b>
-0.5)
b-b±
l;
5、编一个程序,输入0-100之间的一个学生成绩分数,用switch语句输出成绩等第(成绩优秀(90-100),成绩良好(80-89),成绩及格(60-79)和成绩不及格
(59以下))。
staticvoidMam(stimg[]aigs)
ScoreQ;
staticvoidScoreQ
mtscore-mtPaise(Console.ReadLineQ);
ints-score/10:
mta;
if(s>
-9&
sJ10)
a-0;
elseif(s>
-8&
s<
9)
a-1;
-6&
8)
a-2;
else
a-3;
switch(a)
Console.WnteLme(n成绩优秀”);
break:
Console.WnteLme(n成绩良好”);
Console.WnteLme(n成绩及格
default:
Console.WnteLme(n成绩不及格”);
6、编一个程序,用wlule循环语句来计算1+1/2+2/3+3/4+...+99/100之和。
Conso2.WmeCsimi・”);
doublesum-1;
Console.WnteLme(M{0}”,Sum());
staticdoubleSum()
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());
staticmtSum()
int1-1;
mta-0;
while(1<
-10)
a-a+i;
sum-sum十a:
i-i+1;
8、有关系式1*1+2*2+3*3+...+k*k<
2000,编一个程序,求出满足此关系式的k的最人值。
{intsum-0;
Console.WnteLme(M最大值为:
{0}”,Max(j);
staticmtMax()
mtk-1;
vvhile(sum<
2000)
sum+-k*k;
k^+;
returnk-1;
9、编写一个程序,要求用while循坏语句,打印1到100的正整数,每行打印5个数,每列右对齐。
Quee();
staticvoidQueeQ
for(inti-1;
-100;
i卄)
Console.Write(M{0}M,i);
if(i%5—0)
Console.WnteLine(j;
i卄;
return;
10、编一个程序,利用二重fOT循坏语句,打印出九九乘法II诀表。
ChengfabiaoQ;
staticvoidCliengfabiaoQ
for(inti-1;
-9;
for(intj-1;
j<
-i;
j卄)
Console.Write(M{0}♦{1)-{2}
Console.WriteLmeQ;
1K编一个程序,利用f0T循坏语句,求出1!
+2!
+3!
+・・・+10!
的和。
Console.WnteLme(H{0}”,Sum());
inta-1;
-10;
a-a*i;
sum-sum十a;
13、编一个程序,定义一个字符串变量,输入字符串,然后再输入一个字符,在字符串中查找该字符出现的次数。
Console.Wnte(M请输入字符串:
*);
stringstr■Console.ReadLmeQ;
Console.Wnte(M请输入字符:
”);
chaic-char.Parse(Console.ReadLme());
ints-Str(str.c);
Console.WnteLme(M{0}s);
staticmtStr(stimgstr,charc)
mta-0:
for(int1-0;
i<
str.Length;
i卄){
if(str[i]—c)
a++;
returna;
15、编一个程序,输入一个整数•判定它为几位数。
例如,99是2位数,-100是3位数。
Console.WnteLme(M{0}”,Math());
staticmtMath()
mta-mt.Parse(Console.ReadLineQ);
intb-0;
intc-1;
if(a<
0)
b--a;
if(a>
b-a;
while(b>
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("
str.Length);
mtindex-strIndexOf('
a'
if(mdex>
-0)
ConsoleAVriteC*出现字符a的位蜀:
“);
Console.WnteLineC*{0}index);
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;
str2.Length;
计十)
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:
publicovenidevoidMyMethod(mtnum)
num十・50;
Aa-newAQ;
a.MyMethod(3);
Bb-newBQ;
b.MyMethod(S);
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);
c-a/b;
Console.WiiteLme(H{0}c);
}
Calculate1c-newCalculateIQ;
c.Mix(3,4);
Calulate2d-newCalulate2(j;
d.Mix(&
4);
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];
retum(double)sum/5;
Students-newStudentQ;
Console.WriteC1姓名:
s.Narne-”张三"
;
Console.WriteLine(M{0}H,s.Name);
Console.Write(H年龄:
s.Age-19;
Console.WnteLme(H{0}H,s.Age);
Console.WriteC性别:
s.Sex-°
男