C#课本课后答案Word下载.docx
- 文档编号:4699871
- 上传时间:2023-05-03
- 格式:DOCX
- 页数:20
- 大小:22.10KB
C#课本课后答案Word下载.docx
《C#课本课后答案Word下载.docx》由会员分享,可在线阅读,更多相关《C#课本课后答案Word下载.docx(20页珍藏版)》请在冰点文库上搜索。
(inputNamber[0]*inputNamber[1]*inputNamber[2]*inputNamber[3]));
Console.ReadLine();
4.如果有两个整数存储在变量var1和var2中,该进行怎么样的布尔测试,看看其中的一个(但不是两个)是否大于10?
解答:
var1>
10var2>
10;
5.编写一个应用程序,其中包含练习4中的逻辑,让用户输入两个数字,并显示它们,但拒绝接受两个数字都大于10的情况,并要求用户重新输入。
intnumber1=0;
intnumber2=0;
while(true){Console.WriteLine("
请输入两个数字,有且只能有一个大于10"
Console.WriteLine();
请输入第一个数:
number1=Convert.ToInt32(Console.ReadLine());
请输入第二个数:
number2=Convert.ToInt32(Console.ReadLine());
if(number1>
10number2>
10)
{
第一个为:
{0}"
number1);
第二个为:
number2);
break;
}
else
输入的数字无法满足条件,按任意键重新输入"
Console.ReadKey();
Console.ReadKey();
6.下载面的代码有什么错误:
inti;
for(i=1;
I<
=10;
i++)
if((i%2)=0)//错误应改为:
if((i%2)==0)
continue;
Console.WriteLine(i);
}
7.下面的转换那些不是隐式转换?
A.Int转换为short;
不是
B.Short转换为int;
是
C.Bool转换为string;
D.Byte转换为float;
是
8.下面的代码可以成功编译吗?
如果不能,为什么?
string[]blab=newstring[5];
string[5]=5thstring;
不能,"
string[5]"
数组名用法不正确且索引也超出最大数,赋值语句后的字符串需加双引号。
9.编写一个控制台应用程序,它接收用户输入的一个字符串,将其中的字符以与输入的相反顺序输出。
stringinputString=null;
请输入一字符串:
inputString=Console.ReadLine().Trim();
if(!
string.IsNullOrEmpty(inputString))
for(inti=inputString.Length-1;
i>
=0;
i--)
inputString[i]);
10.编写一个控制台应用程序,它接收一个字符串,用"
yes"
替换字符串所有的"
no"
。
Console.WriteLine(inputString.Replace("
"
));
11.编写一个控制台应用程序,给字符串中的每个单词加上双引号。
stringstr3=Console.ReadLine();
string[]strarr=str3.Split('
'
stringresult="
;
for(inti=0;
i<
strarr.Length;
i++)
{
if(strarr[i]!
="
)
result+="
\"
+strarr[i]+"
+"
"
}
Console.Write(result);
Console.Read();
12.下面两个函数都有错误,请指出这些错误。
staticboolWrite()
{
Console.WriteLine(“Textoutputfromfunction.”);
函数无返回值;
staticvoidmyFunction(stirnglabel,paramsint[]args,boolshowLabel)
if(showLabel)
Console.WriteLine(label);
foreach(intiinargs)
Console.WriteLine(“{0}”,i);
C#规定允许为函数指定一个(只能指定一个)特定的参数,这个参数必须是函数定义中的最后一个参数,称为参数数组。
参数数组可以使用个数不定的参数调用函数,它可以使用params关键字来定义。
13.编写一个应用程序,该程序使用两个命令行参数,分别把值放在一个字符串和一个整型变量中,然后显示这些值:
/**************************************************
*编写一个应用程序,该程序使用两个命令行参数,
*分别把值放在一个字符串和一个整型变量中,
*然后显示这些值:
*/
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Text;
namespaceExercise_Tow
classProgram
staticvoidMain(string[]args)
if(args.Length!
=2)
Console.WriteLine("
请分别输入一个字符串和一个整型变量命令行参数!
else
stringstringVar=args[0];
intintVar=Convert.ToInt32(args[1]);
来自命令行的参数:
字符串为:
stringVar);
整型变量:
intVar);
stringVar=null;
Console.ReadKey();
14.修改下面的结构,使这包含一个返回订单总价格的函数;
structorder
publicstringitemName;
publicintunitCount;
publicdoubleunitCost;
publicdoubleGetTotalPrices()
returnunitCount*unitCost;
第3章C#面向对象程序设计
1.“必须手动调用对像的析构函数,否则就会浪费资源”,对吗?
错误,一般情况下,不需要提供析构方法的代码,而是由默认的析函数执行操作。
2.必须创建一个对象,才能调用其类的静态方法吗?
静态属性和静态字段可以访问独立于任何对象实例的数据,静态方法可以执行与对像类型相关,但与对像实例无关的命令。
在使用静态成员时,甚至不需要实例化对像。
3.下面的代码有什么错误?
publicsealedclassMyClass
//classmembers;
publicclassmyDerivedClass:
MyClass
//Classmembers
包含sealed关键字的类只能在当前项目中访问,不能派生,只能实例化;
4.如何定义不能创建的类?
可以通过添加关键字“abstract”创建抽象类,根据C#定义抽象类不能实例化。
5.为什么不能创建的类仍有用?
如何利用它们的功能?
接口和抽象类都是不能创建的类,但可以声明它们的变量。
如果这样做,就可以使用多态性把继承这两种类型的对象指定给它们的变量。
接着通过这些变量来使用这些类型的成员,但不能直接访问派生对象的其他成员。
6.编写代码,定义一个基类MyClass,其中包含虚拟方法GetString()。
这个方法应返回有储在受保护字段myString中的字符串,该字段可以通过只写公共属性ContainedString来访问。
publicclassMyClass
privatestringmyString;
publicstringContainedString
get
returnmyString;
}
publicvirtualstringGetString()
7.从类MyCalss中派生一个类MyDerivedClass。
重写GetString()方法。
使用该方法的基类执行代码从基类中返回一个字符串,但在返回的字符串中添加文本“(outputfromderivedclass)”.
publicclassMyDerivedClass:
MyClass
publicoverridestringGetString()
returnbase.GetString()+"
(outputfromderivedclass)"
8.编写一个类MyCopyableClass,该类可以使用方法GetCopy返回它本身的一个副本。
这个方法应使用派于System.Object的MemberwiseClone()方法。
给该类添加一简单的属性,并且编写客户代码,使用访类检查任务是否成功执行。
publicclassMyCopyableClass
publicMyCopyableClassGetCopy()
return(MyCopyableClass)MemberwiseClone();
测试代码:
MyCopyableClassmyCopyableClass=newMyCopyableClass();
if(typeof(MyCopyableClass)==myCopyableClass.GetCopy().GetType())
测试成功"
9.创建一个集合类People,它是下述Person类的集合,该集合中的项可以通过一个字符串索引符来访问,该字符串索引符是人的姓名,与Person.Name属性相同:
publicclassPerson
privatestringname;
privateintage;
ublicstringName
Get
returnname;
Set
name=value;
}
publicintAge
returnage;
age=value;
10.扩展上一题中的Person类,重载>
、<
、>
=和<
=运算符,比较Person实例的Age属性。
//定义字段
privatestringname;
privateintage;
//定义属性
publicstringName
get{returnname;
set{name=value;
get{returnage;
set{age=value;
//定义运算符重载
publicstaticbooloperator>
(Personp1,Personp2)
returnp1.Age>
p2.Age?
true:
false;
publicstaticbooloperator<
(Personp1,Personp2)
returnp1.Age<
=(Personp1,Personp2)
=p2.Age?
//定义Person类的集合People
publicclassPeople:
DictionaryBase,ICloneable//继承于DictionaryBaseDictionaryBase实现了IDictionary接口
publicvoidAdd(Personp)
Dictionary.Add(p.Name,p);
publicvoidRemove(stringnameID)
Dictionary.Remove(nameID);
publicPersonthis[stringnameID]
get{return(Person)Dictionary[nameID];
set{Dictionary[nameID]=value;
11.给People类添加GetOldest()方法,使用上面定义的重载运算符,返回其Age属性值为最大的Person对象数组(1个或多个对象,因为对于这个属性而言,多个项可以有相同的值)。
//给People类添加GetOldest()方法,使用上面的重载运算符,返回其Age属性值为最大的Person对象数组(1个或多个对象)
publicPerson[]GetOldest()
PersonolderPerson=null;
PeoplecurrentPeople=newPeople();
PersoncurrentPerson;
foreach(DictionaryEntrydeinDictionary)
currentPerson=de.ValueasPerson;
if(olderPerson==null)
olderPerson=currentPerson;
currentPeople.Add(currentPerson);
if(currentPerson>
olderPerson)
currentPeople.Clear();
if(currentPerson==olderPerson)
Person[]personArray=newPerson[currentPeople.Count];
intindex=0;
foreach(DictionaryEntrydeincurrentPeople)
personArray[index]=de.ValueasPerson;
index++;
returnpersonArray;
12.在People类上执行ICloneable接口,提供深度复制功能。
//深度复制
publicobjectClone()
PersonnewPerson;
PeopleclonePeople=newPeople();
newPerson=newPerson();
newPerson.Age=currentPerson.Age;
newPerson.Name=currentPerson.Name;
clonePeople.Add(newPerson);
returnclonePeople;
第4章Windows程序设计
1.PiceureBox能导入的图像类型有gif、jpg、jepg、bmp、wmf、png
2.文本框的双击事件,默认的处理函数名称为textBox1_TextChanged
3..resx扩展命名的文件其含义是资源文件,其中x提示该资源是以xml形式存储的
4.对于OpenFileDialog组件,当选择一个文件并打开时,该文件所在的驱动器名、路径名、文件名和文件扩展名被复制给OpenFileDialog组建的FileName属性
5.PictureBox组件有一个属性SizeMode;
当该属性设置为Zoom时,加载图片将自动改变大小以填满整个图片框。
6.将滚动条组件trackBar的当前值在编辑框textBox1中显示出来,使用的语句是textBox1.Text=Convert.ToString(trackBar.Value);
7.把Label1中显示文字的字体设置为隶书,使用的语句是label1.Font=newFont("
黑体"
label1.Font.Size);
8.Timer组件有一个事件,该事件每隔一定的时间间隔周期性的发生,该事件是OnTimer事件
第6章数据库开发技术
1.ADO.NET使用()命名空间的类访问SQLServer数据库中的数据。
A.System.Data.OleDb
B.System.Data.SqlClient
C.System.Xml.Serialization
D.System.IO
正确答案:
B
2.在ADO.NET中,为了确保DataAdapter对象能够正确地将数据从数据源填充到DataSet中,则必须事先设置好DataAdapter对象的下列哪个Command属性( )
A.DeleteCommand
B.UpdateCommand
C.InsertCommand
D.SelectCommand
正确答案:
D
3.为使用OleDb.NETDataProviver连接到SQLServer2000数据库,应将Connection对象的ConnectionString属性中的Provider子属性的值设置为:
( )
A.Provider=SQLOLEDB
B.Provider=SQLSERVER
C.Provider=Microsoft.Jet.OLEDB.4.0
D.Provider=MSDAORA
A
4.在使用ADO.NET编写连接到SQLServer2000数据库的应用程序时,从提高性能的角度考虑,应创建( )类的对象,并调用其Open方法连接到数据库:
A.OleDbConnection
B.SqlConnection
C.OdbcConnection
D.Connection
正确答
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C# 课本 课后 答案