| |
C语言上机试题:8 1. 题目:编一C程序,它能读入一个正整数n,然后输出如下图形:
 (注:可执行文件名为e8_1.exe)
程序设计: main() {static char a[80][80]; int n,i,j,k; printf("Please inter n="); scanf("%d",%26amp;n); printf("\n"); for (i=0;i%26lt;n;i++) {k=1; for (j=0;j%26lt;2*n-1;j++) {if (j%26gt;n-i-2) a[i][j]=i+1; if (k%26lt;=2*i+1+n-i-2) k++; else break; } } for (i=0;i%26lt;n;i++) for (j=0;j%26lt;2*n-1;j++) {if (a[i][j]==0) a[i][j]=' '; else a[i][j]='*'; } for (i=0;i%26lt;n;i++) {printf("\n"); for (j=0;j%26lt;2*n-1;j++) printf("%c",a[i][j]); } for (i=n-2;i%26gt;=0;i--) {printf("\n"); for (j=0;j%26lt;2*n-1;j++) printf("%c",a[i][j]); } printf("\n"); }
2.题目:编一个C程序,它能读入一个学生登记表(学生数<100=,并把它按学号从小到大排序后输出,每个学生登记项包含学号(int型),姓名(字符串),3门课程成绩(均为浮点型),当读到学号值为-1时,表示输入结束,-1不算在内。输入时,相邻两数据间用空各隔开。(注:可执行文件名为e8_2.exe)
程序设计: #include "string.h" struct student {long num; char name[10]; float score[3]; }; main() {struct student s[100],x; int i=0,j,k,n,m; printf("Please enter student data:\n"); for (i=0;i%26lt;10;i++) {scanf("%ld",%26amp;s[i].num); if (s[i].num==-1) break; scanf("%s",s[i].name); for (m=0;m%26lt;3;m++) scanf("%f",%26amp;s[i].score[m]); } n=i; for (k=1;k%26lt;n;k++) for (j=n-1,i=0;i%26lt;n-k;i++,j--) if (s[j].num%26lt;s[j-1].num) {x.num=s[j].num; strcpy(x.name,s[j].name); for (m=0;m%26lt;3;m++) x.score[m]=s[j].score[m]; s[j].num=s[j-1].num; strcpy(s[j].name,s[j-1].name); for (m=0;m%26lt;3;m++) s[j].score[m]=s[j-1].score[m]; s[j-1].num=x.num; strcpy(s[j-1].name,x.name); for (m=0;m%26lt;3;m++) s[j-1].score[m]=x.score[m]; } printf("Number Name Score1 Score2 Score3\n"); for (i=0;i%26lt;n;i++) printf("%-8ld%-10s%-8.0f%-8.0f%-8.0f\n",s[i].num,s[i].name,s[i].score[0],s[i].score[1],s[i].score[2]); }
3.题目:编一个C程序,它能读入一串浮点数(输入时,相邻的两个数用空格隔开,以0为结束标记,0不算在内),计算出其中绝对值最大者和最小者,并输出它们的原值。(注:可执行文件名为e8_3.exe)
程序设计: #include "math.h" main() {float f,max,min; int f1,f2; printf("Please enter float number:\n"); scanf("%f",%26amp;f); if (fabs(f-0.0)%26gt;1e-4) {max=fabs(f);if (f%26gt;0.0) f1=0;else f1=1; min=fabs(f);if (f%26gt;0.0) f2=0;else f2=1; do {scanf("%f",%26amp;f); if (fabs(f-0.0)%26lt;1e-4) break; else {if (max%26lt;fabs(f)) {max=fabs(f);if (f%26gt;0.0) f1=0;else f1=1;} if (min%26gt;fabs(f)) {min=fabs(f);if (f%26gt;0.0) f2=0;else f2=1;} } } while (1); } if (f1==0) printf("abs max: %g\n",max); else printf("abs max: %g\n",-max); if (f2==0) printf("abs min: %g\n",min); else printf("abs min: %g\n",-min); }
|
|