中山大学《程序设计I》期末考试试题——吴维刚刘聪刘晓铭

需积分: 0 0 下载量 18 浏览量 更新于2024-08-05 收藏 422KB PDF 举报
"试卷-A-final1,中山大学计算机科学系2012第一学期《程序设计I》期末考试试题,涉及C++基础知识,包括变量初始化、标识符规则、控制结构、算术表达式、字符类型变量处理及布尔表达式等知识点。" 试卷-A-final1是中山大学计算机科学系2012第一学期《程序设计I》课程的期末考试,由吴维刚、刘聪、刘晓铭三位老师出题,采用闭卷形式,时长两小时。该考试主要考察学生对C++编程语言的基础掌握情况,包括以下几个关键知识点: 1. 变量初始化:题目提到"A) A local variable will be automatically initialized to zero if no initial value",这涉及到C++中的变量初始化规则。在C++中,局部变量如果没有显式初始化,其值是未定义的,而不是自动初始化为零。全局变量和静态局部变量在未初始化时会被自动置为零。 2. 用户定义标识符:C++中,合法的用户定义标识符应符合一定的规则,如不能以数字开头(选项B错误),不能包含非字母数字字符(选项C错误),且`else`是保留关键字,不能作为标识符(选项D错误)。选项A中的`_x`是一个合法的标识符。 3. 基本流程控制结构:包括顺序(A)、选择(C)和循环(D)。跳转(B)不是基本流程控制结构,它可能指的是 goto 语句,但通常不建议使用。 4. 算术表达式:选项A的4x+x是正确的,而B中的除法运算符优先级高于减法,因此不是等价的;C中的前置自增操作符 ++ 应用在浮点数上不合法;D中的x+=(x+1)是正确的赋值表达式。 5. 字符类型变量处理:题目中`char x = '9'`,`cout << x+1 << endl;`会输出字符'9'的ASCII码加1的结果,即'0'的ASCII码,因此选项B是正确答案。 6. 自减运算符:`--i`表示先减后用,而`i--`表示后减后用。因此,`--i`与`i=i-1`是等价的,选项D正确。 7. 布尔表达式:A选项的不等式在C++中不是合法的布尔表达式;B选项`x=0`是一个赋值表达式,不是布尔表达式;C选项`x`虽然可以被解释为布尔值(非零为真,零为假),但不符合常规的布尔表达式形式;D选项`(x=1)||(x!=1)`始终为真,因为x要么等于1,要么不等于1,至少有一个条件为真。 8. 字符串存储:选项A使用字符数组直接初始化字符串"Good"是合法的,而选项B缺少字符串结束符`\0`,不能正确存储"Good"字符串。 这份试卷旨在评估学生的C++基础,包括语法理解、逻辑推理以及编程实践能力。通过这些题目,学生可以检验自己对变量、控制流、数据类型和表达式的理解程度。