版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一、请填写 BOOL , float,指针变量与 “零值 ”比较的 if 语句(零值可以为0 ,0.0 ,False或空指针)。例如: int变量 n 与“零值 ”比较的 if 语句为:if(n=0)if(n!=0)1 、请写出 BOOL flag与零值的比较的 if 语句:if(flag)if(!flag)2 、请写出 float x与零值比较的 if 语句:const float EPSINON=0.00001;if(x=EPSINON) & (x=EPSINON)3 、请写出 char *p与零值比较的 if 语句:if(p= =NULL)if(p!=NULL)二、以下为 windows
2、 NT下的 32为 C+ 程序,请计算 sizeof的值。1 、char str= ” Hello ”;Char *p=str;int n=10;请计算 sizeof(str)=6sizeof(p)=4sizeof(n)=42 、void Func(char str100)sizeof(str)=44 、 void *p=malloc(100);sizepf(p)=4三、简答题。1 、头文件中的 ifndef/define/endif干什么用?答:防止该头文件被重复引用。2 、#include和#include“ filename.h”有什么区别?答 : 对 于 #include编 译 器 从
3、 标 准 库 路 径 搜 索filename.h;对于 #include”filename.h”编译 器从 用户工作 路径 搜索filename.h。3 、const有什么用途?答:可以定义 const常量;Const可以修饰函数的参数、返回值,甚至是函数的定义体。被const修饰的东西都受到强制保护,可以防止意外的变动,能提高程序的健壮性。4 、在 C+ 程序中调用 C 编译器编译后的函数,为什么要加extern” C”声明?答:C+ 支持函数重载, C 语言不支持函数重载。函数被C+ 编译后在库中的名字与 C 语言不同。假设某个函数原型为:void foo(int x, int y);该函
4、数被C 语言编译后在库中的名字变为_foo, 而被 C+ 编译后则会产生像_foo_int_int之类的名字。所以,C+ 提供了 C 连接交换指定符号extern”C ”来解决名字匹配问题。5 、请简述以下两个for循环的优缺点。/第一个for(i=0; iN; i+)if(condition)DoSomething();/第二个if(condition) for(i=0; iN; j+)DoSomething();elseDoOtherthing();else for(i=0; iN; i+)DoOtherthing();答:第一个的优点是:程序简洁。缺点是:多执行了N-1次逻辑判断,并打断
5、了循环“流水”作业,是编译器不能对循环进行优化处理,降低了效率。第二个的优点是:循环效率高。缺点是:程序不够简洁。四、有关内存的思考题。1 、void GetMemory(char *p)P=(char *)malloc(100);Void Test(void)Char *str=NULL;GetMemory(str);Strcpy(str,” hello world” );printf(str);请问运行 Test函数会有什么样的结果?答:程序会崩溃。因为 GetMemoty并不能传递动态内存,Test函数的 str一直都是 NULL 。Strcpy(str,“hello world ”);
6、 将会使程序崩溃。2 、char *GerMemory(void)char p=” hello world”;return p;Void Test(void)Char *str=NULL;Str=GetMemory();Printf(str);请问运行 Test函数后有什么样的结果?答:可能是乱码。因为 GetMemory返回的是指向 ”栈内存 ”的指针,该地址的内存不是NULL ,但其原先内容已被清除,所以新内容不可而知。3 、void GetMemory2(char *p, int num)*p=(char *)malloc(num);Void Test(void)Char *str=NU
7、LL;GetMemory(&str, 100);strcpy(str,“ hello ” );printf(str);请问运行 Test函数后有什么样的结果?答:输出 ”hello ”,内存泄漏。4 、void Test(void)Char *str=(char *)malloc(100);strcpy(str,“ hello” );free(str);if(str!=NULL)strcpy(str,“ world ” );printf(str);请问运行 Test函数后有什么样的结果?答:篡改动态内存的内容,后果难以预料,这种行为非常危险。因为 free(str)后, str变成野指针, i
8、f(str!=NULL)不起作用。五、编写 strcpy函数。已知strcpy函数的原型是: char*strcpy(char*strDest,constchar *strSrc);其中, strDest是目的字符串, strSrc是源字符串。、不调用 C+/C 的字符串库函数,请编写函数 strcpy 。解答: char *strcpy(char *strDest, const char *strSrc)assert(strDest! = NULL) & (strSrc! = NULL);char *address = strDest;while(*strDest+ = *strSrc+)
9、!=0 )NULL;ruturnaddress;(2) 、strcpy能把 strSrc的内容复制到strDest,为什么还要 char *类型的返回值?答:为了实现链式表达式。例如: int length=strlen(strcpy(strDest,“hello world!”);六、编写 String的构造函数、析构函数和赋值函数。已知类 String的原型为:Class Stringpublic:String(const char *str=NULL);/普通构造函数String(const String &other);/拷贝构造函数String(void)/析构函数String &o
10、peratr=(const String &orher);/赋值函数private:char *m_date;请写出 String上述的四个函数。解答:/String的析构函数String:String(void)delete m_data;/由于 m_data是内部数据类型,所以可以写出delete m_data;/String的普通构造函数String:String(const char *p)if(p=NULL)m_data=new char(1);*m_data=0 ;elseInt length=strlen(str);m_data=new char(length+1);strcpy
11、(m_data,str);/String的拷贝构造函数String:String(const String &other)int length=strlen(other.m_data);m_data=new char(length+1);strcpy(m_data, other.m_data);/String的复制构造函数String & String:operate=(const String &other)if(this=&other)return this;/检查自赋值delete m_data;/释放原有的内存资源int length=strlen(other.m_data); m_d
12、ata=new char(length+1); strcmp(m_data, other.m_data);/分配新的内存资源,并复制内容return this;/返回本对象的引用出师表两汉:诸葛亮先帝创业未半而中道崩殂, 今天下三分, 益州疲弊, 此诚危急存亡之秋也。然侍卫之臣不懈于内,忠志之士忘身于外者,盖追先帝之殊遇,欲报之于陛下也。诚宜开张圣听,以光先帝遗德,恢弘志士之气,不宜妄自菲薄,引喻失义,以塞忠谏之路也。宫中府中,俱为一体;陟罚臧否,不宜异同。若有作奸犯科及为忠善者,宜付有司论其刑赏,以昭陛下平明之理;不宜偏私,使内外异法也。侍中、侍郎郭攸之、费祎、董允等,此皆良实,志虑忠纯,是
13、以先帝简拔以遗陛下:愚以为宫中之事,事无大小,悉以咨之,然后施行,必能裨补阙漏,有所广益。将军向宠,性行淑均,晓畅军事,试用于昔日,先帝称之曰愚以为营中之事,悉以咨之,必能使行阵和睦,优劣得所。“能 ”,是以众议举宠为督:亲贤臣, 远小人, 此先汉所以兴隆也; 亲小人, 远贤臣, 此后汉所以倾颓也。 先帝在时,每与臣论此事, 未尝不叹息痛恨于桓、 灵也。 侍中、尚书、 长史、 参军,此悉贞良死节之臣,愿陛下亲之、信之,则汉室之隆,可计日而待也。臣本布衣,躬耕于南阳,苟全性命于乱世,不求闻达于诸侯。先帝不以臣卑鄙,猥自枉屈,三顾臣于草庐之中,咨臣以当世之事,由是感激,遂许先帝以驱驰。后值倾覆,受任于败军之际,奉命于危难之间,尔来二十有一年矣。先帝知臣谨慎,故临崩寄臣以大事也。受命以来,夙夜忧叹
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年商州区辅警协警招聘考试模拟试题及答案详解
- 2026年山西省忻州市街道办人员招聘考试模拟试题及答案详解
- 2026年珠海市香洲区街道办人员招聘笔试参考试题及答案详解
- 2026年珠海市斗门区中小学教师招聘考试参考题库及答案详解
- 2026年菏泽市牡丹区中小学教师招聘笔试参考试题及答案详解
- 2026年七台河市桃山区辅警协警招聘笔试参考题库及答案详解
- 机器人零部件智能制造产业基地及配套基础设施项目可行性研究报告模板申批拿地用
- 2025年海南省儋州市街道办人员招聘考试试题及答案详解
- 2027届林芝地区波密县三年级数学第一学期期末考试模拟试题含解析
- 四大神兽必考题目及答案
- 暖通公司员工管理制度
- 钢材月结合同协议
- 档案管理岗位竞聘报告
- 人保财险车险合同范本
- 第六届“四川工匠杯”职业技能大赛(互联网营销赛项)理论参考试题库(含答案)
- 煤矿井下随钻测量定向钻进技术
- 2024项目投资协议书
- 初中数学竞赛双十字相乘法因式分解练习100题及答案
- 私人房屋装修安全免责协议书
- 自动控制原理 第3版 课件全套 陶洪峰 第1-8章 概论、控制系统数学模型-线性离散系统分析
- 新生儿患者抗菌药物的应用课件
评论
0/150
提交评论