c:
Max;
A.0B.5C.10D.15
答案:
C
11、在C#中,关于continue和break,以下说确的是( )
Abreak是中断本次循环Bcontinue是中断本次循环,进入一下次的循环
Cbreak是中断本次循环,进入一下次的循环Dcontinue是中断整个循环
答案:
A
12、在C#中,关于while和do…while,以下说确的是( )
Awhile先执行然后判断条件是否成立Bwhile最少的循环次数是1次
Cdo…while先执行然后判断条件是否成立Ddo…while最少的循环次数是0次
答案:
C
13、在C#中,下列变量定义与赋值正确的是( )
Ainta=同学 Bfloata=老师Cdoublea=教室 Dchara=’学’
答案:
D
14、表达式“abcde”==”abcde”+”2006”的值为()
A.True2006B.trueC.falseD.0
答案:
C
15、在C#中定义类时,使用的关键字是()
A、interfaceB、intC、classD、overrides
答案:
C
二.写出下列程序的结果
1、
{
inty=1,x;
if(y!
=0)
{
x=5;
}
elseif(y<0)
{
x=4;
}
else
{
x=3;
}
Console.WriteLine("x={0}”,x);
}
答案:
5
2、
{
intx,y=0;
do
{
x=y++;
Console.WriteLine(x);
}while(y<6);
}
答案:
15
3、
classTest
{
staticvoidMain()
{
intx=5;
inty=x--;
Console.WriteLine("y={0}",y);
y=--x;
Console.WriteLine("y={0}",y);
}
}
答案:
5,5
4、
classTest
{
public staticvoidMain()
{
static int[]a={1,2,3,4,5,6,7,8};
int s0,s1,s2;
s0=s1=s2=0;
for (inti=0;i<8;i++)
{
switch (a[i]%3)
{
case 0:
s0+=Test.a[i];break;
case 1:
s1+=Test.a[i];break;
case 2:
s2+=Test.a[i];break;
}
}
Console.WriteLine(s0 +""+s1+""+s2);
}
}
答案:
9+12+13
5、
usingSystem;
classTest
{
public staticvoidMain()
{
ints=0,i=1;
for(; ;i++)
{
if(s>50) break;
if(i%2==0) s+=i;
}
Console.writeLine("i,s="+i+","+s);
}
}
答案:
14,S=2+4+6...+14,56
6、写出下列函数的功能。
staticfloatFH()
{
floaty=0,n=0;
intx=Convert.ToInt32(Console.ReadLine());//从键盘读入整型数据赋给x
while(x!
=-1)
{
n++;y+=x;
x=Convert.ToInt32(Console.ReadLine());
}
if(n==0)
{
returny;
}
else
{
returny/n;
}
}
答案:
从键盘中输入输入整型数只要不是-1就求和,不输入数就返回0,否则求这几个数的的平均值。
7、
usingSystem;
classTest
{
publicstaticvoidMain()
{
int[]a={2,4,6,8,10,12,14,16,18};
for(inti=0;i<9;i++)
{
Console.write(“”+a[i]);
if((i+1)%3==0)Console.writeLine();
}
}
}
答案:
246
81012
141618
三、编程题(全部把功能写到自定义函数里)
1、编一个程序,从键盘上输入三个数,用三元运算符(?
:
)把最大数找出来。
答案:
{
Console.Write("请输入三个数:
");
inta=int.Parse(Console.ReadLine());
intb=int.Parse(Console.ReadLine());
intc=int.Parse(Console.ReadLine());
intmax=a;
ints=Max(a,b,c);
Console.WriteLine("结果为:
{0}",s);
Console.ReadKey();
}
staticintMax(inta,intb,intc)
{
intmax;
max=a>b?
a:
b;
max=max>c?
max:
c;
returnmax;
}
2、编一个程序,输入一个字符,如果是大写字母,就转换成小写字母,否则不转换。
答案:
{
Console.Write("输入字符:
");
charc=char.Parse(Console.ReadLine());
chars=Change(c);
Console.WriteLine("{0}",s);
Console.ReadKey();
}
staticcharChange(charc)
{
if(c>='A'&&c<='Z')
{
c=Convert.ToChar(c+32);
}
returnc;
}
3、输入一个字符,判定它是什么类型的字符(大写字母,小写字母,数字或者其它字符)
答案:
{
Console.Write("输入字符");
charc=char.Parse(Console.ReadLine());
Console.WriteLine("{0}",Judge(c));
Console.ReadKey();
}
staticintJudge(charc)
{
intb;
if(c>='A'&&c<='Z')
{
b=0;
}
elseif(c>='a'&&c<='z')
{
b=1;
}
elseif(c>=48&&c<=57)
{
b=2;
}
else
{
b=3;
}
returnb;
}
4、编一个程序,输入一个正数,对该数进行四舍五入到个位数的运算。
例如,实数12.56经过四舍五入运算,得到结果13;而12.46经过四舍五入运算,
得到结果12。
答案:
{
Console.Write("输入一个正数:
");
doublea=double.Parse(Console.ReadLine());
Console.WriteLine("{0}",Count(a));
Console.ReadKey();
}
staticintCount(doublea)
{
intb=(int)a;
if(a>=0)
{
if(a-b>=0.5)
{
b=b+1;
}
}
returnb;
}
5、编一个程序,输入0—100之间的一个学生成绩分数,用switch语句输出成绩等第
(成绩优秀(90-100),成绩良好(80-89),成绩及格(60-79)和成绩不及格
(59以下))。
答案:
staticvoidMain(string[]args)
{
Score();
Console.ReadKey();
}
staticvoidScore()
{
intscore=int.Parse(Console.ReadLine());
ints=score/10;
inta;
if(s>=9&&s<=10)
{
a=0;
}
elseif(s>=8&&s<9)
{
a=1;
}
elseif(s>=6&&s<8)
{
a=2;
}
else
{
a=3;
}
switch(a)
{
case0:
Console.WriteLine("成绩优秀");
break;
break;
case1:
Console.WriteLine("成绩良好");
break;
case2:
Console.WriteLine("成绩及格");
break;
default:
Console.WriteLine("成绩不及格");
break;
}
6、编一个程序,用while循环语句来计算1+1/2+2/3+3/4+...+99/100之和。
答案:
{
Console.Write("sum=");
doublesum=1;
Console.WriteLine("{0}",Sum());
Console.ReadKey();
}
staticdoubleSum()
{
doublesum=1;
doublei=1;
while(i<=100)
{
sum+=i/(i+1);
i=i+1;
}
returnsum;
}
7、编写一个程序,用while语句,求出1+(1+2)+(1+2+3)+...+(1+2+3+...+10)之和。
答案:
{
intsum=0;
Console.Write("和为:
");
Console.WriteLine("{0}",Sum());
Console.ReadKey();
}
staticintSum()
{
intsum=0;
inti=1;
inta=0;
while(i<=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.WriteLine("最大值为:
{0}",Max());
Console.ReadKey();
}
staticintMax()
{
intsum=0;
intk=1;
while(sum<2000)
{
sum+=k*k;
k++;
}
returnk-1;
}
9、编写一个程序,要求用while循环语句,打印1到100的正整数,每行打印5个数,每列右对齐。
答案:
{
Quee();
Console.ReadKey();
}
staticvoidQuee()
{
for(inti=1;i<=100;i++)
{
Console.Write("{0}",i);
if(i%5==0)
{
Console.WriteLine();
i++;
}
}
return;
}
10、编一个程序,利用二重for循环语句,打印出九九乘法口诀表。
答案:
{
Chengfabiao();
Console.ReadKey();
}
staticvoidChengfabiao()
{
for(inti=1;i<=9;i++)
{
for(intj=1;j<=i;j++)
{
Console.Write("{0}*{1}={2}",j,i,i*j);
}
Console.WriteLine();
}
return;
}
11、编一个程序,利用for循环语句,求出1!
+2!
+3!
+...+10!
的和。
答案:
{
intsum=0;
Console.WriteLine("{0}",Sum());
Console.ReadKey();
}
staticintSum()
{
intsum=0;
inta=1;
for(inti=1;i<=10;i++)
{
a=a*i;
sum=sum+a;
}
returnsum;
}
13、编一个程序,定义一个字符串变量,输入字符串,然后再输入一个字符,在字符串中查找该字符出现的次数。
答案:
{
Console.Write("请输入字符串:
");
stringstr=Console.ReadLine();
Console.Write("请输入字符:
");
charc=char.Parse(Console.ReadLine());
ints=Str(str,c);
Console.WriteLine("{0}",s);
Console.ReadKey();
}
staticintStr(stringstr,charc)
{
inta=0;
for(inti=0;i{
if(str[i]==c)
{
a++;
}
}
returna;
}
15、编一个程序,输入一个整数,判定它为几位数。
例如,99是2位数,-100是3位数。
答案:
{
Console.WriteLine("{0}",Math());
Console.ReadKey();
}
staticintMath()
{
inta=int.Parse(Console.ReadLine());
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(重量)等域。
然后以该类为基类,派生出Bicycle、Car等类。
并编程对该派生类的功能进行验证。
答案:
基类:
classVehicle
{
publicdoubleSpeed;
publicdoubleMaxspeed;
publicdoubleWeight;
publicvoidRun()
{
Console.WriteLine("我跑。
。
。
。
。
");
}
publicvoidStop()
{
Console.WriteLine("我停。
。
。
。
。
");
}
派生类:
classBicycle:
Vehicle
{
}
classCar:
Vehicle
{
}
对派生类功能的验证:
staticvoidMain(string[]args)
{
Bicyclep=newBicycle();
p.Run();
Carc=newCar();
c.Stop();
Console.ReadKey();
}
2、写一个控制台应用程序,接收一个长度大于3的字符串,完成下列功能:
1)输出字符串的长度。
2)输出字符串中第一个出现字母a的位置。
3)在字符串的第3个字符后面插入子串“hello”,输出新字符串。
4)将字符串“hello”替换为“me”,输出新字符串。
5)以字符“m”为分隔符,将字符串分离,并输出分离后的字符串。
答案:
{
Console.Write("输入字符:
");
stringstr=Console.ReadLine();
while(str.Length<=3)
{
str=Console.ReadLine();
}
Console.Write("字符串的个数:
");
Console.WriteLine("{0}",str.Length);
intindex=str.IndexOf('a');
if(index>=0)
{
Console.Write("出现字符a的位置:
");
Console.WriteLine("{0}",index);
}
else
{
Console.WriteLine("字符串中不含字符a");
}
stringstr1="hello"+str.Substring(3);
Console.Write("出现新字符串:
");
Console.WriteLine(str1);
str1=str1.Replace("hello","me");
Console.Write("替换后的字符串:
");
Console.WriteLine(str1);
string[]str2=str1.Split('m');
for(inti=0;i{
Console.Write("分割后的字符串:
");
Console.WriteLine(str2[i]);
}
Console.ReadKey();
}
3、编写一个控制台应用程序,完成下列功能,并写出运行程序后输出的结果。
1)创建一个类A,在A中编写一个可以被重写的带int类型参数的方法MyMethod,
并在该方法中输出传递的整型值后加10后的结果。
2)再创建一个类B,使其继承自类A,然后重写A中的MyMethod方法,将A中接收的整型值加50,
}
3)在Main方法中分别创建A和类B的对象,并分别调用MyMethod方法。
答案:
并输出结果。
classA
{
publicvirtualvoidMyMethod(intnum)
{
num+=10;
Console.WriteLine("{0}",num);
}
classB:
A
{
publicoverridevoidMyMethod(intnum)
{
num+=50;
Console.WriteLine("{0}",num);
}
{
Aa=newA();
a.MyMethod(3);
Bb=newB();
b.MyMethod(8);
Console.ReadKey();
4编写一个类Calculate1,实现加、减两种运算,然后,编写另一个派生类Calculate2,实现乘、除两种运算。
classCalculate1
{
publicvirtualvoidMix(inta,intb)
{
Console.Write("运算符为:
");
strings=Console.ReadLine();
intc;
if(s=="+")
{
c=a+b;
Console.WriteLine("{0}",c);
}
elseif(