ImageVerifierCode 换一换
格式:DOCX , 页数:43 ,大小:33.49KB ,
资源ID:8040214      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-8040214.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(面试求职经典问题Word文件下载.docx)为本站会员(b****4)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

面试求职经典问题Word文件下载.docx

1、char a;double b;int c;char d;struct s2char b;double d;coutsizeof(s1) / 24sizeof(s2) / 16 同样是两个char类型,一个int类型,一个double类型,但是因为对界问题,导致他们的大小不同。计算结构体大小可以采用元素摆放法,我举例子说明一下:首先,CPU判断结构体的对界,根据上一节的结论,s1和s2的对界都取最大的元素类型,也就是double类型的对界8。然后开始摆放每个元素。 对于s1,首先把a放到8的对界,假定是0,此时下一个空闲的地址是1,但是下一个元素d是double类型,要放到8的对界上,离1最接

2、近的地址是8了,所以d被放在了8,此时下一个空闲地址变成了16,下一个元素c的对界是4,16可以满足,所以c放在了16,此时下一个空闲地址变成了20,下一个元素d需要对界1,也正好落在对界上,所以d放在了20,结构体在地址21处结束。由于s1的大小需要是8的倍数,所以21-23的空间被保留,s1的大小变成了24。 对于s2,首先把a放到8的对界,假定是0,此时下一个空闲地址是1,下一个元素的对界也是1,所以b摆放在1,下一个空闲地址变成了2;下一个元素c的对界是4,所以取离2最近的地址4摆放c,下一个空闲地址变成了8,下一个元素d的对界是8,所以d摆放在8,所有元素摆放完毕,结构体在15处结束

3、,占用总空间为16,正好是8的倍数。 这里有个陷阱,对于结构体中的结构体成员,不要认为它的对齐方式就是他的大小,看下面的例子:char a8;struct s3s1 s;struct s4s2 s; / 8sizeof(s3) / 9sizeof(s4) / 16; s1和s2大小虽然都是8,但是s1的对齐方式是1,s2是8(double),所以在s3和s4中才有这样的差异。 所以,在自己定义结构体的时候,如果空间紧张的话,最好考虑对齐因素来排列结构体里的元素。posted 2006-09-11 21:42 顽主 阅读(493) | 评论 (1) | 编辑 收藏 realloc更改已配置的内存

4、空间 _相关函数:malloc, calloc, free, brk表头文件:#Include 函数定义:void *realloc(void *ptr, size_t size)函 数说明:参数ptr为指向先前由malloc()、calloc()、realloc()所返回的内存指针, 而参数size()为新配置的内存大小 ,其值可比原内存大或小。 若小,内存内容并不会改变,且返回指针为原来内存启起地址;但若大,则realloc()不一定会返回原先的指针,原先的内容虽不会改变,但新多出的内存 则未设置初值。若是参数ptr指针为NULL,则调用相当于malloc(size);若参数size为0,

5、 此调用相当于free(ptr)返回值 :成功返回指针, 失败返回NULL范例:main() char *ptr1=malloc(10); char *ptr2; memset(ptr1, A, 10); *(ptr1+10)=0 printf(before realloc: ptr= %x %sn, ptr1, ptr1); ptr2=realloc(ptr1, 40960);after realloc:, ptr2, ptr2);posted 2006-09-10 10:47 顽主 阅读(205) | 评论 (1) | 编辑 收藏 melloc() free()与 new delete m

6、alloc free 与new delete(1)分配空间时,malloc只给变量或对象(数组)在内存中申请足够的空间,而没有创建类的对象。 而new则构造完整的对象(2)释放内存时,free只消除掉该对象指向的内存,而原对象没有调用析构函数。 delete 在每个对象释放前都要调用析构函数。格式:char *p=(char *)malloc(10*sizeof(char);free(p);char *p=new char10;delete p;/其中delete 格式中 表示删除相应的对象数组;而缺少 时表示删除单一的对象。07 顽主 阅读(85) | 评论 (0) | 编辑 收藏 c+面试

7、题 1.是不是一个父类写了一个virtual 函数,如果子类覆盖它的函数不加virtual ,也能实现多态?virtual修饰符会被隐形继承的。private 也被集成,只事派生类没有访问权限而已virtual可加可不加子类的空间里有父类的所有变量(static除外)同一个函数只存在一个实体(inline除外)子类覆盖它的函数不加virtual ,也能实现多态。在子类的空间里,有父类的私有变量。私有变量不能直接访问。-2.输入一个字符串,将其逆序后输出。(使用C+,不建议用伪码)#include using namespace std;void main() char a50;memset(a

8、,0,sizeof(a); int i=0,j; char t; cin.getline(a,50,n); for(i=0,j=strlen(a)-1;istrlen(a)/2;i+,j-) t=ai; ai=aj; aj=t; astr;str.replace;3.请简单描述Windows内存管理的方法。内存管理是操作系统中的重要部分,两三句话恐怕谁也说不清楚吧我先说个大概,希望能够抛砖引玉吧当 程序运行时需要从内存中读出这段程序的代码。代码的位置必须在物理内存中才能被运行,由于现在的操作系统中有非常多的程序运行着,内存中不能够完全放下, 所以引出了虚拟内存的概念。把哪些不常用的程序片断就放

9、入虚拟内存,当需要用到它的时候在load入主存(物理内存)中。这个就是内存管理所要做的事。内 存管理还有另外一件事需要做:计算程序片段在主存中的物理位置,以便CPU调度。内存管理有块式管理,页式管理,段式和段页式管理。现在常用段页式管理块式管理:把主存分为一大块、一大块的,当所需的程序片断不在主存时就分配一块主存空间,把程 序片断load入主存,就算所需的程序片度只有几个字节也只能把这一块分配给它。这样会造成很大的浪费,平均浪费了50的内存空间,但时易于管理。页式管理:把主存分为一页一页的,每一页的空间要比一块一块的空间小很多,显然这种方法的空间利用率要比块式管理高很多。段式管理:把主存分为一

10、段一段的,每一段的空间又要比一页一页的空间小很多,这种方法在空间利用率上又比页式管理高很多,但是也有另外一个缺点。一个程序片断可能会被分为几十段,这样很多时间就会被浪费在计算每一段的物理地址上(计算机最耗时间的大家都知道是I/O吧)。段页式管理:结合了段式管理和页式管理的优点。把主存分为若干页,每一页又分为若干段。好处就很明显,不用我多说了吧。各种内存管理都有它自己的方法来计算出程序片断在主存中的物理地址,其实都很相似。这只是一个大概而已,不足以说明内存管理的皮毛。无论哪一本操作系统书上都有详细的讲解4.#include stdafx.h#define SQR(X) X*Xint main(i

11、nt argc, char* argv) int a = 10; int k = 2; int m = 1; a /= SQR(k+m)/SQR(k+m);%dn,a); return 0;这道题目的结果是什么啊?define 只是定义而已,在编择时只是简单代换X*X而已,并不经过算术法则的a /= (k+m)*(k+m)/(k+m)*(k+m);=a /= (k+m)*1*(k+m);a = a/9;a = 1;5.const 符号常量;(1)const char *p(2)char const *p(3)char * const p说明上面三种描述的区别;如果const位于星号的左侧,则c

12、onst就是用来修饰指针所指向的变量,即指针指向为常量;如果const位于星号的右侧,const就是修饰指针本身,即指针本身是常量。一个指向char类型的const对象指针,p不是常量,我们可以修改p的值,使其指向不同的char,但是不能改变它指向非char对象,如:const char *p;char c1=achar c2=bp=&c1;/okc2;*p=c1;/error这两个好象是一样的,此时*p可以修改,而p不能修改。(4)const char * const p这种是地址及指向对象都不能修改。6.下面是C语言中两种if语句判断方式。请问哪种写法更好?为什么? int n; if (

13、n = 10) / 第一种判断方式 if (10 = n) / 第二种判断方式如果少了个=号,编译时就会报错,减少了出错的可能行,可以检测出是否少了=7.下面的代码有什么问题?void DoSomeThing(.) char* p; . p = malloc(1024); / 分配1K的空间 if (NULL = p) return; p = realloc(p, 2048); / 空间不够,重新分配到2KA:p = malloc(1024); 应该写成: p = (char *) malloc(1024); 没有释放p的空间,造成内存泄漏。8.下面的代码有什么问题?并请给出正确的写法。voi

14、d DoSomeThing(char* p) char str16; assert(NULL != p); sscanf(p, %s%d, str, n); if (0 = strcmp(str, something)sscanf(p, 这句该写成:, str, &n);9.下面代码有什么错误?Void test1() char string10; char *str1=0123456789 strcpy(string, str1); 数组越界10.下面代码有什么问题?Void test2() char string10, str110; for(i=0; i10;i+) str1i = 11

15、.下面代码有什么问题?Void test3(char* str1) if(strlen(str1)=10) =数组越界=strcpy拷贝的结束标志是查找字符串中的0 因此如果字符串中没有遇到0的话 会一直复制,直到遇到0,上面的123都因此产生越界的情况建议使用 strncpy 和 memcpy12.下面代码有什么问题?#define MAX_SRM 256 DSN get_SRM_no() static int SRM_no; /是不是这里没赋初值? int I; for(I=0;I=MAX_SRM) return (NULL_SRM); else return SRM_no;系统会初始化s

16、tatic int变量为0,但该值会一直保存,所谓的不可重入.13.写出运行结果:/ test1 char str = world cout sizeof(str) : char *p = str; sizeof(p) char i = 10; sizeof(i) void *pp = malloc(10); endl;6:4:1:414.写出运行结果:/ test2 union V struct X unsigned char s1:2; unsigned char s2:3; unsigned char s3: x; unsigned char c; v; v.c = 100;%d, v.

17、x.s3);315.用C+写个程序,如何判断一个操作系统是16位还是32位的?不能用sizeof()函数A1:16位的系统下,int i = 65536;cout 65536 ) 32 bitelse16 bit16.C和C+有什么不同?从机制上:c是面向过程的(但c也可以编写面向对象的程序);c+是面向对象的,提供了类。但是,c+编写面向对象的程序比c容易从适用的方向:c适合要求代码体积小的,效率高的场合,如嵌入式;c+适合更上层的,复杂的; llinux核心大部分是c写的,因为它是系统软件,效率要求极高。从名称上也可以看出,c+比c多了+,说明c+是c的超集;那为什么不叫c+而叫c+呢,是

18、因为c+比c来说扩充的东西太多了,所以就在c后面放上两个+;于是就成了c+C语言是结构化编程语言,C+是面向对象编程语言。C+侧重于对象而不是过程,侧重于类的设计而不是逻辑的设计。17.在不用第三方参数的情况下,交换两个参数的值stdio.h int i=60; int j=50; i=i+j; j=i-j; i=i-j;i=%dn,i);j=%dn,j);方法二:i=j;j=i;方法三:/ 用加减实现,而且不会溢出a = a+b-(b=a)18.有关位域的面试题(为什么输出的是一个奇怪的字符)a.t = 效果相当于 a.t= & 0xf; - 01100010 0xf -00000010所以输出Ascii码为2的特殊字符char t:4;就是4bit的字符变量,同样unsigned short i:8;就是8bit的无符号短整形变量19.int i=10, j=10, k=3; k*=i+j; k最后的值是?6020.进程间通信的方式有?进程间通信的方式有 共享内存, 管道 ,Socket ,消息队列 , DDE等21.struct A char k:unsigned long m;si

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2