科大讯飞笔试题目C++1Word格式.docx
- 文档编号:13995280
- 上传时间:2022-10-16
- 格式:DOCX
- 页数:11
- 大小:651.48KB
科大讯飞笔试题目C++1Word格式.docx
《科大讯飞笔试题目C++1Word格式.docx》由会员分享,可在线阅读,更多相关《科大讯飞笔试题目C++1Word格式.docx(11页珍藏版)》请在冰豆网上搜索。
h)int(*a[10])(int)
2、(4分)请写出以下语句的输出结果:
Inti=43;
Intj=5;
Doublef=25.45181;
a)printf(“i=%d,j=%d,f=%3.2f”,i,j,f);
b)printf(“i=%x,j=%06d,i/j=%d”,i,j,i/j);
A)i=43,j=5,f=25.45
(说明:
本来应该输出最小3位有效数字,25.5,但是由于限定了2位小数,所以强制有2位小数,有效数字的个数就起不到强制作用了。
如果是%3.1,则输出为25.5)
B)i=2b,j=00005,i/j=8
(%x显示的是一个无符号的0x16进制的整数,%06d输出的是6位数,不够6位数,前面补0,i/j两个整数相除,只取商的整数值)
3、(2分)请完成以下宏定义:
a)用预处理指令#define声明一个常数,用以表明1年中有多少个秒(忽略闰年问题)
b)写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个
a)#defineseconds365*24*60*60
b)#defineMIN(a,b)((a)<
(b)(a):
(b))
扩展:
MAX宏#defineMAX((a)>
ABS宏#defineABS(((x)>
0)(x):
(-(x)))
4、(6分)以下为32为windows下的c++程序,请计算:
a)
charstr[]=”hello”;
char*p=str;
请计算:
sizeof(str)=
sizeof(p)=
strlen(p)=
6,字符串数组以\0(空格为结尾,所以str数组空间大小为5+1)
4,
5,strlen函数区的字符指针str的长度,不包括空字符。
b)
voidfunc(charstr[100])
{
Void*p=malloc(100);
}
sizeof(str)=4
sizeof(p)=4
c)
inta[3]={1,2,3};
intb=sizeof(a)/sizeof(a[0]);
b=3
5、(2分)设有定义:
intn=0,*p=&
n,**q=&
p;
则以下选项中,正确的赋值语句是(d)
a)p=1;
b)*q=2;
c)q=p;
d)*p=5;
6、(2分)const关键字的用途(至少说明两种)
(1)避免变量的值被修改
(2)修饰指针int*constp(地址不可以被修改)intconst*p(值不可以被修改)
(3)修饰函数形参表示该参数只是用来传入值
(4)Canst修饰的成员变量不可以被成员函数更改、
(5)对于类的成员函数有时候必须返回const修饰的类型避免函数返回值为左值
7、(2分)typedef的c语言中频繁用以声明一个已经存在的数据类型的同义词。
也可以用以预处理器做类似的事情。
例如:
#definedpsstructs*
Typedefstructs*tps;
以上两种情况的意图都是要定义dps和tps作为一个指向结构s指针。
哪种方法更好一些呢(如果有的话)为什么
1)#define是预处理指令,在编译预处理时进行简单的替换,不作正确性检查,不关含义是否正确照样带入,只有在编译已被展开的源程序时才会发现可能的错误并报错。
#definePI3.1415926
程序中的:
area=PI*r*r会替换为3.1415926*r*r
如果你把#define语句中的数字9写成字母g预处理也照样带入。
2)typedef是在编译时处理的。
它在自己的作用域内给一个已经存在的类型一个别名,但是Youcannotusethetypedefspecifierinsideafunctiondefinition。
8、(8分)以下是一组有关内存知识的问题,请仔细看题,回答:
VoidGetMemory(char*p)
P=(char*)malloc(100);
VoidTest(void)
Char*str=Null;
GetMemory(str);
Strcpy(str,”helloworld”);
Printf(str);
请问运行Test函数会有什么样的结果?
a)__________在函数中申请内存函数调用完毕内存直接释放str值仍为NULL___________________________
char*GetMemory(void)
Charp[]=”helloworld”);
Returnp;
Char*str=NULL;
Str=GetMemory();
请问运行Test函数会有什么结果?
b)_______________________________________________
voidGetMemory2(char**p,intnum)
*p=(char*)malloc(num);
GetMemory(&
str,100);
Strcpy(str,”hello”);
c)___________________hello_______________________________
voidTest(void)
Char*str=(char*)malloc(100);
Free(str);
If(str!
=NULL)
Strcpy(str,”world”);
请问运行test函数会有什么样的结果?
world
9、(6分)请写出以下程序的输出结果:
ClassA
Public:
A()
{Printf(“Aconstructed.\n”);
Virtual~A()
{printf(“Adeconstructed.\n”);
VirtualvoidFn()
{printf(“Afncalled.\n”);
};
ClassB:
publicA
B()
{printf(“Bconstructed.\n”);
Virtual~B()
{printf(“Bdeconstructed.\n”);
VirtualvoidFn()
{printf(“Bfncalled.\n”);
ClassC:
publicB
C()
{printf(“Cconstructed.\n”);
Virtual~C()
{printf(“Cdeconstructed.\n”);
{printf(“Cfncalled.\n”);
Voidmain(intargc,char*grgv[])
A*pA=newB;
If(pA!
pA->
fn();
B*pB=static_cast<
B*>
(pA);
If(pB!
pB->
C*pC=static_cast<
C*>
If(pC!
pC->
deletepA;
10.(2分)以下说法错误的是:
(b)
A)指针和引用作为函数参数都可以改变实参
B)指针和引用都可以在定义后任意的改变指向
C)引用必须在创建的时候初始化,而指针则不需要
D)不能空引用,但是可以有空指针
11、(2分)下列关于多态的描述,错误的是(c)
A)C++语言的多态性分为编译时的多态和运行时的多态性
B)编译时的多态性可以通过函数重载来实现
C)运行时的多态性可以通过模板和虚函数来实现
D)实现运行时多态性的机制称动态绑定
12、(2分)运算符的重载形式有两种,重载为__类的成员函数重载___________和________友元函数重载________________
13、(2分)main主函数执行完毕后,是否可能会再执行一段代码请说明理由
一段程序是以main函数开始main函数执行完毕程序结束如果想在mian函数退出后执行代码可以使用atexit()函数注册一个函数
14、(2分)C++中的空类,默认产生那些类成员函数?
缺省的构造函数
缺省的拷贝构造函数
缺省的析构函数
缺省的赋值运算符
缺省的地址运算符
缺省的地址运算符const
第二部分概念简答(共10分)
15、(4分)简述STL库的功能,并给出遍历一个包含一组整型数的vector的代码。
16、(5分)请写出贝叶斯公式
P(A|B)=P(B|A)*P(A)/P(B)
17、(5分)进程和线程的区别和联系?
1)进程:
子进程是父进程的复制品。
子进程获得父进程时间空间,
堆和栈的复制品
2)线程:
相对进程而言,线程是程序执行的基本单位,它可以与
同进程的其他线程共享数据,但拥有自己的栈空间,拥有独立的执行
序列。
速度:
线程产生的速度快,线程间的通信快.切换快,因为他们
都在同一个地址空间
资源利用率:
线程的资源利用率比较好也是他们在同一个地址空间
同步问题:
线程使用公共变量或内存是需要使用同步机制,还是因为
他们在同一地址空间。
二者都可以提高程序的并发度,提高程序运行效率和响应时间。
线程和进程在使用上各有优缺点:
线程执行开销小,但不利于资源管理和保护。
同时,线程适合在SMP机器上运行,而进程则可以跨机器迁移
(SMP)(共享内存多处理器)
2.用两个栈实现一个队列的功能?
要求给出算法和思路
堆栈的特征:
FILO先进后出
队列的特征:
FIFO先进先出
所以,用两个栈s1和s2模拟一个队列时,s1作输入栈,逐个元素压栈,以此模拟队列元素的入队。
当需要出队时,将栈s1退栈并逐个压入栈s2中,s1中最先入栈的元素,在s2中处于栈顶。
s2退栈,相当于队列的出队,实现了先进先出。
显然,只有栈s2为空且s1也为空,才算是队列空。
算法中假定栈s1和栈s2容量相同。
出队从栈s2出,当s2为空时,若s1不空,则将s1倒入s2再出
第三部分算法设计与设计思考共30分
1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 科大讯飞 笔试 题目 C+
![提示](https://static.bdocx.com/images/bang_tan.gif)