C基础试题附答案.docx

上传人:b****3 文档编号:3884033 上传时间:2022-11-26 格式:DOCX 页数:22 大小:24.74KB
下载 相关 举报
C基础试题附答案.docx_第1页
第1页 / 共22页
C基础试题附答案.docx_第2页
第2页 / 共22页
C基础试题附答案.docx_第3页
第3页 / 共22页
C基础试题附答案.docx_第4页
第4页 / 共22页
C基础试题附答案.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

C基础试题附答案.docx

《C基础试题附答案.docx》由会员分享,可在线阅读,更多相关《C基础试题附答案.docx(22页珍藏版)》请在冰豆网上搜索。

C基础试题附答案.docx

C基础试题附答案

一、选择题

1、能作为C#程序的基本单位是()。

A.字符B.语句C.函数D.源程序文件

答案:

B

2、将变量从字符串类型转换为数值类型可以使用的类型转换方法是()。

A.Sti()B.CellarC.CSti()D.int.Paise();

答案:

D

3、数据类型转换的类是()o

A.ModB.ConvertC.ConstD.Single

答案:

B

4、字符串连接运算符包括&和()。

A.+E.-C.*D./

答案:

A

5、先判断条件的当循坏语句是()。

A.do...wluleB.whileC.wlule...doD.do…loop答案:

B

6、下面几个函数,()是重载函数.

l.voidfl(mt)2.nitfl(iiit)3.intfl(iiit,iiit)4.floatk(int)

A.四个全B.l和4C.2和3D.3和4

答案:

C

8、以下的C#代码:

staticvoidMam(stimg[]aigs)

{

Console.WnteLine("运行结果:

{0}”,Console.ReadLineQ);

Coiisole.ReadLineO;

}

代码运行结果为()。

A・在控制台窗【I显示“运行结果:

E.在控制台窗II显示“运行结果:

{0}"

C.在控制台窗II显示"运行结果八Console.ReadLine"

D.如果用户在控制台输入“A",那么程序将在控制台显示“运行结果:

A”答案:

D

9、在C#中定义一个数组,正确的代码为()。

A.iiitairaya=newint[5];B.iiitf]airaya=newiiit[5];

C.iiitarraya=newint[];D.iiit[5]arraya=newint;

答案:

B

10、在C#中,下列代码运行后,变量Max的值是()(选择一项)Inta=5,b=10,c=15,Max=0;

Max=a>b?

a:

b;

Max=c

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;i

if(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-°男

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1