| |
C语言上机试题:9
1.题目:编一个C程序,它能读入一串浮点数(以-9999.0为结束标记,-9999.0不算在内,相邻的两个数用空格隔开),计算并输出这些数的平均值以及这些数中大于、小于平均值的数的个数。(注:可执行文件名为e9_1.exe)
程序设计: #include "math.h" main() {float a[100],ave=0.0; int ma=0,mi=0,qe=0,i=-1,n; printf("Please enter float number:\n"); do {i++; scanf("%f",%26amp;a[i]); } while (fabs(a[i]+9999.0)%26gt;1e-4); n=i; for (i=0;i%26lt;n;i++) ave+=a[i]; ave/=n; for (i=0;i%26lt;n;i++) if (a[i]%26lt;ave) mi++; else if (a[i]%26gt;ave) ma++; else qe++; printf("%26lt; %d,= %d,%26gt; %d\n",mi,qe,ma); }
2.题目:编一个C程序,它能读入文件f1.c和f2.c中的所有整数,并把这些数按从小到大的次序写到文件f3.c中,文件中的相邻两个整数都用空格或换行符隔开。(注:可执行文件名为e9_2.exe)
程序设计: #include "stdio.h" main() {FILE *fp1,*fp2,*fp3; int a[100],n,i,j,k,x; if ((fp1=fopen("f1.c","wb"))==NULL) {printf("f1.c can not open!\n"); exit(0); } x=9999; while (x!=-9999) {scanf("%d",%26amp;x); if (x!=-9999) fwrite(%26amp;x,sizeof(int),1,fp1); } fclose(fp1); if ((fp2=fopen("f2.c","wb"))==NULL) {printf("f2.c can not open!\n"); exit(0); } x=9999; while (x!=-9999) {scanf("%d",%26amp;x); if (x!=-9999) fwrite(%26amp;x,sizeof(int),1,fp2); } fclose(fp2); if ((fp1=fopen("f1.c","rb"))==NULL) {printf("f1.c can not open!\n"); exit(0); } if ((fp2=fopen("f2.c","rb"))==NULL) {printf("f2.c can not open!\n"); exit(0); } if ((fp3=fopen("f3.c","wb"))==NULL) {printf("f3.c can not open!\n"); exit(0); } i=-1; while (!feof(fp1)) fread(%26amp;a[++i],sizeof(int),1,fp1); fclose(fp1); i--; rewind(fp2); while (!feof(fp2)) fread(%26amp;a[++i],sizeof(int),1,fp2); fclose(fp2); n=i; for (k=1;k%26lt;n;k++) for (j=n-1,i=0;i%26lt;n-k;i++,j--) if (a[j]%26lt;a[j-1]) {x=a[j];a[j]=a[j-1];a[j-1]=x;} fwrite(a,sizeof(int),n,fp3); fclose(fp3); if ((fp3=fopen("f3.c","rb"))==NULL) {printf("f3.c can not open!\n"); exit(0); } while (!feof(fp3)) {fread(%26amp;x,sizeof(int),1,fp3); printf("%d ",x); } printf("\n"); }
3.题目:编一C程序,它能读入一正整数n(n%26lt;10),再输出如下图形:

共 n 行.。(注:可执行文件名为e9_3.exe)
程序设计: main() {int n,i,k,j; printf("Please enter n(%26lt;10)="); scanf("%d",%26amp;n); printf("\n"); for (i=0;i%26lt;n;i++) {printf("\n"); for (k=0;k%26lt;i;k++) printf("%c",' '); for (j=1;j%26lt;n+1;j++) printf("%d",j); } printf("\n"); }
|
|