2009年1月C++自学考试试题解析

需积分: 12 1 下载量 152 浏览量 更新于2024-11-13 收藏 71KB DOC 举报
"全国2009年1月自学考试C++程序设计试题" 这份自考试题涵盖了C++语言的基础知识,包括预处理指令、输入输出流、数据类型、指针、封装、函数、默认参数、重载以及算术运算符等核心概念。以下是这些知识点的详细说明: 1. **源程序文件扩展名**:C++源程序文件通常以`.cpp`为扩展名,选项A正确。`.h`用于头文件,`.lib`是库文件,`.obj`是编译后的对象文件。 2. **输入输出流**:在C++中,`cin`对象专门用于从键盘接收输入,选项B正确。`cerr`用于错误输出,`cout`用于标准输出,`cfile`不在标准库中。 3. **包含自定义头文件**:在C++中,包含头文件的预处理指令是`#include`,如果头文件是用户自定义的,一般用双引号括起来,即`#include "file.h"`,选项D正确。 4. **十六进制表示**:十六进制数值前缀是`0x`,选项D正确。例如,`0x10`表示十进制的16。 5. **指针声明**:选项A、C和D都是错误的声明方式,正确的是B,即`int *p = &x;`,这声明了一个指向整型变量x的指针。 6. **封装**:在定义类成员时,为了实现封装,通常会使用`private`关键字来声明私有成员,这样它们不能被类外部直接访问,选项D正确。 7. **函数调用**:`swap(a, b)`函数交换了a和b的值,因此执行后a和b的值会互换,选项C正确。 8. **默认参数**:默认参数应该放在参数列表的末尾,选项C正确。如果在中间位置设定默认参数,当调用函数时可能会引起混淆。 9. **函数调用和嵌套调用**:表达式A和C是正确的调用方式,而B是错误的,因为`min`函数只接受两个参数,不能直接传递三个参数求最小值。D中的最后一个参数应该是`26`,而不是`16`,所以也是错误的。 10. **函数重载**:函数重载意味着同一作用域内的函数可以有不同的参数列表。选项C错误,因为它与原始的`void print(char)`函数签名冲突,形成了重复定义。 11. **算术运算符**:表达式A中,7/2的结果是整数3,7.0/2.0的结果是浮点数3.5,类型不同。其他选项中的两个表达式都会得到相同的类型:B中的两个字符相加会产生一个整数;C中的整数除以整数会得到浮点数;D中的两个整数相加仍然是整数。 这些知识点构成了C++编程的基础,理解和掌握它们对于学习C++至关重要。在实际编程中,考生需要灵活运用这些知识解决各种问题。