自考“高级语言程序设计”习题答案详解(47)_工学-查字典自考网
 
请输入您要查询的关键词
  查字典自考网 >> 工学 >> 自考“高级语言程序设计”习题答案详解(47)

自考“高级语言程序设计”习题答案详解(47)

发布时间: 2016-06-29 来源:查字典自考网

5.编程序,对上一题中名为“CCW.TXT”的磁盘文件中“@”之前的所有字符解密并显示。

「解」要编写的程序完成与上一程序功能相反的工作,将上述程序中的DALTA定义成一10即可。完整程序略。

6.输入100个学生的信息(含学号、姓名、年龄、七门课程成绩、总分),其中学生的总分由程序计算产生。先将学生信息存入磁盘二进制数据文件student.dat中。然后再读取该文件,寻找总分最高的学生并输出该生的所有信息。

「解」程序要定义一个结构,逐一输入学生信息,并完成学生的总分计算,将学生信息存到该结构中,然后将该结构信息存入文件。设学生信息的输入以学生的学号为负数结束。然后,程序再用循环从这文件读入学生信息,将其中总分更高的学生信息存入另一结构中。循环结束后,结构中存储的就是总分最高学生的信息。最后,显示这总分最高的学生信息。程序如下:

# include

# include

# include

struct stu {

long no;

char name[20];

int age;

int score[7];

int total;

} student, maxs;

FILE *fp;

void main()

{ char buf[120];int total,i,t;long lt;

if((fp= fopen(“student.dat”,“wb”))== NULL) {

printf(“Can‘t open file %s.n”,“student.dat” );exit(0);

}

printf(“输入学生的学号、姓名、年龄、七门课程成绩(学号小于0结束) n”);

while(1) {

scanf(“%ld”, <); student.no = lt;

if(student.no< 0) break;

scanf(“%s”, buf); strncpy( student.name, buf,19);

scanf(“%d”, &t); student.age = t;

for( total = 0, i = 0; i < 7;i++) {

scanf(“%d”,&t); student.score= t;

total+= t;

}

student.total= total;

fwrite(char *) & student,sizeof student, 1, fp);

}

fclose(fp);

if((fp = fopen(“student.dat”,“rb”))== NULL) {

printf(“Can‘t open file %s.n”,“student.dat”);exit(0);

}

maxs.total=-100;

While( !feof(fp)) {

fread((char *) & student,sizeof student,l,fp);

if( student.total maxs.total) maxs=student;

}

fclose(fp);

printf(“总分最高的学生信息:n”);

printf(“学号:%ld”, maxs.no);

printf(“ t姓名:%s”,maxs,name);

printf(“t年龄::%dn成绩:”, maxs.age)

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

printf(“m”,maxs.score);

printf(“nTOTAL = %dn”, maxs. total);

}

点击显示
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读

当前热点关注

  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • [相关地区]