4.7 练习

1.下列常量中,哪些是非法的?为什么?


123.456 0x10.5 0X0G1

0001 0xFFFF 123L

0Xab05 0L-597.25

123.5e2.0001+12

98.6F 98.7U 17777s

0996-12E-12 07777

1234uL 1.2Fe-7 15,000

1.234L 197u 100U

0XABCDEFL 0xabcu+123


2.编写一个程序,使用以下公式将华氏温度(F)27o转换成摄氏温度(C):


C=(F-32)/1.8

3.以下程序将输出什么结果?

import<Foundation/Foundation.h>

int main(int argc, char*argv[])

{

NSAutoreleasePool*pool=[[NSAutoreleasePool alloc]init];

char c, d;

c=‘d’;

d=c;

NSLog(@“d=%c”,d);

[pool drain];

return 0;

}


4.编写一个程序,求以下多项式的值:

3x3-5x2+6

已知x=2.55

5.编写一个程序,求下列表达式的值并显示其结果(记住要使用指数格式显示结果):

(3. 31x10-8x+2.01x10-7)/(7.16x10-6+2.01x10-8

6.复数包含两个部分:实部和虚部。如果a是实部,b是虚部,那么符号a+b i可用来表示复数。

编写一个Objective-C程序,定义一个名为Complex的新类。依照为Fraction类创建的范例,为该类定义以下方法:


-(void)setReal:(double)a;

-(void)setImaginary:(double)b;

-(void)print;//display as a+bi

-(double)real;

-(double)imaginary;


编写一个测试程序测试这个新类和各个方法。

7.假设你正开发操作图形对象的例程库。从定义名为Rectangle的新类开始。目前,仅记录矩形的宽和高即可。开发一些方法用于设置矩形的宽和高、检索这些值以及计算矩形的面积和周长。假定这些矩形对象使用整数坐标格栅来描述矩形,例如一台计算机屏幕。在这种情况下,假定矩形的宽和高都是整数值。

以下是Rectangle类的@interface部分:


@interface Rectangle:NSObject

{

int width;

int height;

}

-(void)setWidth:(int)w;

-(void)setHeight:(int)h;

-(int)width;

-(int)height;

-(int)area;

-(int)perimeter;

@end


编写implementation部分,并编写一个测试程序来测试新类的方法。

8.修改代码清单4-6中的add:、subtract:、muntiply:和divide:方法,使其返回累加器的结果值。测试这些新方法。

9.完成练习8后,把以下方法添加到Calculator类中并测试它们:


-(double)changeSign;//change sign of accumulator

-(double)reciprocal;//1/accumulator

-(double)xSquared;//accumulator squared


10.为代码清单4-6中的Calculator添加一项存储功能。实现以下方法声明并测试它们:


-(double)memoryClear;//clear memory

-(double)memoryStore;//set memory to accumulator

-(double)memoryRecall;//set accumulator to memory

-(double)memoryAdd;//add accumulator to memory

-(double)memorySubtract;//subtract accumulator from memory