北理工计算机2000-2010考研机试题目c语言实现.doc

北理工计算机2000-2010考研机试题目c语言实现.doc

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
北理工计算机2000-2010考研机试题目c语言实现

北理工计算机2000-2010考研机试题目c语言实现 1.进制转换 #include stdio.h #include math.h //#include string.h #include memory.h #includemalloc.h #define MAXSIZE 64 typedef struct stack { int top; int array[MAXSIZE]; }Stack; int InitStack(Stack *s) { s-top=-1; return 1; } int Isempy(Stack *s) { if(s-top==-1) return 1; else return 0; } void push(Stack *s,int elem) { s-top++; s-array[s-top]=elem; } int pop(Stack *s) { return s-array[s-top--]; } void _decToother(int n,int m)/*十进制转为其他进制,m表示进制*/ { int result; char ss; Stack *s; result=n; s=(Stack *)malloc(sizeof(Stack)); memset(s,0,sizeof(Stack)); if(!s) { printf(申请空间失败\n); } InitStack(s); while(n!=0) { ss=n%m; if(ss9) ss=ss-10+A; else if(ss=0 ss=9) ss+=0; push(s,ss); n/=m; } if(m==16) printf(%d的十六进制:0x,result); else if(m==8) printf(%d的八进制:0,result); while(!Isempy(s)) { printf(%c,pop(s)); } printf(\n); } void _otherTodec(char array[MAXSIZE],unsigned int scal,int len)//其他进制转十进制,scal表示进制,len表示数的位数 { int i,sum=0; for(i=0;ilen;i++) { if(array[i]=0 array[i]=9) array[i]=array[i]-0; else if(array[i]=A array[i]=f) array[i]=array[i]-A+10; sum+=array[i]*pow(scal,len-i-1); } printf(它的十进制数为:%d\n,sum); } void _binToOctOrHex(char array[MAXSIZE],int calc,int len)/*二进制转八或者十六进制,scal表示进制,len表示数的位数*/ { int i=0,j=0,part,the; char result[MAXSIZE]={0}; Stack *s; if(calc==8) part=3; else if(calc==16) part=4; s=(Stack *)malloc(sizeof(Stack)); memset(s,0,sizeof(Stack)); if(!s) { printf(申请空间失败\n); } InitStack(s); for(i=0;ilen;i++) push(s,array[i]); i=0; while(!Isempy(s)) { if(jpart) { the=pop(s); result[i]+=the*pow(2,j); j++; } else if(j=part) { j=0; i++; } } if(calc==16) printf(它的十六进制:0x); else if(calc==8) printf(它的八进制:0); for(j=i;j=0;j--) { if(result[j]9) result[j]=result[j]-10+A; else if(result[j]=0 result[j]=9) result[j]+=0; printf(%c,result[j]); } } int main() { int n=0,m=0,Bechang=0,i=0; char Binary[MAXSIZE]

文档评论(0)

80219pm + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档