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