例题21

1、知识点总结
死循环的特征:
语法是否正确?
一个死循环,例如 for (int i = 0; i >= 0; i++) {},它的语法是完全正确的。编译器会愉快地接受它,不会报任何语法错误。
程序能否运行?
可以。程序会成功编译并开始运行。
行为是否符合预期?
不符合。程序员的意图是让循环在某个条件下结束,但由于逻辑设计上的缺陷,循环永远无法满足退出条件。程序会一直“卡”在循环里,无法继续执行后续代码,也无法正常退出。
这是一种典型的“逻辑错误”,即程序的实际行为与设计者的意图不符。
根据我们的知识点总结,这种“语法正确但逻辑错误”的问题,正是语义错误的典型特征。
2、选项分析
A. 语法: 错误。死循环的语法是正确的,编译器无法发现。
B. 语用: 不够准确。死循环不仅仅是代码风格或效率问题,它是一个根本性的逻辑缺陷,导致程序无法完成其预定功能。
C. 语义: 正确。死循环是典型的语义错误,因为它违反了程序的逻辑意图。
D. 语境: 不是一个标准的错误分类,且与死循环的性质不符。
3、最终答案:C
例题22

1、知识点总结
这道题考察的是使用正则表达式来描述一个特定模式的字符串集合。要解决这类问题,需要理解正则表达式的基本运算符:
连接 : ab 表示字符'a'后面紧跟着字符'b'。
或 / 并集: a|b (有时也写作 a+b) 表示可以是字符'a'或者字符'b'。
克林闭包 / 星号 : a* 表示字符'a'可以出现0次或多次(例如:空字符串, "a", "aa", "aaa", ...)。
括号: (ab)* 表示字符串"ab"这个整体可以出现0次或多次(例如:空字符串, "ab", "abab", ...)。
2、选项分析
字符串中的1可以随时出现,任意多次。这可以用1*来表示。0必须成对出现才能保证是偶数个。一个“对”就是00。但是,0和0之间可能被1隔开。例如0110也是偶数个0。因此,我们可以把“生成两个0”的最小单元看作是 0 后面跟上任意个1,然后再跟上一个0,即 01*0。在这些“成对的0” (01*0) 之间,以及在字符串的开头和结尾,都可以有任意数量的1。
3、最终答案:B
例题23

1、知识点总结
类型系统是程序设计语言的一个核心组成部分,它是一套规则,用于为程序中的各种值(变量、表达式、函数等)分配和管理名为“类型”的属性。
类型系统的主要作用/优点:
- 类型检查: 最重要的作用。通过在编译时或运行时检查操作的合法性,可以防止大量的类型错误,如将字符串和整数相加、调用对象上不存在的方法等。这大大减少了运行时错误,提高了程序的可靠性。
- 空间分配: 编译器根据数据类型,可以精确地知道需要为变量分配多少内存空间,从而实现高效的内存布局。
- 封装意图: 类型为数据赋予了“含义”。int 不仅仅是4个字节,它代表一个整数。Date 不仅仅是8个字节,它代表一个日期。这使得程序员可以从底层的二进制表示中解放出来,在更高的抽象层次上思考问题。
- 代码自解释: 明确的类型声明本身就是

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



