if (m < 2 || m % 2 == 0) return 0;
for (i = 3; i < m; i = i + 2) if (m % i == 0) return 0; return 1; }
2.输入若干个正整数,判断每个数从高位到低位各位数字是否按值从小到大排列,请根据题意,将程序补充完整。 #include
scanf(\
while (n > 0) { if(fun1(n))
printf(\中各位数字按从小到大排列\\n\scanf(\} }
{ int k; while(m)
if( m / 10 % 10 > k) return 0;
return 1; }
3.下列函数输出一行字符:先输出kb个空格,再输出n个指定字符(由实参指定)。请根据题意,将程序补充完整。 #include
三、程序设计题
1.输入x,计算并输出下列分段函数 f(x) 的值。要求定义和调用函数sign(x) 实现该分段函数。 x > 0 x = 0 -1 x < 0 解答:
#include
int sign(int x); int x, y;
scanf(\
y = sign(x);
printf(\return 0; }
int sign(int x) {
int y;
if(x>0) y=1;
else if (x==0) y=0; else y=-1;
return y; }
2.输入一批正整数(以零或负数为结束标志),求其中的奇数和。要求定义和调用函数even(n) 判断数的奇偶性,当n为偶数时返回1,否则返回0。 解答:
#include
int n, sum;
scanf(\sum = 0;
while(n > 0){
if(even(n) == 0) sum = sum + n; scanf(\}
printf(\
第45/106页
return 0; }
int even(int n) {
int y;
if (n % 2 == 0) y = 1; else y = 0;
return y;
}
3.输入精度e,用下列公式求cos(x)的近似值,精确到最后一项的绝对值小于e。要求定义和调用函数funcos(e, x)求余弦函数的近似值。 x0x2x4x6
cos(x)???????? 0!2!4!6! 解答:
#include \#include \
double funcos(double e, double x); int main(void)
{
double e, sum, x;
scanf(\sum = funcos(e, x);
printf(\return 0; }
double funcos(double e, double x) {
int flag, i;
double item, sum, tmp, power; flag = 1; power = 1; tmp = 1; i = 0; item = 1; sum = 0;
while(fabs(item) >= e){ item = flag * power / tmp; sum = sum + item;
power = power * x * x;
tmp = tmp * (i+1) * (i+2); flag = -flag; i = i + 2; }
return sum;
第46/106页
}
4.输入两个正整数m和n(1<=m, n<=500),统计并输出m 和n之间的素数的个数以及这些素数的和。要求定义并调用函数prime(m)判断m是否为素数。 解答:
#include \#include \int main(void) {
int count, i, m, n, sum; int prime(int m);
scanf(\
count = sum = 0;
for(i = m; i <= n; i++) if(prime(i) != 0){ count++;
sum = sum + i; }
printf(\return 0; }
int prime(int m) {
int k, i;
if(m == 1) return 0; k = sqrt(m);
for(i = 2; i <= k; i++) if(m % i == 0) return 0; return 1; } 5.输入两个正整数a和n, 求a+aa+aaa+aa?a(n个a)之和。要求定义并调用函数fn(a,n),它的功能是返回aa?a(n个a)。例如,fn(3,2)的返回值是33。 解答:
#include
int a, i, n; long sn;
第47/106页
long fn(int a, int n); scanf(\sn = 0;
for(i = 1; i <= n; i++) sn = sn + fn(a, i); printf(\return 0; }
long fn(int a, int n) {
int i;
long tn; tn = 0;
for(i = 1; i <= n; i++) tn = 10 * tn + a; return tn; }
6.读入一个整数,统计并输出该数中2的个数。要求定义并调用函数countdigit(number,digit),它的功能是统计整数number中数字digit的个数。例如,countdigit(12292,2)的返回值是3。
解答:
#include \int main(void) {
int count, digit, in;
int countdigit(int number, int digit); scanf(\count = countdigit(in, digit);
printf(\return 0;
}
int countdigit(int number, int digit) {
int count;
if(number < 0) number = -number; count = 0; do{
if(number % 10 == digit) count++;