C语言复习题 联系客服

发布时间 : 星期一 文章C语言复习题更新完毕开始阅读69ffcb4d59eef8c75fbfb3eb

{ int x = 1, y = 1;

void f(int m,int n, int *px,int *py); f(2009, 100, &x, &y); printf (\ f(2010, 150, &x, &y); printf (\}

void f(int m,int n, int *px,int *py) { int k, flag;

int tab [2][13]= {

{0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }, {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }, };

flag = m%4==0 && m% 100!= 0 || m@0==0; for ( k=1; n>tab[flag][k]; k++) n = n - tab [flag][k]; *px = k; *py = n; }

程序运行结果:4#10#5#30# 28. #include ”stdio.h”

void fun(int *s,int n1,int n2) { int i,j,t;

i=n1;j=n2; while(i

*(s+i)=*(s+j); *(s+j)=t; i++;j--;

} }

main()

{ int a[10]={1,2,3,4,5,6,7,8,9,0},i,*p=a;

fun(p,0,3); fun(p,4,9); fun(p,0,9);

for(i=0;i<10;i++)

printf(”%d”,*(a+i)); }

程序的输出结果是( C ) A.0987654321 B.4321098765 C.5678901234 29. #include

main()

{ char a[]=\

D.0987651234 int i=0; p=a;

while(*p)

{ if(i%2==0) *p='*'; p++;i++; }

puts(a);

}

程序运行结果:*2*4*6*8* 30. #include

main ()

{ char a[]=\ char *p1,*p2; int k; p1=a; p2=b;

for(k=0;k<=7;k++)

if(*(p1+k)==*(p2+k)) printf(\

}

程序运行结果:gae 31. #include

struct ord

{ int x,y;} dt[2]={1,2,3,4}; main()

{ struct ord *p=dt;

printf (“%d,”,++p->x); printf(“%d\\n”,++p->y); }

程序运行结果:2,3 32. #include

struct stu

{ char num[10]; float score[3]; }; main()

{ struct stu s[3]={{“201021”,90,100,85},{“201022”,95,80,75},{“201023”,70,60,65}}; int i; float sum=0; for(i=0;i<3;i++)

sum=sum+s[i].score[i]; printf(“%6.2f\\n”,sum); }

程序运行结果:235.00

33. /* 假设读写文件的操作能正常完成 */ #include #include void main()

{ char ch, *s = \

int x; FILE *in;

if ((in = fopen(\ while(*s != '\\0') fputc(*s++,in); fclose(in);

if((in=fopen(\ while((ch=fgetc(in)) !=EOF){ switch (ch) {

case 'A': x = 95; break; case 'B': x = 85; break; case 'C': x = 75; break; case 'D': x = 60; break; default: x = 0; break; } printf(\ }

fclose(in); }

以上程序运行后的输出结果:95#75#0#60#85#

34. 请写出一个宏定义MYALPHA(C),用以判断C是否是字母字符,若是得1,否则得0。 #define MYALPHA(C) C>=’A’&&C<=’Z’||C>=’a’&&C<=’z’ 程序填空题

1. 计算1!+2!+3!.....10!, 函数int fun(int n )是计算n!。

#include int fun(int n) { int i,t;

(1) ;

for(i=1;i<=n;i++) t=t*i; (2) ; }

void main( ) { int i; float s=0;

for(i=1 ; i<=10;i++) (3) ;

printf(\; }

(1)t=1 (2) return t (3) s=s+fun(i)

2. 输入x,计算1+x+x2+x3+……….x10的和并输出。 函数float fun(float x,int n)是计算xn #include “stdio.h” float fun(float x,int n)

{int i; float t;

_____(1)_____; for(i=1;i<=n;i++) t=t*x;

_____(2)_____; }

void main() {int i; float s,x;

scanf(“%f”,&x);

for(_____(3)_____;i<=10;i++)

_____(4)_____; printf(“%f”,s); }

答案:(1) t=1 (2) return t (3) s=0,i=0或s=1,i=1 (4) s+=fun(x,i)

3. 验证哥德巴赫猜想:任何一个大于6的偶数均可表示为两个素数之和。例如6=3+3,

8=3+5,…,18=7+11。将6~100之间的每个偶数都表示成两个素数之和。函数prime(m)用于判断m是否为素数。素数就是只能被1和自身整除的正整数,1不是素数,2是素数。

#include \#include \void main( ) { int i, k;

int prime(int m);

for (i = 6; i <= 100; i = i+2 ) for(k = 3; k <= 50; k++) if( (1) C ){ printf(\ break; } }

int prime(int m) { int k,n;

if(m == 1) return 0; n = (int)sqrt(m);

for(k = 2; k <= n; k++) (2) B ; (3) B ; }

(1) A.prime(i) B.prime(i) && prime(k) C.prime(k) && prime(i-k) D.prime(k) (2) A.if(m%k != 0) return 0 B.if(m%k == 0) return 0