02
2020
04
编码实现直接插入排序
直接插入排序编程实现如下:#include <stdio.h> int main(){ int i,temp,p; int array[10] = {2,6,1,9,4,7,5,8,3,0}; printf("Display this array:\n"); for(i=0;i<10;i++) { printf("%d ",array[i]); } &nbs
作者:ghjk | 分类:c++面试题 | 浏览:304 | 评论:0
02
2020
04
简述队列和栈的异同
队列和栈都是线性存储结构,但是两者的插入和删除数据的操作不同,队列是“先进先出”,栈是“后进先出”。注意:区别栈区和堆区。堆区的存取是“顺序随意”,而栈区是“后进先出”。栈由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。堆一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收。分配方式类似于链表。它与本题中的堆和栈是两回事。堆栈只是一种数据结构,而堆区和栈区是程序的不同内存存储区域。
作者:ghjk | 分类:c++面试题 | 浏览:375 | 评论:0
02
2020
04
链表与数组的区别
数组和链表有以下几点不同:(1)存储形式:数组是一块连续的空间,声明时就要确定长度。链表是一块可不连续的动态空间,长度可变,每个结点要保存相邻结点指针。(2)数据查找:数组的线性查找速度快,查找操作直接使用偏移地址。链表需要按顺序检索结点,效率低。(3)数据插入或删除:链表可以快速插入和删除结点,而数组则可能需要大量数据移动。(4)越界问题:链表不存在越界问题,数组有越界问题。说明:在选择数组或链表数据结构时,一定要根据实际需要进行选择。数组便于查询,链表便于插入删除。数组节省空间但是长度固定,
作者:ghjk | 分类:c++面试题 | 浏览:329 | 评论:0
02
2020
04
简述strcpy sprintf与mencpy的区别
三者主要有以下不同之处:(1)操作对象不同,strcpy的两个操作对象均为字符串,sprintf的操作源对象可以是多种数据类型,目的操作对象是字符串,memcpy 的两个对象就是两个任意可操作的内存地址,并不限于何种数据类型。(2)执行效率不同,memcpy最高,strcpy次之,sprintf的效率最低。(3)实现功能不同,strcpy主要实现字符串变量间的拷贝,sprintf主要实现其他数据类型格式到字符串的转化,memcpy主要是内存块间的拷贝。说明:strcpy、sprintf与memc
作者:ghjk | 分类:c++面试题 | 浏览:334 | 评论:0
02
2020
04
简述C、C++程序编译的内存分配情况
C、C++中内存分配方式可以分为三种:(1)从静态存储区域分配:内存在程序编译时就已经分配好,这块内存在程序的整个运行期间都存在。速度快、不容易出错,因为有系统会善后。例如全局变量,static变量等。(2)在栈上分配:在执行函数时,函数内局部变量的存储单元都在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。(3)从堆上分配:即动态内存分配。程序在运行的时候用malloc或new申请任意大小的内存,程序员自己负责在何时用fr
作者:ghjk | 分类:c++面试题 | 浏览:302 | 评论:0
02
2020
04
a 和 &a 有什么区别
请写出以下代码的打印结果,主要目的是考察a和&a的区别。#include<stdio.h> void main( void ) { int a[5]={1,2,3,4,5}; int *ptr=(int *)(&a+1); printf("%d,%d",*(a+1),*(ptr-1)); &nb
作者:ghjk | 分类:c++面试题 | 浏览:274 | 评论:0
02
2020
04
一个指针可以是volatile吗?
可以,因为指针和普通变量一样,有时也有变化程序的不可控性。常见例:子中断服务子程序修改一个指向一个buffer的指针时,必须用volatile来修饰这个指针。
作者:ghjk | 分类:c++面试题 | 浏览:277 | 评论:0
02
2020
04
02
2020
04
sizeof和strlen的区别
sizeof和strlen有以下区别: sizeof是一个操作符,strlen是库函数。 sizeof的参数可以是数据的类型,也可以是变量,而strlen只能以结尾为‘\0‘的字符串作参数。 编译器在编译时就计算出了sizeof的结果。而strlen函数必须在运行时才能计算出来。并且sizeof计算的是数据类型占内存的大小,而strlen计算的是字符串实际的长度。 数组做sizeof的参数不退化,传递给strlen就退化为指针了。注意:有些是操作符看起来像是函数,而有些函数名看起来又像操
作者:ghjk | 分类:c++面试题 | 浏览:298 | 评论:0
02
2020
04
实现strcat
char* MyStrCat( char *pDest, const char *pSrc ) { if( nullptr == pDest || nullptr == pSrc ) { return nullptr; &
作者:ghjk | 分类:c++面试题 | 浏览:297 | 评论:0