CC++及大数据结构笔精彩试题Word文档下载推荐.docx
- 文档编号:16740953
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:13
- 大小:19.03KB
CC++及大数据结构笔精彩试题Word文档下载推荐.docx
《CC++及大数据结构笔精彩试题Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《CC++及大数据结构笔精彩试题Word文档下载推荐.docx(13页珍藏版)》请在冰豆网上搜索。
String(constchar*str)
if(str==NULL)
m_data=newchar[1];
//若能加NULL判断则更好
*m_data=‘{post.content}’;
}
else
{
intlength=strlen(str);
m_data=newchar[length+1];
strcpy(m_data,str);
//拷贝构造函数
String(constString&
other)
intlength=strlen(other.m_data);
strcpy(m_data,other.m_data);
//赋值函数
String&
String:
operate=(constString&
//
(1)检查自赋值
if(this==&
return*this;
//
(2)释放原有的内存资源
delete[]m_data;
//(3)分配新的内存资源,并复制内容
m_data=newchar[length+1];
//(4)返回本对象的引用
return*this;
版本2
String(constchar*str)
if(str){
memset(m_data,0,strlen(m_data));
strcpy(m_data,str);
else*m_data=0;
String(constString?
)
strcpy(m_data,copy.m_data);
String&
operator=(constString?
if(this==?
)retrun*this;
版本3
if(m_data)
delete[]m_data;
m_data=newchar[strlen(str)];
m_data=newchar[strlen(copy.m_data+1)]
~String:
String(void)
二:
改错题,只能在原来的基础上增加代码,不能删除代码
#include
voidfoo(intage,char*b)
b=(char*)malloc(64);
sprintf(b,"
YourAgeis%d"
age);
intmain()
char*f;
foo(23,f);
printf("
%s\n"
f);
答案
版本1
voidfoo(intage,char**b)
*b=(char*)malloc(64);
sprintf(*b,"
char**f;
**f);
return0;
voidfoo(intage,char*&
b)
free(f);
//不要忘了free;
三:
有程序片断如下
intI=20;
pid_tpid=5;
if((pid=fork())>
0)
I=50;
%d\n"
I);
(1)
elseif(pid==0)
(2)
请问该程序用的是进程方式还是线程方式,并说明进程与线程的区别:
请问该程序输出什么结果?
无参考答案L
四、constantpointerpointsforString
pointerpointsforconstantstring
五、下面等价的是:
A.inti=0
if(i)
hello,world"
B.inti=1;
intj=2;
if(i==1||j==2)
C.Booleanb1=true;
Booleanb2=true;
if(b1==b2)
D.inti=1;
if(i==1&
|j==2)
六、排序二叉树插入一个节点或双向链表的实现
七、指针++的含义和用法
八、stack和heap的分配,rt-os的特点、同步的方式
九、怎样避免内存泄漏的问题
十、编程实现十进制数转化为十六进制输出,不准用任何已经定义的库函数.
十一、编程实现大于100的两个数值相乘的结果输出,同样不准使用任何已定义函数,
Math,string,convert等。
比方说12345*32534677
输入为两个stringinttoPlus('
12345'
'
32434677'
)
输出为一个长型的
十二、intdelete(node*head)
{
free(head);
head=head->
link;
return(0);
}
指出程序的错误,并且写出正确的程序
十三、写一个程序可以算出字节在计算机中的存储是由大到小还是有小到大。
十五、给两个变量,如何找出一个带环单链表中是什么地方出现环的。
(答案参考expertCprogramming)。
十六、写一个带参数宏get_struct_addr_from_member_addr(p,stru,m),能够根据任意结构实体的某一个成员的地址,算出该结构实体的地址,其中参数p是指向该成员的指针,stru是该结构体,m是该成员。
十七、给一个函数
intmain(){
inti,n=20;
for(i=0;
i<
n;
i++)
-"
要求替换、增加或者减少一个字符,使该程序可以打出20个“-”号,并要求写出三种解法
参考:
1。
i--换成n--
2。
i换成-i
十八、解释typedefchar(*FUNC)(int,char*)的含义
十九、问#include和#include"
abc.h"
的区别,#defineMAX_NUM10和constint
MAX_NUM=10区别
二十、问用什么方法可以避免一些潜在错误,比如if(myvar=3)这一类
编程规范的问题,用if(3=myvar)就可以在编译时报错
二十一、用状态机实现10010码的探测,如x=1001001000z=0000100100(输出)
二十二、给一个数组src[10]排序,用两种方法,并比较
二十三、c/c++的不同新的注释风格,变量作用域,函数重载,操作符重载,缺省参数,按引用传送,内联函数、模版等。
二十四、runtimeenvironemnt的应用领域,并给予解释
二十五、使用代码或者宏将十进制转化为十六进制格式
二十六、实时嵌入系统中,两个任务同时访问RS232cport,设计一个共有的子窜转发……
二十七、多任务实施系统中,一个任务有多少种状态?
描述一个系统怎么工作
二十八、选择题:
char*p,*q="
iam"
*g="
Chanese!
"
strcpy(p,q);
strcat(p,g);
printf("
%s"
p);
a.iamb.iamChanese!
c.iamChanese!
d都不是
二十九、对优先级抢占调度法和时间片轮转调度法的理解
三十、哈息表查找的优缺点,并列出你所知道的哈希函数构造法
三十一、有两个无序链表A1和A2,写出程序把A1和A2合并成一个递增的链表。
三十二、a++,++a中a的值是先加还是后加的
三十三、函数栈中分配空间与全局堆中分配空间的区别和联系
三十四、函数体内static声明的变量的特殊意义
三十五、Structxxxxx[20]这个是预先申请了内存么?
参考答案:
是的,structxxxxx[20]确实已经申请了内存,而structxxx*xx[20]则不
是事先申请内存,仅表示申明一下,后者需要malloc申请内存。
三十六、
char*p;
p=“ss”;
for(;
*p!
=0;
p++)
*p=0;
问此时p的值是多少?
char*的分配是在静态区,当作常量对待,赋值后就不可以修改,这是字符
串的用法,如果指向数组就另当别论。
这个程序的错误,首先字符串结束要比较'
\0'
而不是0,另外p指向conststring不能赋值。
三十七、char*string;
string=“Iamok”;
这个语句有问题么?
没有?
<
constchar*string=“Iamok!
”;
>
三十八、关于实现swap的方法:
intp=1,q=2;
swap(&
p,&
q);
下面三个函数,哪个是正确的?
(参考答案:
1)
1、voidswap(int*p,*q){
inttemp;
temp=*p;
*p=*q;
*q=temp;
2、voidswap(int*p,*q){
int*temp;
*temp=*p;
*q=*temp;
3、voidswap(int*p,*q){
temp=p;
p=q;
p=temp;
4、main(){
swap(a,b);
swap(intp,intq){
q=temp;
三十九、全局变量被static变量重载,进行分析。
有如下C程序:
inti=0;
intfunc();
voidmain(){
intrst=0;
rst=func()+i;
rst+=func()+i;
%d"
rst);
intfunc(){
statici;
i++;
returni;
其实并不是全局变量被static重载,在函数内如果定义了i,那么,全局变量i
就不起作用了,什么意思,就是说如果i在函数内部定义了,那么函数内部使用的i
是函数自己定义的,而不是全局变量的i。
这里static是一个迷惑,其实不用static,含意也是一样的,只是每次函数里的i的值不能保存了。
全局变量不初始化,那么int的值为0,局部变量不初始化,那么其值不知。
四十、关于typedef和*相组合定义东西
四十一、关于union的使用,比如:
voidmain(){
unionxxx{
structxx{
longintx;
inty;
}p;
intz;
}a;
a.p.x=5;
a.p.y=6;
a.z=7;
a.p.x+a.p.y);
打印出来的结果是什么?
结果为13,解释为:
由于union是联合,那么只能存在一个值,所以z的值始终和p.x的值相等union的存储空间有最大那个单元决定,所以当对p.z赋值时,p.y的值并没有丢失。
四十二、longinti=-2;
那么(int)i的值是多少?
仍然时-2,因为i用补码表示为fffe去掉高位,符号位不变,那么应该是fe所以依然是-2。
四十三、类定义的构造函数提供缺省值与不提供缺省值,有何区别?
四十四、C++主要特性包含哪些?
什么是虚函数,主要用处是什么?
四十五、5分钟之内写一个排序算法。
四十六、new/delete对象时,使用堆还是堆栈?
四十三~四十六为朗讯笔试题。
四十七、程序执行的时候怎么分配内存空间,每个部分的作用?
四十八、实时操作系统,在RS-232上面,如何设计才可以保证两个任务送出的命令字符串严格同步?
四十九、实时操作系统中运行多个任务,写出任务可能存在的状态,状态之间的转化,以及转化条件?
17.三个盒子里,只有一个有钻石,你已经选了一个盒子,然后打开剩下两个中的一个发现
没钻石,你还会改变你的选择么?
二编程(50分钟)
1.编一个循环队列,实现三个函数,initialize(void*,int)PushAtEnd(CItem)Pop
FromHead(CItem*)
2.两个单链表,一个升序一个降序,把它们合成一个升序的单链表。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CC 数据结构 精彩 试题