2003全国等级考二级C上机试题(附参考答案)
http://tech.ddvip.com 2006年12月02日 社区交流
本文详细介绍2003全国等级考二级C上机试题(附参考答案)
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include <stdio.h>
#define N 100
int fun(int *s, int n)
{ int i,j,k,a,b,c;
j=0;
for(i=100; i<n; i++) {
/**************found**************/
k=n;
a=k%10; k/=10;
b=k%10; k/=10;
/**************found**************/
c=k/10;
if( a==b && a==c ) s[j++]=i;
}
return j;
}
main()
{ int a[N], n, num=0, i;
do
{ printf("
Enter n( <=1000 ) : "); scanf("%d",&n); }
while(n > 1000);
num = fun( a,n );
printf("
The result :
");
for(i=0; i<num; i++)printf("%5d",a[i]);
printf("
");
}2、给定程序modi.c中函数fun的功能是:计算n的5次方的值(规定n的值大于2、小于8),通过形参指针传回主函数。并计算该值的个位、十位、百位上数字之和作为函数值返回。例如,7的5次方是16807,其低3位数的和值是15。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include <stdio.h>
#include <math.h>
int fun( int n ,int *value )
{ int d,s,i;
/**************found**************/
d=0; s=1;
for(i=1; i<=5; i++) d=d*n;
*value=d;
for(i=1; i<=3; i++)
{ s=s+d%10;
/**************found**************/
s=s/10;
}
return s;
}
main()
{ int n, sum, v;
do
{ printf("
Enter n( 2<n<8): ");scanf("%d",&n); }
while(n<=2||n>=8);
sum=fun( n,&v );
printf("
The result:
value=%d sum=%d
",v,sum);
}3、数列中,第一项值为3,后一项都比前一项的值增5。给定程序modi.c中函数fun的功能是:计算前n(4<n<50)项的累加和,每累加一次把被4除后余2的当前累加值放入数组中,符合此条件的累加值的个数作为函数值返回主函数。
责编:豆豆技术应用
正在加载评论...