全国计算机等级试二级C语言上机编程题参考答案.doc
文本预览下载声明
将两个两位的正整数a、b合并形成一个整数放在c中:将a的十位和个位数放在c的千位和十位,b的十位和个位数放在c的百位和个位。例如:若a = 45, b = 12,使c = 4152。
void fun(int a, int b, int *c) {
*c = a/10*1000+b/10*100+a%10*10+b%10;
}
判断整数x是否是同构数(规定x是不大于100的正整数)。若是,函数返回1,否则返回0。如果某个整数能够在它的平方数的最右边出现,就是“同构数”。例如:5的平方数是25,5是25右边的数,所以5是同构数。
int fun(int x)
{
return (x 10 x*x%10 == x)
|| (x = 10 x*x%100 == x);
}
w是大于10的无符号整数,求w后n-1位的数作为函数值返回。例如:若w是234,则返回34。
unsigned fun(unsigned w)
{
unsigned t = w, m = 1;
while (t)
{ t /= 10; m *= 10; }
return w % (m / 10);
}
对变量x中的值保留2位小数,并对第3位进行四舍五入(规定x中的值为正数)。
double fun(double x)
{
return (int)(x * 100 + 0.5) / 100.0;
}
求n以内(不包括n)同时能被3和7整除的所有自然数之和的平方根,并作为函数值返回。
double fun(int n)
{
int i;
double s = 0;
for (i = 1; i n; i++)
if (i % 3 == 0 i % 7 == 0)
s += i;
return sqrt(s); //平方根
}
求1到m之内(含m)能被7或11整除的所有整数放在数组a中,通过函数返回这些数的个数。
int fun(int *a, int m)
{
int i, j = 0;
for (i = 1; i = m; i++)
if (i % 7 == 0 || i % 11 == 0)
a[j++] = i; // j++模式
return j;
}
求3到n之间所有素数的平方根之和,并返回。
double fun(int n)
{
int i, k;
double s = 0;
for (i = 3; i = n; i++)
{
for (k = 2; k i; k++) //判断素数
if (i % k == 0) break; //整除中止
if (i == k) s += sqrt(i); //是素数
}
return s;
}
求出小于或等于lim的所有素数并放在a数组中,该函数返回所求的素数的个数。
int fun(int lim, int a[MAX])
{
int i, k, j = 0;
for (i = 2; i = lim; i++)
{
for (k = 2; k i; k++)
if (i % k == 0) break;
if (k == i) a[j++] = i; // j++模式
}
return j;
}
将大于整数m且紧靠m的n个素数存入x所指的数组中。
void fun(int m, int n, int x[ ])
{
int i, k, j = 0;
for (i = m + 1; j n; i++)
{
for (k = 2; k i; k++)
if (i % k == 0) break;
if (k == i) x[j++] = i; // j++模式
}
}
求数组前n个数的小数部分的和,并返回。
double fun(int n, double a[ ])
{
int i;
double s = 0;
for (i = 0; i n; i++)
s += a[i] - (int)a[i]; //原数-整数
return s;
}
把a数组的n个数的平方值,与
显示全部