福建省计算机级(c)编程包含答案
编程题:
第1套
1. 打开考生文件夹中的Cprog011.C,完成其中的fun1函数,该函数的数学表达式是:
例如:fun1(0.76) = 2.175
fun1(3.00) = 5.307
fun1(3.76) = 9.111
2. 打开考生文件夹中的Cprog012.C,完成其中的函数fun2(int a[ ], int n, int b[ ], int c[ ]),实现:
(1)将数组a中大于-20的元素,依次存放到数组b中;
(2)将数组b中的元素按照从小到大的顺序存放到数组c中;
(3)函数返回数组b中的元素个数。
Cprog011.C
double fun1(double x)
{ /**/ double y = 0.0;
y=(1+sin(x)+exp(x))/(1+x);
return y; /**/ }
Cprog012.C
int fun2(int a[],int n,int b[],int c[])
{
/**/
int j = 0;
int i,t,k;
for(i=0;i
if(a[i]>-20) { c[j]=b[j]=a[i]; j++; }
for(i=0;i
for(k=i+1;k
if(c[i]>c[k])
{ t=c[i]; c[i]=c[k]; c[k]=t; }
return j; /**/ }
第2套
1. 打开考生文件夹中的Cprog021.C,完成其中的函数fun1,该函数的数学表达式是:
例如:fun1(0.76) = 3.582
fun1(3.00) = 5.369
fun1(3.76) = 8.931
2. 打开考生文件夹中的Cprog022.C,完成其中的函数fun2(char a[ ], char b[ ], char c[ ]),实现:将三个字符串a、b、c从小到大排序后输出。
注意:字符串比较函数为strcmp(str1,str2),字符串赋值函数为strcpy(str1,str2)。
Cprog021.C
double fun1(double x)
{ /**/
double y = 0.0;
y=(exp(x)+fabs(x-6))/(x+1.3);
return y; /**/}
Cprog022.C
void fun2(char a[],char b[],char c[])
{/**/
char str[100];
if (strcmp(a,b)>0)
{ strcpy(str,a);strcpy(a,b);strcpy(b,str);}
if(strcmp(b,c)>0)
{ strcpy(str,b);strcpy(b,c);strcpy(c,str);}
if(strcmp(a,b)>0)
{ strcpy(str,a);strcpy(a,b);strcpy(b,str);}/**/}
第3套
1. 打开Cprog031.C,完成其中的函数fun1,该函数的数学表达式是:
例如:fun1(0.76) = 1.200
fun1(3.00) = 10.000
fun1(3.76) = 8.520
2. 打开Cprog032.C,完成其中的函数fun (char *s),使程序实现统计输入字符串中空格的个数。
Cprog031.C
double fun1(double x)
{/**/
double y = 0.0;
if(x==3) y=10;
else if(x<3) y=1.2;
else y=2*x+1;
return y; /**/ }
Cprog032.C
int fun(char *s)
{ /**/
int n=0;
char *p=s;
while(*p)
{ if(*p==' ') n++;
p++;
}
return n; /**/}
第4套
1. 打开程序Cprog041.C,完成其中的fun (?)函数,使其计算:
如 输入: 12 输出: f(12.000)=10.387
输入: 32.25 输出: f(32.250)=12.935
输入: 0.113 输出: f(0.113)=1.568
2. 打开程序Cprog042.C,完成其中的fun (?)函数,使程序打印出Fibonacci数列的前20个数。该数列(1, 1, 2, 3, 5, 8, 13, ……)的第1、第2个数为1,从第3