资源描述
第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
展开阅读全文