中山大学2009程序设计期末试题解析

需积分: 0 1 下载量 134 浏览量 更新于2024-08-05 收藏 189KB PDF 举报
"中山大学2009年程序设计I期末考试试卷,闭卷,考试时间2小时,由肖菁和吴维刚老师出题,面向09级计科、网工、信安专业的学生。试卷包含选择题,涉及编译器、面向对象编程语言、标识符规则、常量声明、类型转换、字符变量自增及条件语句的输出结果等知识点。" 这篇描述实际上是一个计算机科学系的期末考试题目,主要测试学生的程序设计基础。以下是这些题目所涵盖的一些关键知识点: 1. **编译器**:编译器是将高级语言(如C++)翻译成机器语言的工具,选项B正确。CPU执行的是机器语言,选项A错误;汇编器将汇编语言转为机器语言,选项C错误;操作系统并不直接做这个翻译工作,选项D错误。 2. **面向对象编程语言**:Java是一种面向对象的编程语言,选项B正确。Pascal和Ada在某些方面支持面向对象,但不是纯粹的面向对象语言,选项A和C错误;C语言是过程性的,不支持类和对象,选项D错误。 3. **用户定义标识符**:合法的用户定义标识符不能以数字开头,也不能包含运算符,所以选项B(9X)是合法的,而A(_343)、C(8+9)和D(class)都不合法。 4. **常量声明**:为了提高代码可读性和维护性,应该使用常量(constants)来代替硬编码的数值,例如3.14159。 5. **类型转换和浮点除法**:在C++中,整数相除会截断小数部分,所以5/2的结果是2。将其转换为double类型后,结果仍然是2.0,所以答案是B)2.0。 6. **字符变量自增**:如果x的初始值为'b'(ASCII码98),自增操作后变为99,对应的字符是'c'。因此,`cout<<++x`会打印出字符'c',答案是D)c。 7. **条件语句的执行**:这段代码是嵌套的if语句,首先检查x是否大于0,因为x=1,所以进入第一个if,再检查y是否大于0,由于y=-1,不满足条件,不执行任何输出。然后检查z是否大于0,因为z=1,满足条件,所以输出"x<0 and z>0"。因此,最终的输出是B)x<0 and z>0。 这些题目涉及了编程语言的基础概念,包括语言特性、数据类型、运算符、控制结构以及良好的编程习惯,这些都是学习程序设计时必须掌握的知识点。