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

2018-09-28 20:40

第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 )

1

第1章 绪 论

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;

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

C. x %= x-2; D. x+= 2;

(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只,问可买到公鸡、母鸡和小鸡各多少只?

2

第1章 绪 论

习题三

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(\输入错误\ 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

Console.Write(y); y= y/10; } }

3

第1章 绪 论

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)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; 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(\,i);

if (k % 5 == 0) Console.WriteLine(); } }

4

第1章 绪 论

Console.WriteLine(\和数={0},\,sum); }

3-9. 计算1+3+3+…+3的值。

static void Main(string[] args)

{

int i,sum=1,k=1;

for (i = 1; i <= 10; i++) {

k *= 3; sum += k; }

Console.Write(\,sum); }

210

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, 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.试定义一结构,用来描述日期,具体地说,该结构共有三个成员变量,分别描述年、月、日信息。然后再定义该结构类型的一个变量,要求从键盘输入数据,并输出结果。

5

第1章 绪 论

习题四

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 []{\高等数学\,\语言程序设计\,\面向对象程序设计\,\英语\};

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); } }

6

第1章 绪 论

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) 类的数据成员主要包括__字段______和__常数____。

7

第1章 绪 论

(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(\ } }

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=30, b=-20, c=-100 a=30, b=-20, c=-100

第6章

课堂实训

6-1. 编写一个类Cal1,实现加、减两种运算,然后,编写另一个派生类Cal2。实现乘、除两种运算。

6-2. 建立三个类:居民、成人和官员。其中,居民:包含身份证,姓名,出身日期;成人:成人继承居民,多包含学历,职业两项数据;官员:官员则继承成认,多包含党派,职物,两项数据。要求每个类中都提供数据输入和输出的功能。

6-3.分别使用抽象类,虚方法和接口技术实现第1题。

8

第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(\ } }

class Child : Parent

{ public int k;

public void Display()

{ Console.WriteLine(\我是子类\ }

internal void Change() { Setvalue(); MyDvalue(); } }

9

第1章 绪 论

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(\ } } }

运行结果:

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. 完善记事本程序,实现工具栏的显示和隐藏功能。

10

第1章 绪 论

第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(\ y += 15;

} }

第10章

课堂实训

10-1.设计制作一张个人名片,要求版面上还含有单位图标和本人彩色相片。 10-2. 完善应用程序MyPlayer,添加暂停、恢复等功能。 10-3. 完善应用程序MyPlayer,添加录音功能。

第11章

课堂实训

11-1. 完善学生信息管理系统,添加记录的删除功能。

提示及要求: 模仿记录查询功能,参考如图11-16所示的删除条件输入界面。

11

第1章 绪 论

图11-16 删除记录对话框

11-2.完善学生信息管理系统,添加记录的修改功能。 提示及要求: 模仿记录编辑和查询功能,参考如图11-17所示的界面。

图11-17 修改记录对话框

11-3. 改进学生信息管理系统,用SQL Sever数据库替换其中的Access数据库。

第12章

课堂实训

12-1.完善MyThread程序,完成功能按钮的激活/禁止状态更新。

12-2.完善MyThread程序,添加主窗体的FormClosing事件方法,编写非正常退出时终止线程代码。

12

第1章 绪 论

12-3.制作一个程序摸拟图书馆中的书籍借阅操作,有两个人几乎同时查阅某一本书是否还有,如果有,就将书的数量减1,如果没有就输出“书籍已经全部借出”。用2种线程同步的方法分别实现程序。

第13章

课堂实训

13-1. 完善客户端程序,添加各功能控件的状态更新。 13-2. 完善客户端程序,添加字体属性。 13-3. 完善聊天室程序,添加聊天时间信息。

13-4. 修改聊天室程序,在客户端,增加客户登入界面。

13


C#程序设计案例教程习题解答.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2015-2016学年江苏省南京市二校(溧水高级中学、东山外国语学校)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: