收藏 分销(赏)

C#程序设计案例教程习题解答.doc

上传人:xrp****65 文档编号:9433343 上传时间:2025-03-26 格式:DOC 页数:13 大小:743KB
下载 相关 举报
C#程序设计案例教程习题解答.doc_第1页
第1页 / 共13页
C#程序设计案例教程习题解答.doc_第2页
第2页 / 共13页
点击查看更多>>
资源描述
第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-2.C#程序从哪儿开始执行?(Main()方法) 1-3. 在C#程序中,using System 是必须的吗?(是) 1-4.C#中有两种注释方法:_//_____适用于单行注释,/* */______适用于多行注释。 第2章 课堂实训 2-1.输入一个3位数的整数,编写一个程序,将它的十位数和百位数互换位置。 习题二 2-1. 选择题 (1) 下列标识符命名正确的是(A,D ) A. _int, Int, @int B. using, _using, @using C. 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. x>8?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=b×a b = b*a (4) 2cos450 2*Acos(3.14/4) (5) 以知a=15,计算a×100÷8,并将结果赋给变量b。 b= a*100/8 2-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||y>z (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从100~200,步长为2,然后再用while语句实现同样的循环。 for( int n =100; n<=200; n += 2) { ****** } n= 100; While(n<= 200) { ***** n += 2; } 3-5. 编写一段程序,运行时向用户提问“你考了多少分?(0~100)”,接受输入后判断其等级并显示出来。判断依据如下: 优(90~100)、良(80~89)、中(60~79)和差(0~59) static void Main(string[] args) { Console.WriteLine("请输入考分(0-100"); string x = Console .ReadLine (); int y = int.Parse (x); if (y < 0 || 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;i<x.Length ;i++) { Console.Write(y%10); y= y/10; } } 3-7. 使用穷举法并分别用for、while、do …while循环语句求出1~100之间的质数。 static void Main(string[] args) { int i,k; for( i=1;i<=100 ;i++) { for (k = 2; k <i; k++) if (i % k == 0) break; if(k>=i)Console.WriteLine(i); } } static void Main(string[] args) { int i=1,k; while ( i<=100) { for (k = 2; k <i; k++) if (i % k == 0) break; if(k>=i)Console.WriteLine(i); i++; } } static void Main(string[] args) { int i=1,k; do { for (k = 2; k < i; k++) if (i % k == 0) break; if (k >= i) Console.WriteLine(i); i++; } while (i <= 100); } 3-8. 求出1~1000之间的所有能被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.已知6≤a≤30,15≤b≤36,求满足不定方程2a+5b=126的所有整数解。 static void Main(string[] args) { int a,b; for (a = 6; a <= 30; a++) for (b = 15; b <= 36; b++) { if (2 * a + 5 * b == 126) Console.WriteLine("a={0},b={1} ", a, b); } } 3-11.编写一个控制台程序,分别输出1~100之间的平方、平方根、自然对数,e指数的数学用表。 第4章 课堂实训 4-1.用一维数组计算Fibonacci数列的前20项。 Fibonacci数列,按如下递归定义: F(1)=1; F(2)=1 F(n)=F(n-1)+F(n-2) n>2 4-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 int[2,3]; B. int [ ][ ]arr2 = new int[ 2,3]; C. int arr2[ , ] = new int[2,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=-100 a=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. overrides 6-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=0 i=4,j=1 我是子类 i=4,j=1 40 第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_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) { int x = 20, y = 20; foreach (string line in textLines) { e.Graphics.DrawString(line,new Font("Arial",10),Brushes.Black,x,y); y += 15; } } 第10章 课堂实训 10-1.设计制作一张个人名片,要求版面上还含有单位图标和本人彩色相片。 10-2. 完善应用程序MyPlayer,添加暂停、恢复等功能。 10-3. 完善应用程序MyPlayer,添加录音功能。 第11章 课堂实训 11-1. 完善学生信息管理系统,添加记录的删除功能。 提示及要求: 模仿记录查询功能,参考如图11-16所示的删除条件输入界面。 图11-16 删除记录对话框 11-2.完善学生信息管理系统,添加记录的修改功能。 提示及要求: 模仿记录编辑和查询功能,参考如图11-17所示的界面。 图11-17 修改记录对话框 11-3. 改进学生信息管理系统,用SQL Sever数据库替换其中的Access数据库。 第12章 课堂实训 12-1.完善MyThread程序,完成功能按钮的激活/禁止状态更新。 12-2.完善MyThread程序,添加主窗体的FormClosing事件方法,编写非正常退出时终止线程代码。 12-3.制作一个程序摸拟图书馆中的书籍借阅操作,有两个人几乎同时查阅某一本书是否还有,如果有,就将书的数量减1,如果没有就输出“书籍已经全部借出”。用2种线程同步的方法分别实现程序。 第13章 课堂实训 13-1. 完善客户端程序,添加各功能控件的状态更新。 13-2. 完善客户端程序,添加字体属性。 13-3. 完善聊天室程序,添加聊天时间信息。 13-4. 修改聊天室程序,在客户端,增加客户登入界面。 13
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服