发布时间 : 星期六 文章C语言复习题更新完毕开始阅读
{ 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 { 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 (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