13day---C++面试题

本文解析了C++中的异常处理机制,包括throw、catch和try关键字的使用,以及异常再次抛出的误区。同时,介绍了C++中内存管理的细节,包括malloc函数的工作原理和柔性数组的特性及应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.选列关于异常处理的描述中,理解不正确的是D
A C++语言的异常处理机制通过3个保留字throw、catch、和try实现
B 任何需要检测的语句必须放在try语句块中,并由throw语句抛出异常
C throw 语句抛出异常后,catch利用数据类型匹配进行异常块检测。
D 一旦catch捕获异常。不能将异常用throw语句再次抛出。
解:
在执行程序发生异常时,可以不在本函数中处理,而是通过throw抛出一个异常信息他会传递给上一级的函数来解决,上一级解决不了,再传给上一级,逐级上传。
2.C库函数中malloc依赖下面sbrk系统调用增长空间
c++依赖brk()
3.对以下数据结构中data的处理方式描述正确的是C

struct Node{
	int size;
	char data[0];
}

A data将会编译成为一个char*类型指针
B 全部描述都不正确
C 编译器会认为这是一个长度为0的数组,而且会支持对于数组data的越界访问
D 编译器会默认将数组data的长度设置为1
解:
char data[0]:柔性数组,只能存放在结构体末尾。是申明一个长度为0 的数组。对于编译器来说,此时长度为0的数组并不占用空间,因为数组名并不占用空间,只是一个偏移量。数组名本身只代表了一个不可修改的地址常量(注意:数组名永远不会是指针!)但是可以对这个数组的大小,可以动态分配。
4.以下表达式中,能正确根据表达式C = (F - 32)*5/9,由华氏温度F计算出摄氏温度C(设C、F均为float类型)的有BCD
A C= 5/9✖(F-32)
B C=(F-32)✖ 5/9
C C= 5✖(F-32)/9
D C=(F-32)/ 5✖9
解:A 整数除法操作将执行舍位,结果中的小数部分都被舍弃。5/9得出0,所以表达式都为0

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值