中山大学2010学期《程序设计I》期末试题

需积分: 0 0 下载量 159 浏览量 更新于2024-08-05 收藏 203KB PDF 举报
"中山大学2010年上学期计算机科学系《程序设计I》期末考试试卷" 这份试卷是根据《中山大学授予学士学位工作细则》第六条的规定进行的,明确规定考试作弊将不被授予学士学位。试卷由吴维刚、刘聪和舒忠梅三位任课教师出题,采用闭卷形式,考试时间为2小时,面向10级计科、网工、信安三个专业的学生。 试卷内容包括单选题(SingleAnswerQuestions),总分20分,要求学生在四个选项中选择最合适的答案来完成陈述或回答问题。以下是部分题目: 1. 在C编程中,哪个常量表示八进制数? A) 843 B) 9x C) 01 D) 0x12 此题考察C语言中的数字表示,八进制数以0开头,因此正确答案是C) 01。 2. 字符在计算机中是如何表示的? A) 源代码 B) 十六进制码 C) ASCII码 D) 机器码 字符在计算机中通常以ASCII码或Unicode码表示,因此正确答案是C) ASCII码。 3. 优良的编程风格有哪些益处? A) 使程序更紧凑 B) 防止读者误解 C) 编译器更容易找出错误 D) 使程序看起来更美观 优良的编程风格能提升代码可读性和可维护性,防止误解并帮助编译器优化,因此B) 和D) 是正确的。 4. 假设`char x = 'b'; char y = 'a'`,执行`y = x + (x - y)`后,`x`的值是什么? A) b B) d C) a D) c 这是一个字符操作,字符'a'的ASCII码是97,'b'是98,所以`x - y`等于1,然后加上'y'的值,`x`保持不变,因此`x`的值仍然是'b'。 5. 假设`x = 0`, `y = -1`, `z = 1`,下面的语句会打印什么? if(x > 0 || x == 0) if(y < 0) cout << "x>0 and y>0"; else if(z > 0) cout << "x<0 and z>0"; A) x>0 and y>0; B) x<0 and z>0; C) 无打印输出 D) x<0 and z<0; 因为`x > 0 || x == 0`始终为真,所以会执行第一个`if`块。由于`y < 0`为真,因此打印"x>0 and y>0",答案是A) x>0 and y>0。 6. 下列布尔表达式中哪个是错误的? A) (4 >= 3) && (3 <= 4) B) (x > 0) || (x < 0) C) (-1 < x < 1) D) 57 C) (-1 < x < 1) 在C++中不是一个有效的连续比较,因此是错误的。 7. 执行以下switch语句后,`y`的值是多少? 由于这部分内容缺失,我们无法给出确切答案。但通常,switch语句会根据匹配的case分支执行相应的代码,并可能改变`y`的值。 这道试卷涵盖了许多C++的基础知识,如数据类型、字符表示、逻辑运算、流程控制等,是检验学生对C++基础知识掌握程度的一个良好工具。