C程序设计及应用课后题答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4、分别写出下列语句执行的结果。
1) ("{0}--{0:p}good",12.34F);
2) ("{0}--{0:####}good",0);
3) ("{0}--{0:00000}good",456);
【解答】
,%good
0--good
456--00456good
5、编写一个控制台应用程序,输出1到5的平方值,要求:
1) 用for语句实现。
2) 用while语句实现。
3) 用do-while语句实现。
【解答】
using System;
using ;
namespace outputSquareValue
{
class Program
{
static void Main()
{
MainMainMain
234
(1)
1(1)
2!3!4!!
n
n
x x x x
x
n
+
+-+-++-
L
MainMain。
(5)在Main方法中声明类型为这个类的一个具有5个对象的数组,但不要实际创建分配到数组里的对象。
(6)写出运行程序应该输出的结果。
【解答】
using System;
class Test1
{
public Test1()
{
(this);
}
public Test1(string str)
{
(str);
}
public static void Main()
{
Test1 t1 = new Test1();
Test1 t2 = new Test1("This is a string.");
Test1[] t3 = new Test1[5];
}
}
This is a string.
2、编写一个控制台应用程序,定义一个类MyClass,类中包含有public、private以及protected数据成员及方法。
然后定义一个从MyClass类继承的类MyMain,将Main方法放在MyMain中,在Main方法中创建MyClass类的一个对象,并分别访问类中的数据成员及方法。
要求注明在试图访问所有类成员时哪些语句会产生编译错误。
【解答】
using System;
class MyClass
{
public int i;
private int j;
protected int k;
public void method1()
{
("public method.");
}
private void method2()
{
("private method.");
}
protected void method3()
{
("protected method.");
}
}
class MyMain : MyClass
{
public static void Main()
{
MyClass t = new MyClass();
("i={0}", ;
("j={0}", ; ;
}
}
class Class2 : Class1
{
private void NewMethod()
{
;
+= 10;
;
}
public static void Main()
{
Class2 t = new Class2();
}
3、编写一个控制台应用程序,完成下列功能,并回答提出的问题。
(1)创建一个类A,在构造函数中输出“A”,再创建一个类B,在构造函数中输出“B”。
(2)从A继承一个名为C的新类,并在C内创建一个成员B。
不要为C创建构造函数。
(3)在Main方法中创建类C的一个对象,写出运行程序后输出的结果。
(4)如果在C中也创建一个构造函数输出“C”,整个程序运行的结果又是什么?
【解答】
using System;
public class A
{
public A()
{
("A");
}
}
public class B
{
public B()
{
("B");
}
}
public class C : A
{
B newb = new B();
}
class MainClass
{
public static void Main()
{
C newc = new C();
();
}
}
输出结果:
B
A
如果在C中也创建一个构造函数输出“C”,即添加:
public C()
{
("C");
}
则整个程序运行的结果为:
B
4、编写一个控制台应用程序,完成下列功能,并写出运行程序后输出的结果。
(1)创建一个类A,在A中编写一个可以被重写的带int类型参数的方法MyMethod,并在该方法中输出传递的整型值加10后的结果。
(2)再创建一个类B,使其继承自类A,然后重写A中的MyMethod方法,将A中接收的整型值加50,并输出结果。
(3)在Main方法中分别创建类A和类B的对象,并分别调用MyMethod方法。
【解答】
using System;
public class A
{
public virtual void MyMethod(int num)
{
num += 10;
(num);
}
}
public class B : A
{
public override void MyMethod(int num)
{
num += 50;
(num);
}
}
class MainClass
{
public static void Main()
{
A newa = new A();
(2);
B newb = new B();
(2);
();
}
}
输出结果:
12
52
5、假设Node类的每一个节点包括有两个字段:m_data(引用节点的数据)和m_next(引用链接列表中的下一项)。
这两个字段都是由构造函数方法设置的。
该类有两个功能,第一个功能是通过名为Data和Next的只读属性访问m_data和m_next字段。
第二个功能是对的ToString虚拟方法进行重写。
试分别用类和泛型两种方法编写程序实现上述功能。
【解答】
using System;
class Node
{
Object m_data;
public Node(Object data, Node next)
{
m_data = data;
m_next = next;
}
Main
MainMain.");
}
else
{
("用户取消操作");
return;
}
Directory Info dir = new Directory Info (".");
foreach (File Info f in ())
{
();
图6-1 窗体界面}
}
}
2、使用Panel控件分别以矩形、椭圆和圆形的方式动态显示图片,图片的大小由Panel控件的大小决定。
【解答】
(1)新建一个Windows应用程序,命名为“ShowImageExe”,调整窗体到适当大小。
更改“”为“”。
(2)切换到代码方式,添加名称空间引用:
using 添加四个Button控件分别命名为“buttonOpenFile”、“buttonRectangle”、“buttonEllipse”、“buttonRound”,以及一个openFileDiolog和Panel控件。
(4)在Form类下声明两个私有变量filename和flag,分别用来记录打开的文件名和判断哪个按钮的click时间被触发。
private string filename = "";
private int flag = 0;
(5) 添加【打开文件】按钮的click事件
private void buttonOpenFile_Click(object sender, EventArgs e)
{
();
filename = ;
();
}
(6) 在panel1控件的paint事件下添加如下代码:
private void panel1_Paint(object sender, PaintEventArgs e)
{
if () == "")
return;
Bitmap mybitmap = new Bitmap(filename);
Graphics g = ;
TextureBrush mybrush = new TextureBrush(mybitmap,;
irection = ;
try
{
();
alue,);
}
catch (Exception err)
{
;
}
finally
{
();
}
}
}
}
2、写出符合下列要求的正则表达式。
(1)要求4~8个英文字母。
(2)不能包含字母,至少1个字符。
(3)至少3个数字。
第3题 滚动条浏览大图片
第2题 以矩形、椭圆和圆形的方式显示图片运行图
(5)至少3个英文字母。
(6)3个字母或数字,如123、r3a等。
(7)3个点。
(8)@前至少有1个字符,@后至少有3个字符。
(9)必须输入左括号。
【解答】
1) [a-zA-Z]{4,8}
2) [^a-zA-Z]{1,}
3) [0-9]{3,}
4) {3,}
5) [a-zA-Z]{3,}
6) .{0,}
7) [A-Za-z0-9]{3}
8) \.{3}
9) .{1,}@ .{3,}
10) \(。