25day---C++面试题

1.关于C++中的new和C语言中的malloc,以下说法哪几个是正确的:A
A 都是用来申请内存的
B 都是函数
C 都会调用构造函数
D 他们没有区别,都一样
解:
(1)malloc是库函数,而new是操作符
(2)编译器无权调用库函数来执行构造函数和析构,无法满足创造动态对象的要求,所以才有了new和delete
2.void类型没有分配内存,而引用必须是另一个固定内存变量的别名,所以不能指向void
3.关于 " 文件指针 " 概念
(1)文件指针是程序中用FILE定义的指针变量
(2)文件指针指向的是一块内存区域,这块区域存储着打开的文件的相关信息,包括文件读取指针当前位置、文件读取缓冲区大小等信息,并不是指向文件的
(3)fscanf是从文件中格式化读取,fprintf才是向文件中格式化写入
4.执行下面语句后的输出为 %%

int I=1;
if(I<=0)
    printf("****\n") ;
else
    printf("%%%%\n");

解:在printf中的%作为转义符,两个%才相当于1个%
5.vector是顺序存储的,只有在尾部插入才不会导致迭代器失效,在头部插入或者中间插入都会导致插入的部位以及其后的所有迭代器都失效;
map是映射,key和value是一一对应的,在内存中是零散存在的,迭代器通过key找到value,无论怎么插入都不会让迭代器失效,当然删除只会使得被删除元素的迭代器失效

6.缺省情况下,编译器默认数据为signed类型,但是char类型除外

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值