C语言上机考试改错题:正整数转换与千位分隔符.pdfVIP

  • 0
  • 0
  • 约2.74千字
  • 约 2页
  • 2026-02-17 发布于四川
  • 举报

C语言上机考试改错题:正整数转换与千位分隔符.pdf

江苏省高等学校非计算机专业学生

计算机基础知识和应用能力等级考试上机试卷(2010年春)

二级C语言(试卷代号C02)

(本试卷完成时间70分钟)

一、改错题(16分)

【程序功能】

先将一个正整数转换为十进制表示的数字字符串,再将千位分隔符到该字符串

中,最后输出该字符串。

【测试数据及运行结果】

输入:1234567

输出:1234567

1,234,567

【含有错误的源程序】

#includestdio.h

#includestring.h

voidltoa(chars[],longnum)

{longn=num,i=0;

printf(%ld\n,num);

while(n)

{i++;n/=10;}

s[i]\0;

while(num)

{s[--i]=num%10+0;num/=10;

}

}

voidinsert(chars[])

{charj,k,t;

t=j=strlen(s);

while(j3)

{j=j-3;

for(k=t;kj;k--)

s[k]=s[k+1];

s[j],;

t++;

}

}

voidmain()

{staticchars[20];longnum;

scanf(%d,num);

ltoa(s,num);

insert(s,num);

puts(s);

getch();

}

【要求】

1.将上述程序录入到文件myf1.c中,根据题目要求及程序中语句之间的逻辑关系对程序

中的错误进行修改。

2.改错时,可以修改语句中的一部分内容,调整语句次序,增加少量的变量说明或编译

预处理命令,但不能增加其它语句,也不能删去整条语句。

3.改正后的源程序(文件名myf1.c)保存在T:盘根目录中供阅卷使用,否则不予评分。

二、编程题(24分)

【程序功能】

一个整数的“真因子”是指包括1但不包括整数自身的因子。

“真因子和数列”是指取一个正整数作为数列首项,首项的每一项都是前一项的真

因子之和。真因子和数列有几种可能的形式,其中的一种形式是以1结束。例如,取10作

为数列首项,10的真因子和为8(1+2+5),8的真因子和为7(1+2+4),7的真因子和为1。

因此,用10生成的真因子和数列(10,8,7,1)以1结束。

编写程序分别以在给定范围内取值的多个正整数作为数列首项,生成多个与其对应的

“真因子和数列”,这些数列均以1结束。

【编程要求】

1.编写函数intsequ(intm1,intm2,intnum[][10])实现以下功能:依次取[m1,m2]范围内每

个正整数作为数列首项可生成m2-m1+1个真因子和数列,将其中不超过10项且以

文档评论(0)

1亿VIP精品文档

相关文档