《C程序语言模拟期末考试试卷(一)附答案.pdf》由会员分享,可在线阅读,更多相关《C程序语言模拟期末考试试卷(一)附答案.pdf(19页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C+模拟试卷(一)、C2、D3、B4、A 5、C 6、D 7、D 8、D 9、CIO、A11、C 12、B 13、B 14、C 15、D 16、D 17、D 18、A 19、C20、C一、单项选择题(共20题,每题1分,共20分)I、下列关于C+标识符的命名不合法的是(C)A.Pad B.name_l C.A#bc D._al22、若有以下类型标识符定义:(D)int x=2;char w=a;float y=23.45f;doublez=45.6712;则表达式w*x+y-z的结果类型是A.float B.char C.int D.double?I I:3X若有intx=10,y=20,z=
2、30;则执行下面语句后,x 的值是if(xy)(B)z=x;x=y;y=z;A.10 B.20 C.30 D.04、循环语句whlie(int i=0)i-;的循环次数是A.0 B.1 C.5 D.无限5、一个函数无返回值时,应选择的说明符是 CA.static B.extern C.void D.无说明符6、对重载函数形参的描述中,错误的是 DA.参数的个数可能不同B.参数的类型可能不同C.参数的顺序可能不同D.参数的个数、类型、顺序都相同,只是函数的返回值类型不同?、以下能正确定义数组并正确赋初值的语句是DA.int N=5,bNN;B.int a2=l,3,4,5);C.intc2=l,
3、2z3,4);D.int d32=l,2,3,4;8、下列给字符数组进行的初始化中,不 正 确 的 是 DA.char sl=abcd;B.chars23=x7y,0;C.chars3=a,x,yz,0;D.char s46=xyz,mnp);9、通常的拷贝构造函数的参数是 CA.某个对象名B.某个对象成员名C.某个对象的引用D.某个对象的指针名10、关于构造函数特点的描述中,错误的是 AA.定义构造函数必须指出类型B.构造函数的名字与该类的类名相同C.一个类中可定义0至多个构造函数D.构造函数是一种成员函数11、下面程序的运行结果为 C#include int add(int a,int b
4、);void main()(extern int x,y;cout add(x,y)a表示从键盘上读入一个到数组a中。3、若希望用一个已有对象来构造另一个同类型的对象,可以使用 来实现。4、静 态 成 员 属 于 ,而 不 属 于 ,它被同一个类的所有对象共享。5、类的继承方式有继承、继承和继承。6、重载运算符的含义必须清楚,不能有o7、按照联编进行阶段的不同,联编方法可分为两种:和 O8、当基类中的某个成员函数被声明为虚函数后,此虚函数就可以在一个或多个派生类中被重新定义,在派生类中重新定义时,其函数原型,包括返回类型、参数类型以及参数的顺序都必须与基类中的原型完全相同。9、C+的I/O是以
5、的形式实现的,每个C+编译系统都带有一个面向对象的输入/输出软件包,这就是。三、判断题(共10题,每题I分,共10分)1、C+语言支持封装性和继承性,不支持多态性。2、关系运算符可以用来比较两个字符的大小,也可用来比较两个字符串的大小。)3、字符串sdfgh的长度是5。4、引用和指针都可作函数参数。5、友元函数说明在类体内,它是一种成员函数。6、友元类必须被说明为公有成员。7、纯虚函数是在基类中说明的虚函数,它在该基类中没有定义具体的操作内容。8、析构函数不能被继承。9、运算符重载以后,其优先级和结合性都不能改变。10、在C+中,函数名实际上是一个指针,它指向函数的入口。四、分析程序,回答所提
6、出的问题(16分)1、#include class B;class A(public:A(int i)a=i;friend int F(A&fl,B&f2);private:int a;);class B(public:B(int i)b=i;friend int F(A&fl,B&f2);private:int b;);int F(A&fl,B&f2)(return(fl.a+f2.b)*(fl.a-f2.b);)void main()(A nl(10);B n2(8);coutF(nl,n2)endl;)写出程序的运行结果。该程序中共有几个对象分别属于哪个类?为什么在程序的开头处通过语句c
7、lass B;对类B进行声明?程序中的哪两条语句会分别调用A、B的构造函数?写出这两个构造函数。函 数F是什么函数?它的作用是什么?五、阅读程序,写出运行结果(共2题,第1题6分,第2题8分,共14分)1、#include int func(int a)(int b=0;static int c=4;b+;c;return(a+b+c);)void main()(int a=2;for(int j=0;j2;j+)coutfunc(a+j)输出结果为:2、#include class X(public:X(int i)x=i;coutz,int:if/M callednM;X(double i
8、)x=(int)i*2;cout/zdouble:if/calledn,/;X()cout X():x#/calledn/,;private:int x;;void main()(int a=8;double b=11.0;X xl(55),x2(a*5);Xx3=X(2*a);X x4=X(b);输出结果为:六、编写程序(共2题,第1题10分,第2题14分,共24分)1、输入一组数据以-1作为结束标志,要求删除其它数据只保留能被2整除的数据并输出结果。2、定义一个日期类D ate,包含年、月、日三个数据成员,以及一个求第二天日期的成员函数和输出日期的成员函数。模拟试卷(一)答案一、单项选择题
9、1、C2、D3、B4、A 5、C 6、D 7、D 8、D 9、CIO、A11、C 12、B 13、B 14、C 15、D 16、D 17、D 18、A 19、C20、C二、填空题1、形参的类型形参的个数2、字符串3、拷贝构造函数4、类任何一个对象5、public(或公有)private(或私有)protected(或保护)6、二义性7、动态联编静态联编8、函数名参数个数9、字节流I/O流类库三、判断题1、X 2、X 3、V 4、V 5、X 6、X 7、V 8、V 9、V 10V四、分析程序,回答所提出的问题(平分标准:每间4分,共16分)36n l和n 2两个对象,n l属于A类,n2属于B类
10、。因为B类的定义在A类后,而A类中要引用B类。语 句A nl(10);和语B n2(8);A类的构造函数:A(int i)a=i;B类的构造函数:B(int i)b=i;函 数F是友元函数。它的作用是:提供了不同类或对象的成员函数之间、类的成员函数与一般函数之间共享数据的机制。(关键答出共享数据、或答出通过友元可以访问到封装与类A、B中的数据)五、阅读程序,写出运行结果1、输出结果为:6 62、输出结果为:int:55,calledint:40,calledint:16,calleddouble:ll,calledx:22,calledx:16,calledx:40,calledx:50,ca
11、lled六、编写程序1、输入一组数据以-1作为结束标志,要求删除其它数据只保留能被2整除的数据,并输出结果。#include void main()(int b50,x,n=0;cin x;while(x!=-l)(b+n=x;cin x;)for(int i=l,j=O;i=n;i+)if(bi%2=0)b+j=bi;for(i=l;i=j;i+)coutbi t;coutendl;2、定义一个日期类Date,包含年、月、日三个数据成员,以及一个求第二天日期的成员函数和输出日期的成员函数。#include class Date(private:int year,month,day;public:Date(int y,int m,int d)(yearly;month=m;day=d;)void nextdayO;void displayOcout year 7 month 7 day totaldaysleap month-1)(day=l;month+;if(month12)(month=l;year+;)void main()int d,m,y;cout y m d;Date dl(y,m,d);cout今天是:dl.displayO;dl.nextdayO;cout明天是:dl.displayO;)
限制150内