首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码,补充空出的代码。函数DecToBin(char*des,int n)的功能是将十进制数据n转换成二进制数据,并将转换结果存放在des中。 如:120的二进制数据为11
使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码,补充空出的代码。函数DecToBin(char*des,int n)的功能是将十进制数据n转换成二进制数据,并将转换结果存放在des中。 如:120的二进制数据为11
admin
2019-01-19
33
问题
使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码,补充空出的代码。函数DecToBin(char*des,int n)的功能是将十进制数据n转换成二进制数据,并将转换结果存放在des中。
如:120的二进制数据为1111000
例:
DecToBin(char*des,120);
cout<<des<<end1;
输出为:1111000
注意:不能修改程序的其他部分,只能补充DecToBin(char*des,int n)函数。
1 #include<iostream.h>
2 #define MAXLEN 1024
3 void DecToBin(char*des,int n)
4 {
5
6 }
7 void main()
8 {
9 char des[MAXLEN];
10 int n=120;
11 DecToBin(des,n);
12 cout<<des<<end1;
13 return;
14 }
选项
答案
1 int j,i=0; 2 char temp; 3 while(n!=0) 4 { 5 des[i]=n%2+’0’; 6 n=n/2; 7 i++; 8 } //转化结果为2进制最高位在des的下标最低处,顺序刚好反了 9 des[i]=NULL; 10 for(j=0;j<i/2;j++) //将顺序倒过来 11 { 12 temp=des[j];//交换 13 des[j]=des[i-1-j]; 14 des[i-1-j]=temp; 15 }
解析
函数DecToBin(char*des,int n)的功能是实现十进制数转换成二进制数,可采用除2取余的方法来求得。由于要将最终的结果保存在字符数组中,因此在定义的函数中将将相除得到的数字0和1,再加上字符“0”的ASCII码从而实现将数字转换成ASCII码显示,考虑到除2取余得到的结果是倒序的,因此程序最后通过交换实现结果的正确显示。
(1)本题为将十进制数转换成二进制数,因此采用除2求余法,通过该方法最终可以将一个十进制数转换成一个只包含1和0的数组。
(2)除2求余法得到的是0和1的数值,不是“0”和“1”字符,还需将数字转化成字符,0和1通过加上“0”的ASCII码便可得到0和1的ASCII码字符。
(3)因为除2求余法得到的字符数组是从低位到高位保存的,因此需要先倒序后再输出,可利用循环方式将顺序调转过来。
转载请注明原文地址:https://jikaoti.com/ti/92t0FFFM
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
一个C++程序由函数A(),B(),C()和函数P()构成,在函数A()中分别调用了函数B()和函数C(),在函数B()中调用了函数A(),且在函数P()中也调用了函数A(),则可以说
派生类构造函数的执行顺序是先执行______的构造函数,然后执行成员对象的构造函数,最后执行______的构造函数。
在面向对象方法中,______描述的是具有相似属性与操作的一组对象。
在表达式x-y中,"-"是作为非成员函数重载的运算符。若使用显式的函数调用代替直接使用运算符"-",这个表达式还可以表示为
下面的程序的结果是main(){intx=3,y=0,z=0;if(x=y+z)cout<<"****";elsecout<<"####";}
关系数据库的关系演算语言是以______为基础的DML语言。
下列不是描述类的成员函数的是
若定义intk=7,x=12;,则能使值为3的表达式是
以下不使用线性结构表示实体之间联系的模型的是()。
复制构造函数的参数一般是
随机试题
甲、乙两人合谋盗印畅销小说《小时代》,在某地摆摊销售。丙购得一本该盗版书后,借给丁、戊看。侵犯小说《小时代》著作权的人有()
下列关于流感病毒及其致病性的描述,不正确的一项是
质量认证制度的内容包括()。
根据《中华人民共和国公司法》的规定,公司经理对董事会负责,行使的职权不包括()。
在财务报表中,()项目有估计成分,不一定反映公司实际。
经批准设立的证券营业部,由证券公司在()上进行公告。
企业2017年流动资产合计为3000万元,其中存货为1500万元,应收账款1500万元,流动负债合计2000万元,则该公司2017年速动比率为()。
根据操作对象的不同可将操作技能分为()。
最近的研究表明,高纤维饮食将减少心脏病和结肠癌的可能性。事实上,鸡蛋不含有纤维。因此,早餐吃鸡蛋也许并不是健康饮食。以下各项如果为真,都能削弱上述论证的结论,除了I.鸡蛋不是健康食品的一个更重要的理由是,它包含了大量的胆固醇。Ⅱ.高纤维饮食未必能减少
有以下程序#includevoidfun(char*t,char*s){while(*t!=0)t++;while((*t++=*s++)!=0);}main(){charss[10]="ace",aa[10]="bbxxyy";
最新回复
(
0
)