c++模板及应用习题答案
安全员C类习题库+参考答案

安全员C类习题库+参考答案1、明开槽槽深超过 2.5m 时,边坡中部应留平台,如在平台上打井点,则其宽度应不小于()m。
A、1B、0.5C、2D、1.5答案:C2、汽车式起重机作业中,禁止下列哪种操作。
()A、回转B、向上变幅C、起升D、调整支腿答案:D3、《消防法》规定,进行()等具有火灾危险的作业的人员和自动消防系统的操作人员,必须持证上岗,并严格遵守消防安全操作规程。
A、木工B、油漆C、电焊、气焊D、防水答案:C4、使用物料提升机时,下列不正确做法是()。
A、作业中吊笼下方严禁人员停留或通过B、休息时,应将吊笼降至地面C、操作人员应持有职业技能鉴定证书D、作业中操作人员不得离开操作岗位答案:C5、程设计的修改由()负责,建筑施工企业不得擅自修改工程设计。
A、资质许可的设计单位B、建设单位认可设计单位C、原设计单位D、有资质的设计单位答案:C6、混凝土泵敷设向下倾斜的输送管道时,应在泵与斜管之间敷设长度不小于()落差的水平管。
A、4 倍B、6 倍C、3 倍D、5 倍答案:D7、水泥凝土面层采用滑模式摊铺机摊铺时,其他机械牵引摊铺机时应用()。
A、尼龙绳B、钢丝绳C、刚性拖杆D、无论任何牵引机械答案:C8、施工现场安全标志布置总平面图应由绘制人员签名,()审批.A、项目技术负责人B、项目专职安全生产管理人员C、项目负责人D、企业技术负责人答案:C9、根据《建筑施工企业安全生产管理规范》,建筑施工企业新进场的工人必须接受不少于()的班组级安全教育培训。
A、50 学时B、35 学时C、15 学时D、20 学时答案:D10、在建的建筑工程因故中止施工的,建设单位应当自中止施工之日起()月内,向发证机关报告,并按照规定做好建筑工程的维护管理工作。
A、三个B、一个C、两个D、六个答案:B11、下列影响人操作可靠性的因素中不属于人的因素为()。
A、噪声B、反应能力C、训练程度D、人体尺寸答案:A12、附着式升降脚手架支座与建筑物主体结构连接处所需要的建筑结构混凝土强度应由计算确定,且不得小于()A、C35B、C30C、C10D、C25答案:C13、根据《建筑行业职业病危害预防控制规范》,施工现场应配备受过专业训练的急救员,超过()人的工程项目应配备急救室。
面向对象的程序设计语言――C++(第二版)-习题参考答案

面向对象的程序设计语言――C++(第二版)-习题参考答案课后习题答案以及代码习题参考答案第1章1.填空题C++语言概述(1)函数说明,函数体(2)声明区,主程序区,函数定义区(3)多态性(4)namespace,using(5)std(6)cin,(7)//(8)对数据的操作2.判断题(1)对(2)错(3)错(4)错(5)错3.改错题(1)没有函数体,应改为void main() {};(2)语句没有分号,应改为using namespace myspace;(3)cout和操作符共同完成输出的功能,应改为cout“ Input your name:";(4)应改为#include iostream.h4.简答题5.编程题(略)(略)第2章1.选择题基本数据类型、运算符与表达式(1)B (2)D (3)B (4)D (5)B课后习题答案以及代码2.简答题(1)(a)、(c)(e)、(f)、(g)、(h)、(i)(2)(a)、(g)、(i)、(j)(3)(a)5.5(b)0(c)20(d)0,0(e)1(f)1,2(g)3(h)-40(i)2(j)3(k)s1='0's1='9'(l)N!=03.读程序写结果(1)0,15(2)(1、1、1),(-1、-1、-1)(3)(a)a*a+2*a*b+b*b(b)4.0/3.0*3.__-__R*R*R(c)5.0/9.0*(F-32)(d)b=ab=c(4)364143(5)x=14.编程题(略)第3章1.选择题(1)B (2)A (3)A (4)C2.判断题(1)错(2)对(3)对(4)错3.读程序写结果(1)C++的控制语句5)A 5)错((课后习题答案以及代码12 23 3 34 4 4 45 5 5 5 5(2)11 2 11 2 3 2 11 2 3 4 3 2 11 2 3 4 5 4 3 2 1(3)j的值为0;i的值为2;4.编程题(略)第4章1.填空题函数(1)void(2)静态全局变量,static(3)函数重载(4)inline(5)递归函数(6)宏定义命令,文件包含命令,条件编译命令2.判断题(1)错(2)错(3)错(4)错(5)错(6)对(7)错(8)错(9)对(10)对3.读程序写结果(1)x=7,y=4x=9,y=5(2)34.56101(3)162228(4)12 15 18 21 24课后习题答案以及代码(5)2,1,4,1,3,2,1,4.简答题5.编程题(略)(略)第5章1.选择题构造数据类型(1)C (2)D (3)A (4)B (5)C 2.判断题(1)错(2)对(3)对(4)错(5)错3.读程序写结果(1)153(2)422 5 6 8 10(3)__,21(4)419(5)6904(6)43214.编程题(略)第6章1.填空题(1)类,对象,类(2)数据成员,成员函数(3)不能(4)private,protected,public,private (5)成员函数类和对象课后习题答案以及代码(6)friend(7)类名,作用域运算符(8)对象名.成员名,指针变量名-成员名,(*指针变量名).成员名(9)构造,析构,构造,析构(10)常量数据,引用数据(11)全局,数据类型,所属的类(12)常成员,只读(13)成员,友元(14)类数据成员,类成员函数(15)this(16)浅拷贝2.选择题(1)C (2)C (3)B (4)C (5)B(6)C (7)D (8)B (9)C (10)D(11)A (12)C (13)D (14)D (15)B3.改错题(1)man1.salary=1000.00; 不能在类外访问类的私有成员(2)float r=0;和float c=0; 类本身是抽象的,不能在类的定义体中给其数据成员赋值}后缺少分号“;”(3)成员函数void setdata(float x1,float y1,float r);没有实现(4)构造函数名point()应与类名同名,为Point没有头文件包含#include iostream.h4.读程序写结果题(1)x=0,y=0x=100,y=200(2)x=100,y=200x=1000,y=2022年t=3.14(3)Sta::fun2()=10s.fun2()=11r.a=20(4)Constructor1 called!x=0Constructor2 called!x=100Destructor called!Destructor called!(5)课后习题答案以及代码575.简答题6.编程题(略)(略)第7章1.填空题(1)继承(2)基类,派生类(3)private,protected,public,private (4)不可访问,保护,公有(5)私有(6)单(一),多(重)(7)赋值兼容规则(8)静态,动态(9)抽象类2.选择题继承和派生(1)B (2)A (3)B (4)C (5)B (6)A (7)D (8)B (9)B (10)B(11)D (12)B3.改错题(1)本题的错误主要是数据成员的访问权限问题:基类的私有成员在派生类中不可访问,如fb()函数中的a3=30;语句;类的私有和保护成员在类外不能访问,如main函数中的x.a2 =20;.a3=30; ,y.a2=200; ,y.a3=300; ,y.b2=2022年;和y.b3=3000;语句。
安全员C类练习题库含参考答案

安全员C类练习题库含参考答案一、单选题(共10题,每题1分,共10分)1、遇到顶进系统发生故障或在拼管子前(),即应发出信号给工具管头部的操作人员,引起注意。
A、15mmB、10mmC、5mmD、20mm正确答案:D2、支模、粉刷、砌墙等各工种进行上下立体交叉作业时,不得在()方向上操作。
A、同一横面B、不同垂直C、垂直半径D、同一垂直正确答案:D3、《建筑设计防火规范》规定消防车道的宽度不应小于()米。
A、3B、5C、3.5D、10正确答案:C4、长期停用或可能受潮的电动机,在使用前应测量绕组间和绕组对地的绝缘电阻,绝缘电阻值应大于()。
A、5.0MΩB、0.5MΩC、0.5KΩD、0.5Ω正确答案:B5、违反《建筑施工企业安全生产许可证管理规定》,安全生产许可证有效期满未办理延期手续,继续从事建筑施工活动的,责令其在建项目停止施工,限期补办延期手续,可并处()的罚款。
A、2 万元以下B、1 万元以上 5 万元以下C、5 万元以上 10 万元以下D、10 万元以上 30 万元以下正确答案:C6、施工现场中分配电箱与开关箱的距离不得超过()。
A、20mB、30mC、40mD、45m正确答案:B7、扣件式钢管模板支架的剪刀撑应用旋转扣件进行固定,旋转扣件中心线至主节点的距离不应大于()。
A、450mmB、200mmC、150mmD、300mm正确答案:C8、下列关于故障维修后的高处作业吊篮重新启用的陈述,正确的一项是()。
A、即可使用B、经进行检查验收后即可使用C、应拆除D、应重新进行检查验收,合格后方可使用正确答案:D9、同一建筑施工企业在 12 个月内连续发生()次生产安全事故,将吊销安全生产许可证。
A、5B、3C、6D、4正确答案:B10、脚手架工程施工前,应当由()向作业人员进行安全技术交底。
A、项目专职安全管理人员B、项目安全监理工程师C、项目技术人员D、作业班组负责人正确答案:C二、多选题(共50题,每题1分,共50分)1、当使用()时,脚手板放置在横向水平杆上,纵向水平杆应作为横向水平杆的支座,用直角扣件固定在立杆上。
高考数学试卷模板及答案

一、选择题(本大题共10小题,每小题5分,共50分。
在每小题给出的四个选项中,只有一项是符合题目要求的。
)1. 已知函数f(x) = 2x - 3,则f(2)的值为:A. 1B. 3C. 5D. 7答案:C2. 下列各数中,有理数是:A. √2B. πC. 1/3D. -√3答案:C3. 已知等差数列{an}的前三项分别为2,5,8,则该数列的公差为:A. 1B. 2C. 3D. 4答案:B4. 若log2x + log2(x + 2) = 3,则x的值为:A. 2B. 4C. 8D. 16答案:B5. 函数y = x^2 - 4x + 4的图像与x轴的交点个数为:A. 1B. 2C. 3D. 4答案:A6. 若sinA + sinB = 1,cosA + cosB = 1,则sin(A + B)的值为:A. 0B. 1C. -1D. 不确定答案:A7. 已知向量a = (2, 3),向量b = (3, 4),则向量a与向量b的夹角余弦值为:A. 1/2B. 1/√2C. √2/2D. 1答案:C8. 在△ABC中,角A、B、C的对边分别为a、b、c,若a^2 + b^2 = 2c^2,则△ABC为:A. 锐角三角形B. 直角三角形C. 钝角三角形D. 等腰三角形答案:B9. 已知函数y = ax^2 + bx + c的图像开口向上,且过点(1, 4),则a的取值范围为:A. a > 0B. a < 0C. a ≥ 0D. a ≤ 0答案:A10. 若log2x - log2(2x - 1) = 1,则x的值为:A. 2B. 4C. 8D. 16答案:B二、填空题(本大题共5小题,每小题5分,共25分。
)11. 已知等差数列{an}的首项为2,公差为3,则第10项a10的值为______。
答案:a10 = 2 + 9d = 2 + 9×3 = 2912. 函数y = log2x + 3的图像向右平移2个单位后,得到的函数解析式为______。
专职安全生产管理人员综合类C证(初证)练习题含参考答案

专职安全生产管理人员综合类C证(初证)练习题含参考答案一、单选题(共40题,每题1分,共40分)1、单梯不得垫高使用,使用时应与水平面成75°夹角,踏步不得缺失,其间距宜为()OA、200mmB N300mmC>150mmD、25Omm正确答案:B2、监督机构应当按照有关规定,将工程质量安全监督中发现的涉及主体结构安全和主要使用功能的工程质量问题及整改情况,及时向()。
A、上级监督机构报告B、建设行政主管部门汇报C、社会公布D、建设单位通报正确答案:C3、石材幕墙金属骨架安装,如有焊接时,应对下方和邻近的已完工装饰面进行成品保护。
焊接时要采用(),以减少因焊接产生的变形。
A、分段退焊B、对称焊C、跳焊D、交替焊正确答案:B4、扣件式脚手架中,()的作用是连接两根任意角度相交的钢管扣件、用于连接支撑斜杆与立杆或横向水平杆的连接件。
A、直角扣件B、旋转扣件C、转角扣件D、对接扣件正确答案:C5、纵向水平杆采用对接扣件连接或搭接时,各接头中心至最近主节点的距离不应大于()的1∕3oA、纵距B、步距C、横距D、层高正确答案:B6、《立法法》第九十四条规定,法律之间对同一事项的新的一般规定与旧的特别规定不一致,不能确定如何适用时,由()裁决。
A、制定机关B、国务院C、全国人民代表大会常务委员会D、法院正确答案:C7、下限位器应在吊钩不能再下降或卷筒上钢丝绳只剩()圈时应能立即停止下降运动。
A、2B、1C、3D、O正确答案:B8、幕墙工程施工,按()可分为玻璃幕墙、石材幕墙、人造板材幕墙、组合面板幕墙。
A、面板材料B、面板质地C、面板材质D、保温材料正确答案:A9、门式脚手架通道口高度不宜大于()个门架高度。
A、4B、3C、2D、1正确答案:C10、小车变幅的塔机,限位开关动作后应保证小车停车时其端部距离缓冲装置最小距离()mm。
A、200B、800C、1000D、500正确答案:D11、《上海市建设工程施工安全监督管理办法》规定,施工单位使用施工机械、机具和电气设备,在使用期间,应当指定()负责维护、保养,保证其完好、安全。
大专毕业试题模板及答案

大专毕业试题模板及答案一、选择题(每题2分,共10分)1. 以下哪项不是计算机的主要组成部分?A. CPUB. 内存C. 硬盘D. 打印机答案:D2. 计算机网络的拓扑结构不包括以下哪一项?A. 星型B. 环型C. 总线型D. 混合型答案:D3. 在HTML中,以下哪个标签用于定义最重要的标题?A. <h1>B. <h2>C. <h3>D. <h4>答案:A4. 在Excel中,以下哪个函数用于计算一组数值的平均值?A. SUMB. AVERAGEC. COUNTD. MAX答案:B5. 在Word文档中,以下哪个快捷键用于保存文档?A. Ctrl + SB. Ctrl + CC. Ctrl + VD. Ctrl + X答案:A二、填空题(每题2分,共10分)1. 在Windows操作系统中,______键用于打开开始菜单。
答案:Win2. 在Word文档中,______视图模式用于查看文档的打印效果。
答案:打印布局3. 在Excel中,单元格地址A1表示的是第______行第______列。
答案:1,14. 在HTML中,______标签用于定义文档的标题。
答案:<title>5. 在计算机网络中,______协议用于将数据包从源地址传输到目的地址。
答案:TCP/IP1. 请简述计算机病毒的特点。
答案:计算机病毒具有传染性、破坏性、隐蔽性、潜伏性等特点。
2. 请解释什么是云计算,并给出至少两个云计算的应用场景。
答案:云计算是一种通过互联网提供计算资源和服务的模式,用户可以按需获取资源。
应用场景包括在线办公软件和在线存储服务。
3. 请描述HTML和CSS在网页设计中的作用。
答案:HTML用于构建网页的结构和内容,而CSS用于设置网页的样式和布局。
4. 请说明在Word文档中如何插入页眉和页脚。
答案:在Word文档中,可以通过“插入”选项卡中的“页眉”和“页脚”功能来插入页眉和页脚。
安全员C3类练习题(含答案)

安全员C3类练习题(含答案)一、单选题(共52题,每题1分,共52分)1.焊接气瓶除了由瓶体、瓶阀、瓶帽、底座、防振圈组成外,一般还有()。
A、爆破膜B、手轮C、护罩D、压紧螺母正确答案:C2.塔机的任何部位与输电线路的距离不得小于()m。
A、2B、1C、3D、4正确答案:B3.某施工企业,其安全生产条件单项得分分别为:90 分、85 分、68 分和88 分,且分项评分表中无实得分为 O 分的子项,试确定该企业安全生产条件单项评价等级()。
A、不合格B、优良C、基本合格D、合格正确答案:C4.根据规范 GB50202—2002 基坑侧壁安全分为()个等级。
A、3B、4C、5D、6正确答案:A5.下列哪个安全装置是用来防止运行小车超过最大或最小幅度的两个极限位置的安全装置?()A、行程限制器B、超高限制器C、幅度限制器D、起重量限制器正确答案:C6.验算模板结构表面隐蔽的模板,其最大变形值为模板计算跨度的()。
A、1/200B、1/300C、1/250D、1/400正确答案:C7.分配电箱与开关箱的距离不得超过()。
A、10mB、20mC、40mD、30m正确答案:D8.施工人员进山施工现场严禁翻墙、跨越护身栏和攀爬脚手架,进出施工区域必须走()A、人行马道B、脚手架空隙C、安全通道D、地下通道正确答案:C9.职业病防治的宗旨是为了预防、控制和消除职业危害,防治职业病,()。
A、保护劳动者健康及其相关权益B、保护劳动者健康,促进经济发展C、保护劳动者健康及其相关权益,促进经济发展D、提高人员素质正确答案:C10.建筑工程安全生产管理必须坚持()的方针。
A、技术先进B、安全第一、预防为主C、事中控制与事后控制相结合D、经济效益第一正确答案:B11.编制工程项目顶管施工组织设计方案,其中必须制订有针对性、实效性的()。
A、安全技术措施和专项方案B、节约材料措施C、施工技术指标D、施工进度计划正确答案:A12.建设项目安全设施的()应当对安全设施设计负责。
情景物理试题模板及答案

情景物理试题模板及答案一、选择题(每题2分,共20分)1. 根据牛顿第三定律,作用力与反作用力的大小关系是:A. 相等B. 不相等C. 可能相等D. 无法确定2. 一个物体在水平面上以恒定速度运动,其受到的摩擦力大小与:A. 物体的质量无关B. 物体的速度无关C. 物体的加速度无关D. 所有选项都正确3. 光在真空中的传播速度是:A. 299792458 m/sB. 299792458 km/hC. 299792458 km/sD. 299792458 m/h4. 根据能量守恒定律,以下哪个过程是可能发生的?A. 一个完全弹性碰撞B. 一个完全非弹性碰撞C. 一个物体从静止开始自由落体D. 一个物体在没有外力作用下加速运动5. 以下哪种情况会导致物体的动量发生变化?A. 物体的质量增加B. 物体的速度增加C. 物体的质量或速度增加D. 物体的质量或速度减少6. 一个物体从静止开始自由落体,其下落速度与时间的关系是:A. 线性关系B. 非线性关系C. 指数关系D. 与时间无关7. 根据热力学第一定律,能量在封闭系统中的转换是:A. 可以创造B. 可以消灭C. 可以转化为其他形式D. 既不能创造也不能消灭8. 一个物体在斜面上下滑,其受到的重力分量与斜面角度的关系是:A. 正相关B. 负相关C. 不相关D. 无法确定9. 根据欧姆定律,电流与电压的关系是:A. 线性关系B. 非线性关系C. 指数关系D. 与电压无关10. 一个电路中的总电阻与各个电阻之间的关系是:A. 总电阻等于各个电阻之和B. 总电阻等于各个电阻之积C. 总电阻小于各个电阻中最小的一个D. 总电阻大于各个电阻中最大的一个答案:1-A 2-D 3-C 4-A 5-C 6-A 7-D 8-A 9-A 10-C二、简答题(每题10分,共30分)11. 请简述牛顿第二定律的内容及其应用场景。
答:牛顿第二定律描述了力和加速度之间的关系,即\( F = ma \),其中\( F \)是作用在物体上的力,\( m \)是物体的质量,\( a \)是物体的加速度。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.概念填空题1.1 C++最重要的特性之一就是代码重用,为了实现代码重用,代码必须具有通用性。
通用代码需要不受数据类型的影响,并且可以自动适应数据类型的变化。
这种程序设计类型称为参数化程序设计。
模板是C++支持参数化程序设计的工具,通过它可以实现参数化多态性性。
1.2函数模板的定义形式是template <模板参数表> 返回类型函数名(形式参数表){…}。
其中,<模板参数表>中参数可以有多个,用逗号分开。
模板参数主要是模板类型参数。
它代表一种类型,由关键字typename或class后加一个标识符构成,标识符代表一个潜在的内置或用户定义的类型参数。
类型参数由可以是任意合法标识符。
C++规定参数名必须在函数定义中至少出现一次。
1.3编译器通过如下匹配规则确定调用那一个函数:首先,寻找最符合函数名和参数类型的一般函数,若找到则调用该函数;否则寻找一个函数模板,将其实例化成一个模板函数,看是否匹配,如果匹配,就调用该模板函数;再则,通过类型转换规则进行参数的匹配。
如果还没有找到匹配的函数则调用错误。
如果有多于一个函数匹配,则调用产生二义性,也将产生错误。
1.4类模板使用户可以为类声明一种模式,使得类中的某些数据成员、某些成员函数的参数、某些成员函数的返回值能取任意类型(包括系统预定类型和用户自定义的类型)。
类是对一组对象的公共性质的抽象,而类模板则是对不同类的数据类型?的抽象,因此类模板是属于更高层次的抽象。
由于类模板需要一种或多种类型参数,所以类模板也常常称为参数化类。
2. 简答题2.1简述函数模板生成函数的过程。
2.2 简述类模板生成对象的过程。
2.3 简述函数模板与模板函数、类模板与模板类的区别。
3. 选择题3.1关于函数模板,描述错误的是(A )。
A.函数模板必须由程序员实例化为可执行的函数模板B.函数模板的实例化由编译器实现C.一个类定义中,只要有一个函数模板,则这个类是类模板D.类模板的成员函数都是函数模板,类模板实例化后,成员函数也随之实例化3.2下列的模板说明中,正确的是(D )。
A.template<typename T1,T2>B.template<class T1,T2>C.template<class T1,class T2>D.template<typename T1,typename T2>3.3 函数模板定义如下:template <typename T>Max( T a, T b ,T &c){c=a+b;}下列选项正确的是(B )。
A.int x, y; char z;B.double x, y, z;Max(x, y, z); Max( x, y, z);C.int x, y; float z;D.float x; double y, z;Max( x, y, z); Max( x,y, z);3.4 下列有关模板的描述错误的是(D)。
A.模板把数据类型作为一个设计参数,称为参数化程序设计。
B.使用时,模板参数与函数参数相同,是按位置而不是名称对应的。
C.模板参数表中可以有类型参数和非类型参数。
D.类模板与模板类是同一个概念。
3.5类模板的使用实际上是将类模板实例化成一个(C)。
A.函数 B.对象 C.类 D.抽象类3.6类模板的模板参数(D)。
A.只能作为数据成员的类型 B.只可作为成员函数的返回类型C.只可作为成员函数的参数类型 D.以上三种均可3.7类模板的实例化(A)。
A.在编译时进行 B.属于动态联编C.在运行时进行 D.在连接时进行3.8以下类模板定义正确的为(A)。
A.template<class T,int i=0> B.template<class T,class int i> C.template<class T,typename T> D.template<class T1,T2>4.编程题4.1设计一个函数模板,其中包括数据成员T a[n]以及对其进行排序的成员函数 sort( ),模板参数T可实例化成字符串。
#include <iostream>#include <string>using namespace std;template<typename T>void Sort(T* a,int n){int i,j;T t;for(i=0;i<n-1;i++)for(j=0;j<n-i-1;j++)if (a[j]>a[j+1]){ t=a[j];a[j]=a[j+1];a[j+1]=t;}}template<typename T>void Print(T* a,int n){int i;for(i=0;i<n;i++)cout<<a[i]<<" ";cout<<endl;}int main(){stringStr[10]={"Zhang","Li","Wang","Qian","Zhao","Wu","Xu","Tang","Shen","Liang"};int Int[8]={20,12,0,-5,9,-18,6,11};double Dou[7]={3.07,8.12,-0.45,6,10,-9,7.29};Sort<string>(Str,10);Sort<int>(Int,8);Sort<double>(Dou,7);Print(Str,10);Print(Int,8);Print(Dou,7);return 0;}4.2设计一个类模板,其中包括数据成员T a[n]以及在其中进行查找数据元素的函数int search(T)模板参数 T可实例化成字符串。
#include <iostream>using namespace std;template<typename T,int n>class A{int size;T* element;public:A();~A();int Search(T);void SetElement(int index,const T& value);};template<typename T,int n>A<T,n>::A(){size=n>1? n:1;element=new T[size];}template<typename T,int n>A<T,n>::~A(){delete [] element;}template<typename T,int n>int A<T,n>::Search(T t){int i;for(i=0;i<size;i++)if(element[i]==t)return i;return -1;}template<typename T,int n>void A<T,n>::SetElement(int index,const T& value){element[index]=value;}int main(){A<int,5> intAry; //用int实例化,建立模板类对象A<double,10> douAry;//用double实例化,建立模板类对象int i;for(i=0;i<5;i++)intAry.SetElement(i,i+3);for(i=0;i<10;i++)douAry.SetElement(i,(i+i)*0.35);i=intAry.Search(7);if(i>=0)cout<<i<<endl;i=douAry.Search(0.7);if(i>=0)cout<<i<<endl;return 0;}4.3设计一个单向链表类模板,节点数据域中数据从小到大排列,并设计插入、删除节点的成员函数。
#include<iostream>using namespace std;template<typename T>class List;template<typename T>class Node{T info; //数据域Node<T> *link; //指针域public:Node(); //生成头结点的构造函数Node(const T & data);//生成一般结点的构造函数friend class List<T>;};template <typename T> Node<T>::Node(){link=NULL;}template <typename T> Node<T>::Node(const T & data){info=data;link=NULL;}//定义链表类template<typename T>class List{Node<T> *head; //链表头指针和尾指针public:List(); //构造函数,生成头结点(空链表)~List(); //析构函数void MakeEmpty(); //清空一个链表,只余表头结点Node<T>* Find(T data); //搜索数据域与data相同的结点,返回该结点的地址void PrintList(); //打印链表的数据域void InsertOrder(Node<T> *p); //按升序生成链表Node<T>* CreatNode(T data); //创建一个结点(孤立结点)Node<T>* DeleteNode(Node<T>* p); //删除指定结点};template<typename T>List<T>::List(){head=new Node<T>(-9999);//头结点,最小的数据从小到大插入}template<typename T>List<T>::~List(){MakeEmpty();delete head;}template<typename T>void List<T>::MakeEmpty(){Node<T> *tempP;while(head->link!=NULL){tempP=head->link;head->link=tempP->link; //把头结点后的第一个节点从链中脱离delete tempP; //删除(释放)脱离下来的结点}}template<typename T> Node<T>* List<T>::Find(T data){Node<T> *tempP=head->link;while(tempP!=NULL && tempP->info!=data) tempP=tempP->link;return tempP; //搜索成功返回该结点地址,不成功返回NULL}template<typename T>void List<T>::PrintList(){Node<T>* tempP=head->link;while(tempP!=NULL){cout<<tempP->info<<'\t';tempP=tempP->link;}cout<<endl;}template<typename T>void List<T>::InsertOrder(Node<T> *p){Node<T> *tempP=head,*tempQ=head; //tempQ指向tempP前面的一个节点while(tempP!=NULL){if(p->info<tempP->info)break; //找第一个比插入结点大的结点,由tempP指向tempQ=tempP;tempP=tempP->link;}p->link=tempP;tempQ->link=p;}template<typename T>Node<T>* List<T>::CreatNode(T data){//建立新节点Node<T>*tempP=new Node<T>(data);return tempP;}template<typename T>Node<T>* List<T>::DeleteNode(Node<T>* p){Node<T>* tempP=head->link,*tempQ=head,*tempC;while(tempP!=NULL && tempP!=p){tempQ=tempP;tempP=tempP->link;}tempC=tempP;tempQ->link=tempP->link;return tempC;}int main(){Node<int> * P1;List<int> list1;int a[10]={20,12,0,-5,9,-18,6,11,5,3},i,j;for(i=0;i<10;i++){P1=list1.CreatNode(a[i]);list1.InsertOrder(P1);}list1.PrintList();cout<<"请输入一个要求删除的整数"<<endl;cin>>j;P1=list1.Find(j);if(P1!=NULL){P1=list1.DeleteNode(P1);delete P1;list1.PrintList();}else cout<<"未找到"<<endl;cout<<"请输入一个要求插入的整数"<<endl;cin>>j;P1=list1.CreatNode(j);list1.InsertOrder(P1);list1.PrintList();list1.MakeEmpty();//清空list1list1.PrintList();return 0;}4.4 为单链表类模板增加一个复制构造函数和赋值运算符(=)。