c和c经典笔试题及答案_第1页
c和c经典笔试题及答案_第2页
c和c经典笔试题及答案_第3页
c和c经典笔试题及答案_第4页
c和c经典笔试题及答案_第5页
已阅读5页,还剩2页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C++/C经笔试题及答案试题本试题仅用于考查C++/C程序员的基本编程技能。内容限于C++/C常用语法不涉及数据结构算法以及深奥的语法考试成绩能反映出考生的编程质量以及对C++/C的理解程度,但不能反映考生的智力和软件开发能力。笔试时间90钟。请考生认真答题,切勿轻视。一、请写,指针变与“零值比较的if语句。()提示这里“零值”可以是0,或者“空指针”如int变量与“零值”比较的if语句为:if(n==0if(n!=0)以此类推。请写出BOOLflag与“零值”比较的if语句:请写出floatx与“零值”比较的if语句:请写出*p与“零值”比较的if语句:二、以为NT下的32C++程,请计值(分)str[]=“Hello;

Funcstr[100])*p=;{intn=10;请计算

请计算)=(str)}*p=100);(p

请计算(p(n三、简题(分)1、头文件的干什么用?2、<filename.h>和#include“filename.h有什么区别?3、const有什么用途?(请至少说明两种)4C++程序中调用被编译器编译后的函数什么要加extern“C明?5、请简述下两个for环的优缺点

//第一个for(i=0;i<N;i++){if(condition)DoSomething();elseDoOtherthing();}优点:缺点:四、有内存的思考(20分)voidGetMemory(char*p){p=(char*)malloc(100);}Test(void){char*str=NULL;GetMemory(str);strcpy(str,"helloworld");printf(str);}请问运行Test函数会有什么样的结果?答:VoidGetMemory2(char**p,intnum){*p=(char*)malloc(num);}voidTest(void){char*str=NULL;GetMemory(&str,100);strcpy(str,"hello");printf(str);}请问运行Test函数会有什么样的结果?

//第二个if(condition){for(i=0;i<N;i++)DoSomething();}else{for(i=0;i<N;i++)DoOtherthing();}优点:缺点:char*GetMemory(void){charp[]="helloworld";returnp;}voidTest(void){char*str=NULL;str=GetMemory();printf(str);}请问运行Test函数会有什么样的结果?答:voidTest(void){char*str=(char*)malloc(100);strcpy(str,“hello);free(str);if(str!=NULL){strcpy(str,“world);printf(str);}}请问运行Test函数会有什么样的结果?

答:五、编strcpy函(10)

答:已知函数的原型是*strcpy(charconst*strSrc);其中strDest是目的字符串,是源字符串。(1)不调用的字符串库函数,请编写函数strcpy(2strcpy能把strSrc内容复制到什么还要*类型的返回值?六、编类构造函数、构函数赋值函数(分)已知类的原型为:{public:char*str=//普通构造函数String&other);//拷贝构造函数//析构函数&=(constString//赋值函数private://用于保存字符串};请编写的上述个函数。试题答案与分标准一、请填写BOOLfloat,指针变量与“零值较的if语句。(10)请写出BOOLflag与“零值”比较的if语句。(分)标准答:if(flag)if()

如下写法均属不良风格,不得分。if(flag==TRUE)if(flag==1)if(flag==FALSE)if(flag==0)请写出floatx与“零值”比较的if语句。(4分)标准答示例:EPSINON0.00001;if((x-EPSINON)&&(x<=EPSINON)

如下是错误的写法,不得分。if(x==0.0)if(x!=0.0)不可将浮点变量用“==”或“”与数字比较,应该设法转化成“>=”或“<=”此类形式。请写出*p与“零值”比较的if语句。(3分)标准答:

如下写法均属不良风格,不得分。

if(p==NULL)if(p!=NULL)

if(p==0)if(p!=0)if(p)if(!)二、以为NT下的32C++程,请计值(分)str[]=“Hello;

Funcstr[100])*p=;{intn=10;请计算sizeof)=6(分)sizeof()4(2分)

请计算sizeof()=4(分)}*p=100);请计算sizeof()4(2分)

sizeof()4

(2)三、简题(分)1、头文件的干什么用?(分)答:防该头文件被复引用2、<filename.h>和#include“filename.h有什么区别?(分)答:对<filename.h>,编译器标准库径开始搜索filename.h对于“filename.h”,编译器用户的工作径开始索filename.h3、const有什么用途?(请至少说明两种)(5分)答:(1)以定义常量()可以修饰函的参数返回值,甚函数的义体。被const修饰的东都受到强制护,可预防意外的动,能高程序的健性。4C++程序中调用被编译器编译后的函数为什么要加extern“C”?(5分)答:C++语言持函重载,C言不支持函重载函数被C++编后在库中的名字语言的不同假设某函数的原型:int该函数编译器编译在库中名字为,而C++译器则产生之类的名字。C++提了C连交换定符号extern“C来解决字匹配题。5、简述以两个for循环的优缺(分)for(i=0;i<N;i++)if(condition){{if(condition)for(i=0;i<N;i++)DoSomething();DoSomething();else}DoOtherthing();else}{for(i=0;i<N;i++)DoOtherthing();}

优点:序简洁

优点:环的效率高缺点:执行了N-1次逻辑断,缺点:程序不洁并且打了循环“流线”作,使得编器不能对循进行优处理,降了效率。四、有内存的思考(每小5分共20分)voidGetMemory(char*p)char*GetMemory(void){{p=(char*)malloc(100);charp[]="helloworld";}Test(void){

returnp;}voidTest(void)char*str=NULL;{GetMemory(str);char*str=NULL;strcpy(str,"helloworld");str=GetMemory();printf(str);printf(str);}}请问运行Test函数会有什么样的结请问运行Test函数会有什么样的结果?答:程崩溃。

果?答:可是乱码。因为并能传递动态因为GetMemory返回是指向栈内存,

存”的针该指的地址不是NULLTest数中的str一直是NULL。但其现的内已经被清除新内容不strcpy(str,world");使可知。程序崩。voidGetMemory2(char**p,intnum){*p=(char*)malloc(num);}voidTest(void){char*str=NULL;GetMemory(&str,100);strcpy(str,"hello");printf(str);}请问运行Test函数会有什么样的结果?答:(1)够输出(2)存泄漏

voidTest(void){char*str=(char*)malloc(100);strcpy(str,“hello);free(str);if(str!=NULL){strcpy(str,“world);printf(str);}}请问运行Test函数会有什么样的结果?答:改动态存区的内容后果难以预料,常危险。因为free(str);之,str为野指针,if(str语句不作用。

五、编strcpy函(10)已知函数的原型是*strcpy(charconst*strSrc);其中strDest是目的字符串,是源字符串。(1)不调用的字符串库函数,请编写函数strcpycharcharassert((strDest!=NULL)&&(strSrc!=NULL));//2分char*address=strDest;//分while((*strDest++=*strSrc++)‘’)//2NULL;;//2分(2strcpy能把strSrc内容复制到什么还要*类型的返回值?答:为实现链式表式。

//2分例如intlength=strlen(strcpy(strDest,“helloworld);六、编类构造函数、构函数赋值函数(分)已知类的原型为:{public:char*str=//普通构造函数String&other);//拷贝构造函数//析构函数&=(constString//赋值函数private://用于保存字符串};请编写的上述个函数。标准答://的析构函数String::~String(void)//分delete[]m_data;//由于m_data是内部数据型,也以写成deletem_data;//的普通构造函数String::String(const*str)//分if(str==NULL)m_data=newchar[1];//若能加NULL判断则好*m_data=‘\0’;

intlength=m_data=new//若能加NULL判断更好str);//拷贝构造函数String::String(constString&other)//3intlength=strlen(other.m_data);m_data=new//若能加NULL判断更好

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论