c++模拟题(1-4)(22页).doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《c++模拟题(1-4)(22页).doc》由会员分享,可在线阅读,更多相关《c++模拟题(1-4)(22页).doc(22页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-c+模拟题(1-4)-第 22 页模拟题一一、判断对错题(10%)(对,错)( )1自动变量用堆方式创建,它与块共存亡。( )2运算符+=是右结合的。( )3表达式cout99的类型为int。( )4+i是左值,但i+不是左值。( )5YIJ与*(*Y+I)+J不等价。( )6从外部看类的private 成员和protected成员有区别。( )7运算符&不可以重载。( )8基类的protected成员经过protected派生,在派生类中它变成了private成员。( )92.0/-3.0是一个正确的表达式。( )10字符12的ASCII为12。二、填空题(20%)#include typ
2、edef struct node long data; node * next;class stack private: node * head; _ stack(); stack(); void push (_); _ pop(); _ print();stack:stack() head = new _head-next = _ stack:stack()node * p;p = head;while (p)head = head-next;_p = head;void stack:push(long x)node * p = new node;p-data = x;p-next = he
3、ad-next;_ = p;coutPush x ok !next;if(p!=NULL)long x = p-data;head-next = p-next;_coutpop x ok !endl;return x;elsecoutStack is empty !next;coutStack_Topendl;while (p)coutdataendl;_; coutStack_bottomendl;三、简答题(20%)(按条列出论点)1注解。2new运算。3宏定义。4private成员。 5构造函数。四、程序设计题(50%)1写一基于文件流的程序,删除C+源程序中的单行注解。要求:C+源程序
4、文件名和删除单行注解后的文件名均在命令行中给出。2已知AN是整数数组,试以递归函数实现求N个整数之和。3请为Fraction类(分数类)定义下列重载运算符函数(注意函数原型)复合赋值运算+=。等于运算=。插入运算nextdelete p;p=p-next三、简要论述题(20%)本题共20分,每题4分。概念解释正确给2分;论述要求有两条论点,每条给1分(非参考答案中的论点只要正确同样给分)。注解。写程序者为读程序者作的说明。C+编译器把所有的注解视为空白。注解有多行注解(/* */)和单行注解(/)。注解通常用来说明程序或模块的名称、用途、编写时间、编写人、变量说明和算法说明等。new运算。ne
5、w是个单目运算,功能是给程序实体动态地分配空间。语法格式 X类型指针= new X类型。用new 申请空间的同时还可以进行初始化。用new 申请的空间可用delete运算收回。宏定义。宏定义就是用一个宏名字来命名一个字符串。编译预处理时宏名将被用宏体简单替换。使用宏定义可以提高程序的可读性、可修改性与可移植性。宏定义可以带参数。private成员。private成员为类成员的一种类型。private成员只能由类作用域中的函数访问。基类的private成员在派生类中也是不可见的。private成员只能通过public成员访问。构造函数。构造函数是类的一种特殊成员。构造函数用来创建类的对象(实例)
6、。构造函数具有特定的名字与类名相同。构造函数可以重载。四、程序设计题(50%)本题共50分。(第1、2题各10分;第3题有3小题,每小题10,分共计30分。)每题评分细则:函数原型正确3分(函数返回值类型1分,函数参数类型和个数2分)。函数总体结构正确4分(函数的总体结构指主要的循环结构和选择结构)。其他3分(实现的细节)。1#include #include void main(int argc,char * argv)if (argc!=3) exit(1);char c0,c1= ;int k=1;ifstream in(argv1,ios:in|ios:binary);ofstream
7、 out(argv2,ios:out|ios:binary);while (!in.eof()in.read(&c0,1);if( k&c0=/ & c1=/) k=0;if( !k&c0=x0d ) k=1;if( k&c1=/ & c0!=/) out.write(&c1,1);if( k&c0!=/) out.write(&c0,1);c1=c0;in.close();out.close();2int tga(int *a,int n)if(n1) return (0);else return(an-1+tga(a,n-1);3fraction& fraction:operator +=
8、(fraction & f)fz = fz*f.fm+fm*f.fz;fm = fm*f.fm;return *this;int operator =(fraction & f1,fraction & f2)if (f1.fz=f2.fz & f1.fm=f2.fm)return 1;elsereturn 0;ostream & operator(ostream & os,fraction & f)osf.fz/f.fmendl;return os;模拟题二一、判断对错题(10分)(对,错)( )1在类定义中不允许对所定义的数据成员进行初始化。( )2程序中不能直接调用构造函数,在创建对象时系
9、统自动调用构造函数。( )3从外部看类的private 成员和protected成员没有区别。( )4可以将派生类对象赋给基类对象,也可以将基类对象赋给派生类对象。( )5构造函数和析构函数都不能为虚函数。( )6+按列优先存放数组元素。( )71/2的值等于0.5。( )8基类的protected成员经过protected派生后,在派生类中仍为protected成员。( )9所有运算符都可以重载。( )10表达式cout99的类型为int。二、单项选择题(20分) 1下列有关类的说法不正确的是( )。A. 类是一种用户自定义的数据类型B. 只有类中的成员函数才能存取类中的私有数据C在类中,如
10、果不作特别说明,所有的数据均为私有类型D. 在类中,如果不作特别说明,所有的成员函数均为公有类型2在C+程序中,对象之间的相互通信通过( )。 A.继承实现 B.调用成员函数实现 C.封装实现 D.函数重载实现3对于任意一个类,析构函数的个数有( )。A.0 B.1 C.不确定 D.4在下列各函数中, 不是类的成员函数的是()。A. 构造函数 B. 析构函数 C. 友元函数 D. 拷贝构造函数5在多基继承的构造函数定义中,几个基类的构造函数之间用( )分隔。: ;,:6若类和类的定义如下:class Aint i,j;public:void get();class B: A int k;pub
11、lic:void make(int );void B:make(int j) k = i*j;则上述定义中,非法的表达式是( )。A.void get(); B.int k; C.void make(int ) D.k=i*j;7已知:print函数是一个类的常成员函数,它无返回值,下列表示中正确的是()。A.const void print() B.void const print() C.void print(const) D.void print()const8在类外部可以用p.a的形式访问派生类对象p的基类成员a,则a应是( )。A.私有继承的公有成员 B.公有继承的私有成员C.公有继
12、承的保护成员 D.公有继承的公有成员9下列关于运算符重载的描述中,正确的叙述是( )。A. 运算符重载可以改变运算数的个数B. 运算符重载可以改变语法结构C. 运算符重载可以构造新的运算符D. 运算符重载不可以改变优先级和结合性10下列带缺省值参数的函数说明中,正确的说明是( )。Aint Fun(int x=1,int y=2,int z);Bint Fun(int x,int y=2,int z=3);Cint Fun(int x,int y=2,int z);Dint Fun(int x=1,int y,int z=3);三、完成程序题:根据题目要求,完成程序填空。(20分)1本程序在3
13、位正整数中寻找符合下列条件的整数:它既是完全平方数,又有两位数字相同,例如144,676等。用程序找出所有满足上述条件的3位数并输出。int flag(int a,int b,int c) return !( _)*(_)*(_);void main()int n,k,a,b,c;for(k=1;k+) _; if(n999)_;a=n/100;b=(n/10)%10;c=n%10;if(flag(a,b,c) coutn=k*kendl;2类CPoint中的成员函数Init的功能是用已知对象给另一对象赋值,请将其补充完整。 class CPointint x,y;public:CPoint(
14、int i,int j) x = i; y = j; void Init(CPoint & k)if(_) return;/防止自身赋值 _=k;3. 补充以下类,使其能正确运行。#include class Pprivate:int x1,x2;static int y; public:P(_) x1 = i; x2 = j; _=0; /对静态成员y赋值void main()P data20;4在下面程序横线处填上适当的字句,使其输出结果为0,56,56。#include class basepublic:int func() return 0; class derived:public
15、basepublic:int a,b,c;setValue(int x,int y,int z) a = x; b = y; c = z; int func() return(a+b)*c; void main() base b;derived d;coutb.func(),;d.setValue(3,5,7);coutd.func(),;base& pb=d;coutpb.func()end1;四、程序分析题:给出下面程序输出结果。(15分)1 include int f(int i)return -i; int g(int & i) return -i;void main( )int a,
16、b,c,d,e; a = b = c = d = 10; a += f(g(a); b += g(e=g(b); c += g(e=f(c); d += f(f(d);couta=aendl;coutb=bendl; coutc=cendl;coutd=dendl;coute=eendl; 输出为:2 #include class Sampleint x; public: Sample(int a) x = a; friend double square(Sample & s); double square(Sample & s) return s.x*s.x; void main()Samp
17、le s1(20);Sample s2(30); couts1.square=square(s1)endl; couts2.square=square(s2)endl;输出为:3#include class base1int x;public:base1(int i) x = i; coutbase1 constructor called!endl; base1()coutbase1 destructor called!endl;class base2int y;public:base2(int i) y = i; coutbase2 constructor called!endl; base
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c+ 模拟 22
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内