使角VC6打开考生文件夹下的源程序文件modi2.cpp。请完成函数fun(int x),该函数功能是将x的值转 换成三进制数输出到屏幕,并且在函数中调用写函数WriteFile()将结果输出到mod12.txt文件中。 例如:x=13, 13的二

admin2019-05-22  21

问题 使角VC6打开考生文件夹下的源程序文件modi2.cpp。请完成函数fun(int x),该函数功能是将x的值转
换成三进制数输出到屏幕,并且在函数中调用写函数WriteFile()将结果输出到mod12.txt文件中。
    例如:x=13, 13的二进制数字为1101,则输出到屏幕的为ll01。
    注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
    #inc1ude<iostream>
    #inc1ude<fstream>
    #inc1ude<cmath>
    using namespace std;  
    void WriteFile(char* str)  
    {  
    ofstream outl;
    outl.open("modi2.txt",ios_ base::binary|ios_base::app);
    for(int i=0; str!=0;1++)
    outl.put( str);
    outl.c1ose();
    }
    void fun(int x)
    {
    }
    void c1earFile()
    {
    ofstream outl;
    outl.open("modi2.txt");
    outl.c1ose();
    }
    int main()
    {
    c1earFile();
    fun(13);
    return 0:
   }

选项

答案char str[32]; inti: for(1=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]<<endl; WriteFile(&str[i]);

解析 (1)该程序功能是实现十进制转换成二进制数。十进制到二进制的转换是对十进制的数字进行2的取余运算,余数不为零则取1,否则为0,然后对余数进行循环取余运算,直到余数为0。
(2)从己给部分源程序的main主函数开始入手,核心函数fun(intx)中的x参数为输入的十进制数。
(3)定义存放二进制的字符串str。
(4)然后利用for循环对十进制数字x进行取余运算,直到余数为0结束。
(5)如果取余结果为0,则二进制字符串这个字符位的值为0,否则为1。
(6)最后调# WriteFile将运算结果存入文件。
转载请注明原文地址:https://kaotiyun.com/show/sB8p777K
0

相关试题推荐
最新回复(0)