cc++面试题集锦
- 格式:doc
- 大小:46.50 KB
- 文档页数:15
C/C++面试十大必问题目1.Heap与stack的差别答:Heap是堆,stack是栈。
Stack的空间由操作系统自动分配/释放,Heap上的空间手动分配/释放。
Stack空间有限,Heap是很大的自由存储区C中的malloc函数分配的内存空间即在堆上,C++中对应的是new操作符。
程序在编译期对变量和函数分配内存都在栈上进行,且程序运行过程中函数调用时参数的传递也在栈上进行。
2.In C++, what does "explicit" mean? what does "protected" mean?答:c++中的explicit关键字用来修饰类的构造函数,表明该构造函数是显式的,在某些情况下,我们要求类的使用者必须显示调用类的构造函数时就需要使用explicit,反之默认类型转换可能会造成无法预期的问题。
protected控制的是一个函数对一个类的成员(包括成员变量及成员方法)的访问权限。
protected成员只有该类的成员函数及其派生类的成员函数可以访问3.在c++的一个类中声明一个static成员变量有没有用?答:在C++类的成员变量被声明为static(称为静态成员变量),意味着它为该类的所有实例所共享,也就是说当某个类的实例修改了该静态成员变量,也就是说不管创建多少对象,static修饰的变量只占有一块内存。
其修改值为该类的其它所有实例所见;而类的静态成员函数也只能访问静态成员(变量或函数)。
static是加了访问控制的全局变量,不被继承。
4.关于内存对齐的问题以答:编译器自动对齐的原因:为了提高程序的性能,数据结构(尤其是栈)应该尽可能地在自然边界上对齐。
原因在于,为了访问未对齐的内存,处理器需要作两次内存访问;然而,对齐的内存访问仅需要一次访问。
5.C++中为什么用模板类?答:(1)可用来创建动态增长和减小的数据结构(2)它是类型无关的,因此具有很高的可复用性。
精选全文完整版(可编辑修改)c语言面试题目及最佳答案1、描述⼀下gcc的编译过程?gcc编译过程分为4个阶段:预处理、编译、汇编、链接。
预处理:头⼀件包含、宏替换、条件编译、删除注释编译:主要进⼀词法、语法、语义分析等,检查⼀误后将预处理好的⼀件编译成汇编⼀件。
汇编:将汇编⼀件转换成⼀进制⼀标⼀件链接:将项⼀中的各个⼀进制⼀件+所需的库+启动代码链接成可执⼀⼀件2、内存的最⼀存储单位以及内存的最⼀计量单位分别是?内存的最⼀存储单位为⼀进制位,内存的最⼀计量单位字节3、#include<> 与#include ""的区别?include<>到系统指定⼀录寻找头⼀件,#include ""先到项⼀所在⼀录寻找头⼀件,如果没有找再到系统指定的⼀录下寻找4、描述⼀下变量的命名规则变量名有字⼀、数值、下划线组成,但不能以数值开头5、变量的声明与定义有啥区别?声明变量不需要建⼀存储空间,变量的定义需要建⼀存储空间6、谈谈c语⼀中有符号和⼀符号的区别?有符号:数据的最⼀位为符号位,0表示正数,1表示负数⼀符号:数据的最⼀位不是符号位,⼀是数据的⼀部分7、谈谈计算机中补码的意义统⼀了零的编码将符号位与其他位统⼀处理将减法运算转换成加法运算8、谈谈数组的特点同⼀个数组所有的成员都是相同的数据类型,同时所有的成员在内存中的地址是连续的9、数组的分类数组的分类主要是:静态数组、动态数组两类。
静态数组:类似int arr[5];在程序运⼀就确定了数组的⼀⼀,运⼀过程不能更改数组的⼀⼀。
动态数组:主要是在堆区申请的空间,数组的⼀⼀是在程序运⼀过程中确定,可以更改数组的⼀⼀。
10、描述⼀下⼀维数组的不初始化、部分初始化、完全初始化的不同点不初始化:如果是局部数组数组元素的内容随机如果是全局数组,数组的元素内容为0 部分初始化:未被初始化的部分⼀动补0完全初始化:如果⼀个数组全部初始化可以省略元素的个数数组的⼀⼀由初始化的个数确定11、谈谈数组名作为类型、作为地址、对数组名取地址的区别?数组名作为类型:代表的是整个数组的⼀⼀数组名作为地址:代表的是数组⼀元素的地址对数组名取地址:代表的是数组的⼀地址12、谈谈你对⼀维数组在物理上以及逻辑上的数组维度理解⼀维数组在逻辑上是⼀维的,在物理上是⼀维的13、描述⼀下函数的定义与函数的声明的区别函数定义:是指对函数功能的确⼀,包括指定函数名、函数类型、形参及其类型、函数体等,它是⼀个完整的、独⼀的函数单位。
C/C 程序员常见面试题深入剖析1.引言本文的写作目的并不在于提供C/C 程序员求职面试指导,而旨在从技术上分析面试题的内涵。
文中的大多数面试题来自各大论坛,部分试题解答也参考了网友的意见-。
许多面试题看似简单,却需要深厚的基本功才能给出完美的解答。
企业要求面试者写一个最简单的strcpy函数都可看出面试者在技术上究竟达到了怎样的程度,我们能真正写好一个strcpy函数吗?我们都觉得自己能,可是我们写出的strcpy很可能只能拿到10分中的2分。
读者可从本文看到strcpy函数从2分到10分解答的例子,看看自己属于什么样的层次。
此外,还有一些面试题考查面试者敏捷的思维能力。
分析这些面试题,本身包含很强的趣味性;而作为一名研发人员,通过对这些面试题的深入剖析则可进一步增强自身的内功。
2.找错题试题1:void test1(){char string[10];char* str1 = "0123456789";strcpy( string, str1 ); }试题2:void test2(){char string[10], str1[10];int i;for(i=0; i<10; i ){ str1 = 'a';}strcpy( string, str1 ); }试题3:void test3(char* str1){char string[10];if( strlen( str1 ) <= 10 ){strcpy( string, str1 );}}解答:试题1字符串str1需要11个字节才能存放下(包括末尾的'\0'),而string只有10个字节的空间,strcpy会导致数组越界;对试题2,如果面试者指出字符数组str1不能在数组内结束可以给3分;如果面试者指出strcpy(string,str1)调用使得从str1内存起复制到string内存起所复制的字节数具有不确定性可以给7分,在此基础上指出库函数strcpy工作方式的给10分;对试题3,if(strlen(str1) <= 10)应改为if(strlen(str1) <10),因为strlen的结果未统计'\0'所占用的1个字节。
常⽤的16个cc++⾯试题1. C中static有什么作⽤ (1)隐藏。
当我们同时编译多个⽂件时,所有未加static前缀的全局变量和函数都具有全局可见性,故使⽤static在不同的⽂件中定义同名函数和同名变量,⽽不必担⼼命名冲突。
(2)static的第⼆个作⽤是保持变量内容的持久。
存储在静态数据区的变量会在程序刚开始运⾏时就完成初始化,也是唯⼀的⼀次初始化。
共有两种变量存储在静态存储区:全局变量和static变量。
(3)static的第三个作⽤是默认初始化为0.其实全局变量也具备这⼀属性,因为全局变量也存储在静态数据区。
在静态数据区,内存中所有的字节默认值都是0×00,某些时候这⼀特点可以减少程序员的⼯作量。
2.C++中const有什么⽤? 不要⼀听到const就说是常量,这样给考官⼀种在和⼀个外⾏交谈的感觉。
应该说const修饰的内容不可改变就⾏了,定义常量只是⼀种使⽤⽅式⽽已,还有const数据成员,const参数, const返回值, const成员函数等,被const修饰的东西都受到强制保护,可以预防意外的变动,能提⾼程序的健壮性。
3. C与C++各⾃是如何定义常量的?有什么不同? C中是使⽤宏#define定义, C++使⽤更好的const来定义。
区别: 1)const是有数据类型的常量,⽽宏常量没有,编译器可以对前者进⾏静态类型安全检查,对后者仅是字符替换,没有类型安全检查,⽽且在字符替换时可能会产⽣意料不到的错误(边际效应)。
2)有些编译器可以对const常量进⾏调试,不能对宏调试。
4. 既然C++中有更好的const为什么还要使⽤宏? const⽆法代替宏作为卫哨来防⽌⽂件的重复包含。
5. C++中引⽤和指针的区别? 引⽤是对象的别名,操作引⽤就是操作这个对象,必须在创建的同时有效得初始化(引⽤⼀个有效的对象,不可为NULL),初始化完毕就再也不可改变,引⽤具有指针的效率,⼜具有变量使⽤的⽅便性和直观性,在语⾔层⾯上引⽤和对象的⽤法⼀样,在⼆进制层⾯上引⽤⼀般都是通过指针来实现的,只是编译器帮我们完成了转换。
C语言面试题大汇总之华为面试题0> static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?全局变量(外部变量)的说明之前再冠以static就构成了静态的全局变量。
全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式。
这两者在存储方式上并无不同。
这两者的区别虽在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。
而静态全局变量则限制了其作用域,即只在定义该变量的源文件内有效,在同一源程序的其它源文件中不能使用它。
由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用,因此可以避免在其它源文件中引起错误。
从以上分析可以看出,把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。
把全局变量改变为静态变量后是改变了它的作用域,限制了它的使用范围。
static函数与普通函数作用域不同。
仅在本文件。
只在当前源文件中使用的函数应该说明为内部函数(static),内部函数应该在当前源文件中说明和定义。
对于可在当前源文件以外使用的函数,应该在一个头文件中说明,要使用这些函数的源文件要包含这个头文件static全局变量与普通的全局变量有什么区别:static全局变量只初使化一次,防止在其他文件单元中被引用;static局部变量和普通局部变量有什么区别:static局部变量只被初始化一次,下一次依据上一次结果值;static函数与普通函数有什么区©J:static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝1> extern存储类别全局变量的默认方式,当在一个文件中要引用另一个文件中的全局变量或在全局变量定义之前要引用它时,可用extern作说明,相当于扩大全局变量的作用域。
2、静态(static)存储类别它仅能在本文件中引用,即使在其它文件中用extern说明也不能使用。
C语言面试题大汇总之华为面试题0、static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。
全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式。
这两者在存储方式上并无不同。
这两者的区别虽在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。
而静态全局变量则限制了其作用域,即只在定义该变量的源文件内有效,在同一源程序的其它源文件中不能使用它。
由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用,因此可以避免在其它源文件中引起错误。
从以上分析可以看出,把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。
把全局变量改变为静态变量后是改变了它的作用域,限制了它的使用范围。
static函数与普通函数作用域不同。
仅在本文件。
只在当前源文件中使用的函数应该说明为内部函数(static),内部函数应该在当前源文件中说明和定义。
对于可在当前源文件以外使用的函数,应该在一个头文件中说明,要使用这些函数的源文件要包含这个头文件static全局变量与普通的全局变量有什么区别:static全局变量只初使化一次,防止在其他文件单元中被引用;static局部变量和普通局部变量有什么区别:static局部变量只被初始化一次,下一次依据上一次结果值;static函数与普通函数有什么区别:static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝1、extern 存储类别全局变量的默认方式,当在一个文件中要引用另一个文件中的全局变量或在全局变量定义之前要引用它时,可用extern作说明,相当于扩大全局变量的作用域。
2、静态(static)存储类别它仅能在本文件中引用,即使在其它文件中用extern说明也不能使用。
1.C#中property与attribute的区别,他们各有什么用处,这种机制的好处在哪里?2.讲一讲你理解的web service,在dot net framework中,怎么很好的结合xml?(讲概念就行了)3.C#,Java和c++的特点,有什么相同的地方,不同的地方,C#分别从c++和java中吸取了他们那些优点?4.C#可否对内存进行直接的操作?(这可是个难点哦?要注意!)5.用Visual C++6.0编写的代码(unmanaged code),如何在CLR下和其他dot net component结合?6.以前作过的一些项目?介绍一下自己的编程经验。
(这是蒙混不过去的,基本一问就知道是真是假)7.你对公司有什么期望?你的薪水期望值?为什么学计算机?以前的工作经验(这非常重要)?Q3:维护数据库的完整性、一致性、你喜欢用触发器还是自写业务逻辑?为什么Q4:ADO。
NET相对于ADO等主要有什么改进?Q5:ASP。
NET与ASP相比,主要有哪些进步?Q6:C#中的委托是什么?事件是不是一种委托?Q7:描述一下C#中索引器的实现过程,是否只能根据数字进行索引?Q8:C#中要使一个类支持FOREACH遍历,实现过程怎样?Q10:写一个HTML页面,实现以下功能,左键点击页面时显示“您好”,右键点击时显示“禁止右键”。
并在2分钟后自动关闭页面。
Q11:你对XMLHTTP、WEBSERVICE了解吗?简单描述其特点、作用Q12:接口和抽象类有什么区别?你选择使用接口和抽象类的依据是什么?Q13:自定义控件和一般用户控件的异同?如果要用这两者之一,你会选择哪种?为什么Q14:大概描述一下ASP。
NET服务器控件的生命周期Q15:UMLQ16:面向对象的概念,主要特点Q17:类划分的依据。
类粒度问题Q18:事物管理问题第一,谈谈final,finally,finalize的区别。
第二,Anonymous Inner Class(匿名内部类)是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?第三,Static Nested Class和Inner Class的不同,说得越多越好(面试题有的很笼统)。
c c 面试题及答案C C 面试题及答案1. 简介在众多的求职筛选过程中,面试一直是最重要的环节之一。
而 C 和C++ 是编程语言中的重要一环,许多企业会针对 C C 方向的职位设立相关的面试题目。
本文将为大家整理一些常见的C C 面试题及其答案,希望能够帮助到想要应聘相关职位的求职者。
2. 基础题目2.1 请解释什么是指针?指针是 C 和 C++ 语言中的一种数据类型,它存储的是内存地址。
通过指针,我们可以直接访问和修改该内存地址上的数据。
2.2 C 和 C++ 的区别是什么?C 和 C++ 都是面向过程的编程语言,但是 C++ 是在 C 语言基础上发展而来的,增加了许多面向对象的特性。
C++ 中可以使用类、继承、多态等面向对象的概念,而 C 语言中并不支持这些特性。
2.3 请解释什么是动态内存分配?动态内存分配是指在程序运行时,根据需要从计算机的堆(heap)中分配内存空间。
C 和 C++ 中提供了 `malloc()` 和 `new` 两种函数/操作符来实现动态内存分配,并通过 `free()` 和 `delete` 来释放已分配的内存。
3. 进阶题目3.1 请解释什么是运算符重载?运算符重载指的是在 C++ 中可以对已有的运算符重新定义其行为。
通过运算符重载,我们可以让同一个运算符在不同的对象上执行不同的操作,从而增加代码的灵活性与可读性。
3.2 请解释什么是虚函数?虚函数是 C++ 中一种用于实现多态性的特殊函数。
它通过在父类中声明为虚函数,即在函数原型前加上 `virtual` 关键字,在子类中对其进行重写,实现了在运行时动态绑定函数的功能。
3.3 什么是内联函数?与宏有什么区别?内联函数是一种在编译时将函数调用处直接替换为函数体的编译优化技术,可以减少函数调用的开销,提高程序执行效率。
与宏相比,内联函数在语义上与普通函数相同,可以进行类型检查以及具有作用域和命名空间的限制,更加安全可靠。
最常见的50个CC面试题C/C++经典面试题面试题1:变量的声明和定义有什么区别为变量分配地址和存储空间的称为定义,不分配地址的称为声明。
一个变量可以在多个地方声明,但是只在一个地方定义。
加入e某tern修饰的是变量的声明,说明此变量将在文件以外或在文件后面部分说明:很多时候一个变量,只是声明不分配内存空间,直到具体使用时才初始化,分配内存空间,如外部变量。
面试题2:写出bool、int、float、指针变量与“零值”比较的if 语句bool型数据:if(flag){A;}ele{B;}}注意:应特别注意在int、指针型变量和“零值”比较的时候,放在左边,这样当把“==”误写成“=”时,编译器可以报错,否则这种逻辑错误不容易发现,并且可能导致很严重的后果。
面试题3:izeof和trlen的区别izeof和trlen有以下区别:izeof是一个操作符,trlen是库函数。
izeoftrlen只能以结尾为‘\0‘的字符串作参数。
izeof的结果。
而trlen函数必须在运行时才能计算出来。
并且izeof计算的是数据类型占内存的大小,而trlen计算的是字符串实际的长度。
数组做izeof的参数不退化,传递给trlen就退化为指针了。
注意:有些是操作符看起来像是函数,而有些函数名看起来又像操作符,这类容易混淆的名称一定要加以区分,否则遇到数组名这类特殊数据类型作参数时就很容易出错。
最容易混淆为函数的操作符就是izeof。
面试题4:C语言的关键字tatic和C++的关键字tatic有什么区别在C中tatic用来修饰局部静态变量和外部静态变量、函数。
而C++中除了上述功能外,还用来定义类的成员变量和函数。
即静态成员和静态成员函数。
注意:编程时tatic的记忆性,和全局性的特点可以让在不同时期调用的函数进行通信,传递信息,而C++的静态成员则可以在多个对象实例间进行通信,传递信息。
面试题5:C中的malloc和C++中的new有什么区别malloc和new有以下不同:(1)new、delete是操作符,可以重载,只能在C++中使用。
c/c++面试题集锦1.多态类中的虚函数表是Compile-Time,还是Run-Time时建立的?2.将一个1M -10M 的文件,逆序存储到另一个文件,就是前一个文件的最后一个字符存到新文件的第一个字符,以此类推。
3.main主函数执行完毕后,是否可能会再执行一段代码?4.一个父类写了一个virtual 函数,如果子类覆盖它的函数不加virtual ,也能实现多态?在子类的空间里,有没有父类的这个函数,或者父类的私有变量?5.给一个字符串、例如“ababc”要求返回“ab”. 因为“ab”连续重复出现且最长。
用C/C++语言写一函数完成该算法,给出复杂度6.对序列1、1、2、3、5、8、13。
是Fab..数列2、3、5、13...是Fab..质数数列,因为他们与自己前面的Fab...数列都互质给出k,返回第k小的Fab..质数7.101个硬币100真、1假,真假区别在于重量。
请用无砝码天平称两次给出真币重还是假币重的结论。
8.完成字符串拷贝可以使用sprintf、strcpy 及memcpy 函数,请问这些函数有什么区别,你喜欢使用哪个,为什么?9.变量的声明和定义有什么区别?10.请写出下面代码在32 位平台上的运行结果,并说明sizeof 的性质:#include <stdio.h>#include <stdlib.h>int main(void){char a[30];char *b = (char *)malloc(20 * sizeof(char));printf("%d\n", sizeof(a));printf("%d\n", sizeof(b));printf("%d\n", sizeof(a[3]));printf("%d\n", sizeof(b+3));printf("%d\n", sizeof(*(b+4)));}12.请完成以下题目。
注意,请勿直接调用ANSI C 函数库中的函数实现。
a)请编写一个C 函数,该函数给出一个字节中被置1 的位的个数,并请给出该题的至少一个不同解法。
b)请编写一个C 函数,该函数将给定的一个字符串转换成整数。
c)请编写一个C 函数,该函数将给定的一个整数转换成字符串。
d)请编写一个C 函数,该函数将一个字符串逆序。
e)请编写一个C 函数,该函数在给定的内存区域搜索给定的字符,并返回该字符所在位置索引值。
f)请编写一个C 函数,该函数在一个字符串中找到可能的最长的子字符串,该字符串是由同一字符组成的。
给出演示上述函数功能的一个简单程序,并请编写对应的Makefile 文件13.我们需要编写一个图形相关的应用程序,需要处理大量图形(Shape)信息,图形有矩形(Rectangle),正方形(Square),圆形(Circle)等种类,应用需要计算这些图形的面积,并且可能需要在某个设备上进行显示(使用在标准输出上打印信息的方式做为示意)。
a)请用面向对象的方法对以上应用进行设计,编写可能需要的类b)请给出实现以上应用功能的示例性代码,从某处获取图形信息,并且进行计算和绘制c)如果你的Square继承自Rectangle,请给出理由,如果不是,请给出理由,并且请比较两种方式的优劣d)请问你所编写的类,在如下代码中会有何表现,请解释void test_rectangle_area(Rectangle& r){r.set_width(10);assert(r.area() == 150);}14.假设现有一个单向的链表,但是只知道只有一个指向该节点的指针p,并且假设这个节点不是尾节点,试编程实现删除此节点15.写一个程序,把一个100以内的自然数分解因数。
(自然数分解因数就是将一个自然数分解为几个素数的乘积,提示,由于该数不是很大,所以可以将质数保存在数组中,以加快计算速度)16.编写一个Identify的分配、释放的函数,为1-10000之间的自然数。
17.分别实现itoa和atoi.18.Consider the following code:#include <stdio.h>#include <string.h>int main(int argc, char *argv[]) {int i = 1;char buf[4];strcpy(buf, "AAAA");printf("%d\n", i);return 0;}a) When compiled and executed on x86, why does this program usually notoutput what the programmer intended?b) Name several ways in which the security problem that causes thisprogram not to output what the programmer intended can be preventedWITHOUT changing the code.19.int w=1,x=2,y=3,z=4;m=(w<x)?w:x;m=(m<y)?m:y;printf("m=%d",m); 说出结果20.说出结果#include <stdio.h>main(){FILE *fp;int i,a[4]={1,2,3,4},b;fp=fopen("data.dat","wb");//这里帮忙解释一下for(i=0;i<4;i++)fwrite(&a[i],sizeof(int),1,fp);//这里也帮忙看一下fclose(fp);fp=fopen("data.dat","rb");fseek(fp,-2L*sizeof(int),SEEK_END);//还有这里fread(&b,sizeof(int),1,fp);//这里还有也看一下fclose(fp);printf("b=%d\n",b);}21.有双向循环链表结点:typedef struct node{int date;struct node *front,*next;}_Node;有两个双向循环链表A,B,知道其头指针为:pHeadA,pHeadB,请写一函数将两上链表中date值相同的结点删除22.char * GetStr(){char *tmp;return tmp;}void main(){printf("%s", GetStr());}会输出123吗?123创建在堆上还是栈上呢?123的空间是什么时候释放的?23.字符指针、浮点数指针、以及函数指针这三种类型的变量哪个占用的内存最大?为什么?类ClassB从ClassA派生,那么ClassA *a = new ClassB(…); 试问该表达是否合法?为什么?如果ClassA中定义并实现虚函数int func(void),ClassB中也实现该函数,那么上述变量a->func()将调用哪个类里面的函数?如果int func(void)不是虚函数,情况又如何?为什么?char **p, a[16][8]; 问:p=a是否会导致程序在以后出现问题?为什么?如下所述的if else和switch语句哪个的效率高?为什么?在同一个进程中,一个模块是否可以通过指针操作破坏其它模块的内存,为什么?应用程序在运行时的内存包括代码区和数据区,其中数据区又包括哪些部分?24.Assignment 2: Picture ProcessingUse C++, Java, or similar languages or/and any middleware such as EJB and J2EE to process a picture with a high resolution (3 Mega Pixels f or example). Use some methodologies to degrade the resolution of the picture to make it quicker for browsing. Then divide the degraded pict ure into 9 sectors equally. Click any of the 9 sectors will result a detailed picture for this sector with the same resolution as that of the origin al picture. This assignment is designed for you to demonstrate your ability to handle pictures.25.用<<,>>,|,&实现一个WORD(2个字节)的高低位交换!!26.要开辟P1,P2,P3,P4内存来做缓冲,大小自定,但这四个缓冲的大小要一样,并且是连续的!27.有一浮点型数组A,用C语言写一函数实现对浮点数组A进行降序排序,并输出结果,要求要以数组A作为函数的入口.(建议用冒泡排序法)28.找错:#include <stdio.h>class Base{private:char * name;public:Base(char * className){name = new char[strlen(className)]; strcpy(name, className);}~Base(){delete name;}char * copyName(){char newname [256];strcpy(newname, name);return newname;}char * getName(){return name;}static void print(Base base){printf("name: %s\n" , );}class Subclass : public Base{public:Subclass(char * className) : Base(className){}};int main(){Base * pBase = new Subclass("test");Base::print(*pBase);printf("name: %s\n", pBase->getName());printf("new name: %s\n", pBase->copyName());return 0;}29.编写一个函数,函数接收一个字符串,是由十六进制数组成的一组字符串,函数的功能是把接到的这组字符串转换成十进制数字.并将十进制数字返回.30.编写一个函数将一条字符串分成两部分,将前半部分按ASCII码升序排序,后半部分不变,(如果字符串是奇数则中间的字符不变,)最后再将前后两部分交换,然后将该字符串输出,测试字符串“ADZDDJKJFIEJHGI”31.找错Void test1(){char string[10];char* str1="0123456789";strcpy(string, str1);}Void test2()char string[10], str1[10]; for(I=0; I<10;I++){str1[i] ='a';}strcpy(string, str1);}Void test3(char* str1){char string[10];if(strlen(str1)<=10){strcpy(string, str1);}}32. 找错#define MAX_SRM 256DSN get_SRM_no(){static int SRM_no;int I;for(I=0;I{SRM_no %= MAX_SRM;if(MY_SRM.state==IDLE) {}if(I>=MAX_SRM)return (NULL_SRM);elsereturn SRM_no;}33. 写出程序运行结果int sum(int a){auto int c=0;static int b=3;c+=1;b+=2;return(a+b+C);}void main(){int I;int a=2;for(I=0;I<5;I++){printf("%d,", sum(a)); }}int func(int a){int b;switch(a){case 1: 30;case 2: 20;case 3: 16;default: 0}return b;}则func(1)=?35:int a[3];a[0]=0; a[1]=1; a[2]=2;int *p, *q;p=a;q=&a[2];则a[q-p]=?36.定义int **a[3][4], 则变量占有的内存空间为:_____37.编写一个函数,要求输入年月日时分秒,输出该年月日时分秒的下一秒。