1、高等教育自学考试 C+程序设计真题 2010 年 1 月及答案解析(总分:100.00,做题时间:150 分钟)一、课程代码:04737(总题数:1,分数:0.00)二、单项选择题(本大题共 20 小题,每小题(总题数:20,分数:20.00)1.在 C+中,头文件扩展名为( )。(分数:1.00)AcppBhC1ibDobj2.下列符号中,不属于分隔符的是( )。(分数:1.00)A.,B.C.;D.3.可替换#define PI 3.1415926 的语句是( )。(分数:1.00)A.float PI 3.1415926;B.const float PI=3.1415926;C.cons
2、t PI(3.1415926);D.const 3.1415926;4.布尔类型标识符是( )。(分数:1.00)A.voidB.shortC.longD.bool5.下列不是 C+语言的基本数据类型的是( )。(分数:1.00)A.字符类型B.整数类型C.逻辑类型D.枚举类型6.C+允许在结构中定义函数,这些函数称为( )。(分数:1.00)A.静态函数B.构造函数C.析构函数D.成员函数7.设函数 void inc(int)将形参加 1,如有整型变量 int i=10;则执行 inc(i);后,i 的值为( )。(分数:1.00)A.9B.10C.11D.未知8.下列哪种默认参数的声明是不
3、正确的( )。(分数:1.00)A.int max(int a,int b,int c,int d=0);B.int max(int a,int b,int c=0,int d=0);C.int max(int a=0,int b,int c=0,int d=0);D.int max(int a,int b=0,int c=0,int d=0);9.设 int ; void main() Class * cls ; cls - func(10) ; (分数:4.00)_五、完成程序题(本大题共 5 小题,每题 4(总题数:5,分数:20.00)46.将下面程序补充完整,使程序计算 100 以内
4、所有可被 7 整除的自然数之和。 #include void main() int x=1; int sum=0; while(true) if(x100) 1; if( 2) sum=sum+x; x+; cout void f( 2) if(sizeof(T1)sizeof(T2) x=(T1)y; else y=(T2)x; void main() double x=134.2; int y=22; f(x,y); cout class Class public: static int var; Class() var+ +; ; int Class:var = 0; void main
5、() 各类考试历年试题答案免费免注册直接下载 全部 WORD 文档 全国 2010 年 1 月自考 C+程序设计试题 10 cout class A public: A(); void Show() ; A(); private: static int c; ; int A:c =0; A:A() cout B.“”C.()D.解析:12.一个类拥有多个构造函数,则这些构造函数间为( )。(分数:1.00)A.重载关系 B.重复关系C.拷贝关系D.无关系解析:13.对于拷贝构造函数 point:point(point)解析:23.C+语言中的整数常量有 4 种描述类型:十进制常量、长整型常量
6、、八进制常量和 1。 (分数:1.00)填空项 1:_ (正确答案:十六进制常量)解析:24.声明一个名为 a 的整型引用变量所使用的语句是 1。(分数:1.00)填空项 1:_ (正确答案:int )解析:25.重载的运算符仍保留原有的优先级、 1 和语法结构。 (分数:1.00)填空项 1:_ (正确答案:结合性)解析:26.执行代码 int b=100; coutr; i=2 * PI * r; cout class Class public: void print(int a,int b) cout class Class private: int val; public: void
7、func( int a) val = a; ; void main() Class * cls ; cls - func(10) ; (分数:4.00)_正确答案:(Class *cls cls-func(10) 错误原因:cls 是指针变量,未指向任何对象,不能调用 func函数 修改意见:定义一个 Class 对象,用 cls 指向该对象,如:Class c;Class *cls= if( 2) sum=sum+x; x+; cout void f( 2) if(sizeof(T1)sizeof(T2) x=(T1)y; else y=(T2)x; void main() double x
8、=134.2; int y=22; f(x,y); cout class Class public: static int var; Class() var+ +; ; int Class:var = 0; void main() 各类考试历年试题答案免费免注册直接下载 全部 WORD 文档 全国 2010 年 1 月自考 C+程序设计试题 10 cout class A public: A(); void Show() ; A(); private: static int c; ; int A:c =0; A:A() cout constructor. endl; c+ =10; void
9、 A: :Show() cout c= c destructor. endl; void main() A a,b; a. Show(); b. Show(); (分数:5.00)_正确答案:(结果: constructor. constructor. C=20 C=20 destructor. destructor. )解析:七、程序设计题(本大题共 l 小题,共 10(总题数:1,分数:10.00)53.利用 LOCATION 类,使用继承定义圆类 CIRCLE,圆由圆心和半径构成。提供得到圆心坐标和半径的成员函数、以及计算圆的周长和面积的成员函数。在主程序中创建两个圆 A 和 B,圆心坐
10、标分别为(0,3)、(3,7),按如下格式输出两个圆的圆心坐标、周长和面积,并计算和输出两个圆的圆心之间的距离。 A:(xl,y1,r1),Girth=g1,Area=a1 B:(x2,y2,r2),Girth=g2,Area=a2 A(xl,y1),B(x2,y2),Distance=d 定义 LOCATION 类,该类没有“继承”等现象。注意二维坐标点之间的距离公式。 class LOCATION double x,y; public: virtual double getx()constreturn x; virtual double gety()constreturn y; virtual double dist(LOCATION &s)const; LOCATION(double x,double y):x(x),y(y); double LOCATION:dist(LOCATION s)const double xd=s.x x,yd=s.y y; return sqrt(xd*xd+yd*yd);(分数:10.00)_正确答案:( )解析: