c语言-2010春C语言上机试卷C04答案.doc_第1页
c语言-2010春C语言上机试卷C04答案.doc_第2页
c语言-2010春C语言上机试卷C04答案.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2010年春 二级 C语言 上机试卷(试卷代号C04) 答案一、改错题(16分)【程序功能】由一个取值在032767范围内的正整数x生成一个由十六进制数字字符组成的字符串。生成规则如下:设x的质因数分解式为qnr(n)qn-1r(n-1).q2r(2)q1r(1),其中q1代表质数2,q2代表q1之后的下一个质数3,qn代表qn-1之后的下一个质数。取出x的质因数分解式中所有质数的指数,将这些指数分别转换为十六进制数字字符并合并为一个字符串。例如,49的质因数分解式为72503020,因此由49生成的字符串是“2000”。16384的质因数分解式为214=2E,因此由16384生成的字符串是“E”。【测试数据与运行结果】第一次运行输入:49输出:2000第二次运行输入:16384输出:E第三次运行输入:16000输出:307【含有错误的源程序】#include int nextPrime(int x) int k; do x+; for(k=2;kx;k+) if(x%k=0)break; /*语法错,易,改为 if(x%k=0)break; */ while(k2; ) /*算法错,难,改为 for(i=2,j=0;x=2; ) 或for(i=2,j=0;x1; ) */ if(x%i=0) j+; x/=i; else *s+=bitj; i=nextPrime(i); j=0; *s=bitj; *s+1=0; /*语法错,中,改为 *(s+1)= 0; */ for( ;ps;p+,s-) ch=*p; *p=*s; *s=ch; void main( ) int a; char s; /*语法错,易,改为 int a; char s80; */ scanf(%d,&a); transform(a,s); puts(s); getch();二、编程题(24分)【程序功能】分别找出3、4位数中的所有Armstrong数并输出。Armstrong数是指:一个n位数的各位数字的n次方之和等于该数。例如:153=13+53+33;1634=14+64+34+44。因此,153是3位Armstrong数,1634是4位Armstrong数。【编程要求】编写函数int arms(int ar)实现以下功能:将所有3、4位Armstrong数存入数组ar中,函数返回这些Armstrong数的个数。编写函数main实现以下功能:声明1个一维数组a,用a数组作实参调用arms函数,将a数组中存储的所有Armstrong数及其个数k输出到屏幕及文件myf2.out中。最后将考生本人的准考证号输出到文件myf2.out中。【测试数据与运行结果】输出: k=7 153 370 371 407 1634 8208 9474【参考答案】#include #include int arms(int ar) int i,j,k=0,t1,t2,m=0,n,a4; for(i=3;i=4;i+) t1=pow(10,i-1); t2=pow(10,i); for(j=t1;jt2;j+) n=j; for(k=0;ki;k+) ak=n%10; n=n/10; n=0; for(k=0;ki;k+) n=n+(int)pow(ak,i); if(n=j)arm+=n; return m;void main() int a100=0,i,k; FILE *fp; if(fp=fopen(myf2.out,w)=NULL) printf(Can not open the file!);exit(0); k=arms(a); printf(k=%dn,k); fprintf(fp,k=%dn,k); for(i=0;i100;i+) if(ai=0) break; printf(%5d,ai); fprintf(fp,%5d,ai); fprintf(fp,n)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论