第1页是真题,第2页是简要的解答提示,第3页是解题分析和答案。强烈建议先尝试自己完成,或者借助第2页的解答提示来完成,实在不明白再看答案。
6. 以下程序运行时输出到屏幕的结果是 (6)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #include<stdio.h> void main() { FILE *fp; int k,n,a[6]= {1,2,3,4,5,6}; fp=fopen("d2.dat","w"); fprintf(fp,"%d%d%d\n",a[0],a[1],a[2]); fprintf(fp,"%d%d%d\n",a[3],a[4],a[5]); fclose(fp); fp=fopen("d2.dat","r"); fscanf(fp,"%d%d",&k,&n); printf("%d,%d\n",k,n); fclose(fp); } |
7. 以下程序运行时输出到屏幕的结果是 (7)
1 2 3 4 5 6 7 8 9 10 11 12 13 | #include<stdio.h> void main() { int i=1,m=0; switch(i) { case 1: case 2: m++; case 3: m++; } printf("%d",m); } |
8. 以下程序运行时输出到屏幕的结果中第一行是 (8) ,第二行是 (9)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #include<stdio.h> void fun(int a[],int b[],int *x) { int i,j=0; for(i=0; a[i]; i++) { if(i%2==0)continue; if(a[i]>10) b[j++]=a[i]; } *x=j; } void main() { int a[10]= {3,15,32,23,11,4,5,9},b[10]; int i=0,x=0; fun(a,b,&x); for(i=0; i<x; i++) printf("%d\t",b[i]); printf("\n%d",x); } |
9. 以下程序运行时输出到屏幕的结果是 ( 10 )
1 2 3 4 5 6 7 8 9 10 11 | #include<stdio.h> int fun(int *x,int n) { if(n==0) return x[0]; else return x[0]+fun(x+1,n-1); } void main() { int a[ ]= {1,2,3,4,5,6,7}; printf("%d\n",fun(a,2)); } |
10. 以下程序运行时输出到屏幕的结果是 (11)
1 2 3 4 5 6 7 8 9 10 11 12 13 | #include<stdio.h> long f(int n) { static long s; if(n==1) return s=2; else return ++s; } void main() { long i,sum=0; for(i=1; i<4; i++,) sum+=f(i); printf("%ld",sum); } |
11. 以下程序运行时输出到屏幕的结果中第一行是( 12 ) , 第二行是( 13 )
1 2 3 4 5 6 7 8 9 10 11 12 13 | #include<stdio.h> #define f(x,y) y=x*x void g(int x,int y) { y=x*x; } void main() { int a=2,b=0,c=2,d=0; f(a,b); g(c,d); printf("%d\n%d",b,d); } |
12. 以下程序运行时输出到屏幕的结果中第一行是 (14) , 第三行是 (15)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | #include<stdio.h> void main() { int a[3][3]= {{3,8,12},{4,7,10},{2,5,11}},i,j,k,t; for(j=0; j<3; j++) for(k=0; k<2; k++) for(i=0; i<2-k; i++) if(a[i][j]>a[i+1][j]) t=a[i][j],a[i][j]=a[i+1][j],a[i+1][j]=t; for(i=0; i<3; i++) { for(j=0; j<3; j++) printf("%3d",a[i][j]); printf("\n"); } } |
13. 以下程序运行时输出到屏幕的结果是( 16 )
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #include<stdio.h> #include<string.h> int main() { int i=0,n=0; char s[80],*p; strcpy(s,"It is a book."); for(p=s; *p!='\0'; p++) if(*p==' ') i=0; else if(i==0) { n++; i=1; } printf("%d\n",n); return 0; } |
14.以下程序运行时输_出到屏幕的结果第一行是 (17) ,第二行是 (18)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | #include<stdio.h> typedef struct fact { int m,z; } FACT; FACT fun1(FACT t1,FACT t2) { FACT t3; t3.m=t1.m*t2.m ; t3.z=t1.z*t2.m+t2.z*t1.m; return t3; } FACT fun2(FACT t) { int m,n,k; m=t.m; n=t.z; while(k=m%n) { m=n; n=k; } t.m=t.m/n; t.z=t.z/n; return t; } void main() { FACT s,s1= {8,4},s2= {6,5}; s=fun1(s1,s2); printf("%d,%d\n",s.z,s.m); s=fun2(s); printf("%d,%d",s.z,s.m); } |