使用VC++6.0打开考生文件夹下的源程序文件2.cpp。请完成函数fun(int x),该函数的功能是将x的值转换成二进制数输出到屏幕,并且在函数中调用写函数WriteFile将结果输出到2.txt文件中。
例如x=6,6的二进制数为110,则输出到屏幕的数为110。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include<iostream>
#include<fstream>
#include<cmath>
using namespace std;
void WriteFile(char *str)
ofstream out1;
out1.open("2.txt",ios_base::binary|ios_base::app);
for(int i=0;str[i]!=0;i++)
out1.put(str[i]);
out1.close();
void fun(int x)
void ClearFile()
ofstream out1;
out1.open("2.txt");
out1.close();
int main()
ClearFile():
fun(13);
return 0;
参考答案:char str[32];
int i;
for(i=30;i>=0;i--)//计算二进制
{
if(x%2)str[i]=’1’; //求余,如果余不为零字符串str第i位为1
else str[i]=’0’; //否则为0
x>>=1;
if(!x)break;
}
str[31]=’\0’; //串加尾符
cout<<&str[i]<<end1;
WriteFile(&str[i]);
解析: 本题要求定义存放二进制的字符串str。利用for循环对十进制数字X进行取余运算,直到余数为0结束。如果取余结果为0,则二进制字符串这个字符位的值为0,否则为1。调用WriteFile,将运算结果存入文件。