1、定义一个函数int fun(int a,int b,int c),它的功能是:若a,b,c能构成等边三角形函数返回3,若能构成等腰返回2,一般三角形返回1,若不克不及构成三角形返回0。之阿布丰王创作
时间:二O二一年七月二十九日 #include int fun(int a,int b,int c) { if(a+b>c && b+c>a && a+c>b) { if(a==b && b==c) return 3; else if(a==b||b==c||a==c) return 2; else return 1; } else return 0; } void main() { int a,b,c,shape; printf(\"\\nInput a,b,c: \"); scanf(\"%d%d%d\ printf(\"\\na=%d, b=%d, c=%d\\n\ shape =fun(a,b,c); printf(\"\\n\\nThe shape : %d\\n\ } 2、编写一个程序,将两个变量的值交换, 例如变量a中的值原为 3,b中的值原为8,程序运行后 a 中的值为8,b中的值为3。 时间:二O二一年七月二十九日 时间:二O二一年七月二十九日 #include t=*x;*x=*y;*y=t } void main() { int a=3,b=8; printf(\"%d %d\\n\ fun(&a,b); printf(\"%d %d\\n\ } 3、从键盘输入3个数,将最大值放在变量a中,最小值放在变量c中。 例如,输入的数为:55 12 34, 输出结果应当是:a=55.0,b=34.0,c=12.0。 #include void fun(float *p,float *q,float *s) { float k; if (*p<*q) { k=*p;*p=*q;*q=k;} if (*q<*s) { k=*s;*s=*p;*p=k;} if (*p<*q) { k=*p;*p=*q;*q=k;} } void main() { float a,b,c; printf(\"Input a b c: \"); scanf(\"%f%f%f\ 时间:二O二一年七月二十九日 时间:二O二一年七月二十九日 printf(\"a=%4.1f,b=%4.1f,c=%4.1f\\n\\n\ fun(&a,&b,&c); printf(\"a=%4.1f,b=%4.1f,c=%4.1f\\n\\n\ } 4、编写函数fun(int n),它的功能是:计算正整数n的所有因子 (1和n除外)之和作为函数值返回。例如:n=120时,函数值为239。 #include int i,s=0; for (i=2;i void NONO(); printf(\"%d\\n\ NONO(); } void NONO( ) {/* 请在此函数内打开文件,输入测试数据,调用 fun 函数, 输出数据,关闭文件。 */ FILE *wf; wf = fopen(\"a30.out\ fprintf(wf,\"%d\\n\ fclose(wf) ; 时间:二O二一年七月二十九日 时间:二O二一年七月二十九日 } 5、计算s,并输出 1 1 1 S = 1 + ── + ─── + …… + ────── 1+2 1+2+3 1+2+3+…+n n通过键盘输入,例如:若n的值为11时,则函数值为:1.833333 #include float s=1.0,h=1; for (i=2;i<=n;i++) { h=h+i; s=s+1.0/h; } returns; } void main() { int n;float s; printf(\"\\nPlease enter N:\");scanf(\"%d\ s=fun(n); printf(\"the result is:%f\ } 6、将一个整数中的每一位上为奇数的数依次取出,构成一个新数 放在t中。高位仍在高位,低位仍在低位。例如,当s中的数为:87653142时,t中的数为:7531。 时间:二O二一年七月二十九日 时间:二O二一年七月二十九日 #include d=s%10; if(d%2!=0) { *t=d*s1+*t; s1=s1*10; } s/=10; } } main() { long s,t; printf(\"\\nPlease enter s:\"); scanf(\"%ld\ fun(s,&t); printf(\"The result is:%ld\\n\ } 7、计算并输出k以内最大的10个能被13或17整除的自然数之和。k的值从键盘传入,若k的值为500,则输出4622。 #include 时间:二O二一年七月二十九日 时间:二O二一年七月二十九日 { int m=0,mc=0,j; while((k>=1)&&(mc<10)) { if ((k%13 == 0)||(k%17 == 0)) { m=m+k;mc++; } k--; } return m; } void main() { printf(\"%d\\n\ } 8、已知一个数列的前三项分别为0,0,1,以后的各项都是其相邻的前三项之和,计算并输出该数列前n项的平方根之和sum。例如,当n=10时,程序的输出结果应为:23.197745。 #include double sum,s0,s1,s2,s; int k; sum = 1.0; if(n <= 2) sum = 0.0; s0 = 0.0; s1 = 0.0; s2 = 1.0; for (k = 4; k <= n; k++) { s = s0 + s1 + s2; 时间:二O二一年七月二十九日 时间:二O二一年七月二十九日 sum += sqrt(s); s0 = s1; s1 = s2; s2 = s; } return sum;} void main ( ) { int n; printf(\"Input N=\"); scanf(\"%d\ printf(\"%f\\n\ } 9、编写一个程序,从键盘输入m,输出大于m且紧随m的素数。 #include for (i=m+1;;i++) { for (k=2;kif (k>=i) return(i); } } void main() { int n; printf(\"\\nPlease enter n:\"); scanf(\"%d\ 时间:二O二一年七月二十九日 时间:二O二一年七月二十九日 printf(\"%d\\n\ } 10、判断两个整数m和n是否互质(即是否有公共的因子)(m≠1,n≠1)。方法是:用2到t(t取m和n中较小的那个数)之间的数分别去除m和n,若m和n能同时被某个数除尽,则m和n不互质;否则它们互质。 例如,若输入187和85,则应输出No(暗示它们不互质,它们有公因子17)。若输入89和187,则应输出Yes(暗示它们互质)。 #include int k, t, mk=1; t=m; if (m>n) t=n; for(k=2;k<=t;k++) if( m%k==0 && n%k==0 ) { mk=0; break; } return mk; } void main( ) { int m, n; printf( \"\\nPlease enter 2 numbers:\\n\" ); scanf(\"%d %d\ if( IsThat( m, n ) ) printf( \"Yes\\n\" ); else printf( \"No\\n\" ); } 11、将十进制正整数m转换成k进制数(2≤k≤9)并输出(m,k从 时间:二O二一年七月二十九日 时间:二O二一年七月二十九日 键盘输入)。 例如,若输入8和2,则应输出1000(即十进制数8转换成二进制暗示是1000)。 #include int aa[20], i,j; for( i = 0; m; i++ ) { aa[i] = m%k; m /= k; } for( j=i-1; j>=0; j-- ) printf(\"%d\ void main() { int b, n; printf( \"\\nPlease enter a number and a base:\\n\" ); scanf(\"%d %d\ } 12、统计从键盘输入的50个实数中有多少个正数、多少个负数、多少个零 #include void fun(int *zs,int *fs,int *l,float aa[]) { int i; for(i=0;i<50;i++) { if(aa[i]>0) 时间:二O二一年七月二十九日 时间:二O二一年七月二十九日 (*zs)++; if(aa[i]<0) (*fs)++; if(aa[i]==0) (*l)++; } } void main() { float num[50]; int i,czs,cfs,cl; czs=cfs=cl=0; printf( \"\\nPlease enter 50float numbers :\\n\" ); for(i=0;i<50;i++) scanf(“%f”,&num[i]); fun(&czs,&cfs,&cl,num); printf(\"\\n正数:%d ,负数:%d ,零:%d \\n\ } 13、计算并输出方程X+Y=1989的所有整数解 #include for(x=1;x<=44;x++) for(y=1;y<=44;y++) if(x*x+y*y==1989) printf(“x=%d ,y=%d \\n”,x,y); } void main() 2 2 时间:二O二一年七月二十九日 时间:二O二一年七月二十九日 { printf(“方程x^2+y^2=1989的整数解为:\\n”); fun(); } 14、从键盘输入10个整数,求出其中的最大值。 #include for(i=1;i<10;i++) if(aa[i]>m) m=aa[i]; return m; } void main() { int num[10],i; printf(“请从键盘输入10个整数:\\n”); for(i=0;i<10;i++) scanf(“%d”,&num[i]); printf(“\\n最大的数是:%d\\n”,fun(num)); } 15、从键盘输入n值,输出如右图形。(例如n=5时) #include 时间:二O二一年七月二十九日 1 2 3 4 5 1 1 2 3 4 1 1 1 2 3 1 1 1 1 2 1 1 1 1 1 时间:二O二一年七月二十九日 for(i=1;i<=n;i++) { for(j=1;j<=i;j++) printf(“%3d”,1); for(j=2;j<=n+1-i;j++) printf(“%3d”,j); printf(“\\n”); } } void main() { int n; printf(“\\n请输入图形的行数:”); scanf(“%d”,&n); fun(n); } 16、使用函数的方式,计算如下公式的值。 1 1 1 A1=1,A2=──,A3=──,……An=──── 1+A1 1+A2 1+A(n-1) 例如:若n=10,则应输出: 0.617977。 #include float A=1; int i; for (i=1; i<=n; i++) A = 1.0/(1+A); return A ; } 时间:二O二一年七月二十九日 时间:二O二一年七月二十九日 void main( ) { int n ; printf(\"\\nPlease enter n: \") ; scanf(\"%d\ printf(\"A%d=%f\\n\ } * 17、使用函数的方式,,按下面的公式计算并输出数列的第m项。 ┌ 2, m = 1; │ 3, m = 2; FFF( m ) = ┤ 5, m = 3; └ FFF(m - 3) + FFF(m - 1), m > 3; 例如,若输入整数 9,则应输出:47。 (不必做) * 18、使用函数的方式,按以下递归公式求函数值 ┌10 (n=1) fun(n)=│ └fun(n-1)+2 (n>1) 例如,当给n输入5时,函数值为18;当给n输入3时,函数值为14。 (不必做) 19、计算并输出当0 时间:二O二一年七月二十九日 时间:二O二一年七月二十九日 { int n=1;/* 循环计数*/ double sn=1;/* 累计数*/ double xn=1,xn1=0;/*x的n值,以及x的n-1值;*/ while(fabs(xn-xn1)>=0.000001)/*绝对值是否合格*/ { xn=xn*x*(0.5-n+1)/n; /*表达式分解以后xn=(xn-1)*x*(0.5-n+1)/n*/ n+=1; sn+=xn; /*sn累加上xn*/ } returnsn; } void main() { double x,s; printf(\"Input x: \"); scanf(\"%lf\ s=fun(x); printf(\"s=%f\\n\ } 20、计算并输出s。 x^2 x^3 x^n s = 1 + x + ── + ── + …… + ── 2! 3! n! n,x从键盘输入,例如,当n=10,x=0.3时,函数值为1.349859。 #include 时间:二O二一年七月二十九日 时间:二O二一年七月二十九日 int i; double f=1.0,h=x; double s=1; s=s+h/f; for (i=2;i<=n;i++) { f=f*i;h=h*x; s=s+h/f; } return s; } void main() { printf(\"%f\\n\ } 21、从键盘输入high,计算并输出high以内最大的10个素数之和。例如,输入high的值为100,则输出732。 #include int sum = 0, n=0, j, yes; while ((high >= 2) && (n < 10)) { yes = 1; for (j=2; j<=high/2; j++ ) if (high % j ==0 ) { yes=0; break; } 时间:二O二一年七月二十九日 时间:二O二一年七月二十九日 if (yes==1) { sum +=high; n++; } high--; } return sum ; } void main ( ) { printf(\"%d\\n\ } 22、请编写函数float fun(int n),它的功能是:返回n(包含n)以内能被5或9整除的所有自然数的倒数之和。例如,n=20,返回0.583333。注意:要求n的值不大于100。 #include double sum=0.0; if(n>0&&n<=100) { for (i=1;i<=n;i++) if(i%5==0||i%9==0) sum+=1.0/i; } return sum; } void main() 时间:二O二一年七月二十九日 时间:二O二一年七月二十九日 { int n; double s; printf(\"\\nInput n: \"); scanf(\"%d\ s=fun(n); printf(\"\\n\\ns=%f\\n\ } 23、请编一个函数fun(int *a, int n, int *odd, int *even),函数的功能是分别求出数组中所有奇数之和以及所有偶数之和。形参n给出数组a中数据的个数;利用指针odd返回奇数之和,利用指针even返回偶数之和。 例如:数组中的值依次为: 1,9,2,3,11,6;则利用指针odd返回奇数之和24;利用指针even 返回偶数之和8。 #include fun ( int *a, int n, int *odd, int *even ) { int i,sum_odd=0,sum_even=0; for(i=0;i void main( ) { int a[N]={1,9,2,3,11,6}, i, n=6, odd, even; 时间:二O二一年七月二十九日 时间:二O二一年七月二十九日 printf ( \"The original data is : \\n\" ); for ( i = 0; i < n; i ++ ) printf ( \"%5d\ printf(\"\\n\\n\"); fun ( a, n, &odd, &even ); printf ( \"The sum of odd numbers: %d\\n\ printf ( \"The sum of even numbers: %d\\n\ } 24、编写计算三角形面积的程序,注意:将计算面积定义成函数float fun(int a,int b,int c)(a,b,c为三角形的三条边,返回三角形的面积),在主函数中调用fun #include float fun(int a,int b,int c) { float p; p=(a+b+c)/2; return sqrt(p*(p-a)*(p-b)*(p-c)); } void main() { int a,b,c; printf(“请输入三角形三条边:\\n”); scanf(“%d%d%d”,&a,&b,&d); if(a+b>c && b+c>a && a+c>b) printf(“三角形面积为:%.2f”,fun(a,b,c)); else printf(“无法构成三角形”); } 25、编写程序,求E=1+1/1!+1/2!+……+1/n!,要求最后一项 时间:二O二一年七月二十九日 时间:二O二一年七月二十九日 的值小于10 #include double m=1.0; int i=1; double p=1.0; do{ m=m+1.0/p; i++; p=p*i; } while(1.0/p>=1E-4); return m; } void main() { int n; double s; 时间:二O二一年七月二十九日 -4 时间:二O二一年七月二十九日 因篇幅问题不能全部显示,请点此查看更多更全内容