//函数返回值一定要定义为long。因为阶乘值增长的很快。很容易超出int的范围 {
long y;//y是存放阶乘值的变量。所以要定义为长整型long. int i; y=1;
for(i=1;i<=x;i++) y=y*i; return y; }
main() {
int m,n; long zhsgs;
printf(\请输入m和n:\\n\/**********Begin**********/ while(m printf(\和n输入错!请重新输入:\\n\ scanf(\ } zhsgs=fact(m)/(fact(n)*fact(m-n)); /********** End **********/ printf(\从%d个元素选%d个元素的组合数的个数是:%d\\n\ getch(); yzj(); } yzj() { FILE *IN,*OUT; int n; int i; long o; IN=fopen(\if(IN==NULL) {printf(\} OUT=fopen(\if(OUT==NULL) {printf(\} for(n=0;n<5;n++) { fscanf(IN,\ o = fact(i); fprintf(OUT,\} fclose(IN); fclose(OUT); } 1. 示例代码: while(m printf(\和n输入错!请重新输入:\\n\ scanf(\ } zhsgs=fact(m)/(fact(n)*fact(m-n)); 2. 题号:6931 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 题目:对某一正数的值保留2位小数,并对第三位进行四舍五入。 注意:部分源程序给出如下。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 *********Begin**********和********** End **********不可删除 ------------------------------------------------*/ #include \#include\void TestFunc(); float fun(float h) { /**********Begin**********/ int i;//假设h=12.5489 i=(int)(h*1000);//i=(int)(12.5489*1000)=12548=8 if(i>=5) return(int)(h*100+1)/100.0; else return(int)(h*100)/100.0; /********** End **********/ } void main() { float m; printf(\ scanf(\ printf(\ TestFunc(); } void TestFunc() { FILE *IN,*OUT; int s ; float t; float o; IN=fopen(\ if(IN==NULL) { printf(\ } OUT=fopen(\ if(OUT==NULL) { printf(\ } for(s=1;s<=5;s++) { fscanf(IN,\ o=fun(t); fprintf(OUT,\ } fclose(IN); fclose(OUT); } 2. 示例代码: int i; i=(int)(h*1000); if(i>=5) return(int)(h*100+1)/100.0; else return(int)(h*100)/100.0; 3. 题号:6993 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 题目:编写一个函数fun,它的功能是:实现两个字符串的连接(不使用库函数strcat)。 例如,分别输入下面两个字符串: FirstString-- SecondString 程序输出: FirstString--SecondString 注意:部分源程序存在文件prog.c中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 *********Begin**********和********** End **********不可删除 */ #include void fun(char p1[],char p2[]) { /********** Begin **********/ int i=0,j=0; while((p1[i])!='\\0') i++;//求字符串p1的长度。 while(p2[j]!='\\0')//遍历字符串p2 { p1[i]=p2[j];//注意下标变化的不同。 i++; j++; } p1[i]='\\0'; /********** End ***********/ } NONO ( ) {/* 本函数用于打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/ int i ; FILE *rf, *wf ; char s1[80], s2[40] ; rf = fopen(\ wf = fopen(\ for(i = 0 ; i < 10 ; i++) { fscanf(rf, \ fscanf(rf, \ fun(s1, s2) ; fprintf(wf, \ } fclose(rf) ; fclose(wf) ; } main() { char s1[80],s2[40]; system(\ printf(\ scanf(\ printf(\ printf(\ printf(\ fun(s1,s2); printf(\ printf(\ NONO() ; } 3. 示例代码: char *point1,*point2; point1=p1; point2=p2; while((*point1)!='\\0') point1++; while(*point2!='\\0'){ *point1=*point2; point1++; point2++; } *point1='\\0'; 4. 题号:7002 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 题目:能计算从1开始到n的自然数中偶数的平方的和,n由键盘输入,并在main()函数中输出。是偶数) 注意:部分源程序给出如下。请勿改动主函数main和其 它函数中的任何内容,仅在函数fun的花括号中填 入所编写的若干语句。 *********Begin**********和********** End **********不可删除 ------------------------------------------------*/ #include int fun(int n) { n(