《全国2012年10月自学考试C程序设计试题及答案》由会员分享,可在线阅读,更多相关《全国2012年10月自学考试C程序设计试题及答案(12页珍藏版)》请在金锄头文库上搜索。
1、全国 2012 年 10 月自学考试 C+程序设计试题课程代码:04737选择题部分一、单项选择题(本大题共 20 小题,每小题 1 分,共 20 分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其选出并将“答题纸”的相应代码涂黑。错涂、多涂或未涂均无分。1.使用下列哪一限定符可强制改变访问方式A.const B.short C.1ong D.signed2.下列表达式,哪一是声明 P 为指向常量的指针A.const int *p B.int* const p;C.const int *const p D.int *p3.运算符:叫做A.下标运算符 B.自增运算符 C.成员访问运算
2、符 D.作用域运算符4.如果为一个类定义了自己的构造函数,下列描述正确的是A.系统不再提供默认构造函数,但提供其他构造函数B.系统提供其他非默认构造函数C.系统不再提供默认构造函数D.系统仍提供默认构造函数5.对于类中的成员,使用 protected 修饰,表明该成员的访问权限是A.公有的 B.私有的 C.保护的 D.不可见的6.类不是内存中的物理实体,只有当使用类产生对象时,才进行内存分配,这种对象建立的过程称为A.程序化 B.结构化 C.过程化 D.实例化7.下列关于类的权限描述错误的是A.类本身的成员函数可以访问自己定义的任何成员B.类的对象只能访问公有成员C.普通函数只能通过对象访问类
3、的公有成员D.一个类不能包含另一个类的对象作为成员8.在派生中,访问控制方式没有下列哪种A.publish B.public C.protected D.private9.采用重载函数的目的是A.实现共享 B.减少空间C.提高速度 D.使用方便,提高可读性10.设类 A 中包含若干其他类的对象作为成员,则在定义类 A 的构造函数时,应使用下列哪个符号将 A:A( 参数表) 与成员初始化列表隔开 A., B.; C.: D.11.设存在数组 a,其长度为 Len,则下列哪个泛型算法用于对 a 进行升幂排序A.reverse(a,a+Len); B.sort(a,a+Len);C.find(a,a
4、+Len,value) ; D.copy(a,a+Len,b);l2.函数 int sum(int a=10,int b=15,int c=25);不可与下列哪个函数同时声明A.int sum(int,int,int,int) B.int sum(int,int ,int)C.int sum(double) D.int sum(double,double ,double);13.对函数 int saveName(char * first,char * sec= ,char * thd= )下列调用方法不正确的是A.int s=saveName(1,2,3); B.int s=saveName(
5、1,2);C.int s=saveName(1); D.int s=saveName(1, ,3);14.下列哪个不是函数重载需要满足的条件A.返回值类型不同 B.参数个数不同C.参数个数相同时,参数类型不同 D.函数名相同15.关于对象性质,下列描述错误的是A.同一类对象之间不可相互赋值B.可以使用对象数组C.对象可以用作函数参数D.一个对象可以用作另一个类的成员16.可用作 C+语言用户标识符的一组标识符是A.void,define,+WORD B.a3_b3,_123,YNC.for,-abc ,Case D.2a,DO, sizeof1 7.设函数 int& index(int a,i
6、nt i)返回数组 a 中下标为 i 的元素,如果在整型数组 int array=1,2,3,在执行 index(array,1)+=3 后,array 中各元素值为A.4,2,3 B.1,5,3 C.1,2,6 D.4,5,61 8.对指针动态分配空间用的关键字是A.define B.int C.new D.float19.一个函数功能不太复杂,但要求被频繁调用,应选用A.内联函数 B.重载函数 C.递归函数 D.嵌套函数20.在 int a=3,*p=a;中,*p 的值是A.变量 a 的地址值 B.无意义C.变量 p 的地址值 D.3非选择题部分注意事项:用黑色字迹的签字笔或钢笔将答案写在
7、答题纸上,不能答在试题卷上。二、填空题(本大题共 20 小题,每小题 1 分,共 20 分)21.默认参数是在_函数原型_中说明的,默认参数可以多于 1 个,但是必须放在参数序列的后部。22.类所声明的内容用_花括号_括起来,之间的内容称为类体。23.执行代码 double pi=3.141592;couttemplateT minx(T x,T y)if(xy)x=y; return x;void main()int a;double d;coutclass Peoplepublic:void People() 构造函数不应该制定返回值类型const int age()constreturn
8、 15;char * name()returnGreen; ;void main()const People s;int i=s.age();coutclass Apublic: void show()coutclass Studentint x=0,y=0;类声明成员时不允许初始化 。public:Student()x=1;y=l;Student(int a, int b)x=a;y=b;void get()coutclass Basepublic: virtual void fun()=0; ;class Test:public Basepublic: virtual void fun()
9、couttemplateT func(T x,T y)if(sizeof(T)=8)return _x+y_;elsereturn _x*y_;void main()cout d :47.在下面程序横线处填上适当内容,使程序执行结果为:x=0,y=0x=1,y=2x=10,y=20程序如下:#includeclass Sampleint x,y;public:Sample()_x=y=0;_Sample(_int a ,int b_)x=a;y=b;void disp()coutdisp();48.在下面程序横线处填上适当内容,使程序执行结果为:n=30程序如下:#includetemplat
10、eclass TestT n;public:Test()Test(T i)n=i;Test_operator+_(const Tests)static Testtemp;_temp.n=n+s.n_;return temp;void disp()coutt1(4),t2(5) ,t3;t3=t1+t2;t3.disp();49.在下面程序横线处填上适当内容,使程序执行结果为:n=2,sum=2n=3,sum=5n=5,sum=10程序如下:#includeclass Testint n;static int sum;public:Test(int x)n=x;void add()_sum+=n
11、_;void disp() cout_class b_class Aint i;public:int set(B) ;int get()return i;A(int x)i=x; ;class Bint i;public:B(int x)i=x;_friend_ A; ;int A:set(B&b)return i=b.i;void main()A a(1);B b(2);coutclass Apublic:virtual void printMe()couttemplateT func(T x,T y)if(sizeof(T)=8)return x+y;elsereturn x*y;void
12、 main()cout d :六、程序设计题(本大题共 1 小题,共 10 分)53.设计一个 Bank 类,实现银行某账号的资金往来账目管理,包括建账号、存入、取出等。解:Bank 类包括私有数据成员 top(当前账指针),date(日期) ,money(金额) ,rest(余额)和 sum(累计余额) 。有三个成员函数 bankin()(处理存入账),bankout()处理取出账) 和 disp()(输出明细账)请完成函数的实现。本题程序如下: #include#include#define Max 100class Bankint top;char dateMax10;/日期int moneyMax;/金额int restMax;/余额static int sum;/累计余额public:Bank()top=0; void bankin(char d ,int m)void bankout(char d ,int m)void disp(); ;2012 年 10 月全国自考 C 加加程序设计试题参考答案