编程基础与面向对象实践

1、编写一个程序,显示以下文本:在Objective - C中,小写字母很重要。程序执行从main开始。在一个例程中,程序语句用左右花括号括起来。所有程序语句必须以分号结尾。

#import <Foundation/Foundation.h>

int main (int argc, const char * argv[]) {
    @autoreleasepool {
        NSLog (@"In Objective - C, lowercase letters are significant.");
        NSLog (@"main is where program execution begins.");
        NSLog (@"Open and closed braces enclose program statements in a routine.");
        NSLog (@"All program statements must be terminated by a semicolon.");
    }
    return 0;
}

2、你期望下面这个程序的输出是什么?程序代码为:#import int main (int argc, const char * argv[]) { @autoreleasepool { int i; i = 1; NSLog (@”Testing…”); NSLog (@”....%i”, i); NSLog (@”…%i”, i + 1); NSLog (@”..%i”, i + 2); } return 0; }

Testing…
....1
…2
..3

3、编写一个程序,从 87 中减去 15 并显示结果,同时显示一条合适的消息。

以下是使用 Python 实现的程序示例:

result = 87 - 15
print(f"从 87 中减去 15 的结果是: {result}")

如果使用其他编程语言,如 Java,示例代码如下:

public class Main {
    public static void main(String[] args) {
        int result = 87 - 15;
        System.out.println("从 87 中减去 15 的结果是: " + result);
    }
}

4、以下程序的输出结果是什么?#import int main (int argc, const char *argv[]) { @autoreleasepool { int answer, result; answer = 100; result = answer - 10; NSLog (@”The result is %i”, result + 5); } return 0; }

The result is 95

5、以下哪些名称是无效的?为什么?Int、playNextSong、6_05、 calloc、Xx、alphaBetaRoutine、clearScreen、_1312、z、ReInitialize、 、A$

以下是调整为 Markdown 格式的文本内容:


无效名称有:

  • Int (是保留关键字)
  • 6_05 (不能以数字开头)
  • _ (单独下划线通常有特殊用途)
  • A$ (包含非法字符 $

有效的标识符需满足以下条件:

  1. 以字母、下划线 _ 开头
  2. 由字母、数字、下划线组成
  3. 不能是保留关键字

6、想出一个你每天使用的物品。确定该物品所属的类别,并写出你对该物品进行的五个操作。

以手机为例,它所属的类别是“手机”类。对手机进行的五个操作可以是:

  • 解锁手机
  • 查看消息
  • 拍照
  • 听音乐
  • 充电

7、假设你除了拥有一辆汽车外,还拥有一艘船和一辆摩托车。列出你会对它们分别执行的操作。这些操作之间有重叠吗?

对汽车可执行的操作有:驾驶、加油、清洗、保养等;
对船可执行的操作有:驾驶、加油、清洁、检修等;
对摩托车可执行的操作有:驾驶、加油、擦拭、维修等。

这些操作存在重叠,如 驾驶 加油 是共有的操作。

8、假设你有一个名为Vehicle的类和一个名为myVehicle的对象,该对象可以是汽车、摩托车或船。假设你写下了以下代码:[myVehicle prep]; [myVehicle getGas]; [myVehicle service]; 你认为能够对可能来自多个类的对象应用操作有什么优势吗?

这种做法具有代码复用性高、可维护性强和扩展性好的优势。它允许使用统一代码处理不同类型对象,减少代码重复,降低维护成本,还能轻松添加新的车辆类型。

9、在像C这样的过程式语言中,先考虑动作,然后编写代码对各种对象执行该动作。以车辆清洗为例,会编写一个清洗车辆的程序,在程序里编写处理清洗汽车、清洗船只、清洗摩托车等的代码。若要添加一种新的车辆类型,与面向对象方法相比,使用这种过程式方法有优势还是劣势?

使用过程式方法与面向对象方法的对比

使用过程式方法添加新车辆类型时,需要修改原有的清洗车辆程序,在其中添加新车辆的清洗代码。这可能导致代码的 可维护性 可扩展性 较差,因为每次添加新类型都要修改核心程序,容易引入错误。

而面向对象方法可以通过创建新的类来表示新的车辆类型,并在类中定义相应的清洗方法, 不需要修改原有的代码结构 ,具有更好的可维护性和可扩展性。

因此,在这种情况下, 过程式方法相对面向对象方法存在劣势

10、以下哪些是无效常量?为什么?123.456 0x10.5 0X0G1 0001 0xFFFF 123L 0Xab05 0L -597.25 123.5e2 .0001 +12 98.6F 98.7U 17777s 0996 -12

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值