版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
填空題:1.写一种“原则”宏MIN,這個宏输入两個参数并返回较小的一种。答案:#defineMIN(A,B)(A)<=(B)?(A):(B)
#defineMIN(A,B)(A<=B?A:B)都应判0分;2..h頭文献中ifndef/define/endif的作用答案:防止頭文献被反复引用3.請写出下面代码在32位平台上的运行成果。#include<stdio.h>#include<stdlib.h>intmain(void){chara[30];char*b=(char*)malloc(20*sizeof(char));printf("%d\n",sizeof(a));printf("%d\n",sizeof(b));printf("%d\n",sizeof(a[3]));printf("%d\n",sizeof(b+3));printf("%d\n",sizeof(*(b+4)));return0;}运行成果答案:3041414.定义int**a[3][4],则变量占有的内存空间為:_____答案:485.分别給出BOOL,int,float,指针变量与“零值”比较的if語句(假设变量名為var)答案:BOOL:if(!a)orif(a)
int:if(a==0)
float:constEXPRESSIONEXP=0.000001
if(a<EXP&&a>-EXP)
pointer:if(a!=NULL)orif(a==NULL)6.如下代码输出的成果#include<iostream>usingnamespacestd;classA{public:voidvirtualf(){ cout<<“A”<<endl;}};classB:publicA{public:voidvirtualf(){cout<<“B”<<endl;}};Intmain(){ A*pa=newA(); pa->f(); B*pb=(B*)pa; pb->f(); deletepa,pb; pa=newB(); pa->f(); pb=(B*)pa; pb->f();}答案:AABB7.如下程序输出成果#include<iostream>#incluce<stdio.h>intmain(void){ chars[]=“”; chard[]=“123”;strcpy(d,s);printf(“%s,%s”,d,s);return0:}答案:,567898.在C++程序中调用被C编译器编译後的函数,需要加答案:extern“C”問答題:newdelete与mallocfree的联络与区别?答案:都是在堆(heap)上進行動态的内存操作。用malloc函数需要指定内存分派的字节数并且不能初始化對象,new會自動调用對象的构造函数。delete會调用對象的destructor,而free不會调用對象的destructor.請說出static和const关键字尽量多的作用。static关键字至少有下列n個作用:函数体内static变量的作用范围為该函数体,不一样于auto变量,该变量的内存只被分派一次,因此其值在下次调用時仍维持上次的值;在模块内的static全局变量可以被模块内所用函数访問,但不能被模块外其他函数访問;在模块内的static函数只可被這一模块内的其他函数调用,這個函数的使用范围被限制在申明它的模块内;在类中的static组员变量属于整個类所拥有,對类的所有對象只有一份拷贝;在类中的static组员函数属于整個类所拥有,這個函数不接受this指针,因而只能访問类的static组员变量。const关键字至少有下列n個作用:欲制止一种变量被变化,可以使用const关键字。在定义该const变量時,一般需要對它進行初始化,由于後来就没有机會再去变化它了;對指针来說,可以指定指针自身為const,也可以指定指针所指的数据為const,或两者同步指定為const;在一种函数申明中,const可以修饰形参,表明它是一种输入参数,在函数内部不能变化其值;對于类的组员函数,若指定其為const类型,则表明其是一种常函数,不能修改类的组员变量;對于类的组员函数,有時候必须指定其返回值為const类型,以使得其返回值不為“左值”。Structure与否可以拥有constructor/destructor及组员函数?假如可以,那么structure和class尚有区别吗?答案:区别是class中变量默认是private,struct中的变量默认是public。Struct可以有构造函数,析构函数,之间也可以继承等等。C++中的struct其实和class意义同样,唯一不一样的就是struct裏面默认的访問控制是public,class中默认的访問控制是private。C++中存在struct关键字的唯一意义就是為了让C程序员有個归属感,是為了让C++编译器兼容此前用C開发的项目。重载和覆盖的区别?答案:虚函数總是在派生类中北改写,這种改写被称為“override“(覆盖)。 Override是指派生类重写基类的虚函数。重写的函数必须有一只的参数表和返回值。Overload為重载,是指编写一种与已經有函数同名但参数表不一样的函数。例如一种函数既可以接受整型数作為参数,也可以接受浮點数作為参数。编程題:编写类String的构造函数、析构函数和赋值函数,已知类String的原型為:classString
{
public:
String(constchar*str=NULL);//一般构造函数
String(constString&other);//拷贝构造函数
~String(void);//析构函数
String&operate=(constString&other);//赋值函数
private:
char*m_data;//用于保留字符串
};解答:
//一般构造函数
String::String(constchar*str)
{
if(str==NULL)
{
m_data=newchar[1];//得分點:對空字符串自動申請寄存結束標志'\0'的空
//加分點:對m_data加NULL判断
*m_data='\0';
}
else
{
intlength=strlen(str);
m_data=newchar[length+1];//若能加NULL判断则更好
strcpy(m_data,str);
}
}
//String的析构函数
String::~String(void)
{
delete[]m_data;//或deletem_data;
}
//拷贝构造函数
String::String(constString&other)//得分點:输入参数為const型
{
intlength=strlen(other.m_data);
m_data=newchar[length+1];//加分點:對m_data加NULL判断
strcpy(m_data,other.m_data);
}
//赋值函数
String&String::operate=(constString&other)//得分點:输入参数為const型
{
if(this==&other)//得分點:检查自赋值
return*this;
delete[]m_data;//得分點:释放原有的内存资源
intlength=strlen(other.m_data);
m_data=newchar[length+1];//加分點:對m_data加NULL判断
strcpy(m_data,other.m_data);
return*this;//得分點:返回本對象的引用
}把一种字符串倒序,如“abcd”倒序後变為“dcba”.措施1:intmain(){char*src="hello,world";intlen=strlen(src);char*dest=(char*)malloc(len+1);//要為\0分派一种空间char*d=dest;char*s=&src[len-1];//指向最终一种字符while(len--!=0)*d++=*s--;*d=0;//尾部要加\0printf("%s\n",dest);free(dest);//使用完,应當释放空间,以免导致内存汇泄露return0;}措施2:#include<stdio.h>#include<string.h>main(){charstr[]="hello,world";intlen=strlen(str);chart;for(inti=0;i<len/2;i++){t=str[i];str[i]=str[len-i-1];str[len-i-1]=t;}printf("%s",str);return0;}已知两個链表head1和head2各自有序,請把它們合并成一种链表仍然有序。(保留所有結點,即便大小相似)Node*Merge(Node*head1,Node*head2){if(head1==NULL)returnhead2;if(head2==NULL)returnhead1;Node*head=NULL;Node*p1=NULL;Node*p2=NULL;if(head1->data<head2->data){head=head1;p1=head1->next;p2=head2;}else{head=head2;p2=head2->next;p1=head1;}Node*pcurrent=head;while(p1!=N
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 肠癌手术患者的心理护理与支持
- 2025年办公室地面环氧地坪协议
- 《吸嗅类(合香制品)保健用品生产技术规范》标准 征求意见稿
- 太阳能建筑一体化原理与应 课件 第3章 太阳能的吸收与透射
- 城市历史文化保护传承
- 2025年智慧养老院监护技术 AI陪护机器人24小时应用
- 2026 年中职咖啡科学与工程(咖啡基础)试题及答案
- 小升初苏教版试题及答案
- 基于量子计算的JavaScript框架探索
- 2025年海南省公需课学习-全民健身计划实施方案716
- 2025中央广播电视总台招聘144人笔试历年题库附答案解析
- 2026年瓦工职业技能鉴定考试题库及答案
- 2025年云南省人民检察院聘用制书记员招聘(22人)笔试考试参考题库及答案解析
- MOOC 理解马克思-南京大学 中国大学慕课答案
- 安全工器具登记台账
- 《荷塘月色》《故都的秋》比较阅读-统编版高中语文必修上册
- 中央电大护理专业本科通科实习出科考核病历
- 卫生院基本公共卫生服务奖惩制度
- 气动冲床设备日常点检标准作业指导书
- β-丙氨酸补充对运动能力的影响
- 南昌工程学院水电站课程设计
评论
0/150
提交评论