C程序设计作业集 联系客服

发布时间 : 星期一 文章C程序设计作业集更新完毕开始阅读099357ed551810a6f52486a1

for (i=0; i

main ( )

{ sub1( ); sub3(a); sub2( ); sub3(a); }

3.若输入的值是-125,写出下面程序的运行结果。

#include fun (int n) { int k,r ;

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 ;