c++模拟题(1-4)

上传人:夏** 文档编号:561826146 上传时间:2023-03-17 格式:DOC 页数:26 大小:91.51KB
返回 下载 相关 举报
c++模拟题(1-4)_第1页
第1页 / 共26页
c++模拟题(1-4)_第2页
第2页 / 共26页
c++模拟题(1-4)_第3页
第3页 / 共26页
c++模拟题(1-4)_第4页
第4页 / 共26页
c++模拟题(1-4)_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《c++模拟题(1-4)》由会员分享,可在线阅读,更多相关《c++模拟题(1-4)(26页珍藏版)》请在金锄头文库上搜索。

1、模拟题一一、判断对错题(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 typedef struct node l

2、ong 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 = head-next;_ = p;cout

3、Push 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运算。new是个单目运算,功能是给程序实体动态

5、地分配空间。语法格式 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 out(argv2,ios:out

7、|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 +=(fraction & f)fz =

8、 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程序中不能直接调用构造函数,在创建对象时系统自动调用构造函数。( )3从外部看

9、类的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;public:void make(i

11、nt );/.;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.公有继承的保护成员 D.公有继承的公有成员9下列关于运算符重载的描述中,正确的叙述是( )。A. 运算符重载可以改变运算数的个数B. 运算符重载可以改变语法结构C. 运算符重载可以构造新的运算符D. 运算符重载不可以改变优先级和结合性10下列带缺省值参数的函数说明中,正确的说明是(

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 习题/试题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号