C#程序设计案例教程习题解答.doc_第1页
C#程序设计案例教程习题解答.doc_第2页
C#程序设计案例教程习题解答.doc_第3页
C#程序设计案例教程习题解答.doc_第4页
C#程序设计案例教程习题解答.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1章 绪 论第1章课堂实训1-1. 编写一个简单的C#程序,输出如下内容:/* How are you ! */1-2. 参考附录A,安装Visual Stdio 2005集成开发环境。1-3. 参考附录A,安装MSDN。1-4定制Visual Stdio.NET的集成开发环境。习题一1-1. 选择题(1) 下面对Read()和ReadLine()方法的描述,哪些是正确的。(A,D)A Read()方法一次只能从输入流中读取一个字符B. 使用Read()方法读取的字符不包含回车和换行符C ReadLine()方法读取的字符不包含回车和换行符D. 只有当用户按下回车键时,Read()和ReadLine()方法才会返回(2) 下面对Write()和WriteLine()方法的描述,哪些是正确的。(B)A WriteLine()方法在输出字符串的后面添加换行符B. 使用Write()方法输出字符串时,光标会位于字符串后面C 使用Write()和WriteLine()方法输出数值变量时,必须要先把数值变量转换成字符串D. 使用不带参数的WriteLine()方法时,将不会产生任何输出1-2C#程序从哪儿开始执行?(Main()方法)1-3. 在C#程序中,using System 是必须的吗?(是)1-4C#中有两种注释方法:_/_适用于单行注释,/* */_适用于多行注释。第2章课堂实训2-1输入一个3位数的整数,编写一个程序,将它的十位数和百位数互换位置。习题二2-1. 选择题(1) 下列标识符命名正确的是(A,D )A _int, Int, int B. using, _using, usingC. NO1, NO_1, NO.1 D. A3, _A3,A3 (2) 下列变量的声明方式不正确的是( A,B )A. int a, string b, char c; B. int a=c=b=21;C. char a; D. string myString =”abc”;(3) 下面的标识符中,合法的是( C ) A. class , public B. 3a, _3a C. a3 D. a#5(4) 设有说明语句int x=8;则下列表达式中,值为2的是(C ) A. x8?x=0:x+; B. x/= x+x; C. x %= x-2; D. x+= 2;2-2. C#的每条语句都通过_分号“;”_来结束。2-3. 变量在使用前,必须先_声明或定义_。2-4. 通过_加括号_可以改变运算符的运算顺序,使表达式更加清晰易懂。2-5. 将下列各式写成C#语言表达式 (1) sin+cos Asin()+Acos() (2) 4a2+5b3 4*a*a+5*b*b*b (3) b=ba b = b*a (4) 2cos450 2*Acos(3.14/4) (5) 以知a=15,计算a1008,并将结果赋给变量b。 b= a*100/82-6 求下面算术表达式的值,并编写程序运行,验证其结果。(1)x+a%3*(int)(x+y)%2/4,其中x=2.5,a=7,y=4.7(2)x+A+(float)(a+b)/2+x%y,其中a=2,b=3,x=3.5,y=2.5;2-7设有说明语句int x=1,y=2,z=-2;计算一下各表达式的值。 (1) (x+3)4 (0) (2) x&y=z (1) (3) x+y|z (1) (4) x|yz (1)第3章课堂实训3-1. 某市不同车牌的出租车3公里的起步价和计费分别为:夏利7元,3公里以外,2.1元/公里;富康8元,3公里以外,2.4元/公里;桑塔那9元,3公里以外,2.7元/公里。编程:从键盘输入乘车的车型及行车公里数,输出应付车资。3-2. 打印出所有的“水仙花数”、所谓“水仙花数。是指一个3位数,其各位数字立方和等于该数本身。例如,153是一水仙花数,因为153=13+53+33。3-3. 关于百钱买百鸡问题的程序。某人有100元钱,欲买100只鸡。公鸡5元一只,母鸡3元一只,小鸡一元3只,问可买到公鸡、母鸡和小鸡各多少只?习题三3-1. C#语言有哪几种基本的语句结构?(顺序、分支、循环)3-2. 在if分支结构中,条件表达式的值必须是_布尔_类型的数据.3-3. C#所提供的4种循环中,他们之间有什么不同?3-4 写一条for语句,计数条件为n从100200,步长为2,然后再用while语句实现同样的循环。for( int n =100; n=200; n += 2) *n= 100;While(n= 200) * n += 2;3-5. 编写一段程序,运行时向用户提问“你考了多少分?(0100)”,接受输入后判断其等级并显示出来。判断依据如下:优(90100)、良(8089)、中(6079)和差(059)static void Main(string args) Console.WriteLine(请输入考分(0-100); string x = Console .ReadLine (); int y = int.Parse (x); if (y 100) Console.WriteLine(输入错误); return; if (y = 90) Console.WriteLine(优); else if(y = 80) Console.WriteLine(良); else if (y = 60) Console.WriteLine(中); else Console.WriteLine(差); 3-6. 输入一个整数,将各位数字反转后输出。static void Main(string args) Console.WriteLine(请输入一个整数); string x = Console .ReadLine (); int y = int.Parse (x); for(int i=0;ix.Length ;i+) Console.Write(y%10); y= y/10; 3-7 使用穷举法并分别用for、while、do while循环语句求出1100之间的质数。static void Main(string args) int i,k; for( i=1;i=100 ;i+) for (k = 2; k =i)Console.WriteLine(i); static void Main(string args) int i=1,k; while ( i=100) for (k = 2; k =i)Console.WriteLine(i); i+; static void Main(string args) int i=1,k; do for (k = 2; k = i) Console.WriteLine(i); i+; while (i = 100); 3-8 求出11000之间的所有能被7整除的数,并计算和,且每行输出每5个数。static void Main(string args) int i,sum=0,k=0; for (i = 1; i = 1000; i+) if (i % 7 = 0) k+; sum += i; Console.Write( 0 ,i); if (k % 5 = 0) Console.WriteLine(); Console.WriteLine(n和数=0,sum); 3-9 计算1+3+32+310的值。static void Main(string args) int i,sum=1,k=1; for (i = 1; i = 10; i+) k *= 3; sum += k; Console.Write( sum=0 ,sum); 3-10已知6a30,15b36,求满足不定方程2a+5b=126的所有整数解。static void Main(string args) int a,b; for (a = 6; a = 30; a+) for (b = 15; b 24-2用冒泡排序法对输入的20个数进行降序排序并存入数组中,然后输入一个数,查找该数是否在数组中存在,若存在,打印出数组中对应的下标值。4-3试定义一结构,用来描述日期,具体地说,该结构共有三个成员变量,分别描述年、月、日信息。然后再定义该结构类型的一个变量,要求从键盘输入数据,并输出结果。习题四4-1选择题(1) 下面是几条定义并初始化一维数组的语句,指出其中正确的是( C )A int arr1 = 1,3,4,5,77; B. int arr1 = new int ;C. int arr1 = new int 1,3,4,5,77; D. int arr1 = 1,3,4,5,77(2) 下面是几条定义并初始化二维数组的语句,指出其中正确的是(D )A int arr2 = new int2,3; B. int arr2 = new int 2,3;C. int arr2 , = new int2,3; D. int , a = new int 2, 3 1,2,4, 6,7,8 ;4-2. 建立一个一维数组,使用该数组列出所学习的课程名称。static void Main(string args) string arr1 = new string 高等数学,C#语言程序设计,面向对象程序设计,英语; foreach (string a in arr1) Console.WriteLine(a); 4-3编写一个包含学生基本信息的结构类型数据,要求包括姓名、性别、年龄、身高、体重信息。struct student public string Name; public string Sex; public int Age; public int Height; public float Weight; class Program static void Main(string args) student stuXinXi; stuXinXi.Name = 张三; stuXinXi.Sex = 男; stuXinXi.Age = 21; stuXinXi.Height = 175; stuXinXi.Weight = 55.6f; Console.WriteLine(学生的基本信息:); Console.WriteLine(姓名: 0, stuXinXi.Name); Console.WriteLine(性别: 0, stuXinXi.Sex); Console.WriteLine(年龄: 0, stuXinXi.Age); Console.WriteLine(身高: 0, stuXinXi.Height); Console.WriteLine(体重: 0, stuXinXi.Weight); 4-4 编写程序,将一年中的12个月,建立一个枚举类型数据,并对其进行调用。第5章课堂实训5-1设计一个表示猫的类,包括猫的颜色,体重,年龄等数据,具有设置猫的颜色,修改和显示猫的体重,年龄等操作。5-2设计一个表示学习成绩的类,至少包括3门课程的成绩,可以设置,显示每门课程的成绩,可以计算,显示平均成绩5-3使用方法重载设计一个求面积的类,包括圆、三角形和梯形。并设计一个输入成员方法和输出成员方法。5-4编写程序,用来判断学生能否通过某个级别的考试,全部操作在来Grade中实现。要求:(1) 在定义对象时指定学生的姓名和分数。 4个学生的姓名和分数分别为: Wang l00 Zhang 90 Li 52 Zhao 0(2) 编写一个私有成员方法idPass,判断能否通过。(3) 编写一个成员方法PrintData输出结果,包含学生姓名、分数、是否能通过。习题五5-1. 选择题(1) 下面选项中属于类的数据成员是( A,C )。 A. 字段 B. 方法 C. 属性 D.构造函数态成员(2). 方法中的值参数是_A_的参数。 A 按值传递 B. 按引用传递 C. 按地址传递 D. 不传递任何值5-2. 添空题(1) C#的构造函数分为实例构造函数和静态构造函数,实例构造函数可以对_B_进行初始化,静态构造函数只能_A_进行初始化。 A 静态成员 B. 非静态成员 C. 静态成员或非静态成员 D. 静态成员和非静(2) 面向对象编程的重要特征有_抽象_,_封装_,_继承和多态_等。(3) 对象是_类_的实例化,它除了具有正常的状态外,其初始化阶段称为_构造_,被删除时清理其占用资源时的阶段称为_析构_。(4) 类相当于创建对象的模板,定义该类所创建对象的数据和功能,包括_成员变量_和_成员函数_两类成员。(5) 类的数据成员主要包括_字段_和_常数_。(6) 类的函数成员包括_方法,属性,事件,构造函数,析构函数_等。(7) 在C#中,方法使用_对象_来调动,方法中的参数在传递时一般使用_形式参数_传递类型。5-3. 阅读下列程序,分析程序运行结果。 namespace Ex class Myclass public void MyFuction(ref int x,ref int y,ref int z) x += y; y-= x; z *= y; Console.WriteLine(a=0,b=1,c=2, x, y, z); class Program static void Main(string args) Myclass m = new Myclass(); int a, b, c; a = 20; b = 10; c = 5; m.MyFuction(ref a, ref b, ref c); Console.WriteLine(a=0,b=1,c=2, a, b, c); 程序运行结果:a=30, b=-20, c=-100a=30, b=-20, c=-100第6章课堂实训6-1 编写一个类Cal1,实现加、减两种运算,然后,编写另一个派生类Cal2。实现乘、除两种运算。6-2 建立三个类:居民、成人和官员。其中,居民:包含身份证,姓名,出身日期;成人:成人继承居民,多包含学历,职业两项数据;官员:官员则继承成认,多包含党派,职物,两项数据。要求每个类中都提供数据输入和输出的功能。6-3分别使用抽象类,虚方法和接口技术实现第1题。习题六6-1 一个类可以继承几个基类,可以实现几个接口。(继承一个基类,实现多个接口)6-2 在一个类继承层次结构中,构造函数按照什么顺序调用(先基类构造函数,后派生类构造函数)6-3 如何防止类的方法被重写或隐藏?(使用属性)6-4 什么是抽象类?抽象一定要包含抽象方法吗?6-5 如何判断某个对象是否实现了某个接口6-6 接口可以扩展吗?如何实现(可以,通过派生实现)6-7. 选择题(1) 在接口的成员中,不能包含( D )A 属性 B. 方法 C. 事件 D. 常量(2) 在C#中定义接口时,使用关键字是( A ) A. interface B. : C. class D. overrides6-8. 阅读程序,分析运行结果。namespace Ex6_6 class Parent private int i; protected int j; private void Display() Console.WriteLine(我是父类); protected void Setvalue() j = 1; i = 4; public void MyDvalue() Console.WriteLine(i=0,j=1, i, j); class Child : Parent public int k; public void Display() Console.WriteLine(我是子类); internal void Change() Setvalue(); MyDvalue(); class Program static void Main(string args) Parent x = new Parent(); Child y = new Child(); x.MyDvalue(); y.Change(); y.Display(); y.MyDvalue(); y.k = 40; Console.WriteLine(0,y.k ); 运行结果: i=0,j=0i=4,j=1我是子类i=4,j=140第7章课堂实训7-1. 修改MyCalculator程序,将RadioButton控件运算类型的选择改换为下拉列表控件ComboBox。7-2 进一步完善MyCalculator程序功能,添加普通计算的其它功能。例如,开方、乘方等。第8章课堂实训8-1完善记事本程序,添加菜单项的状态更新和标记功能。8-2完善记事本程序,实现工具栏上按钮的状态更新。8-3. 完善记事本程序,实现工具栏的显示和隐藏功能。第9章课堂实训9-1利用自定义对话框技术,开发“OpenFileDialog”通用对话框。9-2完善如下的页面打印模块,根据行距、字体高度、左边框、顶边框等,正确设计x,y值。private void printDocument1_PrintP

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论