1 / 3
文档名称:

c语言-2010春C语言上机试卷C02答案.doc

格式:doc   大小:50KB   页数:3页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

c语言-2010春C语言上机试卷C02答案.doc

上传人:bdjigr52 2018/8/24 文件大小:50 KB

下载得到文件列表

c语言-2010春C语言上机试卷C02答案.doc

文档介绍

文档介绍:一、改错题(16分)
【程序功能】
先将一个正整数转换为十进制表示的数字字符串,再将千位分隔符插入到该字符串中,最后输出该字符串。
【测试数据及运行结果】
输入:1234567
输出:1234567
1,234,567
【含有错误的源程序】
#include <>
#include <>
void ltoa(char s[],long num)
{ long n=num,i=0;
printf("%ld\n",num);
while(n)
{ i++; n/=10; }
s[i]= \0 ; /* 语法错,易, 改为 s[i]='\0'; 或 s[i]=0; */
while(num)
{ s[--i]=num%10+'0'; num/=10;
}
}
void insert(char s[])
{ char j,k,t;
t=j=strlen(s);
while(j>3)
{ j=j-3;
for(k=t; k>j; k--)
s[k]=s[k+1]; /*算法错,中偏难, 改为 s[k]=s[k-1];*/
s[j]= ',';
t++;
}
}
void main()
{ static char s[20]; long num;
scanf("%d",&num); /*语义错,中,改为 scanf("%ld",&num);*/
ltoa(s,num);
insert(s,num); /*语法错,易,改为 insert(s); */
puts(s);
getch();
}
二、编程题(24分)
【程序功能】
一个整数的“真因子”是指包括1但不包括整数自身的因子。
“真因子和数列”是指取一个正整数作为数列首项,首项之后的每一项都是前一项的真因子之和。真因子和数列有几种可能的形式,其中的一种形式是以1结束。例如,取10作为数列首项,10的真因子和为8(1+2+5),8的真因子和为7(1+2+4),7的真因子和为1。因此,用10生成的真因子和数列(10,8,7,1)以1结束。
编写程序分别以在给定范围内取值的多个正整数作为数列首项,生成多个与其对应的“真因子和数列”,这些数列均以1结束。
【编程要求】
编写函数int sequ(int m1,int m2,int num[][10])实现以下功能:依次取[m1,m2]范围内每个正整数作为数列首项可生成m2-m1+1个真因子和数列,将其中不超过10项且以1结束的数列保存到num指向的二维数组中,函数返回num数组中存储的数列个数。
编写函数main实现以下功能:声明二维数组x和变量m1、m2,输入两个正整数保存到m1和m2中(m1<m2),用m1、m2和数组x作为实参调用sequ函数,。。
【测试数据与运行结果】
输入: m1=21,m2=30
输出:
21 11 1
22 14 10 8 7 1
23 1
24 36 55 17 1
26 16 15 9 4 3 1
27 13 1
2