有史以来最全的C&C++语言笔试面试题(5)

2019-06-05 00:07

{ extern int *a;

printf (\ return 0; }

1 #include “filename.h”和#include 的区别?

对于#include 编译器从标准库开始搜索filename.h;对于#include ―filename.h‖编译器从用户工作路径开始搜索filename.h

2 头文件的作用是什么?

一、通过头文件来调用库功能。在很多场合,源代码不便(或不准)向用户公布,只要向用户提供头文件和二进制的库即可。用户只需要按照头文件中的接口声明来调用库功能,而不必关心接口怎么实现的。编译器会从库中提取相应的代码。

二、头文件能加强类型安全检查。如果某个接口被实现或被使用时,其方式与头文件中的声明不一致,编译器就会指出错误,这一简单的规则能大大减轻程序员调试、改错的负担。

3 C++函数中值的传递方式有哪几种?

C++函数的三种传递方式为:值传递、指针传递和引用传递。

4 内存的分配方式的分配方式有几种?

答:一、从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量。

二、在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。

三、从堆上分配,亦称动态内存分配。程序在运行的时候用malloc或new申请任意多少的内存,程序员自己负责在何时用free或delete释放内存。动态内存的生存期由我们决定,使用非常灵活,但问题也最多。

5 实现双向链表删除一个节点P,在节点P后插入一个节点,写出这两个函数; //删除操作

Status ListDelete_DuL(DuLinkList &L,int i,ElemType &e) {

if(!(p=GetElemP_DuL(L,i))) //此处得到i位置的节点指针,如果有需要也得写出具体函数实现 return ERROR; e=p->data;

p->prior->next=p->next; p->next->prior=p->pror; free(p); return OK; }

//插入操作

Status ListInsert_DuL(DuLinkList &L,int i,ElemType &e) {

if(!(p=GetElemP_DuL(L,i)))

return ERROR;

if(!(s=(DuLinkList)malloc(sizeof(DuLNode)))) //生成新节点 return ERROR;

s->data=e; s->prior=p;

p-> next -> prior =s; p->next=s;

s->next=p->next->next; return OK; }

6 写一个函数,将其中的\\t都转换成4个空格。

7 Windows程序的入口是哪里?写出Windows消息机制的流程.

8 如何定义和实现一个类的成员函数为回调函数?

9 C++里面是不是所有的动作都是main()引起的?如果不是,请举例. 比如全局变量的初始化,就不是由main函数引起的 举例: class A{};

A a; //a的构造函数限执行 int main() {}

10 C++里面如何声明const void f(void)函数为C程序中的库函数(华为)

11 下列哪两个是等同的 int b;

A const int* a = &b; B const* int a = &b;

C const int* const a = &b; D int const* const a = &b;

12 内联函数在编译时是否做参数类型检查

内联函数要做参数类型检查, 这是内联函数跟宏相比的优势

13 三个float:a,b,c

问值 (a+b)+c==(b+a)+c (a+b)+c==(a+c)+b

两者都不行。在比较float或double时,不能简单地比较。由于计算误差,相等的概率很低。应判断两数之差是否落在区间(-e,e)内。这个e应比浮点数的精度大一个数量级。

14 把一个链表反向 填空 (lucent) <<<

test* pe = head;

test* ps = head->next; while(ps) {

pe->next = ps->next; ps->next = head; head = ps; ps = pe->next; } }

从第一个元素开始,ps指向他,将他(ps)指向头节点(ps->next = head),将ps设为头节点(head = ps;)操作下一个元素(ps = pe->next;)等于是依次将每个元素翻到原头节点前面。

15 设计一个重采样系统,说明如何anti-alias

16 某个程序在一个嵌入式系统(200M的CPU,50M的SDRAM)中已经最化了,换到另一个系统( 300M的CPU,50M的SDRAM)中运行,还需要优化吗?

17. 下面哪种排序法对12354最快 a quick sort b.buble sort c.merge sort

18. 哪种结构,平均来讲,获取一个值最快 a. binary tree b. hash table c. stack

19 请问C++的类和C里面的struct有什么区别?

class中默认的成员访问权限是private的,而struct中则是public的

20 请讲一讲析构函数和虚函数的用法和作用?

析构函数是特殊的类成员函数,它没有返回类型,没有参数,不能随意调用,也没有重载,只有在类对象的生命期结束的时候,由系统自动调用。 有适放内存空间的做用。

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

21 全局变量和局部变量有什么区别?实怎么实现的?操作系统和编译器是怎么知道的? 生命周期不同:全局变量随主程序创建和创建,随主程序销毁而销毁

局部变量在局部函数内部,甚至局部循环体等内部存在,退出就不存在; 内存中分配在全局数据区 使用方式不同:通过声明后全局变量程序的各个部分都可以用到 局部变量只能在局部使用;分配在栈区

操作系统和编译器通过内存分配的位置来知道的,全局变量分配在全局数据段并且在程序开始运行的时候被加载。局部变量则分配在堆栈里面 。

22 一些寄存器的题目,主要是寻址和内存管理等一些知识。

23 8086是多少位的系统?在数据总线上是怎么实现的?

24 多态。overload 和 override的区别。

overload是重载,重载是一种参数多态机制,即代码通过参数的类型或个数不同而实现的多态机制。 是一种静态的绑定机制(在编译时已经知道具体执行的是哪个代码段)。

override是覆盖。覆盖是一种动态绑定的多态机制。即在父类和子类中同名元素(如成员函数)有不同的实现代码。执行的是哪个代码是根据运行时实际情况而定的。

重载Overload特点

public bool withdraw(double amt, string name) public double withdraw(double amt)

1、方法名必须相同2、参数列表必须不相同3、返回值类型可以不相同 注意:override存在于继继承的关系类中。 覆写Override特点(三相同): public override bool withdraw(...)

1、方法名相同2、参数列表相同3、返回值类型相同

注意:存在于同一类中,但是只有虚方法和抽象方法才能被覆写.

<> 25.完成下列程序 * *.*. *..*..*.. *...*...*...*...

*....*....*....*....*....

*.....*.....*.....*.....*.....*.....

*......*......*......*......*......*......*......

*.......*.......*.......*.......*.......*.......*.......*....... #include #define N 8 int main() { int i; int j; int k;

---------------------------------------------------------

| |

| |

| |

---------------------------------------------------------

return 0; }

26 完成程序,实现对数组的降序排序 #include

void sort( ); int main() {

int array[]={45,56,76,234,1,34,23,2,3}; //数字任//意给出 sort( ); return 0; }

void sort( )

{ ____________________________________

| |

| |

|-----------------------------------------------------| }

27 费波那其数列,1,1,2,3,5……编写程序求第十项。可以用递归,也可以用其他方 法,但要说明你选择的理由。 #include int Pheponatch(int); int main()

{ printf(\ return 0; }

int Pheponatch(int N) {

-------------------------------- | |

| | -------------------------------- }

28 下列程序运行时会崩溃,请找出错误并改正,并且说明原因。 #include #include typedef struct{ TNode* left;


有史以来最全的C&C++语言笔试面试题(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:律师在招投标服务过程中应注意的几个问题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: