2013年编程题
2sinx?ex1、 打开程序Cprog441.c,完成其中的函数fun (x),该函数计算数学表达式:的
cosx?1.2值。例如:fun (1.65)=6.424
#include
return (2*sin(x)+exp(x))/(cos(x)+1.2); /**/ }
void main() {
printf(\ getch(); }
2、 打开程序Cprog442.c,完成其中的函数Reverse(unsigned int n),该函数的功能是:返回
整数n(1 #include long int Reverse(unsigned int n) {/**/ int a[5],i,len=0,result=0; while (n!=0) { a[len++]=n; n/=10; } for (i=0;i result=result*10+a[i]; } return result; /**/ } void main() { unsigned int a; printf(\ scanf(\ printf(\ 1 2013年编程题 getch(); } 3、 打开程序Cprog451.c,完成其中的函数fun(x,n),该函数计算数学表达式: 3xn (2x?1)(x?3)?0.8的值。例如:fun(2.3, 5)=9.713 #include double fun(double x,int n) {/**/ return 3*pow(x,n)/((2*x-1)*(x+3)+0.8); /**/ } void main() { printf(\ getch(); } 4、 打开程序Cprog452.c,完成其中的函数DecTohex(unsigned int data, int hex[30], int *resultlen),该函数的功能是:将十进制数data转化为对应的十六进制数,十六进制数的各位依次存储在数组hex中,*resultlen保存转化结果的位数。例如: 输入:100 输出:Hex number is:64 include void DecToHex(unsigned int data,int hex[30],int *resultlen) {/**/ int i=0; while (data!=0) { hex[i++]=data; data/=16; } *resultlen=i; /**/ } void main() { unsigned int data,hex[30]; int i,len=0; scanf(\ DecToHex(data,hex,&len); 2 2013年编程题 printf(\ for(i=len-1;i>=0;i--) if(hex[i]>9) putchar(hex[i]-10+'A'); else putchar(hex[i]+'0'); printf(\ getch(); } (x?0)?x-1 ? (x?0) 5、 完成程序Cprog461.c中的fun( )函数,使其计算:fun(x)?? 0 ?x?1 (x?0)?例如:输入:0 输出:fun(0.000)=0.000 输入:15 输出:fun(15.000)=16.000 输入:-6 输出:fun(-6.000)=-7.000 #include if (x<0) return x-1; if (x==0) return 0; if (x>0) return x+1; /**/ } void main() { float x; printf(\ scanf(\ printf(\ getch(); } 6、 打开程序Cprog462.c,完成其中的函数sort(int a[ ], int n ,int lastnum),该函数的功能是: 将具有n个元素的数组a中最后面的lastnum个元素进行从小到大排序,其余元素不变。例如:数组10个元素为:1,-2,3,-4,5,-6,7,-8,9,-10,lastnum为3时,对最后面的3个元素排序后,输出的10个数组元素为:1,-2,3,-4,5,-6,7,-10,-8,9。 #include void Sort(int a[],int n,int lastnum) {/**/ int i,j,max,temp; for (i=1;i<=lastnum;i++) { 3 2013年编程题 max=n-i; for (j=n-i-1;j>=n-lastnum;j--) if (a[max] void main() { int a[10]={1,-2,3,-4,5,-6,7,-8,9,-10},i; Sort(a,sizeof(a)/sizeof(int),3); for( i=0;i<10;i++) printf(\ printf(\ getch(); } 7、 完成程序Cprog471.c中的fun(float x)函数,使其按下列方案计算利润提成(利润为x) (x?1)?0.05x ?0.5?0.06(x-1) (1?x?3)? fun(x)??(3?x?5)?1?0.07(x-3) ? (x?5)?2?0.09(x-5) 例如:输入:1 输出:fun(1.00)=0.05 输入:2 输出:fun(2.00)=0.56 输入:4.5 输出:fun(4.50)=1.11 (1.105) 输入:6 输出:fun(6.00)=2.09 #include if (x<=1) return 0.05*x; else if (x<=3) return 0.5+0.06*(x-1); else if (x<=5) return 1+0.07*(x-3); else return 2+0.09*(x-5); /**/ } void main() { float x; 4 2013年编程题 printf(\ scanf(\ if(x<0) printf(\ else printf(\ getch(); } 8、 打开程序Cprog472.c,完成其中的函数fun(int a[N][N]),该函数的功能是:将二维数组a 表示的矩阵中的N个对角线元素进行从小到大的排序,其它元素不变。例如: 234??1??5?6?7?8??,对角线元素排序后, 矩阵排序前为:??9101112???13?14?1516??234??-6??51??7?8? 矩阵成为:??9101112????13?14?1516?#include void fun(int a[N][N]) {/**/ int i,j,min,temp; for (i=0;i min=i; for (j=i+1;j void main() { int a[N][N]={{1,2,3,4},{-5,-6,-7,-8},{9,10,11,12},{13,-14,-15,16}},i,j; fun(a); for( i=0;i 5