100条经典C++笔试题目及答案分享 - CSDN博客

文章推薦指數: 80 %
投票人數:10人

100条经典C++笔试题目分享一、C++与C差异(1-18)二、数据类型、关键字(19-37)三、C++面向对象的特性(38-61)四、程序阅读题(62-90)五、编程练习(91-100) ... 100条经典C++笔试题目及答案分享 PennLi 于 2020-03-3023:24:40 发布 40512 收藏 793 分类专栏: C/C++ 文章标签: c++ 版权声明:本文为博主原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/weixin_44903147/article/details/104870057 版权 C/C++ 专栏收录该内容 2篇文章 5订阅 订阅专栏 100条经典C++笔试题目分享 一、C++与C差异(1-17)二、数据类型、关键字(18-37)三、C++面向对象的特性(38-61)四、程序阅读题(62-89)五、编程练习(90-100) 看到好用的经典C++题目,对机试和笔试,甚至面试都有帮助,特意分享,自己也复习一遍,互勉。

题目来源: 1、中兴、华为、慧通、英华达、微软亚洲技术中心等中外企业面试题目; 2、C++面试宝典(林锐《高质量编程第三版》)、C++primer、ThinkinginC++。

一、C++与C差异(1-17) 1.C和C++中struct有什么区别?【答案】 Protection行为能否定义函数c无否,但可以有函数子针c++有,默认private可以 2.C++中的struct和class有什么区别?【答案】从语法上讲,class和struct做类型定义时只有两点区别:(1)默认继承权限。

如果不明确指定,来自class的继承按照private继承处理,来自struct的继承按照public继承处理;(2)成员的默认访问权限。

class的成员默认是private权限,struct默认是public权限。

除了这两点,class和struct基本就是一个东西。

语法上没有任何其它区别。

(敲黑板:继承和访问权限不同,struct为public,class为private) 3.如何判断一段程序是由C编译程序还是由C++编译程序编译的?【答案】运用编译标志宏,窗体直接运行以下代码: #include intmain() { #ifdef__cplusplus printf("C++\n"); #else printf("c\n"); #endif system("pause"); return0; } 4.C和C++有什么不同?【答案】机制:c是面向过程的(但c也可以编写面向对象的程序);c++是面向对象的,提供了类。

但是,c++编写面向对象的程序比c容易。

适用方向:c适合要求代码体积小的,效率高的场合,如嵌入式;c++适合更上层的,复杂的;llinux核心大部分是c写的,因为它是系统软件,效率要求极高。

名称:c++比c多了+,说明c++是c的超集;那为什么不叫c+而叫c++呢,是因为c++比c来说扩充的东西太多了,所以就在c后面放上两个+;于是就成了c++。

总之,C语言是结构化编程语言,C++是面向对象编程语言。

C++侧重于对象而不是过程,侧重于类的设计而不是逻辑的设计。

5.“引用”与指针的区别是什么?【答案】指针是存储变量内容的地址,指针操作是通过某个指针变量指向一个对象后,对它所指向的变量间接操作,也就是地址间的操作,程序中使用指针,程序的可读性差;而引用本身就是目标变量的别名,对引用的操作就是对目标变量的操作。

6.classA{virtualvoidfunc1();voidfunc2();};classB:classA{voidfunc1(){cout<65536){ cout<接口继承以及纯虚函数)构成了功能复用的两种方式。

(3)多态:是将父对象设置成为和一个或更多的与他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。

简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。

39.重载(overload)、重写(override,有的书也叫做“覆盖”)、重定义(redefinition)的区别?【答案】 名称名字空间区别重载同一名字子空间是指允许存在多个同名函数,而这些函数的参数表不同。

重定义/隐藏不同名字子空间用于继承,派生类与基类的函数同名,屏蔽基类的函数重写/覆盖不同名字子空间用于继承,子类重新定义父类虚函数的方法 40.多态的作用?【答案】主要是两个:(1)隐藏实现细节,使得代码能够模块化;扩展代码模块,实现代码重用;(2)接口重用:为了类在继承和派生的时候,保证使用家族中任一类的实例的某一属性时的正确调用。

41.当一个类A中没有声命任何成员变量与成员函数,这时sizeof(A)的值是多少,如果不是零,请解释一下编译器为什么没有让它为零。

【答案】sizeof(A)=1。

编译器不允许一个类的大小为0,会为它分配1字节的内存。

若不这样做,那2个类A的实例在内存中将会无法区分。

一个空类对象的大小是1byte。

这是被编译器安插进去的一个字节,这样就使得这个空类的两个实例得以在内存中配置独一无二的地址。

42.如果ClassA中定义并实现虚函数intfunc(void),ClassB中也实现该函数,那么上述变量a->func()将调用哪个类里面的函数?如果intfunc(void)不是虚函数,情况又如何?为什么?【答案】第一问调用的是B的。

第二问调用A的。

虚函数的一个典型应用,虚函数只能借助于指针或者引用来达到多态的效果。

43.C++里面是不是所有的动作都是main()引起的?如果不是,请举例。

【答案】比如全局变量的初始化,就不是由main函数引起的。

举例: classA{}; Aa;//a的构造函数限执行 intmain(){} 44.内联函数在编译时是否做参数类型检查【答案】内联函数要做参数类型检查,这是内联函数跟宏相比的优势。

45.请讲一讲析构函数和虚函数的用法和作用?【答案】析构函数是特殊的类成员函数,它没有返回类型,没有参数,不能随意调用,也没有重载,只有在类对象的生命期结束的时候,由系统自动调用,有释放内存空间的作用。

虚函数是C++多态的一种表现,使用虚函数,我们可以灵活的进行动态绑定,当然是以一定的开销为代价。

46.“new”inc++isa:A.libraryfunctionlikemallocincB.keywordC.operatorD.noneoftheabove【答案】C。

malloc是库函数,不在编译器控制范围之内;new是运算符,在编译器控制范围之内。

调用malloc时,从堆中申请内存;调用new时,从堆中申请内存并为内存调用构造函数。

47.对于C++中类(class)与结构(struct)的描述正确的为:A.类中的成员默认是private的,但是可以声明public,private和protected,结构中定义的成员默认的都是public;B.结构中不允许定义成员函数,但是类中可以定义成员函数;C.结构实例使用malloc()动态创建,类对象使用new操作符动态分配内存;D.结构和类对象都必须使用new创建;E.结构中不可以定义虚函数,但是类中可以定义虚函数.F.结构不可以存在继承关系,但是类可以存在继承关系.【答案】A,D 48.两个互相独立的类:ClassA和ClassB,都各自定义了非静态的公有成员函数PublicFunc()和非静态的私有成员函数PrivateFunc();现在要在ClassA中增加定义一个成员函数ClassA::AdditionalPunction(ClassAa,ClassBb);则可以在AdditionalPunction(ClassAx,ClassBy)的实现部分(函数功能体内部)出现的合法的表达是最全的是:A、x.PrivateFunc();x.PublicFunc();y.PrivateFunc();y.PublicFunc();B、x.PrivateFunc();x.PublicFunc();y.PublicFunc();C、x.PrivateFunc();y.PrivateFunc();y.PublicFunc();D、x.PublicFunc();y.PublicFunc();【标准答案】B 49.C++程序下列说法正确的有:A、对调用的虚函数和模板类都进行迟后编译.B、基类与子类中函数如果要构成虚函数,除了要求在基类中用virtual声名,而且必须名字相同且参数类型相同返回类型相同。

C、重载的类成员函数都必须要:或者返回类型不同,或者参数数目不同,或者参数序列的类型不同.D、静态成员函数和内联函数不能是虚函数,友员函数和构造函数也不能是虚函数,但是析构函数可以是虚函数.【标准答案】A 50.在C++中有没有纯虚构造函数?【答案】构造函数不能是虚的。

只能有虚的析构函数。

51.下面的throw表达式哪些是错误的?(a)classexceptionType{};throwexceptionType{};(b)enummathErr{overflow,underflow,zeroDivide};throwzeroDivide();【答案】(a)classexceptionType{};throwexceptionType();(b)enummathErr{overflow,underflow,zeroDivide};throwzeroDivide; 52.谈谈你是怎么认识c++中的模板的?【答案】模板使程序员能够快速建立具有类型安全的类库集合和函数集合,它的实现,方便了大规模的软件开发。

53.在c++的一个类中声明一个static成员变量有没有用?【答案】在C++类的成员变量被声明为static(称为静态成员变量),意味着它为该类的所有实例所共享,也就是说当某个类的实例修改了该静态成员变量,也就是说不管创建多少对象,static修饰的变量只占有一块内存。

其修改值为该类的其它所有实例所见;而类的静态成员函数也只能访问静态成员(变量或函数)。

static是加了访问控制的全局变量,不被继承。

54.C++中为什么用模板类。

【答案】(1)可用来创建动态增长和减小的数据结构(2)它是类型无关的,因此具有很高的可复用性。

(3)它在编译时而不是运行时检查数据类型,保证了类型安全(4)它是平台无关的,可移植性(5)可用于基本数据类型 55.函数模板与类模板有什么区别?【答案】函数模板的实例化是由编译程序在处理函数调用时自动完成的,而类模板的实例化必须由程序员在程序中显式地指定。

56.请你谈谈你在类中如何使用const的。

【答案】有时我们希望某些常量只在类中有效。

由于#define定义的宏常量是全局的,不能达到目的,于是想当然地觉得应该用const修饰数据成员来实现。

const数据成员的确是存在的,但其含义却不是我们所期望的。

const数据成员只在某个对象生存期内是常量,而对于整个类而言却是可变的,因为类可以创建多个对象,不同的对象其const数据成员的值可以不同。

不能在类声明中初始化const数据成员。

const数据成员的初始化只能在类构造函数的初始化表中进行。

57.函数重载,我们靠什么来区分调用的那个函数?靠返回值判断可以不可以?【答案】如果同名函数的参数不同(包括类型、顺序不同),那么容易区别出它们是不同的。

如果同名函数仅仅是返回值类型不同,有时可以区分,有时却不能。

例如:voidFunction(void);intFunction(void);上述两个函数,第一个没有返回值,第二个的返回值是int类型。

如果这样调用函数:intx=Function();则可以判断出Function是第二个函数。

问题是在C++/C程序中,我们可以忽略函数的返回值。

在这种情况下,编译器和程序员都不知道哪个Function函数被调用。

所以只能靠参数而不能靠返回值类型的不同来区分重载函数。

58、所有的运算符都能重载吗?【答案】不能被重载的运算符在C++运算符集合中,有一些运算符是不允许被重载的。

这种限制是出于安全方面的考虑,可防止错误和混乱。

(1)不能改变C++内部数据类型(如int,float等)的运算符。

(2)不能重载‘.’,因为‘.’在类中对任何成员都有意义,已经成为标准用法。

(3)不能重载目前C++运算符集合中没有的符号,如#,@,$等。

原因有两点,一是难以理解,二是难以确定优先级。

(4)对已经存在的运算符进行重载时,不能改变优先级规则,否则将引起混乱。

59.基类的析构函数不是虚函数,会带来什么问题?【答案】派生类的析构函数用不上,会造成资源的泄漏。

60.main函数执行以前,还会执行什么代码?【答案】全局对象的构造函数会在main函数之前执行。

四、程序阅读题(62-89) 62.Therearetwointvariables:aandb,don’tuse“if”,“?:”,“switch”orotherjudgementstatements,findoutthebiggestoneofthetwonumbers.【答案】((a+b)+abs(a-b))/2 63.如何打印出当前源文件的文件名以及源文件的当前行号?【答案】cout<<__file__ voidmain intnarrlength for cout i int returnx>y?x:y; } intx=55,y=77; max(x,y)+=12+11;//此时y=100; cout< usingnamespacestd; classhuman{ public: ~human(){ //析构函数,该类对象在生存期结束的时候会自动调用的一个函数 cout<Disp();//指向成员运算符,得到一个指针指向的元素 deletep; system("pause"); return0; } 【答案】humandisp…humanover… 71.下面的函数实现在一个固定的数上加上一个数,有什么错误,改正:intadd_n(intn){staticinti=100;i+=n;returni;}【答案】因为static使得i的值会保留上次的值。

以后的i会一直更新,使得第二次调用出现错误,去掉static就可了 72.写出打印结果unsignedshortarray[]={1,2,3,4,5,6,7};inti=3;*(array+i)=【答案】4 73.写一个函数计算当参数为n(n很大)时的值1-2+3-4+5-6+7…+n。

【答案】 longfn(longn) { if(n<=0) { printf("error:nmust>0); exit(1); } if(0==n%2) return(n/2)*(-1); else return(n/2)*(-1)+n; } 74.字符指针、浮点数指针、以及函数指针这三种类型的变量哪个占用的内存最大?为什么?【答案】指针变量也占用内存单元,而且所有指针变量占用内存单元的数量都是相同的。

就是说,不管是指向何种对象的指针变量,它们占用内存的字节数都是一样的,并且要足够把程序中所能用到的最大地址表示出来(通常是一个机器字长)。

75.以下三条输出语句分别输出什么?charstr1[]=“abc”;charstr2[]=“abc”;constcharstr3[]=“abc”;constcharstr4[]=“abc”;constchar*str5=“abc”;constchar*str6=“abc”;cout<>temp;unsignedintconstsize2=temp;charstr2[size2];【答案】str2定义出错,size2非编译器期间常量,而数组定义要求长度必须为编译期常量。

78.以下代码中的输出语句输出0吗,为什么? structCLS { intm_i; CLS(inti):m_i(i){} CLS() { CLS(0); } }; CLSobj; cout<val2)?val1:val2;}intmain(){intix=10,jx=20;cout<>i;//移位 val&=0x01;//与1相与 if(val)num++; } cout< #include #include usingnamespacestd; inttran(){ strings; intsum=0; intnum; cout<>s; for(inti=2;i<=s.length()-1;i++) { if(s[i]>='a'&&s[i]<='f'){ num=s[i]-'a'+10; } else{ num=s[i]-'1'+1; } intn=s.length()-1-i; intflag=1; while(n--){ flag*=16; } sum+=flag*num; } returnsum; } voidmain() { inta=tran(); cout< #include usingnamespacestd; voidmain() { //方法一,逐个字符交换 //chara[50]; //memset(a,0,sizeof(a));inti=0,j; //chart; //cin.getline(a,50,'\n'); //for(i=0,j=strlen(a)-1;i>str; str.assign(str.rbegin(),str.rend());//这两个函数都可以实现 //reverse(str.begin(),str.end()); cout< #include #include usingnamespacestd; //字符串中每个字母都有一个代表的ASCII值,每个字母统计的次数也是一个数值,两个数字可分别作为数值数组的下标和元素 intmain(){ inta[128]={0}; strings; cout<>s; for(inti=0;i templateclassQueue{ //循环队列的类定义 public: Queue(int=10); ~Queue(){delete[]elements;} voidEnQueue(Type&item); TypeDeQueue(); TypeGetFront(); voidMakeEmpty(){length=0;} //置空队列 intIsEmpty()const{returnlength==0;} //判队列空否 intIsFull()const{returnlength==maxSize;} //判队列满否 private: intrear,length; //队尾指针和队列长度 Type*elements; //存放队列元素的数组 intmaxSize; //队列最大可容纳元素个数 }; template Queue::Queue(intsz):rear(maxSize-1),length(0),maxSize(sz) {//建立一个最大具有maxSize个元素的空队列。

elements=newType[maxSize]; //创建队列空间 assert(elements!=0); //断言:动态存储分配成功与否 } template voidQueue::EnQueue(Type&item) { assert(!IsFull()); //判队列是否不满,满则出错处理 length++; //长度加1 rear=(rear+1)%maxSize; //队尾位置进1 elements[rear]=item; //进队列 } template TypeQueue::DeQueue() { assert(!IsEmpty()); //判断队列是否不空,空则出错处理 length--; //队列长度减1 returnelements[(rear-length+maxSize)%maxSize]; //返回原队头元素值 } template TypeQueue::GetFront() { assert(!IsEmpty()); returnelements[(rear-length+1+maxSize)%maxSize]; //返回队头元素值 } 95.已知A[n]为整数数组,试写出实现下列运算的递归算法:(1)求数组A中的最大整数。

(2)求n个整数的和。

(3)求n个整数的平均值。

【答案】 #include usingnamespacestd; classRecurveArray { //数组类声明 private: int*Elements; //数组指针 intArraySize; //数组尺寸 intCurrentSize; //当前已有数组元素个数 public: RecurveArray(intMaxSize=10): ArraySize(MaxSize),Elements(newint[MaxSize]){} ~RecurveArray(){delete[]Elements;} voidInputArray(); //输入数组的内容 intMaxKey(intn); //求最大值 intSum(intn); //求数组元素之和 floatAverage(intn); //求数组元素的平均值 }; voidRecurveArray::InputArray() { //输入数组的内容 cout<>Elements[i]; } intRecurveArray::MaxKey(intn) { //递归求最大值 if(n==1)returnElements[0]; inttemp=MaxKey(n-1); if(Elements[n-1]>temp)returnElements[n-1]; elsereturntemp; } intRecurveArray::Sum(intn){ //递归求数组之和 if(n==1)returnElements[0]; elsereturnElements[n-1]+Sum(n-1); } floatRecurveArray::Average(intn){ //递归求数组的平均值 if(n==1)return(float)Elements[0]; elsereturn((float)Elements[n-1]+(n-1)*Average(n-1))/n; } intmain(intargc,char*argv[]){ intsize=-1; cout<>size; RecurveArrayra(size); ra.InputArray(); cout< #include #defineMAXSIZE100 #defineOK1 #defineERROR-1 #defineOVERFLOW-2 typedefintstatus; typedefintElemType; typedefstructLNode { ElemTypedata; structLNode*next; }LNode,*LinkList; statusInitList(LinkList&L) { L=newLNode; L->next=NULL; returnOK; } statusAssigList(LinkList&L) { LinkListp,t; p=L; inte=1; printf("请输入要插入的值以00结束:"); while(e) { scanf_s("%d",&e); if(e==00) break; t=newLNode; t->data=e; t->next=NULL; p->next=t; p=t; } returnOK; } statusMax(LinkList&L) { intm; if(!L->next) returnL->data; m=Max(L->next); returnm>=L->data?m:L->data; } statusLength(LinkList&L) { if(!L->next) return1; else returnLength(L->next)+1; } doubleAverage(LinkList&L,intn) { doublea; if(!L->next) returnL->data; else { a=Average(L->next,n-1); return(a*(n-1)+L->data)/n; } } intmain() { intm,n; doublea; LinkListL; InitList(L); AssigList(L); m=Max(L->next); printf("最大值是:%d\n",m); m=Length(L->next); n=m; printf("结点个数:%d\n",m); a=Average(L->next,n); printf("平均值为:%f\n",a); system("pause"); return0; }在这里插入代码片 97.字符串的替换操作replace(String&s,String&t,String&v)是指:若t是s的子串,则用串v替换串t在串s中的所有出现;若t不是s的子串,则串s不变。

例如,若串s为“aabbabcbaabaaacbab”,串t为“bab”,串v为“abdc”,则执行replace操作后,串s中的结果为“aababdccbaabaaacabdc”。

试利用字符串的基本运算实现这个替换操作。

【答案】 String&String::Replace(String&t,String&v) { if((intid=Find(t))==-1) //没有找到,当前字符串不改,返回 { cout<1;i--) /*逐个出局,执行n-1次*/ { if(i==k) i=0; i=(i+m-1)%k; /*寻找出局位置*/ if(i!=k-1) { tmp=A[i]; /*出局者交换到第k-1位置*/ for(j=i;j usingnamespacestd; constintMAXNUM=28; intmain() { chara[7][5]={{1,'A','B','C','D'},{2,'A','B','C','D'},{3,'A','B','C','D'}, {4,'A','B','C','D'},{5,'A','B','C','D'},{6,'A','B','C','D'},{7,'A','B','C','D'}}; intnum=0; intindex; charpos; while(num>index>>pos; //printf("pos=%d\n",(int)pos); //printf("A=%d\n",(int)'A'); //printf("(int)(pos-'A')+1=%d\n",(int)(pos-'A')+1); if((index<1||index>7)||(pos'D')){ cout<1. 面向对象的程序设计思想是什么?
答:把数据结构和对数据结构进行操作的方法封装形成一个个的对象。


2. 什么是类?
答:把一些具有共性的对象归类后形成一个集合,也就是所谓的类。


3. 对象都具有的二方面特征是什么?分别是什么含义?
答:对象都具有的特征是:静态特征和动态特征。


静态特征是指能描述对象的一些属性,动态特征是指对象表现出来的行为
4. 在头文件中进行类的声明,在对应的实现文件中进行类的定义有什么意义?
#include #include usingnamespacestd; voidtest02() { strings; while(getline(cin,s)) { intsum=0,x; stringstreamss(s); while C++笔试题目-带答案.pdf 10-30 姓名_时间_DCCBBAADAD一选择题(1*10=10)1如果派生类以proctected方式继承基类则原基类的protected和public成员在派生类的访问性分别是DApublic和publicBpublic和protectedCprotected和publicDprotected和protected解析通过protected方 C++考题 canxuezhang的博客 01-03 8221 C++考点 C++练习题库 weixin_51267249的博客 05-03 1457 1.矩阵类 Description 实现矩阵类matrix,行数和列数均不超过10 成员方法如下: 构造函数matrix(intm,intn):m为矩阵的行数,n为矩阵的列数,第i行第j列的元素赋值为按行优先顺序存放的元素的序号; at(int,i)返回按行顺序优先的第i个元素 at(inti,intj):返回第i行第j列元素的值,注意和二维数组下标的差别。

比如at(3,4)是矩阵的第3行第4列的元素,而非行标为3列标为4的元素,在下面的示范数据中at(3,4)的结果为12。

sum():计算矩 C++笔试题汇总(含答案与分析) 11-22 这是本人亲自总结的C++笔试题汇总,参考了网络很多C++笔试题(包括各大IT公司,游戏公司),挑选出了一些经典的题和难题做解析。

作用:对工作面试笔试和C++水平提高很有用处 内容:C++,STL等; “相关推荐”对你有帮助么? 非常没帮助 没帮助 一般 有帮助 非常有帮助 提交 ©️2022CSDN 皮肤主题:深蓝海洋 设计师:CSDN官方博客 返回首页 PennLi CSDN认证博客专家 CSDN认证企业博客 码龄3年 暂无认证 50 原创 6万+ 周排名 41万+ 总排名 43万+ 访问 等级 2041 积分 148 粉丝 202 获赞 31 评论 1618 收藏 私信 关注 热门文章 什么是CICD 273416 100条经典C++笔试题目及答案分享 40498 TypeError:strptime()argument1mustbestr,notbytes解决办法 14752 PsExec用法及远程操控执行脚本举例 14518 Python之向量相加中使用到list元素求和、合并 13510 分类专栏 Android 4篇 C/C++ 2篇 opencv 3篇 DL 2篇 Pytorch 1篇 TensorFlow 1篇 Linux 12篇 SharePoint 8篇 C# 2篇 测试 6篇 python 11篇 系统运维 6篇 最新评论 100条经典C++笔试题目及答案分享 sinat_27762903: operator,翻译问题,可以翻译成操作符或运算符,new是关键字也是操作符。

个人理解。

什么是CICD 拥有人鱼线的娃娃鱼: TypeError:strptime()argument1mustbestr,notbytes解决办法 Joe_Hall_Lee: AttributeError:module'datetime'hasnoattribute'strptime' Linux命令ls-l详细信息说明 我名异侠: 字段1–文件许可权:接下来的9个字符指定文件许可权。

每三个字符分别依次指定用户(root),组和其他用户的读取,写入,执行权限。

以上面的示例为例,-rw-rw-r–分别表示对user(root)的读写权限,对组的读取权限以及对其他用户的权限。

如果所有三个权限都授予用户(root),组和其他用户,则格式类似于-rwxrwxrwx 字段2–链接数:第二个字段指定该文件的链接数。

在此示例中,1表示仅指向该文件的一个链接。

字段3–所有者:第三个字段指定文件的所有者。

在此示例中,该文件由用户名“maverick”拥有。

字段4–组:第四字段指定文件的组。

在此示例中,该文件属于“特立独行”组。

字段5–大小:第五个字段指定文件大小(以字节为单位)。

在此示例中,“1176”指示文件大小(以字节为单位)。

字段6–上次修改的日期和时间:第六个字段指定文件上次修改的日期和时间。

在此示例中,“Feb1600:19”指定文件的最后修改时间。

字段7–文件名:最后一个字段是文件名。

在本示例中,文件名是1.c。

如何使用opencv给视频添加水印并保存 byzaaa: 求问怎么将图片放在视频中央呢 您愿意向朋友推荐“博客详情页”吗? 强烈不推荐 不推荐 一般般 推荐 强烈推荐 提交 最新文章 adb官方最新下载链接和常用操作 Qt常用快捷键 OpenCV故障汇总(持续更新) 2022年1篇 2020年9篇 2019年48篇 目录 目录 分类专栏 Android 4篇 C/C++ 2篇 opencv 3篇 DL 2篇 Pytorch 1篇 TensorFlow 1篇 Linux 12篇 SharePoint 8篇 C# 2篇 测试 6篇 python 11篇 系统运维 6篇 目录 打赏作者 PennLi 你的鼓励将是我创作的最大动力 ¥2 ¥4 ¥6 ¥10 ¥20 输入1-500的整数 余额支付 (余额:--) 扫码支付 扫码支付:¥2 获取中 扫码支付 您的余额不足,请更换扫码支付或充值 打赏作者 实付元 使用余额支付 点击重新获取 扫码支付 钱包余额 0 抵扣说明: 1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。

2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值



請為這篇文章評分?