[求下面函数的返回值]代码验证

看到一道C++面试题

求下面函数的返回值(微软)

int func(x) 

int countx = 0; 

while(x) 

countx ++; 

x = x&(x-1); 

return countx; 

假定x = 9999。 答案:8

思路:将x转化为2进制,看含有的1的个数。

-----------------------------------

下面为博主的测试结果:

程序内容如下,

#include<stdio.h>
#include <stdlib.h>
//	#include <iostream>
//	using namespace std;

int func(int x)
{
	int countx=0;
	char p[50],p1[50];
	
	itoa(x,p,2);
	itoa(x-1,p1,2);
		printf("x  : %016s\nx-1: %016s\nx  : %d\n----------------------\n",p,p1,x);
	while(x)
	{
		countx++;
		x = x&(x-1);
		itoa(x,p,2);
		itoa(x-1,p1,2);
		printf("x  : %016s\nx-1: %016s\nx  : %d\n----------------------\n",p,p1,x);
	}
	return countx;
}
void main()
{
	int output = func(9999);
	printf("output = %d\n",output);
		
	
//		char ss[100];
//		itoa(-1,ss,2);
//		printf("ss = %s\n",ss);
//		cout<<"ss = "<<ss<<endl;
}
输出结果为:



----------------------------------------

以下为题外话:

itoa函数对负数【-1】转换成二进制数,呈现为奇怪结果【32个数字1】,换算成十进制为:8589934591。

此问题不知为何,欢迎大家讨论


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 测试函数是一种用于验证和确认代码功能的方法。在MATLAB中,可以使用以下步骤来测试函数代码。 首先,需要编写测试脚本或函数。测试脚本或函数应该包含一系列输入和对应的预期输出。这些输入和输出应该涵盖函数的各种情况和边界情况。 接下来,在测试脚本或函数中调用待测试的函数,并将测试数据作为输入参数传入。然后,将实际的函数输出与预期的输出进行比较。 如果实际输出与预期输出一致,测试通过。否则,需要检查函数代码并确定问题所在。 在测试脚本或函数中,可以使用断言语句来进行比较和确认。断言语句类似于“assert(实际输出 == 预期输出)”的形式,如果比较结果为真,则测试通过。如果为假,则会抛出一个错误。 对于更复杂的函数,可能需要编写多个测试用例,以覆盖不同的情况和边界情况。可以使用循环结构或条件判断来执行多个测试用例。 最后,运行测试脚本或函数,并查看测试结果。如果所有测试用例均通过,则说明函数代码是正确的。如果有一个或多个测试用例未通过,则需要进一步调试和修改函数代码。 通过测试函数,可以帮助确保代码的正确性,并在进行修改或优化时提供辅助。 ### 回答2: 要测试一个函数的Matlab代码,可以按照以下步骤进行: 1. 首先,确定测试函数的输入和输出。确保你清楚函数需要什么样的输入参数,并且知道你期望的输出结果是什么。 2. 创建一个测试脚本或函数,用于调用被测试函数并检查结果。你可以使用assert语句来检查输出结果是否与预期一致。例如,如果函数的输出结果应该为5,你可以使用assert(result == 5)来检查结果是否正确。 3. 编写测试脚本或函数的其他部分。你可以通过制定一系列测试用例来测试不同的输入情况。确保考虑到边界情况和异常情况。 4. 运行测试脚本或函数,并查看结果。如果所有测试用例的结果都与预期一致,那么你可以认为测试函数通过。 5. 如果有测试用例失败,检查测试函数代码并查找错误。可能需要对被测试函数进行调试或修改。 6. 反复运行测试脚本或函数,直到所有测试用例都通过为止。 ### 回答3: 测试函数是指为了验证一个函数的正确性和性能而编写的一系列测试用例。在Matlab中,可以使用matlab.unittest框架来编写和执行测试函数。 测试函数通常包括以下步骤: 1. 定义测试函数:编写一个以test开头的函数,该函数用于测试被测函数的一个特定方面。测试函数应该包含适当的输入和期望输出。 2. 准备测试数据:根据测试函数的要,准备输入数据和期望输出数据。输入数据应该覆盖各种可能情况,以确保被测函数的稳定性。 3. 调用被测函数:使用准备好的测试数据调用被测函数,并将其返回值保存在变量中。 4. 断言测试结果:使用断言函数来检查被测函数返回值是否与期望输出一致。如果断言失败,测试将标记为失败。 5. 运行测试:使用matlab.unittest.TestRunner运行测试函数,以执行所有编写好的测试函数。 6. 分析测试结果:查看测试结果报告,检查每个测试函数的运行结果是否通过。报告将包含测试的覆盖率、执行时间和失败详情等信息。 7. 修复问题:如果测试失败,根据失败详情进行调试,并修改被测函数以解决问题。然后重新运行测试函数,以确保问题已经修复。 编写和执行测试函数可以帮助我们验证被测函数在各种情况下的正确性和性能,提高代码的稳定性和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hmmwjs

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值