单精度是否为零的判断

博客内容涉及浮点数在编程中的比较问题,指出不能直接使用等于或不等于操作符来判断是否为零,因为这可能导致无限循环。文章通过举例说明并纠正了错误的答案选项。

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

 有如下程序段:
1
2
3
4
5
6
7
8
9
int i, n = 0;
float x = 1, y1 = 2.1 / 1.9, y2 = 1.9 / 2.1;
for ( i = 1; i < 22; i++ )
  x = x * y1;
while ( x != 1.0 )
{
  x = x * y2; n++;
}
printf( “ %d / n ”, n );

请问执行结果是:

分析:浮点数的比较不可以用 = = 或者 != ,详见找工作笔试面试那些事儿(1)---C,C++基础和编程风格(2) ,会一直循环下去,选择C


 拷贝构造函数的特点是()

正确答案: D   你的答案: A B C D (错误)

该函数名同类名,也是一种构造函数,该函数返回自身引用
该函数只有一个参数,必须是对某个对象的引用
每个类都必须有一个拷贝初始化构造函数,如果类中没有说明拷贝构造函数,则编译器系统会自动生成一个缺省拷贝构造函数,作为该类的保护成员
拷贝初始化构造函数的作用是将一个已知对象的数据成员值拷贝给正在创建的另一个同类的对象


拷贝函数和构造函数没有返回值,A错;
拷贝构造函数的参数可以使一个或多个,但左起第一个必须是类的引用对象,B错;
若类定义中没有声明拷贝构造函数,则编译器会自动生成一个缺省的拷贝构造函数,但是不会是该类的保护成员,C错;
通过拷贝函数可以将另一个对象作为对象的初值,D对

从构造函数说起,最简单的A a=constructor( parameter);如果构造函数不返回任何东西,它应该写void,而类成员构造函数之所以不写,是因为它返回该类的引用。总之,他不是没返回,只是你不用写而已,A是对的。
构造函数可以有多个参数,但是复制构造函数的参数必须是实例的引用,且只有一个。B是对的。
C前面都是对的,但是默认复制构造函数可以在类或子类外使用,不是保护成员函数。
D正确不解释。



若如初见

答案:BCD
B,因为析构函数一般声明为虚函数,以确保对象能正确的释放内存。所有在析构函数中调用虚函数,动态绑定机制可以生效
C,因为静态成员函数没有this指针,同时其函数的指针存放也不同于一般的成员函数,其无法成为一个对象的虚函数的指针以实现由此带来的动态机制。静态是编译时期就必须确定的,虚函数是运行时期确定的。
D,inline函数和virtual函数有着本质的区别,inline函数是在程序被编译时就展开,在函数调用处用整个函数体去替换,而virtual函数是在运行期才能够确定如何去调用的,因而inline函数体现的是一种编译期机制,virtual函数体现的是一种运行期机制。
虚函数可以声明为inline,但是编译器会忽略inline属性。

 下列关于虚函数的说法正确的是()

正确答案: C D   你的答案: C (错误)

在构造函数中调用类自己的虚函数,虚函数的动态绑定机制还会生效
在析构函数中调用类自己的虚函数,虚函数的动态绑定机制还会生效
静态函数不可以是虚函数
虚函数可以声明为inline


若如初见

答案:BCD
B,因为析构函数一般声明为虚函数,以确保对象能正确的释放内存。所有在析构函数中调用虚函数,动态绑定机制可以生效
C,因为静态成员函数没有this指针,同时其函数的指针存放也不同于一般的成员函数,其无法成为一个对象的虚函数的指针以实现由此带来的动态机制。静态是编译时期就必须确定的,虚函数是运行时期确定的。
D,inline函数和virtual函数有着本质的区别,inline函数是在程序被编译时就展开,在函数调用处用整个函数体去替换,而virtual函数是在运行期才能够确定如何去调用的,因而inline函数体现的是一种编译期机制,virtual函数体现的是一种运行期机制。
虚函数可以声明为inline,但是编译器会忽略inline属性。


若如初见

答案:BCD
B,因为析构函数一般声明为虚函数,以确保对象能正确的释放内存。所有在析构函数中调用虚函数,动态绑定机制可以生效
C,因为静态成员函数没有this指针,同时其函数的指针存放也不同于一般的成员函数,其无法成为一个对象的虚函数的指针以实现由此带来的动态机制。静态是编译时期就必须确定的,虚函数是运行时期确定的。
D,inline函数和virtual函数有着本质的区别,inline函数是在程序被编译时就展开,在函数调用处用整个函数体去替换,而virtual函数是在运行期才能够确定如何去调用的,因而inline函数体现的是一种编译期机制,virtual函数体现的是一种运行期机制。
虚函数可以声明为inline,但是编译器会忽略inline属性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值