当前位置:首页 > C程序设计作业集
for (i=0; i main ( ) { sub1( ); sub3(a); sub2( ); sub3(a); } 3.若输入的值是-125,写出下面程序的运行结果。 #include for (k=2; k<=sqrt(n); k++) { r = n % k ; while (!r) { printf(“%d”,k); n=n/k; if (n>1) printf(“*”); r = n % k ; } } if (n!=1) printf(“%d\\n”,n); } main ( ) { int n ; scanf(“%d”,&n); printf(“%d=”,n); if (n<0) printf(“-”); n = fabs(n); fun(n); } 4.写出下面程序的运行结果。 int i=0; fun1 (int i) { i = (i%i)*(i*i)/(2*i)+4 ; printf(“i=%d\\n”,i); return (i) ; } fun2(int i) { i = i<=2 ? 5 : 0 ; return (i) ; } main ( ) { int i = 5 ; fun2(i/2) ; printf(“i=%d\\n”,i) ; fun2(i=i/2) ; printf(“i=%d\\n”,i) ; fun2(i/2) ; printf(“i=%d\\n”,i) ; fun1(i/2) ; printf(“i=%d\\n”,i) ; } 5.写出下面程序的功能。 func (int n) { int i,j,k; i=n/100; j=n/10-i*10 ; k=n ; if (i*100+j*10+k) == i*i*i+j*j*j+k*k*k) return n ; return 0; } main ( ) { int n,k ; for (n=100; n<1000 ; n++) if (k=func(n)) printf(“%d”,k) ; } 四.程序判断题 1.下面add函数求两个参数的和;判断下面程序的正误,如果错误请改正过来。 void add(int a,int b) { int c ; c = a + b; return (c) ; } 2.下面函数fun的功能是:将长整型数中偶数位置上的数依次取出,构成一个新数返回,例如,当s中的数为:87653142时,则返回的数为:8642;判断下面程序的正误,如果错误请改正过来。 long fun(long s) { long t , sl=1; int d ; t = 0 ; while ( s > 0 ) { d = s; if (d%2=0) { t=d* sl+ t; sl *= 10; } s \\= 10; } return (t); } 3.下面函数fun的功能是:统计字符串s中各元音字母(即A,E,I,O,U)的个数,注意:字母不分大,小写;判断下面程序的正误,如果错误请改正过来。 fun (char s[ ], int num[5]) { int k; i=5; for (k=0; k for (k=0; s[k]; k++) { i = -1; switch ( s ) { case ?a?: case ?A?: i=0; case ?e?: case ?E?: i=1; case ?i? : case ?I? : i=2; case ?o?: case ?O?: i=3; case ?u?: case ?U?: i=4; } if (i >= 0) num[i]++; } } 4.函数fun的功能是:根据整型形参m,计算如下公式的值: y?1111?????? 100*100200*200300*300m*m 判断下面程序的正误,如果错误请改正过来。 fun (int m) { double y = 0, d ; int i ; for ( i =100, i <= m, i += 100 ) { d = (double) i * (double) I ; y += 1.0 / d ; } return ( y ) ; } 5.下面函数fun的功能是:依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串;判断下面程序的正误,如果错误请改正过来。 void fun (char s[ ]) { int i,j; for (i=0,j=0; s[i]!=?\\0?; i++) if (s[i]>=?0? && s[i]<=?9?) s[j]=s[i]; s[j]=”\\0”; } 五.程序填空题 1.下面函数用“折半查找法”从有10个数的a数组中对关键字m查找,若找到,返回其下标值,否则返回-1,请填(2)空使程序完整。 经典算法提示: 折半查找法的思路是先确定待查元素的范围,将其分成两半,然后比较位于中间点元素的值。如果该待查元素的值大于中间点元素的值,则将范围重新定义为大于中间点元素的范围,反之亦反。 int search(int a[10],int m) { int x1=0,x2=0,mid ; while (x1<=x2) { mid = (x1+x2)/2; if (ma[mid]) 【2 】; else return (mid) ; } return (-1) ; } 2.del函数的作用是删除有序数组a中的指定元素x,n为数组a的元素个数,函数返回删除后的数组a元素个数,请填(2)空使程序完整。 int del (int a[10],int n,int x) { int p=0,i ; while (x>=a[p]&&p 【1 】; main ( ) { float x,y,z,f ; scanf(“%f,%f,%f”,&x,&y,&z); f = fun (【2 】); f += fun (【3 】); printf(“f=%d”,f); } float fun(float a,float b) { return (a/b) ; } 4.avg函数的作用是计算数组array的平均值返回,请填(3)空使程序完整。 float avg(float array[10]) { int i ; float avgr , sum=0 ; for (i=1; 【1 】; i++) sum+=【2 】; avgr = sum / 10 ; 【3 】; } 5.下面函数的作用是通过递归的方法将字符串倒置,请填(2)空使程序完整。 void fun(char s[ ],int l,int h) { if (【1 】) return ;
共分享92篇相关文档