【分析解答题】使用VC++6.0打开考生文件夹下的源程序文件2.cpp。阅读下列函数说明和代码,补充空出的代码。函数DecToBin(char *des,int n)的功能是将十进制数据n转换成二进制数据,并将转换结果存放在des中。
例如:58的二进制数据为111010,则
 DecToBin(char *des,58);
cout<<des<<end1;
输出结果为:111010
注意:不能修改程序的其他部分,只能补充DecToBin(char*des,int n)函数。
试题程序:
#include<iostream.h>
#define MAXLEN 1024
voidDecToBin(char *des,int n)
   
   
void main()
   
char des[MAXLEN];
int n=58;
 DecToBin(des,n);
cout<<des<<end1;
return;
网考网解析:
试题答案:int j,i=0;     char temp;     while(n!=0)     {     des[i]=n%2+’0’;     n=n/2;     i++;     }  //转化结果为二进制最高位在des的下标最低处,顺序刚好相反     des[i]=NULL;     for(j=0;j<i/2;j++)  //将顺序倒过来     {     temp=des[j];//交换     des[j]=des[i-1-j];     des[i-1-j]=temp;     } 答案解析:[解析] 本题为将十进制数转换成二进制数,因此采用除2求余法,通过该方法最终可以将一个十进制数转换成一个只包含1和0的数组。除2求余法得到的是0和1的数值,不是“0”和“1”字符,还需将数字转化成字符,0和1通过加上“0”的ASCⅡ码便可得到0和1的ASCⅡ码字符。因为除2求余法得到的字符数组是从低位到高位保存的,因此需要先倒序后再输出,可利用循环方式将顺序调转过来。 
                 
				 
                	document.getElementById("warp").style.display="none";
                	document.getElementById("content").style.display="block";
                 
                查看试题解析出处>>
							
	          			
发布评论 查看全部评论