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

admin2021-02-22  34

问题 使用VC6打开考生文件夹下的源程序文件modi2.cpp。请完成函数fun(int x),该函数功能是将x的值转换成二进制数输出到屏幕,并且在函数中调用写函数WriteFile()将结果输出到modi2.txt文件中。
    例如:x=13,13的二进制数字为1101,则输出到屏幕的为1101。
    注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
    1    #include
    2    #include
    3  #include
    4    using namespace std;
    5    void WriteFile(char*Str)
    6  {
    7    ofStream outl ;
    8    outl.open("modi2.txt",ios_base::binary|los_base::app);
    9    for(int i=0 ; str!=0;i++)
    10    outl.put(str);
    11    outl.Close();
    12  }
    13  void fun(int x)
    14    {
    15
    16  }
    17  void ClearFile()
    18    {
    19    ofstream outl;
    20    outl.open("modi2.txt");
    21    outl.close();
    22    }
    23  int mein()
    24  {
    25    ClearFile();
    26    fun(13);
    27    return 0 ;
    28  }

选项

答案1 char str[32]; 2 int i; 3 for(i=30 ; i>=0 ; i--)//计算二进制 4 { 5 if(x%2)str[i]=’1’; //求余,如果余不为零字符串str第i位为1 6 el se str[i]=’0’; //否则为0 7 x>>=1 ; 8 if(!X)break ; 9 } 10 str[31]=’\0’,; //串加尾符 11 cout<<&str[i]<
解析 (1)该程序功能是实现十进制转换成二进制数。十进制到二进制的转换是对十进制的数字进行2的取余运算,余数不为零则取1,否则为0,然后对余数进行循环取余运算,直到余数为0。
    (2)从已给部分源程序的main主函数开始入手,核心函数fun(int x)中的x参数为输入的十进制数。
    [解题思路]
    (1)定义存放二进制的字符串str。
    (2)然后利用for循环对十进制数字X进行取余运算,直到余数为0结束。
    (3)如果取余结果为0,则二进制字符串这个字符位的值为0,否则为1。
    (4)最后调用WriteFile将运算结果存入文件。
转载请注明原文地址:https://kaotiyun.com/show/NKyp777K
0

最新回复(0)