C语言习题集及答案 下载本文

{ int a=4,b=3,c=5,d=6; t(a,b,c,d);

printf("%d%d\\n",c,d); }

7. fun(int x,int y,int z)

{z=x*x+y*y;} main()

{ int a=31;

fun(5,2,a); printf("%d",a); }

8. int a,b;

void fun()

{ a=100;b=200; } main()

{ int a=5,b=7; fun();

printf("%d%d\n",a,b); }

9. int x=3;

main() {int i;

for(i=1;i

{static int x=1; x*=x+l;

printf("%d",x); }

10. int func(int a,intb)

{ return(a+b); } main()

{int x=2,y=5,z=8,r; r=func(func(x,y),z);

32

printf("%d\n",r); }

11. long fib(int n)

{ if(n>2)return(fib(n-1)+fib(n-2)); else return(2); } main()

{ printf("%ld\\n",fib(3)};}

三、 填空题

1. 编写一个验证正整数M是否为素数的函数,若M是素数则把1送到T中,否则零送到T中。在主函数中

读入N个正整数,每读入一个则调用函数判断它是否为素数,在主函数中将T的值累加到另一个变量中。用此方法可求出N个数中素数的个数。请填空完成上述功能的程序。 #include #include int prime(int m) { int i,pp=1;

for (i=2; (1) ;i++) if (m % i==0) pp=0; if (m==1) (2) return(pp); }

main()

{ int a[20],i,sum=0; for(i=0;i<10;i++) { scanf(\ sum= (3) }

printf(\

}

2. 编写一函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其它字符的个数,在主函数

中输入字符串以及输出上述的结果。请填空完成上述功能的程序。

33

#include #include

void fltj(char str[],int a[]) { int ll,i; ll= (1)

for (i=0;i

} }

main()

{ static char str[60]; static int a[4]={0,0,0,0}; gets(str); fltj(str,a);

printf(\

str,a[0],a[1],a[2],a[3]); }

3. 用递归方法求N阶勒让德多项式的值,递归公式为

? P?1n??x??((2n?1)?x?pn?1(x)?(n?1)?pn?2(x))/n

#include main()

{ float pn(); float x,lyd; int n;

scanf(\ lyd= (1)

(n?0)(n?1)(n?1)34

printf(\

}

float pn(float x,int n)

{ float temp;

if (n==0) temp= (2) else if (n==1) temp= (3) else temp= (4) return(temp);

}

4.以下函数的功能是:求x的y次方,请填空。

double fun(double x,int y) {int i; double z:

for(i=1,z=x;i

}

5.a=5,b=6,c=7,d=8,则d=a/2&&b==c||!a的值为( )。 6.若int a=12; 则表达式a/=a+a的值是 ( )。 7.strlen(“ABCDE”)=( )。

8、下列程序的执行结果是 #include void main( )

{ int x=1,a=2,b=3; switch(x)

{ case 1: a--; break; case 2: b++; break; case 3: a++;b++; }

printf(\}

第一单元 一、 选择题

1. A 2. B 3. C 4. C 5. D 6. A 7. C 8. D 9. A 10. D 12. D 13. BC 14.. B 15. B

11. A 35