C程序设计教程期末复习题及答案.docx
《C程序设计教程期末复习题及答案.docx》由会员分享,可在线阅读,更多相关《C程序设计教程期末复习题及答案.docx(125页珍藏版)》请在冰豆网上搜索。
![C程序设计教程期末复习题及答案.docx](https://file1.bdocx.com/fileroot1/2023-1/30/5d548a80-1c8d-4140-8695-93a98770debe/5d548a80-1c8d-4140-8695-93a98770debe1.gif)
C程序设计教程期末复习题及答案
C程序设计教程期末复习题及答案
习题1一、选择题
1(在C#中B都是对象。
A任何类型B任何事物C任何代码D任何技术2(对象包含数据和A的方法。
A在该数据上工作B调用C函数调用D传递参数3(一个类是D的蓝本。
A数据集合B函数集合C方法集合D给定功能集合4(.NET构架包含公用语言运行时期和B。
5(.NET的核心是A。
ACLRBWindows2000CDNAD分解平台6(C#程序以B扩展名保存编写的程序。
A.CSB.PSC.CSSD.SC
B的命名空间。
7(System是
A存储系统类B控制台类CI/O操作D新项目8(namespace用于声明B。
A新项目B一个命名空间C类与方法D指令9(每个C#程序必须有一个D方法。
A类方法B构造方法CMainD重载方法二、问答题
1.面向对象编程的三大原则是什么,
答:
封装、继承和多态性。
2.封装是什么,
答:
封装是用于隐藏对象实际的制作细节。
3.继承是什么,
答:
继承是在建立新的特定对象时,可以使用现有对象的功能性。
4.多态性是什么,
答:
多态性是程序代码能够依据实际对象所需而进行不同的行为。
5..NET的核心构件包括哪些,
答:
(1).NET构造块服务或有计划的访问某些服务。
(2)将在新的Internet设备上运行的.NET设备软件。
(3).NET用户经验。
6.CLR的作用是什么,
答:
CLR是.NET的核心,它是一个运行时期环境,在该环境中,以不同语言编写的应用程序均能
始终运行。
三、编程题
使用.NET代码编辑器编写一个C#应用程序,以在屏幕打印出:
C#istheComponent-orientedlanguageinCandC++familyoflanguage.
要求:
(1)使用usingSystem命名空间,即定位System命名空间的Console类。
(2)不使用usingSystem命名空间,即System命名空间的Console类。
(3)使用using指令的别名,即使用using创建using的别名。
答案:
(1)
//Example1.cs
UsingSystem;
ClassExample1
{
PublicstaticvoidMain()
{
Console.Write(“C#istheComponent-orientedlanguage”);Console.WriteLine(“inCandC++familyoflanguage.”);}
}
(2)
//Example2.cs
ClassExample1
{
PublicstaticvoidMain()
{
System.Console.Write(“C#iscomponent-orientedlanguage”);
System.Console.WriteLine(“inCandC++familylanguage.”);}
}
(3)
Example3.cs
Usingoutput=System.Console;
ClassExample1
PublicstaticvoidMain()
{
Output.Write(“C#iscomponent-orientedlanguage”);}
习题2
一、选择题
1(C#的数据类型有A和C两种。
A值类型B调用类型C引用类型D关系类型2(C#的值类型包括A、B和D三种。
A枚举B基本类型C整形D结构E浮点型F字符型3(C#的引用类型包括A、B、C、F、G和H六种。
AstringBobjectC类DfloatEcharF数组G代表H接口
4(装箱是把值类型转换到B类型。
A数组B引用CcharDstring5(拆箱是引用类型返回到C类型。
AstringBcharC值D数组
6(A类型是所有类型的根。
ASystem.ObjectBobjectCstringDSystem.Int32
7(从派生类到基类对象的转换是B类型转换。
A显示B隐式C自动D专向8(从基类到派生类对象的转换是D类型转换。
A隐式B自动C专向D显示9(强制转换对象可以使用B关键字实现。
AisBasCthisDobject10(命名空间用于定义A的作用域。
A应用程序B有关类型C多重源代码D层次结构11(using关键字用于B命名空间中的Console对象。
AConsoleBSystemCObjectDInt32二、填空题
1(下列程序的运行结果是99.44。
//Exam1.cs
usingSystem;
classUsing
{
publicstaticvoidMain()
{
inti=918;
floatf=10.25f;
shortsh=10;
doubled=11.19;
Console.WriteLine(i+f+sh+d);
}
}
2(下列程序的运行结果是25.5。
//Exam2.cs
usingSystem;
classUsing
{
publicstaticvoidMain()
{
inti=5;
floatf=5.1f;
Console.WriteLine(i*f);
}
}
二、编程题
21(已知a=1,b=2,c=3,x=2,计算y=ax+bx+c之值。
2(已知圆的半径Radius=2.5,计算圆的面积。
(PI=3.14159)
要求:
(1)使用基本方法;
(2)使用装箱与拆箱;
(3)输出以double,float,int,decimal,short表示;(4)使用object类与类型转换;
(5)使用派生类与as。
答案:
1(方案一:
//YValue.cs
usingSystem;
classUsing
{
publicstaticvoidMain()
{
inta=1,b=2,c=3,x=2,y;
y=(a*x+b)*x+c;
Console.WriteLine("y={0}",y);
}
}
方案二:
//YValue1.cs
usingSystem;
classUsing
{
publicstaticvoidMain()
{
inta=1,b=2,c=3,x=2;
Console.WriteLine("y={0}",(a*x+b)*x+c);
}
}
2(
(1)使用基本方法
方案一:
//CircleAreaApp.cs
usingSystem;
classCircleAreaApp
{
publicstaticvoidMain()
{
doubleRadius=2.5,Area;
Area=3.14159*Radius*Radius;
Console.WriteLine("Area={0}",Area);
}
}
方案二:
//CircleAreaApp1.cs
usingSystem;
classCircleAreaApp
{
publicstaticvoidMain()
{
doubleRadius=2.5;
Console.WriteLine("Area={0}",3.14159*Radius*Radius);
}
}
(2)使用装箱与拆箱
//CircleAreaApp2.cs
usingSystem;
classCircleAreaApp
{
publicstaticvoidMain()
{
doubleRadius=2.5;
doubleArea=3.14159*Radius*Radius;
Console.WriteLine("Area={0}",Area);
objectobj=Area;
Console.WriteLine("Area={0}",(double)obj);
}
}
(3)输出以double,float,int,decimal,short表示
//CircleAreaApp3.cs
usingSystem;
classCircleAreaApp
{
publicstaticvoidMain()
{
doubleRadius=2.5;
doubleArea=3.14159*Radius*Radius;
Console.WriteLine("Area={0}",Area);
Console.WriteLine("Area={0}",(float)Area);
Console.WriteLine("Area={0}",(int)Area);
Console.WriteLine("Area={0}",(decimal)Area);
Console.WriteLine("Area={0}",(short)Area);
}
}
(4)使用object类与类型转换
//CircleAreaApp4.cs
usingSystem;
classCircle
{
publicdoubleRadius=2.5;
}
classCircleAreaAPP
{
publicstaticvoidMain()
{
Circlecir=newCircle();
doubleArea=3.14159*cir.Radius*cir.Radius;
Console.WriteLine("Area={0}",Area);
Console.WriteLine("Area={0}",(float)Area);
objectobj=(float)Area;
Console.WriteLine("Area={0}",(float)obj);
}
}
(5)使用派生类与as
//CircleAreaApp5.cs
usingSystem;
classCircle
{}
classCircleAreaAPP:
Circle
{
publicstaticvoidMain()
{
doubleRadius=2.5;
doubleArea=3.14159*Radius*Radius;
Console.WriteLine("Area={0}",Area);
Console.WriteLine("Area={0}",(float)Area);
objectobj=(float)Area;
Console.WriteLine("Area={0}",(float)obj);
Circlecir=newCircle();
Console.WriteLine("cir={0}",cir==null?
"null":
cir.ToString());
CircleAreaAPPcirA=newCircleAreaAPP();
cirA=cirasCircleAreaAPP;
Console.WriteLine("cirA={0}",cirA==null?
"null":
cirA.ToString());
}
}
习题3
一、选择题
1(字符串的输入使用B方法。
A)Cosole.Read()B)Cosole.ReadLine()C)Cosol
e.Write()D)Cosole.In.read()2(用于格式化输出十进制数的符号是C。
A)CB)EC)DD)GE)NF)X
3(用于格式化输出浮点数的符号是D。
A)CB)DC)GD)FE)NF)X
4(用于格式完整日期/时间模式(长时间)的符号是A。
A)DB)FC)GD)ME)RF)S
5(用于格式完整日期/时间模式(短时间)的符号是C。
A)DB)fC)gD)dE)FF)G
二、编程题
1(从键盘输入一个小写字母,然后输出所输入的小写字母后其对应单代码值。
2(从键盘输入两个浮点数,然后输出这两个数相加的结果(要求小数后取4位)。
3(从键盘输入年、月、日的数值,然后用完整的日期事件格式化输出。
答案:
1(
//CharValue.cs
usingSystem;
publicclassCharValue
{
publicstaticvoidMain()
{
Console.Write("Enteranchar:
");
charch=char.Parse(Console.ReadLine());
//orcharch=(char)Console.Readline();
Console.WriteLine(ch);
Console.WriteLine((int)ch);
}
}
2(
//TwoFloatAddition.cs
usingSystem;
publicclassTwoFloatAddition
{
publicstaticvoidMain()
{
Console.Write("Enterafloat:
");
floatf1=float.Parse(Console.ReadLine());
Console.Write("Enterafloat:
");
floatf2=float.Parse(Console.ReadLine());
Console.WriteLine("Resultofadditionfortwofloatis:
{0:
F4}",f1+f2);
}
}
3(
//DateTimeFormat.cs
usingSystem;
usingSystem.Globalization;
publicclassDateTimeFormat
{
publicstaticvoidMain(String[]args)
{
Console.Write("Enteryearmonthday:
");
strings=Console.ReadLine();
DateTimes1=DateTime.Parse(s);
Console.WriteLine("d{0:
d}",s1);
Console.WriteLine("D{0:
D}",s1);
Console.WriteLine("f{0:
f}",s1);
Console.WriteLine("F{0:
F}",s1);
Console.WriteLine("g{0:
g}",s1);
Console.WriteLine("G{0:
G}",s1);
Console.WriteLine("m{0:
m}",s1);
Console.WriteLine("M{0:
M}",s1);
Console.WriteLine("r{0:
r}",s1);
Console.WriteLine("R{0:
R}",s1);
Console.WriteLine("s{0:
s}",s1);
}
}
习题4
1(以下运算符的运算符优先级,D最高,E最低。
A)+B)<A)?
:
B)--C)=D)<=
3(在堆栈上创建对象和调用构造函数时,通常使用B关键字。
A)typeofB)newC)asD)is
4(A用于获取系统的System.Type类型。
A)typeofB)newC)sizeofD)is二、写出下列程序执行结果。
1(运行结果。
//Increment1.cs
usingSystem;
publicclassIncrement1
{
publicstaticvoidMain()
{
inti1=1993,i2=11,i3=19;
Console.WriteLine("i1={0},i2={1},i2={2}",i1,i2,i3);
i1=i3;
Console.WriteLine("i1={0},i2={1},i2={2}",i1,i2,i3);
i3+=i2;
Console.WriteLine("i1={0},i2={1},i2={2}",i1,i2,i3);
i1=i2+i3;
Console.WriteLine("i1={0},i2={1},i2={2}",i1,i2,i3);
i1++;
++i2;i3=i1+++++i2;
.WriteLine("i1={0},i2={1},i2={2}",i1,i2,i3);Console
}
}
2(运行结果:
。
//Increment2.cs
usingSystem;
publicclassIncrement2
{
publicstaticvoidMain()
{
inta,b;
a=b=1;
b=a/++b;
Console.WriteLine("a={0}b={1}",a,b);
b=a++-1;
Console.WriteLine("a={0}b={1}",a,b);
b+=-a+++++b;
Console.WriteLine("a={0}b={1}",a,b);
Console.WriteLine("b={0}",b);*/
}
}
3(运行结果:
。
//Increment3.cs
usingSystem;
publicclassIncrement3
{
publicstaticvoidMain()
{
inti1,i2,i3,i4,i5,i6,i7,i8,i9,i10,i11,i12,i13;
i1=i2=i3=i4=i5=i6=i7=i8=i9=i10=i11=i12=i13=3;
Console.WriteLine(---i1);
Console.WriteLine(---i1);
Console.WriteLine(i2---i3);
Console.WriteLine(i4---i5);
Console.WriteLine(-i6---i7);
Console.WriteLine(i8++/++i9*--i10);
Console.WriteLine(++i11/i12++*--i13);
Console.Read();
}
}
三、编程题
1(输入两个整数,输出它们(实数除)的商,并输出商的第2位小数位(例如:
5/18.0=1.875,
1.875的第二位小数是7)。
232(输入圆球的半径,计算圆球的表面积(4)和体积(πr4πr/3),其中π=3.14159。
3(输入秒数,把它转换为用小时、分、秒表示。
例如,输入7278秒,则输出2小时1分18秒。
324(计算x=ab+5ln(1+c)
要求:
(1)输出结果以科学表示法、定点表示法(小数点后保留两位)和普通表示法表示。
(2)输出结果以整数表示并指明当前工作的日期和时间。
5(计算
答案:
1(
//RealDivide.cs
usingSystem;
publicclassRealDivide
{
publicstaticvoidMain()
{
Console.WriteLine("Entertwointegers:
");
string[]s=Console.ReadLine().Split();;
inta=int.Parse(s[0]);
intb=int.Parse(s[1]);
floatf=1.0f*a/b;
intc=(int)(f*100)%10;
Console.WriteLine("Resultofrealdivideis:
{0}",f);
Console.WriteLine("Secondplaceofdecimalsis:
{0}",c);
}
}
2(
//SphereA.cs
usingSystem;
publicclassSphere
{
publicstaticvoidMain()
{
Console.Write("Entertheradiusofsphere:
");
strings=Console.ReadLine();
doubleradius=double.Parse(s);
doublesurfaceArea=4*Math.PI*radius*radius;
doubleVolume=4*Math.PI*radius*radius*radius/3;
Console.WriteLine("SurfaceArea={0}",surfaceArea);
Console.WriteLine("Volume={0}",Volume);
}
}
3(
//HourMinuteSecond.cs
usingSystem;
publicclassHourMinuteSecond
{
publicstaticvoidMain()
{
inthour,minute,second;
Console.Write("Enternumbersofsecond:
");
strings=Console.ReadLine();
second=