C#基础试题.docx
《C#基础试题.docx》由会员分享,可在线阅读,更多相关《C#基础试题.docx(17页珍藏版)》请在冰豆网上搜索。
![C#基础试题.docx](https://file1.bdocx.com/fileroot1/2023-1/24/f32017cf-4bb3-4f0c-8eeb-53cde4f87338/f32017cf-4bb3-4f0c-8eeb-53cde4f873381.gif)
C#基础试题
1、能作为C#程序的基本单位是()。
A.字符B.语句C.函数D.源程序文件
答案:
B
2、将变量从字符串类型转换为数值类型可以使用的类型转换方法是()。
()()答案:
D
3、数据类型转换的类是()。
C.ConstD.Single
答案:
B
4、字符串连接运算符包括&和()。
A.+B.-C.*D./
答案:
A
5、先判断条件的当循环语句是()。
A.do...whileB.whileC.while...doD.do...loop
B答案:
.6、下面几个函数,()是重载函数f1(int)f1(int)f1(int,int)k(int)4和和43和四个全A.
C答案:
、以下的C#代码:
8)string[]argsstaticvoidMain({:
{0},());运行结果尨();
}
代码运行结果为()。
A.在控制台窗口显示“运行结果:
”
B.在控制台窗口显示“运行结果:
{0}”
C.在控制台窗口显示“运行结果:
,Console.ReadLine”
D.如果用户在控制台输入“A”,那么程序将在控制台显示“运行结果:
A”
答案:
D
9、在C#中定义一个数组,正确的代码为()。
arraya=newint[5];[]arraya=newint[5];
arraya=newint[];[5]arraya=newint;
答案:
B
10、在C#中,下列代码运行后,变量Max的值是()(选择一项)Inta=5,b=10,c=15,Max=0;
Max=a>b?
a:
b;
Max=cc:
Max;
答案:
C
11、在C#中,关于continue和break,以下说法正确的是()
Abreak是中断本次循环Bcontinue是中断本次循环,进入一下次的循环
Cbreak是中断本次循环,进入一下次的循环Dcontinue是中断整个循环
答案:
A
12、在C#中,关于while和do…while,以下说法正确的是()
Awhile先执行然后判断条件是否成立Bwhile最少的循环次数是1次
0最少的循环次数是Ddo…while先执行然后判断条件是否成立Cdo…while
次
答案:
C
13、在C#中,下列变量定义与赋值正确的是()
Ainta=同学Bfloata=老师Cdoublea=教室Dchara='学'
答案:
D
14、表达式“abcde”==”abcde”+”2006”的值为()
A.True2006B.trueC.falseD.0
答案:
C
15、在C#中定义类时,使用的关键字是()
A、interfaceB、intoverrides、Dclass
、C答案:
C
.二写出下列程序的结果
、1{inty=1,x;if(y!
=0)
{x=5;}elseif(y<0){x=4;}else
{
x=3;
}
尨?
ほ?
?
?
?
砠?
}
答案:
5
2、
{
intx,y=0;
do
{
x=y++;
(x);
}while(y<6);
}
答案:
15
3、
classTest
{
staticvoidMain()
{
intx=5;
inty=x--;
(y={0},y);
y=--x;
(y={0},y);
}
}
答案:
5,5
4、
classTest
{
publicstaticvoidMain()
{
staticint[]a={1,2,3,4,5,6,7,8};
ints0,s1,s2;
s0=s1=s2=0;
for(inti=0;i<8;i++)
{
switch(a[i]%3)
{
case0:
s0+=[i];break;
case1:
s1+=[i];break;
case2:
s2+=[i];break;
}
}
(s0++s1++s2);
}
}
答案:
9+12+13
5、
usingSystem;
classTest
{
publicstaticvoidMain()
{
ints=0,i=1;
for(;;i++)
{
if(s>50)break;
if(i%2==0)s+=i;
}
(i,s=+i+,+s);
}
}
答案:
14,S=2+4+6...+14,56
6、写出下列函数的功能。
staticfloatFH()
{
floaty=0,n=0;
6、intx=());.+99/100之和。
答案:
{
(獜浵尽);
doublesum=1;
(筜細,Sum());
();
}
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;
(和为:
);
(筜細,Sum());
();
}
staticintSum()
{
intsum=0;
inti=1;
inta=0;
(i<=10)while
{
a=a+i;
sum=sum+a;
i=i+1;
}
returnsum;
}
8、有关系式1*1+2*2+3*3+...+k*k<2000,编一个程序,求出满足此关系式的k的最大值。
答案:
{intsum=0;
(最大值为:
ほ屽,Max());
();
}
staticintMax()
{
intsum=0;
intk=1;
while(sum<2000)
{
sum+=k*k;
k++;
}
returnk-1;
}
9、编写一个程序,要求用while循环语句,打印1到100的正整数,每行打印5个数,每列右对齐。
.
答案:
{
Quee();
();
}
staticvoidQuee()
{
for(inti=1;i<=100;i++)
{
(筜細尠,i);
if(i%5==0)
{
();
i++;
}
}
return;
}
10、编一个程序,利用二重for循环语句,打印出九九乘法口诀表。
答案:
{
Chengfabiao();
();
}
staticvoidChengfabiao()
{
i=1;i<=9;i++)int(for
{
for(intj=1;j<=i;j++)
{
(筜細笪紱笽紲?
j,i,i*j);
}
();
}
return;
}
11、编一个程序,利用for循环语句,求出1!
+2!
+3!
+...+10!
的和。
答案:
{
intsum=0;
(筜細,Sum());
();
}
staticintSum()
{
intsum=0;
inta=1;
for(inti=1;i<=10;i++)
{
a=a*i;
sum=sum+a;
}
returnsum;
}
13、编一个程序,定义一个字符串变量,输入字符串,然后再输入一个字符,在字符串中查找该字符出现的次数。
答案:
{
(请输入字符串:
);
stringstr=();
(请输入字符:
);
charc=());
ints=Str(str,c);
(筜細,s);
();
}
staticintStr(stringstr,charc)
{
inta=0;
for(inti=0;i<;i++)
{
if(str[i]==c)
{
a++;
}
}
returna;
}
15、编一个程序,输入一个整数,判定它为几位数。
例如,99是2位数,-100是3位数。
答案:
{
(筜細,Math());
();
}
staticintMath()
{
inta=());
intb=0;
intc=1;
if(a<0)
{
b=-a;
}
if(a>0)
{
b=a;
}
while(b>=10)
{
b=b/10;
c++;
}
returnc;
}
四、面向对象
、(速度)Speed等方法,具有Stop、Run)基类,具有Vehicle、定义一个车辆(1.
MaxSpeed(最大速度)、Weight(重量)等域。
然后以该类为基类,派生出Bicycle、Car等类。
并编程对该派生类的功能进行验证。
答案:
基类:
classVehicle
{
publicdoubleSpeed;
publicdoubleMaxspeed;
publicdoubleWeight;
publicvoidRun()
{
(我跑。
。
。
。
。
);
}
publicvoidStop()
{
(我停。
。
。
。
。
);
}
派生类:
classBicycle:
Vehicle
{
}
classCar:
Vehicle
{
}
对派生类功能的验证:
staticvoidMain(string[]args)
{
Bicyclep=newBicycle();
();
Carc=newCar();
();
();
}
2、写一个控制台应用程序,接收一个长度大于3的字符串,完成下列功能:
1)输出字符串的长度。
2)输出字符串中第一个出现字母a的位置。
3)在字符串的第3个字符后面插入子串“hello”,输出新字符串。
4)将字符串“hello”替换为“me”,输出新字符串。
5)以字符“m”为分隔符,将字符串分离,并输出分离后的字符串。
答案:
{
(输入字符:
);
stringstr=();
while<=3)
{
str=();
}
(字符串的个数:
);
(筜細,;
intindex=('a');
if(index>=0)
{
(出现字符a的位置:
);
index);筜細(
}
else
{
(字符串中不含字符屡);
}
stringstr1=桜汥潬+(3);
(出现新字符串:
);
(str1);
str1=(桜汥潬,浜履);
(替换后的字符串:
);
(str1);
string[]str2=('m');
for(inti=0;i<;i++)
{
(分割后的字符串:
);
(str2[i]);
}
();
}
3、编写一个控制台应用程序,完成下列功能,并写出运行程序后输出的结果。
1)创建一个类A,在A中编写一个可以被重写的带int类型参数的方法MyMethod,
并在该方法中输出传递的整型值后加10后的结果。
2)再创建一个类B,使其继承自类A,然后重写A中的MyMethod方法,将A中接收的整型值加50,
}
方法。
MyMethod的对象,并分别调用B和类A方法中分别创建Main)在3.
答案:
并输出结果。
classA
{
publicvirtualvoidMyMethod(intnum)
{
num+=10;
(筜細,num);
}
classB:
A
{
publicoverridevoidMyMethod(intnum)
{
num+=50;
(筜細,num);
}
{
Aa=newA();
(3);
Bb=newB();
(8);
();
4编写一个类Calculate1,实现加、减两种运算,然后,编写另一个派生类Calculate2,实现乘、除两种运算。
Calculate1class
{
publicvirtualvoidMix(inta,intb)
{
(运算符为:
);
strings=();
intc;
if(s==?
)
{
c=a+b;
(筜細,c);
}
elseif(s==?
)
{
c=a-b;
(筜細,c);
}
}publicoverridevoidMix(inta,intb)
{
(运算符为:
);
strings=();
intc;
if(s==?
)
{
c=a*b;
(筜細,c);
}
elseif(s==屜尯)
{
c=a/b;
(筜細,c);
}
}
{
Calculate1c=newCalculate1();
(3,4);
Calulate2d=newCalulate2();
(8,4);
();
}
5、编写出一个通用的人员类(Person),该类具有姓名(Name)、年龄(Age)、性别(Sex)等域。
然后对Person类的继承得到一个学生类(Student),该类能够存放学生的5门课的成绩,并能求出平均成绩。
最后在Main函数中对student类的功能进行验证。
classPerson
{
publicstringName;
publicintAge;
publicstringSex;
}
classStudent:
Person
{
publicdoubleAvg()
{
int[]Score=newint[5]{23,34,56,78,90};
inti=0;
intsum=0;
while(i<5)
{
sum+=Score[i];
i++;
}
return(double)sum/5;
}
{
Students=newStudent();
(姓名:
);
=张三;
(筜細,;
(年龄:
);
=19;
(筜細,;
(性别:
);
=男;
(筜細,;
(成绩:
);
(筜細,());
();
}