




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一:已知类String的原型为:class Stringpublic:String(const char *str = NULL);/普通构造函数String(const String );/拷贝构造函数String(void);/析构函数String & operator = (const String );/赋值构造函数private:char * m_data;/用于保存字符串;请编写String的上述4个函数。答案:版本1/ String的析构函数String:String(void) / 3分delete m_data;/由于m_data是内部数据类型,也可以写成delete m_data;String:String(const char *str)if(str=NULL)m_data = new char1; /若能加NULL判断则更好*m_data = post.content;elseint length = strlen(str);m_data = new charlength+1; /若能加NULL判断则更好strcpy(m_data, str);/拷贝构造函数String:String(const String &other)int length = strlen(other.m_data);m_data = new charlength+1; /若能加NULL判断则更好strcpy(m_data, other.m_data);/赋值函数String & String:operate =(const String &other)/ (1)检查自赋值if(this = &other)return *this;/ (2)释放原有的内存资源delete m_data;/(3)分配新的内存资源,并复制内容int length = strlen(other.m_data);m_data = new charlength+1; /若能加NULL判断则更好strcpy(m_data, other.m_data);/(4)返回本对象的引用return *this;版本2String:String (const char *str)if(str)memset(m_data,0,strlen(m_data);strcpy(m_data,str);else *m_data=0;String:String (const String )strcpy(m_data,copy.m_data);String& String:operator =(const String )if(this=) retrun *this;strcpy(m_data,copy.m_data);return *this;版本3String:String (const char *str)if ( m_data )delete m_data;if(str)m_data = new charstrlen(str);memset(m_data,0,strlen(m_data);strcpy(m_data,str);else *m_data=0;String:String (const String )if ( m_data )delete m_data;m_data = new charstrlen(copy.m_data+1)strcpy(m_data,copy.m_data);String& String:operator =(const String )if(this=) retrun *this;if ( m_data )delete m_data;m_data = new charstrlen(copy.m_data+1)strcpy(m_data,copy.m_data);return *this;String:String(void)if ( m_data )delete m_data;二:改错题,只能在原来的基础上增加代码,不能删除代码#include#includevoid foo(int age,char *b)b = (char *)malloc(64);sprintf(b,Your Age is %d,age);int main()char *f;foo(23,f);printf(%s/n,f);答案版本1#include#includevoid foo(int age,char *b)*b = (char *)malloc(64);sprintf(*b,Your Age is %d,age);int main()char *f;foo(23,f);printf(%s/n,*f);return 0;版本2#include#includevoid foo(int age,char *&b)b = (char *)malloc(64);sprintf(b,Your Age is %d,age);int main()char *f;foo(23,f);printf(%s/n,f);free(f);/不要忘了free;三:有程序片断如下int main()int I = 20;pid_t pid = 5;if(pid = fork() 0)I = 50;printf(%d/n,I);(1)else if(pid = 0)printf(%d/n,I);(2)请问该程序用的是进程方式还是线程方式,并说明进程与线程的区别:请问该程序输出什么结果?无参考答案L四、constant pointer points for Stringpointer points for constant string五、下面等价的是:A int i=0if(i)printf(hello,world);Bint i=1;int j=2;if(i=1 | j=2)printf(hello,world);CBoolean b1=true;Boolean b2=true;if(b1=b2)printf(hello,world);Dint i=1;int j=2;if(i=1 &| j=2)printf(hello,world);六、排序二叉树插入一个节点或双向链表的实现四六为IBM面试题。七、指针+的含义和用法八、stack和heap的分配,rtos的特点、同步的方式九、怎样避免内存泄漏的问题十、编程实现十进制数转化为十六进制输出,不准用任何已经定义的库函数,比方说String,Math。int toHex(int )十一、编程实现大于100的两个数值相乘的结果输出,同样不准使用任何已定义函数,Math,string,convert等。比方说12345*32534677输入为两个stringint toPlus(12345,32434677)输出为一个长型的十二、int delete(node * head)free(head);head=head-link;return(0);指出程序的错误,并且写出正确的程序十三、写一个程序可以算出字节在计算机中的存储是由大到小还是有小到大。十四、一段程序,写出输出结果大概是class Astatic void virtual print()coutA:print();class Bstatic void virtual print()coutB:print();class Cstatic voidprint()coutC:print();print (A a)a.print();main()A a,*aa,*ab,*ac;B b;C c;aa=&a;ab=&b;ac=&c;a.print();b.print();c.print();aa.print();ab.print();ac.print();print(a);print(b);print(c);十五、给两个变量,如何找出一个带环单链表中是什么地方出现环的。(答案参考expert C programming)。十十五为MS笔试题。十六、写一个带参数宏get_struct_addr_from_member_addr(p, stru, m),能够根据任意结构实体的某一个成员的地址,算出该结构实体的地址,其中参数p是指向该成员的指针,stru是该结构体,m是该成员。(SUN试题)十七、给一个函数int main()int i, n=20;for(i=0;iprintf(-);return 0;要求替换、增加或者减少一个字符,使该程序可以打出20个“-”号,并要求写出三种解法。(sun试题)参考:1。i-换成n-2。i换成-i十八、解释typedef char (*FUNC)(int, char*)的含义十九、问#include和#include abc.h的区别,#define MAX_NUM 10和const intMAX_NUM=10区别二十、问用什么方法可以避免一些潜在错误,比如if( myvar = 3)这一类编程规范的问题,用if( 3 = myvar)就可以在编译时报错十六二十为SUN笔试题。二十一、用状态机实现10010码的探测,如x=1001001000 z=0000100100(输出)二十二、给一个数组src10排序,用两种方法,并比较二十三、c / c+的不同新的注释风格,变量作用域,函数重载,操作符重载,缺省参数,按引用传送,内联函数、模版等。二十四、run time environemnt的应用领域,并给予解释二十五、使用代码或者宏将十进制转化为十六进制格式二十六、实时嵌入系统中,两个任务同时访问RS232c port,设计一个共有的子窜转发二十七、多任务实施系统中,一个任务有多少种状态?描述一个系统怎么工作二十八、选择题:char *p,*q=i am,*g=Chanese!strcpy(p,q);strcat(p,g);printf(%s,p);a.i am b.i amChanese! c.i am Chanese! d都不是二十九、对优先级抢占调度法和时间片轮转调度法的理解三十、哈息表查找的优缺点,并列出你所知道的哈希函数构造法三十一、有两个无序链表A1和A2,写出程序把A1和A2合并成一个递增的链表。三十二、a+, +a中a的值是先加还是后加的三十三、函数栈中分配空间与全局堆中分配空间的区别和联系三十四、函数体内static声明的变量的特殊意义三十五、Struct xxx xx20这个是预先申请了内存么?参考答案:是的,struct xxx xx20确实已经申请了内存,而struct xxx *xx20则不是事先申请内存,仅表示申明一下,后者需要malloc申请内存。三十六、char * p;p = “ss”;for (; *p != 0 ; p+)*p = 0问此时p的值是多少?参考答案:char *的分配是在静态区,当作常量对待,赋值后就不可以修改,这是字符串的用法,如果指向数组就另当别论。这个程序的错误,首先字符串结束要比较/0而不是0,另外p指向const string不能赋值。三十七、char *string;string = “I am ok”这个语句有问题么? 没有?三十八、关于实现swap的方法:int p=1, q=2;swap(&p , &q);下面三个函数 ,哪个是正确的?(参考答案:1)1、void swap (int *p, *q) int temp;temp = *p;*p = *q;*q = temp2、void swap(int *p, *q) int *temp;*temp = *p;*p = *q;*q = *temp;3、void swap(int*p, *q) int *temp;temp = p;p = q;p = temp;4、main() swap(a, b);swap (int p, int q) int temp;temp = p;p = q;q = temp;三十九、全局变量被static变量重载,进行分析。有如下C程序:#include#includeint i = 0;int func();void main()int rst = 0;rst = func() + i ;rst += func() + i ;printf(%d, rst);int func() static i ;i+;return i;参考:其实并不是全局变量被static重载,在函数内如果定义了i,那么,全局变量i就不起作用了,什么意思,就是说如果i在函数内部定义了,那么函数内部使用的i是函数自己定义的,而不是全局变量的i。这里static是一个迷惑,其实不用static,含意也是一样的,只是每次函数里的i的值不能保存了。全局变量不初始化,那么int的值为0,局部变量不初始化,那么其值不知。四十、关于typedef和*相组合定义东西四十一、关于union的使用,比如:#include#includevoid main() union xxx struct xx long int x;int y; p;int z; a;a.p.x = 5;a.p.y = 6;a.z = 7;printf(%d, a.p.x + a.p.y);打印出来的结果是什么?参考:结果为13,解释为:由于union是联合,那么只能存在一个值,所以z的值始终和p.x的值相等union的存储空间有最大那个单元决定,所以当对p.z赋值时,p.y的值并没有丢失。四十二、long int i = -2;那么(int)i的值是多少?参考:仍然时2,因为i用补码表示为fffe去掉高位,符号位不变,那么应该是fe所以依然是-2。三十四十二为华为/华3的笔试题。_!四十三、类定义的构造函数提供缺省值与不提供缺省值,有何区别?四十四、C+主要特性包含哪些?什么是虚函数,主要用处是什么?四十五、5分钟之内写一个排序算法。四十六、new/delete对象时,使用堆还是堆栈?四十三四十六为朗讯笔试题。四十七、程序执行的时候怎么分配内存空间,每个部分的作用?四十八、实时操作系统,在RS-232上面,如何设计才可以保证两个任务送出的命令字符串严格同步?四十九、实时操作系统中运行多个任务,写出任务可能存在的状态,状态之间的转化,以及转化条件?四十七四十九为威盛考题。五十、最为完整的MSATC笔试题一多项选
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030中国青年公寓行业数据驱动与精准运营策略
- 2025-2030中国青年公寓行业市场准入与退出机制探讨
- 2025-2030中国青年公寓行业发展瓶颈及投资优化策略分析
- 2025-2030中国青年公寓智能安防系统与风险管理实践报告
- 2025-2030中国青年公寓市场细分领域投资潜力分析
- 2025-2030中国青年公寓市场政策支持与行业发展红利报告
- 2025-2030中国青年公寓二手家具循环利用与环保实践报告
- 2025年资产评估师职业资格考试真题模拟卷:资产评估报告编制流程解析与应用试题
- 传染病防控传染源排查措施
- 企业如何有效管理财务数据和信息安全
- 《生物医学工程》课件
- 智能机器人技术与应用
- 北京市自来水应急水源一期水资源论证
- 《外科护理》第四章外科休克病人的护理
- H3C UIS超融合基础架构方案建议书
- 人教版五年级上学期科学3.9《显微镜下的细胞》教学课件
- 医疗美容项目备案申请doc
- 颅脑损伤营养支持
- Q∕SY 06327-2020 二氧化碳驱油气田集输管道施工技术规范
- 译林版六年级英语上册 Unit 3 第2课时 教学课件PPT小学公开课
- 中国电影的发展史
评论
0/150
提交评论