资源描述:
《2012年9月计算机二级c语言上机题库 (1)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Chapter_12011年3月最新计算机二级C语言题库(根据等考通最新版本自己整理)第一套1.程序填空题程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到student.dat文件中。函数fun的功能是从指定文件中找出指定学号的学生数据,读入此学生数据,对该生的分数进行修改,使每门课的分数加3分,修改后重写文件中该学生的数据,即用该学生的新数据覆盖原数据,其他学生数据不变;若找不到,则什么都不做。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:不得增行或删行,也不得更
2、改程序的结构!#include#defineN5typedefstructstudent{longsno;charname[10];floatscore[3];}STU;voidfun(char*filename,longsno){FILE*fp;STUn;intI;fp=fopen(filename,"rb+");/**********found**********/while(!___1___){fread(&n,sizeof(STU),1,fp);/**********found**********/if(n.sno__
3、_2___)break;}if(!feof(fp)){for(i=0;i<3;i++)n.score[i]+=3;/**********found**********/fseek(fp,1L*___3___,SEEK_CUR);fwrite(&n,sizeof(STU),1,fp);}fclose(fp);}main({STUt[N]={{10001,"MaChao",91,92,77},{10002,"CaoKai",75,60,88},{10003,"LiSi",85,70,78},{10004,"FangFang",90,82,87},{
4、10005,"ZhangSan",95,80,88}},ss[N];intI,j;FILE*fp;fp=fopen("student.dat","wb");fwrite(t,sizeof(STU),N,fp);fclose(fp);printf("Theoriginaldata:");fp=fopen("student.dat","rb");fread(ss,sizeof(STU),N,fp);fclose(fp);for(j=0;j5、ss[j].name);for(i=0;i<3;i++)printf("%6.2f",ss[j].score[i]);printf("");}fun("student.dat",10003);fp=fopen("student.dat","rb");fread(ss,sizeof(STU),N,fp);fclose(fp);printf("Thedataaftermodifying:");for(j=0;j6、for(i=0;i<3;i++)printf("%6.2f",ss[j].score[i]);printf("");}}【答案】(1)feof(fp)(2)==sno(3)sizeof(STU)2.程序修改题给定程序中,函数fun的功能是:计算正整数num的各位上的数字之积。例如,若输入252,则输出应该是20;若输入202,则输出应该是0。请改正程序中的错误,使其能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#includelongfun(longnum){【答案】(1)将longk
7、;改为:longk=1;或longk;k=1;(2)将num=10;改为:num/=10;3.程序设计题程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun(inta[][N],intn),函数的功能是:使N×N的二维数组左下三角元素中的值乘以n。例如:若n的值为3,a数组中的值为:197238456则返回主程序后a数组中的值应为:397698121518注意:部分源程序已给出。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。#include#include8、ib.h>#defineN5intfun(inta[][N],intn){}main(){inta[N][N],n,I,j;printf("***Th