《C#应用开发技术习题.pdf》由会员分享,可在线阅读,更多相关《C#应用开发技术习题.pdf(41页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、C#C#应用开发技术习题应用开发技术习题C#C#应用开发技术习题应用开发技术习题1.1.用用enumenum定义字节类型的方位常量,定义字节类型的方位常量,打印出某一打印出某一方位并将此方位值转化为字节类型,方位并将此方位值转化为字节类型,字符串类型字符串类型值。分析输出结果的原因。值。分析输出结果的原因。回答以下问题:回答以下问题:EnumEnum 的的 缺缺 省省 类类 型型 是是 什什 么么?直直 接接 输输 出出myDirectionmyDirection和和(byte)myDirection(byte)myDirection有何区别。有何区别。class Variablesclass
2、 Variables enum orientation:byteenum orientation:byte north=1,north=1,south=2,south=2,east=3,east=3,west=4west=4 static void Main(string args)static void Main(string args)byte directionByte;byte directionByte;string directionString;string directionString;orientationorientationorientation.north;orien
3、tation.north;myDirectionmyDirection=Console.WriteLine(myDirectionConsole.WriteLine(myDirection0,myDirection);0,myDirection);directionByte=(byte)myDirection;directionByte=(byte)myDirection;directionStringdirectionStringConvert.ToString(myDirection);Convert.ToString(myDirection);=Console.WriteLine(byt
4、eConsole.WriteLine(byteequivalentequivalent=0,directionByte);=0,directionByte);Console.WriteLine(string equivalentConsole.WriteLine(string equivalent=0,directionString);=0,directionString);Console.ReadLine();Console.ReadLine();2 2建立使用关系运算符和逻辑运算符的程序文建立使用关系运算符和逻辑运算符的程序文件。件。MainMain方法中实例代码如下方法中实例代码如下st
5、atic void Main(string args)static void Main(string args)Console.WriteLine(EnterConsole.WriteLine(Enterinteger:);integer:);intintmyIntmyInt=Convert.ToInt32(Console.ReadLine();Convert.ToInt32(Console.ReadLine();Console.WriteLine(IntegerConsole.WriteLine(Integerlesslessthan 10?0,myInt 10);than 10?0,myI
6、nt 10);-3-3-ananConsole.WriteLine(IntegerConsole.WriteLine(Integerbetween 0 and 5?0,between 0 and 5?0,(0(0=myInt)myInt)&(myInt(myInt=5);5);Console.WriteLine(BitwiseConsole.WriteLine(Bitwise ANDANDof Integer and 10=0,myInt&10);of Integer and 10=0,myInt&10);Console.ReadLine();Console.ReadLine();编译运行该程
7、序。并尝试编译运行该程序。并尝试myIntmyInt输入不同范输入不同范围整数,非围整数,非1010和和1010时的输出差异。时的输出差异。3.3.从键盘输入两个数进行比较,从键盘输入两个数进行比较,并定义一个字符并定义一个字符串变量,当数串变量,当数 1 1小于数小于数2 2时,字符串变量为时,字符串变量为“less“lessthan”than”,当当当当数数1 1等等小小于于数数2 2时时字字符符串串变变量量为为“equal“equal to”,to”,当当数数1 1大大于于数数2 2时时字字符符串串变变量量为为“greater than”“greater than”。static voi
8、d Main(string args)static void Main(string args)string comparison;string comparison;Console.WriteLine(EnterConsole.WriteLine(Enternumber:);number:);doubledoublevar1var1=Convert.ToDouble(Console.ReadLine();Convert.ToDouble(Console.ReadLine();-4-4-a aConsole.WriteLine(EnterConsole.WriteLine(Enternumbe
9、r:);number:);doubledoubleif(var1 var2)if(var1 var2)var2var2anotheranother=Convert.ToDouble(Console.ReadLine();Convert.ToDouble(Console.ReadLine();comparison=less than;comparison=less than;elseelse if(var1=var2)if(var1=var2)comparison=equal to;comparison=equal to;elseelsecomparison=greater than;compa
10、rison=greater than;Console.WriteLine(TheConsole.WriteLine(Thenumber is 0 the second number.,number is 0 the second number.,comparison);comparison);Console.ReadLine();Console.ReadLine();4.4.定义三个常量字符串定义三个常量字符串“karli”“karli”,angelinaangelina,ploppyploppy,并从键盘输入一个名字,当名字与,并从键盘输入一个名字,当名字与“karli”“karli”相相同
11、同时时输输出出我我们们的的名名字字相相同同,当当和和angelinaangelina名字相同时输出你的名字太性感了,名字相同时输出你的名字太性感了,-5-5-firstfirst当和当和ploppyploppy相同时输出这名字真傻。相同时输出这名字真傻。static void Main(string args)static void Main(string args)const string myName=karli;const string myName=karli;constconstangelina;angelina;constconstploppy;ploppy;string name
12、;string name;Console.WriteLine(What is yourConsole.WriteLine(What is yourname?);name?);name=Console.ReadLine();name=Console.ReadLine();switch(name.ToLower()switch(name.ToLower()case myName:case myName:Console.WriteLine(You have the same name asConsole.WriteLine(You have the same name asme!);me!);bre
13、ak;break;case sexyName:case sexyName:Console.WriteLine(My,Console.WriteLine(My,what a sexy name you have!);what a sexy name you have!);-6-6-stringstringstringstringsexyNamesexyNamesillyNamesillyName=break;break;case sillyName:case sillyName:Console.WriteLine(Thats a very silly name.);Console.WriteLi
14、ne(Thats a very silly name.);break;break;Console.WriteLine(HelloConsole.WriteLine(Hello0!,0!,name);name);Console.ReadLine();Console.ReadLine();5 5 forfor 循环语句练习循环语句练习(1 1)程序功能要求:程序功能要求:按按5 5 度的增量打印出一个度的增量打印出一个从摄氏温度到华氏温度的转换表。从摄氏温度到华氏温度的转换表。static void Main(string args)static void Main(string args)dou
15、ble Fa,Cel;double Fa,Cel;Cel=0;Cel=0;for(Cel=0;Cel100;Cel+=5)for(Cel=0;Cel100;Cel+=5)Fa=Cel*9/5;Fa=Cel*9/5;Console.WriteLine(Fa);Console.WriteLine(Fa);Console.ReadLine();Console.ReadLine();-7-7-(2 2)自行改造以上程序。)自行改造以上程序。6.while6.while 循环语句练习循环语句练习(1 1)程序功能要求:运行程序后从键盘输入数)程序功能要求:运行程序后从键盘输入数字字1/2/31/2/3
16、后,可显示抽奖得到的奖品:恭喜你得后,可显示抽奖得到的奖品:恭喜你得了一辆汽车;了一辆汽车;不错啊,不错啊,一台笔记本电脑;一台笔记本电脑;没白来,没白来,一个一个MP3MP3;如果输入其它数字或字符显示;如果输入其它数字或字符显示“没有没有奖品给你奖品给你!”!”。示例代码如下:。示例代码如下:int choice;int choice;=choicechoiceConvert.ToInt32(Console.ReadLine();Convert.ToInt32(Console.ReadLine();while(choice=1)while(choice=1)Console.WriteLin
17、e(Console.WriteLine(恭喜你得了恭喜你得了一辆汽车一辆汽车););break;break;while(choice=2)while(choice=2)Console.WriteLine(Console.WriteLine(不错啊,一不错啊,一台笔记本电脑台笔记本电脑););-8-8-break;break;while(choice=3)while(choice=3)Console.WriteLine(Console.WriteLine(没白来,一没白来,一个个MP3);MP3);break;break;while(choice!=1&choice!=2&while(choic
18、e!=1&choice!=2&choice!=3)choice!=3)Console.WriteLine(Console.WriteLine(没有奖品给没有奖品给你你););break;break;(2 2)改改造造以以上上程程序序实实现现此此功功能能;尝尝试试将将choice=1choice=1或或2 2或或3 3中的中的“=”“=”改为一个改为一个“=”“=”,看效果看效果如何?并分析错误。如何?并分析错误。7 7dowhiledowhile 循环语句练习循环语句练习程序功能要求:程序功能要求:输入你现有的存款和当前的输入你现有的存款和当前的年利率及你期望将来得到的存款,年利率及你期望将来
19、得到的存款,计算出存款多计算出存款多-9-9-少年后才可以变成你期望的存款额。少年后才可以变成你期望的存款额。注意,注意,若为若为一一年年输输出出yearyear为为yearyear,若若为为多多年年输输出出yearyear为为yearsyears。参考代码如下:。参考代码如下:static void Main(string args)static void Main(string args)doubledoubletargetBalance;targetBalance;Console.WriteLine(WhatConsole.WriteLine(Whatisis youryourcurre
20、nt balance?);current balance?);balancebalanceConvert.ToDouble(Console.ReadLine();Convert.ToDouble(Console.ReadLine();Console.WriteLine(WhatConsole.WriteLine(Whatisis youryourcurrent annual interest rate(in%)?);current annual interest rate(in%)?);interestRateinterestRate=1 1+balancebalance=Convert.To
21、Double(Console.ReadLine()/100.0;Convert.ToDouble(Console.ReadLine()/100.0;Console.WriteLine(WhatConsole.WriteLine(Whatwould you like to have?);would you like to have?);targetBalancetargetBalanceConvert.ToDouble(Console.ReadLine();Convert.ToDouble(Console.ReadLine();int totalYears=0;int totalYears=0;
22、dodo-10-10-balance,balance,interestRate,interestRate,=balance*=interestRate;balance*=interestRate;+totalYears;+totalYears;while(balance targetBalance);while(balance targetBalance);Console.WriteLine(InConsole.WriteLine(In00year1year1youll have a balance of 2.,youll have a balance of 2.,totalYears,tot
23、alYears=1?:totalYears,totalYears=1?:s,balance);s,balance);8 8使用使用if.elseif.else 语句编写以下程序语句编写以下程序(1 1)程序功能要求:使用)程序功能要求:使用if.elseif.else 语句构造多分语句构造多分支,支,判断某一年是否为闰年。判断某一年是否为闰年。闰年的条件是符合闰年的条件是符合下面二者之一:下面二者之一:能被能被4 4 整除,整除,但不能被但不能被100100 整除;整除;能被能被4 4 整除,又能被整除,又能被100100 整除。整除。9 9使用使用switchswitch 语句编写以下程序语
24、句编写以下程序在不同温度时显示不同的解释说明:在不同温度时显示不同的解释说明:有点冷,有点冷,多多穿衣服;正合适,出去玩吧;太热了,开空调。穿衣服;正合适,出去玩吧;太热了,开空调。10.10.用用dowhiledowhile语句实现程序功能:求语句实现程序功能:求1 12 2+100+100 之和,并将求和表达式与所求的和显之和,并将求和表达式与所求的和显示出来。示出来。-11-11-11.11.定义一个圆类,计算圆的面积和周长定义一个圆类,计算圆的面积和周长public class circlepublic class circle public static void Main()pub
25、lic static void Main()double radium,delimeter,square;double radium,delimeter,square;const double pai=3.1415926;const double pai=3.1415926;radiumradiumConvert.ToInt32(Console.ReadLine();Convert.ToInt32(Console.ReadLine();delimeter=2*pai*radium;delimeter=2*pai*radium;square=pai*pai*radium;square=pai*p
26、ai*radium;Console.WriteLine(delimeter=0,square=1,Console.WriteLine(delimeter=0,square=1,delimeter,square);delimeter,square);Console.ReadLine();Console.ReadLine();或者:或者:public class circlepublic class circle-12-12-=doubledoubledelimeter,square;delimeter,square;const double pai=3.1415926;const double
27、pai=3.1415926;public void calculate(double rad)public void calculate(double rad)delimeter=2*pai*rad;delimeter=2*pai*rad;square=pai*pai*rad;square=pai*pai*rad;Console.WriteLine(delimeter=0,square=1,Console.WriteLine(delimeter=0,square=1,delimeter,square);delimeter,square);public static void Main()pub
28、lic static void Main()double radium;double radium;circle cir=new circle();circle cir=new circle();radiumradiumConvert.ToInt32(Console.ReadLine();Convert.ToInt32(Console.ReadLine();cir.calculate(radium);cir.calculate(radium);Console.ReadLine();Console.ReadLine();-13-13-=请比较以上两个程序,请比较以上两个程序,看起来后一个程序把问
29、看起来后一个程序把问题复杂化了,题复杂化了,是不是不如第一个程序好,是不是不如第一个程序好,它从它从设计思想上有什么优势么?设计思想上有什么优势么?12.12.程序要求如下:程序要求如下:其中有其中有 3 3 个数据成员有学号、个数据成员有学号、姓名、年龄,以及若干成员函数。同时编写主函姓名、年龄,以及若干成员函数。同时编写主函数使用这个类,实现对学生数据的赋值和输出。数使用这个类,实现对学生数据的赋值和输出。要求:要求:使用成员函数实现对数据的输出;使用成员函数实现对数据的输出;使用构使用构造函数实现对数据的输入。造函数实现对数据的输入。参考代码如下:参考代码如下:public class
30、studentspublic class students stringstringid,name;id,name;int age;int age;publicpublicname,int age)name,int age)this.id=id;this.id=id;this.name=name;this.name=name;this.age=age;this.age=age;-14-14-students(stringstudents(stringid,stringid,string public void Display()public void Display()Console.Writ
31、eLine(id=0,name=1,age=2,iConsole.WriteLine(id=0,name=1,age=2,id,name,age);d,name,age);public static void Main()public static void Main()/string id,name;/string id,name;/int age;/int age;studentsstudentsstu.Display();stu.Display();Console.ReadLine();Console.ReadLine();以上程序使用了构造方法,请回答关键字以上程序使用了构造方法,请回
32、答关键字thisthis 有何作用,你能将成员函数有何作用,你能将成员函数 DisplayDisplay 修改成修改成别的代码也实现响应的功能么?别的代码也实现响应的功能么?-15-15-stustu=newnewstudents(0001,zhangsan,16);students(0001,zhangsan,16);13.13.编写帐户类,对每一账号赋值帐户并设置初编写帐户类,对每一账号赋值帐户并设置初始化存款为始化存款为 0.000.00 元,设计一变量统计账号生成元,设计一变量统计账号生成的数目。的数目。public class BankAccountpublic class Bank
33、Account static int totalAccountNumber=0;static int totalAccountNumber=0;string BankAccountId;string BankAccountId;double initialDepositAmount=0.00;double initialDepositAmount=0.00;public BankAccount(string myId)public BankAccount(string myId)this.BankAccountId=myId;this.BankAccountId=myId;this.initi
34、alDepositAmount=0.00;this.initialDepositAmount=0.00;totalAccountNumber+;totalAccountNumber+;public void displayid()public void displayid()Console.WriteLine(mbaid=0,initialDepositAConsole.WriteLine(mbaid=0,initialDepositAmount=1,this.BankAccountId,this.initialDepmount=1,this.BankAccountId,this.initia
35、lDepositAmount);ositAmount);-16-16-public static void display()public static void display()Console.WriteLine(totalAccountNumber=0,Console.WriteLine(totalAccountNumber=0,totalAccountNumber);totalAccountNumber);public class Testerpublic class Tester public static void Main()public static void Main()Ba
36、nkAccountBankAccountBankAccount(37000001);BankAccount(37000001);BankAccountBankAccountBankAccount(3700002);BankAccount(3700002);BankAccountBankAccountBankAccount();BankAccount();BankAccountBankAccountBankAccount(3700004);BankAccount(3700004);/Console.WriteLine(mba2ID=0,Console.WriteLine(mba2ID=0,mba
37、2.BankAccountId);mba2.BankAccountId);mba2.displayid();mba2.displayid();-17-17-mbambamba2mba2mba3mba3mba4mba4=newnewnewnewnewnewnewnewBankAccount.display();BankAccount.display();Console.ReadLine();Console.ReadLine();请回答问题:请回答问题:(1 1)按你自己的算法修改以上程序,比如可只)按你自己的算法修改以上程序,比如可只输出生成的账户数。输出生成的账户数。(2 2)把注释去掉后会怎
38、样,为什么?)把注释去掉后会怎样,为什么?(3 3)为什么为什么 displaydisplay 用类名直接引用,用类名直接引用,可以用对可以用对象来引用么?尝试输出结果。象来引用么?尝试输出结果。(4 4)类的静态变量和非静态变量的引用区别。)类的静态变量和非静态变量的引用区别。判断一下语句的正确性:判断一下语句的正确性:静态方法只能使用静态变量,不能使用实例变静态方法只能使用静态变量,不能使用实例变量。因为对象实例化之前,实例变量不可用。这量。因为对象实例化之前,实例变量不可用。这个观点真确么?()个观点真确么?()类的静态变量只有一个版本,类的静态变量只有一个版本,所有实例对象引用所有实例
39、对象引用的都是同一个版本。()的都是同一个版本。()对象实例化后,对象实例化后,每个实例变量都被制作了一个副每个实例变量都被制作了一个副本,它们之间互不影响。()本,它们之间互不影响。()-18-18-14.14.程序首先给整型变量程序首先给整型变量x x 和和y y 赋初值赋初值3 3,5 5,然,然后使用传值调用方式调用方法对后使用传值调用方式调用方法对 x x 和和y y 做乘方做乘方并及输出并及输出x x 和和y y 的乘方值,最后输出的乘方值,最后输出x x和和y y得值。得值。再将此方法给为对象调用加再将此方法给为对象调用加 refref修饰查看输出结修饰查看输出结果差异。参考代码
40、如下:果差异。参考代码如下:public class Powerpublic class Power/publicpublic voidvoid MyPower(refMyPower(ref intint x,x,refrefint y)int y)public void MyPower(int x,int y)public void MyPower(int x,int y)x=1;y=2;x=1;y=2;Console.WriteLine(x=0,y=1,x,y);Console.WriteLine(x=0,y=1,x,y);public class Testerpublic class T
41、ester public static void Main()public static void Main()-19-19-Console.WriteLine(x*x=0,y*y=1,x*x,y*y);Console.WriteLine(x*x=0,y*y=1,x*x,y*y);int x,y;int x,y;x=3;y=5;x=3;y=5;Power mp=new Power();Power mp=new Power();/mp.MyPower(ref x,ref y);mp.MyPower(ref x,ref y);mp.MyPower(x,y);mp.MyPower(x,y);Cons
42、ole.WriteLine(x=0,y=1,x,y);Console.WriteLine(x=0,y=1,x,y);Console.ReadLine();Console.ReadLine();思考:思考:(1 1)将响应的注释修改再调试查看结果,)将响应的注释修改再调试查看结果,分析原因。分析原因。(2 2)将)将 MainMain 中中 x x 和和 y y 赋初值去掉,结果赋初值去掉,结果会怎样?如果会怎样?如果 MainMain 中加中加 refref,类,类 PowerPower 的方法的方法中参数前不加中参数前不加 refref 又会有何变化?说明了什么?又会有何变化?说明了什么?3
43、 3)如果不想对)如果不想对 x x 作无用的初始化,直接作无用的初始化,直接作参数传递,怎么实现?作参数传递,怎么实现?15.15.编写一个学生和教师数据输入和显示程序,编写一个学生和教师数据输入和显示程序,学生数据有编号、姓名、班级和成绩,教师数据学生数据有编号、姓名、班级和成绩,教师数据有编号、姓名、职称和部门。要求将编号、姓名有编号、姓名、职称和部门。要求将编号、姓名输入和显示设计成一个类输入和显示设计成一个类 person,person,并作为学生数并作为学生数据操作类据操作类 studentstudent 和教师类数据操作类和教师类数据操作类 teacherteacher的基类。的
44、基类。-20-20-参考代码如下:参考代码如下:public class personpublic class person string ID,name;string ID,name;publicpublic voidvoid personin(stringpersonin(string id,stringid,stringname)name)this.ID=id;this.ID=id;this.name=name;this.name=name;public void displayin()public void displayin()Console.WriteLine(Console.Wr
45、iteLine(编编号号:0,ID);0,ID);Console.WriteLine(Console.WriteLine(名名字字:0,0,name);name);public class student:personpublic class student:person string classname;string classname;int grads;int grads;-21-21-publicpublic student(stringstudent(string classname,classname,intintgrads)grads)this.classname=classna
46、me;this.classname=classname;this.grads=grads;this.grads=grads;public void displays()public void displays()Console.WriteLine(Console.WriteLine(班级:班级:0,0,成成绩:绩:1,classname,grads);1,classname,grads);public class teacher:personpublic class teacher:person string title,department;string title,department;p
47、ublicpublicteacher(stringteacher(stringtitle,title,stringstringdepartment)department)this.title=title;this.title=title;this.department=department;this.department=department;-22-22-public void displayt()public void displayt()Console.WriteLine(Console.WriteLine(职称:职称:0,0,部部门:门::1,title,department);:1,
48、title,department);public class Testerpublic class Tester static void Main()static void Main()studentstudentstudent(0601,69);student(0601,69);su.personin(s00001,Tom);su.personin(s00001,Tom);su.displayin();su.displayin();su.displays();su.displays();teacherteacherteacher(lecture,IM);teacher(lecture,IM)
49、;tc.personin(t0001,LiLi);tc.personin(t0001,LiLi);tc.displayin();tc.displayin();tc.displayt();tc.displayt();-23-23-susu=newnewtc tc=newnewConsole.ReadLine();Console.ReadLine();将以上程序尝试改成通过调用基类构造方法将以上程序尝试改成通过调用基类构造方法的方式来初始化编号和姓名,的方式来初始化编号和姓名,并总结调用基类并总结调用基类构造方法的应用要点。参考代码如下:构造方法的应用要点。参考代码如下:public class
50、personpublic class person string ID,name;string ID,name;public person(string id,string name)public person(string id,string name)this.ID=id;this.ID=id;this.name=name;this.name=name;public void displayin()public void displayin()Console.WriteLine(Console.WriteLine(编编号号:0,ID);0,ID);Console.WriteLine(Con