《C程序设计试题及答案2012》由会员分享,可在线阅读,更多相关《C程序设计试题及答案2012(12页珍藏版)》请在金锄头文库上搜索。
1、第 1 页 共 12 页2012年1月高等教育自学考试全国统一命题考试C+程序设计 试题课程代码:04737考生答题注意事项:1.本卷所有试卷必须在答题卡上作答。答在试卷和草稿纸上的无效。2.第一部分为选择题。必须对应试卷上的题号使用2B铅笔将“答题卡”的相应代码涂黑。3.第二部分为非选择题。必须注明大、小题号,使用0.5毫米黑色字迹笔作答。4.合理安排答题空间,超出答题区域无效。一、单项选择题(本大题共20小题,每小题1分,共20分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的 括号内。错选、多选或未选均无分。 1.如声明对象数组,则下列描述正确的是 A.对每
2、个元素均调用一次构造函数 B.部分元素调用构造函数,其它元素不需调用 C.均不需要调用构造函数 D.只是首元素调用构造函数 2.不同对象调用同一成员函数时,this指针指向 A.不同对象B.相同对象 C.无对象D.不确定 3.设存在函数int max(int,int)返回两参数中较大值,若求22,59,70三者中最大值,下列表达式正确的是 A.int m=max(22,max(59,70); B.int m=max(max(22,59),max(59,70); C.int m=max(max(22,70),59); D.以上皆正确 4.一个类可拥有多少个构造函数 A.0个B.1个 C.1或多个
3、D.以上皆对 5.在编译指令中,嵌入指令是指 A.#includeB.#define C.#if D.#else 6.设存在数组a,其长度为Len,下列哪项操作是将a中元素复制到数组b中 A.reverse(a+a,Len,b);B.sort(a,a+Len,b); C.find(a,a+Len,b);D.copy(a,a+Len,b); 7.下列哪个要素不是面向对象的关键要素 A.模块化B.抽象性 C.封装性D.继承性 8.下列对于类的描述错误的是 A.类要先声明后使用第 2 页 共 12 页B.类是具有唯一标识的实体 C.两个类可以使用同一个名称 D.组成类的不仅有数据,还可以有对数据进行
4、操作的函数 9.使用引用调用方式将实参传给形参,下列说法正确的是 A.形参是实参的备份B.实参是形参的备份 C.形参和实参共享同一对象D.形参和实参无联系 10.关于对象的性质,下列描述错误的是 A.同一类对象之间可相互赋值 B.不能使用对象数组 C.对象可以用作函数参数 D.一个对象可以用作另一个类的成员 11.类的私有成员可在哪里被赋值 A.类体中B.该类的成员函数中 C.A和B D.以上都不是 12.设存在数组a,其长度为Len,则下列哪个泛型算法用于反转a中各元素 A.reverse(a,a+Len);B.sort(a,a+Len); C.find(a,a+Len,value);D.c
5、opy(a,a+Len,b); 13.用于标识八进制常量的前缀或后缀是 A.无B.后缀L或1 C.前缀零D.前缀Ox 14.派生类中继承的基类成员初始化如何进行 A.由派生类构造函数调用基类的构造函数进行 B.由派生类构造函数进行 C.由基类构造函数进行,无需派生类构造函数调用 D.以上皆不正确 1 5.对于多重继承,下列描述正确的是 A.所有基类使用相同的派生方式B.每个基类可使用不同派生方式 C.只能是public派生D.只能是protected派生 16.下列关于类的权限描述错误的是 A.类本身的成员函数可以访问自身的任何成员 B.类的对象可以访问该类的所有成员 C.普通函数不能直接访问
6、类的公有成员,必须通过成员函数对其访问 D.一个类可以将另一个类的对象作为成员 17.运算符delete与哪个函数一起运行 A.构造函数B.析构函数 C.主函数D.不与任何函数一起工作 18.一个类可以获得另一个类的特性的机制称为 A.抽象B.封装 C.继承D.多态性 19.使用下列哪个格式控制符可设置转换十六进制为十进制 A.decB.oct C.hex D.endl 20.对引用调用描述正确的是 A.分配新存储空间第 3 页 共 12 页B.修改已存储空间的名称为引用名 C.引用名与已存在存储空间无任何关联 D.将引用名标识符与一块已存在储区域相关联,没有分配新存储空间 二、填空题(本大题
7、共20小题,每小题1分,共20分)请在每小题的空格中填上正确答案,错填、不填均无分。 21.公共派生中,基类的公有成员在派生类中是_public_。 22.若要使用标准输入流机制从键盘输入一个整数赋给整型变量a,相应的C+语句是_cin a;_。 23.UML中对象行为之间的动态关系是通过对象行为之间的依赖关系表现的,称之为_消息 连接_。 24.C+函数中按引用调用传递参数时使用_对象地址_作为参数。 25.在C+中除具有_循环_语句和switch语句的函数外,其它函数都可以说明为内联函 数。 26.C+中规定模板以_template_关键字和一个形参表示开头。 27.构造函数不能被继承,一
8、个派生类只能调用它的_直接_基类的构造函数。 28.vector类中用于获取存放的元素个数的方法是_size_。 29.C+中istream类的直接基类是_ios类_。 30.要关闭一个文件输出流对象myFile,所用的C+语句是_myFile.close()_。 31.执行下列代码 double pi=3.141592 cout main() int x=9,y=8,z=7; const int * p=z;变量给指针P赋值必须加上_ Samplei class Sample int x; public: Sample( ) ; _Sample(int a)_x=a;_Sample(Samp
9、le &a)_x=a.x+ +10; void disp( )cout using namespace std; void main() char a50;memset(a,0,sizeof(a); int i=0,j; char t; cin.getline(a,50, n; for(i=0,j=strlen(a)-1;i class example int a; public: example(int b)a=b+; void print( )a=a+1;cout class Sample int x,y; public: Sample( )x=y=0; Sample(int a,int
10、b)x=a;y=b; Sample() if(x=y) cout class Sample int n; static int sum; public: Sample(int x)n=x; void add( )sum+=n; void disp( ) cout class A private:第 9 页 共 12 页friend class B; A(int val=0):data(val),use(1) int use,data; ; class B public: A*pa; B(int val=0):pa(new A(val) B( )if( - pa -use=0)delete pa
11、; B(Brhs) + + rhs -use;pa=rhs.pa; Boperator=(Brhs);A*operator -( )return pa; void Display( )coutdata useuse = =0)delete pa; + + rhs -use; pa=rhs.pa; return * this; int main( ) B b1(1),b2(b1),b3(3); b1.Display( ); b2.Display( ); b3.Display( ); b3=b1; b1.Display( ); b3.Display( ); return 0; 答: data=1,
12、use=2 data=1,use=2 data=3,use=1 data=1,use=3 data=1,use=3 六、程序设计题(本大题共1小题,每小题10分,共10分) 55.已知一个student类,包括学姓名,成绩和等级,不含任何成员函数.process为学生信息处 理类. class student第 10 页 共 12 页char name 10 ; int deg; char level 7 ; friend class process: public: student(char na ,int d)strcpy(name,na);deg=d; ; class process public: void trans(student s )/根据学生成绩计算学生等级(优大于89分,良大于79分,中大于69分,及格大于5 9分,不及格小于60分). void disp(student s )./根据成绩降序打印所有学生信息 ; 要求实现process类中的两个函数:第 11 页 共 12 页第 12 页 共 12 页