版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2025年C++考试模拟练习与答案解析试题及答案注:本次模拟练习基于64位Linux平台、GCC11.4编译环境、C++17标准命制,满分100分,考试时间120分钟。一、单项选择题(共15题,每题2分,共30分)1.在上述编译环境下,下列关于基本数据类型内存占用的说法正确的是()A.int类型占用4字节,long类型占用4字节B.char*类型占用8字节,longlong类型占用8字节C.float类型占用4字节,double类型占用4字节D.short类型占用2字节,wchar_t类型占用2字节2.下列关于C++中引用与指针的描述,错误的是()A.引用必须在定义时初始化,指针可以在定义后赋值B.不存在空引用,但存在空指针C.可以有const指针,但不存在const引用D.引用作为函数返回值时,可以作为左值使用3.有如下类定义和全局对象定义,关于构造函数和析构函数的调用顺序,说法正确的是()```cppclassA{public:A(){cout<<"A构造";}~A(){cout<<"A析构";}};classB:publicA{public:B(){cout<<"B构造";}~B(){cout<<"B析构";}};Bb;intmain(){return0;}```A.构造顺序:A构造→B构造,析构顺序:A析构→B析构B.构造顺序:B构造→A构造,析构顺序:B析构→A析构C.构造顺序:A构造→B构造,析构顺序:B析构→A析构D.构造顺序:B构造→A构造,析构顺序:A析构→B析构4.下列关于虚函数与多态的描述,正确的是()A.构造函数可以声明为虚函数,用于实现多态构造B.只要基类声明了虚函数,派生类的同名同参函数自动成为虚函数C.虚函数的实现基于动态绑定,在编译阶段确定函数调用D.包含纯虚函数的类可以实例化对象5.下列关于STL容器特性的描述,错误的是()A.vector是动态数组,支持随机访问,尾部插入删除均摊时间复杂度为O(1)B.list是双向链表,支持双向迭代器,任意位置插入删除时间复杂度为O(1)C.map是红黑树实现的有序关联容器,查找时间复杂度为O(logn)D.unordered_map是哈希表实现的有序关联容器,平均查找时间复杂度为O(1)6.有如下代码段,下列关于auto和decltype推导结果的说法正确的是()```cppinta=10;int&b=a;constintc=20;autox=b;decltype(b)y=a;decltype(c)z=30;```A.x的类型是int&,y的类型是int&B.x的类型是int,y的类型是int&C.z的类型是int,z可以被修改D.y的类型是constint&7.下列关于常量成员函数的描述,错误的是()A.常量成员函数内部不能修改类的非静态成员变量B.常量成员函数可以调用类的其他常量成员函数C.非常量对象可以调用类的常量成员函数D.常量成员函数的const关键字只能写在函数声明末尾,不能写在定义末尾8.有如下模板定义和特化,下列调用结果为“特化版本”的是()```cpptemplate<typenameT>voidfunc(Ta){cout<<"通用版本";}template<>voidfunc(int*a){cout<<"特化版本";}```A.func(10)B.func("hello")C.func<int*>(nullptr)D.func<constint*>(nullptr)9.下列关于C++异常处理机制的描述,正确的是()A.throw抛出的异常必须是std::exception的派生类对象B.栈展开过程中,会按构造的反顺序销毁当前栈帧中的局部对象C.catch块的匹配顺序是从下到上,直到找到匹配的异常类型D.函数声明后的throw()表示该函数可以抛出任意类型的异常10.下列关于C++11智能指针的描述,错误的是()A.shared_ptr采用引用计数机制,多个shared_ptr可以共享同一个对象B.unique_ptr是独占式智能指针,不支持拷贝和赋值C.weak_ptr可以解决shared_ptr的循环引用问题,weak_ptr会增加引用计数D.make_shared是创建shared_ptr的推荐方式,比直接用new更安全高效11.下列表达式中,属于右值的是()A.已定义的int型变量aB.返回左值引用的函数调用表达式C.std::move(a)D.数组名12.下列哪种情况不会触发移动构造函数的调用()A.用临时对象初始化一个新对象B.用std::move(左值对象)初始化一个新对象C.函数返回局部对象(满足返回值优化NRVO的场景下)D.向vector中插入临时对象,且类定义了移动构造函数13.下列关于命名空间的描述,正确的是()A.命名空间不能嵌套定义B.匿名命名空间的成员只能在当前翻译单元(文件)内访问C.usingnamespacestd;会将std命名空间的所有成员导入全局命名空间,不会引发命名冲突D.命名空间的定义必须写在全局作用域内14.下列关于C++中const常量与#define宏定义的描述,错误的是()A.const常量有类型检查,宏定义没有类型检查B.所有const常量都会分配内存空间,宏定义只是文本替换,不分配内存C.const常量可以取地址,宏定义不能取地址D.局部const常量的作用域是其所在的块作用域,宏定义的作用域是从定义到文件结束(遇#undef终止)15.下列关于C++17引入的std::optional的描述,错误的是()A.std::optional可以表示值存在或不存在的状态,可替代空指针的部分使用场景B.std::optional<T>对象的大小一定等于T的大小C.可以通过has_value()方法判断optional对象是否包含有效值D.可以通过value_or()方法在optional无值时返回默认值二、填空题(共10题,每题1分,共10分)1.C++中用于执行向下转型(基类到派生类)且具备运行时类型检查的强制类型转换运算符是。2.纯虚函数的声明格式是在虚函数形参列表后加上。3.C++程序的内存分区中,用于存储函数局部变量、函数参数等数据,由系统自动分配和释放的区域是。4.若要声明一个函数为某个类的友元函数,需要在类内的函数声明前加上关键字。5.类的拷贝构造函数的参数必须是,否则会引发无限递归调用。6.C++11中引入的专门用于表示空指针的关键字是,取代了传统的NULL宏。7.STL中sort算法的平均时间复杂度为(用大O表示法)。8.C++模板参数分为两种类型,分别是类型参数和。9.面向对象的三大核心特性是封装、继承和。10.C++中派生类对象可以直接赋值给基类对象,这种现象称为,会导致派生类特有成员被丢弃。三、判断题(共5题,每题1分,共5分)1.友元函数是类的成员函数,可以访问类的私有成员。()2.基类的析构函数声明为虚函数后,派生类的析构函数自动成为虚函数,可通过基类指针删除派生类对象避免内存泄漏。()3.STL的string类底层实现是双向链表,支持随机访问。()4.C++中所有const修饰的变量都存储在常量存储区,不能通过任何方式修改。()5.右值引用变量本身是左值,需要通过std::move才能将其转为右值使用。()四、程序阅读题(共4题,每题5分,共20分)说明:请写出下列程序的输出结果,按执行顺序写出,忽略换行符的影响。1.```cppusingnamespacestd;classA{public:A(){cout<<"A1";}A(intx){cout<<"A2";}~A(){cout<<"~A";}};classB{public:B(){cout<<"B1";}B(inty):a(y){cout<<"B2";}~B(){cout<<"~B";}private:Aa;};intmain(){Bb(10);return0;}```2.```cppusingnamespacestd;classBase{public:virtualvoidshow(){cout<<"Base::show";}voidprint(){cout<<"Base::print";}};classDerived:publicBase{public:voidshow()override{cout<<"Derived::show";}voidprint(){cout<<"Derived::print";}};intmain(){Base*p=newDerived();p->show();p->print();deletep;return0;}```3.```cppusingnamespacestd;intmain(){vector<int>v;for(inti=0;i<5;i++){v.push_back(i);cout<<v.size()<<""<<v.capacity()<<"";}return0;}```4.```cppusingnamespacestd;classA{public:A(){cout<<"A构造";}~A(){cout<<"A析构";}};intmain(){shared_ptr<A>p1=make_shared<A>();shared_ptr<A>p2=p1;weak_ptr<A>wp=p1;cout<<p1.use_count()<<"";p1.reset();cout<<p2.use_count()<<"";cout<<wp.expired()<<"";p2.reset();cout<<wp.expired()<<"";return0;}```五、程序填空题(共2题,每空2.5分,共10分)说明:请将下列程序补充完整,使其能正确运行并得到预期结果。1.以下程序实现了C++11标准下线程安全的懒汉式单例模式,请补全代码。```cppclassSingleton{public:staticSingleton&getInstance(){Singletoninstance;//静态局部变量,C++11后初始化线程安全returninstance;}Singleton(constSingleton&)=;//禁用拷贝构造Singleton&operator=(constSingleton&)=delete;//禁用拷贝赋值private:Singleton()=default;//私有构造函数~Singleton()=default;//私有析构函数};```2.以下程序用于统计vector<int>中大于等于60的元素个数,请补全代码。```cppusingnamespacestd;intmain(){vector<int>scores={55,72,88,45,90,61,58,76};intcount=count_if(scores.begin(),,[](intx){returnx>=60;});cout<<"及格人数:"<<count<<endl;return0;}```六、编程题(共2题,第1题12分,第2题13分,共25分)1.请实现一个自定义的字符串类MyString,要求满足以下功能:(1)支持默认构造(构造空字符串)、C风格字符串的构造函数;(2)支持拷贝构造函数和拷贝赋值运算符重载(深拷贝);(3)支持移动构造函数和移动赋值运算符重载(转移资源所有权);(4)提供size()方法返回字符串长度,c_str()方法返回底层C风格字符串指针;(5)提供析构函数,释放动态分配的内存。要求:代码符合C++11标准,逻辑正确,无内存泄漏。2.请设计一个简单的图形面积计算系统,要求满足以下需求:(1)定义抽象基类Shape,包含纯虚函数`doublearea()const`,用于计算图形面积;(2)定义三个派生类:Circle(圆形,属性为半径r)、Rectangle(矩形,属性为长a和宽b)、Triangle(三角形,属性为底a和高h),分别重写area()方法计算各自的面积(圆周率取3.14159);(3)编写一个全局函数`doublecalcTotalArea(constvector<shared_ptr<Shape>>&shapes)`,接收存储Shape智能指针的vector,返回所有图形的总面积;(4)在main函数中创建至少3个不同类型的图形对象(用shared_ptr管理),存入vector,调用calcTotalArea计算并输出总面积。要求:使用多态特性,代码符合C++17标准,内存安全。答案与解析一、单项选择题答案与解析1.【答案】B【考点】64位Linux平台下基本数据类型的内存占用【解析】64位Linux平台GCC编译器的类型大小规则如下:int/short/char/float分别为4/2/1/4字节,long/longlong/指针类型均为8字节,double为8字节,wchar_t为4字节。选项A中long为8字节,错误;选项C中double为8字节,错误;选项D中wchar_t为4字节,错误;选项B正确。2.【答案】C【考点】引用与指针的核心区别【解析】引用是变量的语法别名,必须在定义时绑定有效对象,不存在空引用,且后续不能更改绑定对象;指针是存储地址的变量,可以为空,可随时更改指向。选项A、B描述正确。选项C错误,C++存在const引用(常引用),格式为`constT&`,不能通过引用修改绑定对象,常用于函数传参避免拷贝同时保护实参。选项D正确,返回左值引用的函数调用结果为左值,可作为赋值运算符的左操作数。3.【答案】C【考点】派生类的构造与析构顺序【解析】派生类对象构造时,先调用基类构造函数,再调用成员对象的构造函数(若有),最后调用派生类自身的构造函数;析构顺序与构造顺序完全相反。本题中B继承自A,因此构造顺序为A构造→B构造,析构顺序为B析构→A析构,选项C正确。4.【答案】B【考点】虚函数与多态的核心规则【解析】选项A错误,构造函数不能声明为虚函数,因为构造过程中对象的虚表指针尚未完全初始化,无法实现动态绑定。选项B正确,基类中声明为virtual的函数,派生类中同名同参的函数自动成为虚函数(C++11推荐用override显式标记)。选项C错误,虚函数的动态绑定在运行阶段根据对象的实际类型确定调用版本,编译阶段无法确定。选项D错误,包含纯虚函数的类是抽象类,不能实例化对象。5.【答案】D【考点】STL常见容器的底层实现与特性【解析】选项D错误,unordered_map基于哈希表实现,是无序关联容器,元素按键的哈希值存储,平均查找时间复杂度为O(1),但不保证元素有序。选项A、B、C描述均正确:vector是连续动态数组,支持随机访问,尾部插入均摊O(1);list是双向链表,任意位置插入删除O(1);map基于红黑树,有序,查找O(logn)。6.【答案】B【考点】auto与decltype的类型推导规则【解析】auto推导会忽略引用和顶层const,保留底层const;decltype推导会保留表达式的引用和const属性。本题中b是int&类型,autox=b推导x为int(忽略引用);decltype(b)y=a推导y为int&(保留引用);c是constint,decltype(c)z=30推导z为constint,不可修改。因此选项B正确。7.【答案】D【考点】常量成员函数的语法规则【解析】常量成员函数的const是函数签名的一部分,声明和定义时都必须在函数参数列表末尾加上const,否则会被视为不同的函数,导致链接错误。选项D错误。选项A、B、C描述均正确:常量成员函数内部不能修改非静态成员变量(除mutable修饰的成员);只能调用其他常量成员函数;非常量对象和常量对象都可以调用常量成员函数。8.【答案】C【考点】函数模板的特化匹配规则【解析】函数模板特化是对特定类型的特殊实现,调用时需完全匹配特化的类型参数。选项A中T为int,调用通用版本;选项B中T为constchar*,调用通用版本;选项C中T为int*,与特化版本的`func(int*)`完全匹配,调用特化版本;选项D中T为constint*,与int*不匹配,调用通用版本。因此答案为C。9.【答案】B【考点】异常处理的栈展开与匹配规则【解析】选项A错误,throw可以抛出任意类型的异常,包括int、字符串等,不一定是std::exception的派生类。选项B正确,栈展开过程中,当前栈帧内的局部对象会按构造的反顺序(即后构造的先销毁)被销毁,确保资源正确释放。选项C错误,catch块按从上到下的顺序匹配异常类型,因此基类异常的catch块要放在派生类之后,否则会提前匹配。选项D错误,C++11前的throw()动态异常说明表示函数不抛出任何异常,C++17后已被noexcept取代。10.【答案】C【考点】C++11智能指针的特性【解析】选项C错误,weak_ptr是弱引用指针,用于观测shared_ptr管理的对象,不会增加引用计数,因此可以打破shared_ptr的循环引用问题。选项A、B、D描述均正确:shared_ptr通过引用计数管理共享对象;unique_ptr独占所有权,禁止拷贝赋值,仅支持移动;make_shared一次性分配对象和控制块内存,比直接new更安全高效。11.【答案】C【考点】左值与右值的区分【解析】左值是可以取地址、有名字的表达式,右值是临时的、无法取地址的表达式(包括纯右值和将亡值)。选项A的变量、选项B的左值引用返回值、选项D的数组名都可以取地址,属于左值;选项C的std::move(a)将左值转为将亡值,属于右值。因此答案为C。12.【答案】C【考点】移动构造函数的触发条件【解析】返回值优化(RVO/NRVO)是编译器的优化手段,当函数返回局部对象时,编译器会直接在返回值的内存地址上构造对象,不需要调用拷贝或移动构造函数,因此不会触发移动构造。选项A、B、D均会触发移动构造:临时对象是右值,std::move返回右值,向vector插入临时对象会调用移动构造(若定义)。13.【答案】B【考点】命名空间的语法与特性【解析】选项B正确,匿名命名空间的成员具有内部链接属性,只能在当前翻译单元(源文件)内访问,相当于C语言中的static全局变量。选项A错误,命名空间可以嵌套定义。选项C错误,usingnamespacestd会将std命名空间的所有成员导入当前作用域,可能与自定义名称产生冲突。选项D错误,命名空间可以定义在全局作用域,也可以嵌套在其他命名空间内。14.【答案】B【考点】const常量与宏定义的区别【解析】选项B错误,不是所有const常量都会分配内存:对于编译期可确定值的const常量(如局部constinta=10),如果没有被取地址,编译器会将其优化为立即数,不分配单独的内存空间;只有当const常量被取地址或值无法在编译期确定时,才会分配内存。选项A、C、D描述均正确:const有类型检查,宏是文本替换无类型检查;const常量可以取地址,宏无法取地址(取宏地址等价于取立即数地址,编译错误);局部const的作用域是块作用域,宏的作用域从定义到文件结束或遇#undef终止。15.【答案】B【考点】C++17std::optional的特性【解析】选项B错误,std::optional<T>需要额外的空间存储值是否存在的标记(通常为1字节,加上对齐开销),因此大小一般大于等于sizeof(T)+1,不可能等于T的大小。选项A、C、D描述均正确:optional用于表示“值可能不存在”的语义,比空指针更安全;has_value()判断是否有有效值;value_or()在无值时返回指定的默认值。二、填空题答案与解析1.【答案】dynamic_cast【解析】C++的四种强制类型转换中,dynamic_cast支持运行时类型检查,仅能用于包含虚函数的类的指针或引用的向下转型,转型失败时指针返回nullptr,引用抛出异常。2.【答案】=0【解析】纯虚函数的声明格式为`virtual返回值类型函数名(参数列表)=0`,表示类不提供该函数的实现,派生类必须重写才能实例化。3.【答案】栈区(栈)【解析】C++内存分区中,栈区由系统自动分配释放,存储局部变量、函数参数等,大小固定;堆区由程序员手动分配释放,大小动态。4.【答案】friend【解析】友元分为友元函数和友元类,通过friend关键字声明,可访问类的私有和保护成员,但不属于类的成员。5.【答案】本类对象的const引用(或同类对象的左值引用)【解析】如果拷贝构造函数的参数是值传递,会触发拷贝构造函数本身,导致无限递归,因此必须是引用类型,通常为const左值引用。6.【答案】nullptr【解析】C++11引入的nullptr是专门的空指针类型,比NULL宏(本质是0)更类型安全,避免函数重载的二义性。7.【答案】O(nlogn)【解析】STL的sort算法基于快速排序、堆排序、插入排序的混合实现,平均和最坏时间复杂度均为O(nlogn)。8.【答案】非类型参数【解析】模板参数包括类型参数(用typename/class声明,代表类型)和非类型参数(如int、指针等编译期常量,代表值)。9.【答案】多态【解析】面向对象三大特性:封装(隐藏实现细节)、继承(复用代码)、多态(同一接口不同实现)。10.【答案】对象切片(对象切割)【解析】派生类对象赋值给基类对象时,派生类的特有成员会被“切掉”,仅保留基类部分,称为对象切片。三、判断题答案与解析1.【答案】×【解析】友元函数不是类的成员函数,只是被类授权可以访问其私有和保护成员,没有this指针。2.【答案】√【解析】基类析构函数为虚函数时,通过基类指针删除派生类对象会触发动态绑定,调用派生类的析构函数,避免内存泄漏。3.【答案】×【解析】string类底层是连续的动态字符数组,支持随机访问,时间复杂度O(1),不是双向链表。4.【答案】×【解析】局部const变量存储在栈区,不属于常量存储区,可通过指针强制修改其值(属于未定义行为,但语法上可实现);只有全局const、静态const等通常存储在常量区。5.【答案】√【解析】右值引用变量有名字、可以取地址,因此本身是左值;如果要将其作为右值传递(触发移动语义),需要用std::move转换。四、程序阅读题答案与解析1.【答案】A2B2~B~A【解析】类B包含成员对象a,构造时先构造成员对象,再构造自身。B的有参构造函数通过初始化列表调用A的有参构造函数,因此先输出A2,再输出B2。析构顺序与构造相反,先析构B自身输出~B,再析构成员对象a输出~A。2.【答案】Derived::showBase::print【解析】show()是虚函数,通过基类指针p调用时触发动态绑定,p指向的实际类型是Derived,因此调用Derived::show。print()是非虚函数,静态绑定,根据指针类型Base调用Base::print。3.【答案】1122344458【解析】vector初始size=0,capacity=0,采用2倍扩容:第1次push:size=1,capacity不足扩容为1→输出11第2次push:size=2,capacity不足扩容为2→输出22第3次push:size=3,capacity不足扩容为4→输出34第4次push:size=4,capacity足够→输出44第5次push:size=5,capacity不足扩容为8→输出584.【答案】A构造210A析构1【解析】执行流程如下:1.make_shared<A>()创建A对象,输出“A构造”,p1持有引用,计数为1;2.p2=p1,共享对象,引用计数加1,变为2;3.wp=p1,弱引用不增加计数,计数仍为2;4.输出p1.use_count()→2;5.p1.reset(),p1释放所有权,引用计数减为1;6.输出p2.use_count()→1;7.wp.expired()判断对象是否销毁,此时对象存在,返回false(输出0);8.p2.reset(),引用计数减为0,A对象析构,输出“A析构”;9.wp.expired()判断对象已销毁,返回true(输出1)。五、程序填空题答案与解析1.【答案】static;delete【解析】第一空:静态局部变量在程序运行期间仅初始化一次,C++11标准保证静态局部变量的初始化是线程安全的,是实现懒汉单例的简洁方式。第二空:C++11中用=delete显式禁用编译器自动生成的拷贝构造函数,避免单例被复制。2.【答案】algorithm;scores.end()【解析】第一空:count_if是STL算法库中的函数,需要引入<algorithm>头文件。第二空:count_if的参数为迭代器区间[begin,end),表示统计该区间内满足条件的元素个数,因此第二个迭代器为scores.end()。六、编程题参考代码与评分标准第1题参考代码```cppclassMyString{public://默认构造MyString():m_data(newchar[1]),m_size(0){m_data[0]='\0';}//C风格字符串构造MyString(constchar*str){if(str==nullptr){m_data=newchar[1];m_data[0]='\0';m_size=0;}else{m_size=strlen(str);m_data=newchar[m_size+1];strcpy(m_data,str);}}//拷贝构造(深拷贝)MyString(constMyString&other){m_size=other.m_size;m_data=newchar[m_size+1];strcpy(m_data,other.m_data);}//拷贝赋值(深拷贝,拷贝并交换技术)MyString&operator=(constMyString&other){if(this!=&other){delete[]m_data;m_size=other.m_size;m_data=newchar[m_size+1];strcpy(m_data,other.m_data);}return*this;}//移动构造MyString(MyString&&other)noexcept:m_data(other.m_data),m_size(other.m_size){other.m_data=nullptr;other.m_size=0;}//移动赋值MyString&operator=(MyString&&other)noexcept{if(this!=&other){delete[]m_data;m_data=other.m_data;m_size=other.m_size;other.m_data=nullptr;other.m_size=0;}return*this;}//析构函数~MyString(){delete[]m_data;m_data=nullptr;m_size=0;}//返回字符串长度size_tsize()const{returnm_size;}//返回C风格字符串指针constchar*c_str()const{returnm_data;}private:char
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 数字经济领域系统架构师绩效评估表
- 体育赛事策划执行人员项目成果绩效衡量表
- 支付条款变更提醒函3篇
- 施工现场材料转运专项方案
- 2026年度道路交通安全知识竞赛试题及答案
- 电力工程边坡防护施工工艺流程
- 轻钢龙骨隔墙技术交底范本
- 触电事故应急预案演练方案及演练过程
- 创业孵化基地建设贷款贴息申请报告
- 建设工程质量检测人员考试(建筑地基与基础检测)题库及答案(2026年宿州)
- 2026重庆国际物流枢纽园区建设有限责任公司及子公司招聘19人笔试模拟试题及答案解析
- 检察官遴选考试真题及答案解析
- 2026年四川省基层法律服务工作者执业核准题库及完整答案
- 建筑垃圾设备安装调试方案
- 检测部门内部管理制度
- 北师大版四年级上册书法练习指导 教案
- 人教版小学语文五年级上册第五单元习作:介绍一种事物 课堂学习笔记+参考范文5篇
- 国家突发公共卫生事件相关信息报告管理工作规范
- 主播孵化培训教程课件
- 法洛四联症术后右心室功能不全的容量管理策略-1
- 护工普外科培训
评论
0/150
提交评论