福建省计算机二级(c语言)编程含答案
- 格式:doc
- 大小:87.00 KB
- 文档页数:9
编程题:第1套1. 打开考生文件夹中的Cprog011.C ,完成其中的fun1函数,该函数的数学表达式是:1sin 1()1xx e fun x x ++=+例如:fun1(0.76) = 2.175fun1(3.00) = 5.307fun1(3.76) = 9.1112. 打开考生文件夹中的Cprog012.C ,完成其中的函数fun2(int a[ ], int n, int b[ ], int c[ ]),实现:(1)将数组a 中大于-20的元素,依次存放到数组b 中;(2)将数组b 中的元素按照从小到大的顺序存放到数组c 中;(3)函数返回数组b 中的元素个数。
Cprog011.Cdouble fun1(double x){ /**/ double y = 0.0;y=(1+sin(x)+exp(x))/(1+x);return y; /**/ }Cprog012.Cint fun2(int a[],int n,int b[],int c[]){/**/int j = 0;int i,t,k;for(i=0;i<n;i++)if(a[i]>-20) { c[j]=b[j]=a[i]; j++; }for(i=0;i<j-1;i++)for(k=i+1;k<j;k++)if(c[i]>c[k]){ t=c[i]; c[i]=c[k]; c[k]=t; }return j; /**/ }第2套1. 打开考生文件夹中的Cprog021.C ,完成其中的函数fun1,该函数的数学表达式是:|6|1() 1.3x e x fun x x +-=+例如:fun1(0.76) = 3.582fun1(3.00) = 5.369fun1(3.76) = 8.9312. 打开考生文件夹中的Cprog022.C ,完成其中的函数fun2(char a[ ], char b[ ], char c[ ]),实现:将三个字符串a 、b 、c 从小到大排序后输出。
注意:字符串比较函数为strcmp(str1,str2),字符串赋值函数为strcpy(str1,str2)。
Cprog021.Cdouble fun1(double x){ /**/double y = 0.0;y=(exp(x)+fabs(x-6))/(x+1.3);return y; /**/}Cprog022.Cvoid 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,该函数的数学表达式是:1.231()103213x fun x x x x <⎧⎪=⎨⎪+>⎩=例如:fun1(0.76) = 1.200fun1(3.00) = 10.000fun1(3.76) = 8.5202. 打开Cprog032.C ,完成其中的函数fun (char *s),使程序实现统计输入字符串中空格的个数。
Cprog031.Cdouble 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.Cint fun(char *s){ /**/int n=0;char *p=s;while(*p){ if(*p==' ') n++;p++;}return n; /**/}第4套1. 打开程序Cprog041.C ,完成其中的fun ( )函数,使其计算:00()||3.2sin()2x f x x x x ≤⎧⎪=+⎨>⎪+⎩如 输入: 12 输出: f(12.000)=10.387输入: 32.25 输出: f(32.250)=12.935输入: 0.113 输出: f(0.113)=1.5682. 打开程序Cprog042.C ,完成其中的fun ( )函数,使程序打印出Fibonacci 数列的前20个数。
该数列(1, 1, 2, 3, 5, 8, 13, ……)的第1、第2个数为1,从第3个数开始每个数等于前2个数之和。
Cprog041.Cdouble f(float x){/**/double y;if (x<=0)y = 0;elsey = (fabs(x)+3.2)/(sin(x)+2);return y;/**/}Cprog042.Cvoid fun(int a[],int m){ /**/int i;a[0]=1;a[1]=1;for(i=2; i<m; i++)a[i] = a[i-2] + a[i-1];/**/}第5套1. 打开程序Cprog051.C ,完成其中的f ( )函数,使其计算:||700()1||700x f x x ≤=⎪->=⎩如 输入: 0.4 输出: f(0.40)=0.82输入: 1.5 输出: f(1.50)=1.24输入: 780 输出: f(780.00)=-1.002. 打开程序Cprog052.C ,完成其中的fun ( )函数,使其判断一个矩阵是否为对称矩阵,若矩阵对称返回1,不对称返回0。
说明:矩阵a 是一个二维数组,若其中的第k 行第j 列的元素与第j 行第k 列的元素相同,则称其为对称矩阵,否则为非对称矩阵。
如 输入:6 3 12 如 输入:6 9 123 18 8 3 18 812 8 7 34 8 22输出:Yes 输出:NoCprog051.Cdouble f(float x){/**/double y;if (fabs(x)<=700)y = sqrt(5.8+fabs(x))/(cos(x)+2.1);elsey = -1;return y; /**/}Cprog052.Cint fun(int a[][3],int m){ /**/int flag =1;int i, j;for(i = 0; i<m; i++)for(j = 0; j<m; j++)if(a[i][j] != a[j][i])flag = 0;return flag; /**/}第6套1. 打开程序Cprog061.C ,完成其中的f ( )函数,使其计算:3||300()lg(|| 2.6)1||300x x f x x x ⎧≤⎪=+⎨⎪->=⎩如 输入: 0.8 输出: f(0.80)=0.96输入: 4.5 输出: f(4.50)=107.05输入: 725 输出: f(725.00)=-1.002. 打开程序Cprog062.C ,完成其中的fun ( )函数,使其实现四则运算功能。
如 输入:3.2 2.1输出:3.20+2.10=5.303.20-2.10=1.103.20*2.10=6.723.20/2.10=1.52Cprog061.Cdouble f(float x){ /**/double y;if (fabs(x)<=300)y = pow(x,3)/log10(fabs(x)+2.6);elsey = -1;return y; /**/}Cprog062.Cfloat fun(float a,char flag,float b){ /**/float y;switch(flag)case ‘+’: y = a+b; break;case ‘-‘: y = a-b; break;case ‘*’: y = a*b; break;case ‘/’: y = a/b;return y; /**/}第7套1. 打开程序Cprog071.C ,完成其中的f(x)函数,使对其输入的一个月工资数额,求应交税款。
设应交税款的计算公式如下:01600(1600)5%16002100()(1600)10%2521003100(1600)15%1253100x x x f x x x x x ≤⎧⎪-⨯<≤⎪=⎨-⨯-<≤⎪⎪-⨯->⎩例如 输入: 1825 输出: f(1825)=11.25输入: 2700 输出: f(2700)=85.00输入: 5655 输出: f(5655)=483.252. 打开程序Cprog072.C ,完成其中的fun ( )函数,该函数将4阶矩阵A 的各行中0之前的所有正数依次存放到数组b 中,并返回这些正数之和。
如矩阵A 为1234012131421230243132330--⎡⎤⎢⎥--⎢⎥⎢⎥--⎢⎥--⎣⎦则调用函数fun( )后,b[0]为1,b[1]为2,b[2]为23,b[3]为32,函数返回58。
Cprog071.Cdouble f(float x){/**/double y;if (x<=1600)y=0;else if (x<=2100)y = (x-1600)*0.05;else if (x<=3100)y = (x-1600)*0.1-25;elsey = (x-1600)*0.15-125;return y; /**/}Cprog072.Cint fun(int a[][COL],int row,int b[]){/**/int x=0,i,j,k=0;for(i=0;i<row;i++)for(j=0;j<COL;j++)if(a[i][j]>0) b[k++]=a[i][j];else if (a[i][j]==0) break;for(i=0;i<k;i++)x=x+b[i];return x;/**/}第8套1. 打开程序Cprog081.C ,完成其中的f (x )函数,使其计算:(2)0()(2)ln(2)0xx e x f x x x x ⎧+≤=⎨+>⎩如 输入: -1.2 输出: f(-1.200)=0.241输入: 6 输出: f(6.000)=19.8792. 打开程序Cprog082.C ,完成其中的fun ( )函数,该函数将以指针数组的形式存放的n 个串升序排序。